Esempio n. 1
0
 def play(self, market: Market):
     remaining_firms = copy(market.firms)
     # average obfuscation level
     t_mean = market.compute_mean_obfuscation_level()
     search_cost = self.compute_keep_search_cost(tau=market.tau,
                                                 t_mean=t_mean)
     while self.should_keep_searching(market=market,
                                      search_cost=search_cost):
         firm = remaining_firms[np.random.choice(len(remaining_firms))]
         remaining_firms.remove(firm)
         if self.p_0_firm is None\
                 or self.p_0_firm.price > firm.price:
             self.p_0_firm = firm
         self.t_0 += (market.tau + firm.obfuscation_level)
         self.search_count += 1
         if len(remaining_firms) == 0:
             break
     # buy from firm offering lowerest price
     if self.p_0_firm is not None:
         self.p_0_firm.sell()