diff --git a/firm.py b/firm.py index a1f6233..1946eaf 100644 --- a/firm.py +++ b/firm.py @@ -78,8 +78,8 @@ class FirmAgent(ap.Agent): customer.dct_prod_up_prod_stat[ prod]['s_stat'][disrupted_prod][ 'set_disrupt_firm'].add(self) - print(f"{self.name} disrupt {customer.name}'s " - f"{prod.code} due to {disrupted_prod.code}") + # print(f"{self.name} disrupt {customer.name}'s " + # f"{prod.code} due to {disrupted_prod.code}") # remove edge to customer self.firm_network.graph.remove_edge(n1, n2, key) @@ -113,12 +113,12 @@ class FirmAgent(ap.Agent): if status != 'D': self.dct_prod_up_prod_stat[ prod]['p_stat'].append(('D', self.model.t)) - print(f"{self.name}'s {prod.code} turn to D status due to " - f"disrupted supplier of {disrupted_up_prod.code}") + # print(f"{self.name}'s {prod.code} turn to D status due to " + # f"disrupted supplier of {disrupted_up_prod.code}") def seek_alt_supply(self, product): # para product is the product that self is seeking - print(f"{self.name} seek alt supply for {product.code}") + # print(f"{self.name} seek alt supply for {product.code}") if self.dct_n_trial_up_prod_disrupted[ product] <= self.model.int_n_max_trial: if self.dct_n_trial_up_prod_disrupted[product] == 0: @@ -171,10 +171,10 @@ class FirmAgent(ap.Agent): else: select_alt_supply = \ self.model.nprandom.choice(lst_firm_connect) - print( - f"{self.name} selct alt supply for {product.code} " - f"from {select_alt_supply.name}" - ) + # print( + # f"{self.name} selct alt supply for {product.code} " + # f"from {select_alt_supply.name}" + # ) assert select_alt_supply.is_prod_in_current_normal(product), \ f"{select_alt_supply} \ does not produce requested product {product}" @@ -187,17 +187,17 @@ class FirmAgent(ap.Agent): select_alt_supply.dct_request_prod_from_firm[product] = [ self ] - print( - select_alt_supply.name, 'dct_request_prod_from_firm', { - key.code: [v.name for v in value] - for key, value in - select_alt_supply.dct_request_prod_from_firm.items() - }) + # print( + # select_alt_supply.name, 'dct_request_prod_from_firm', { + # key.code: [v.name for v in value] + # for key, value in + # select_alt_supply.dct_request_prod_from_firm.items() + # }) self.dct_n_trial_up_prod_disrupted[product] += 1 def handle_request(self): - print(self.name, 'handle_request') + # print(self.name, 'handle_request') for product, lst_firm in self.dct_request_prod_from_firm.items(): if self.dct_prod_capacity[product] > 0: if len(lst_firm) == 0: @@ -252,10 +252,10 @@ class FirmAgent(ap.Agent): down_firm.dct_cand_alt_supp_up_prod_disrupted[ product].remove(self) - print( - f"{self.name} denied {product.code} request " - f"from {down_firm.name} for lack of capacity" - ) + # print( + # f"{self.name} denied {product.code} request " + # f"from {down_firm.name} for lack of capacity" + # ) def accept_request(self, down_firm, product): # para product is the product that self is selling @@ -288,17 +288,17 @@ class FirmAgent(ap.Agent): del down_firm.dct_n_trial_up_prod_disrupted[product] del down_firm.dct_cand_alt_supp_up_prod_disrupted[product] - print( - f"{self.name} accept {product.code} request " - f"from {down_firm.name}" - ) + # print( + # f"{self.name} accept {product.code} request " + # f"from {down_firm.name}" + # ) else: down_firm.dct_cand_alt_supp_up_prod_disrupted[product].remove(self) - print( - f"{self.name} denied {product.code} request " - f"from {down_firm.name}" - ) + # print( + # f"{self.name} denied {product.code} request " + # f"from {down_firm.name}" + # ) def clean_before_trial(self): self.dct_request_prod_from_firm = {} diff --git a/model.py b/model.py index aef168a..0b6348c 100644 --- a/model.py +++ b/model.py @@ -222,14 +222,14 @@ class Model(ap.Model): self.dct_lst_init_disrupt_firm_prod = t_dct # set the initial firm product that are disrupted - print('\n', '=' * 20, 'step', self.t, '=' * 20) + # print('\n', '=' * 20, 'step', self.t, '=' * 20) for firm, a_lst_product in self.dct_lst_init_disrupt_firm_prod.items(): for product in a_lst_product: assert product in firm.dct_prod_up_prod_stat.keys(), \ f"product {product.code} not in firm {firm.code}" firm.dct_prod_up_prod_stat[ product]['p_stat'].append(('D', self.t)) - print(f"initial disruption {firm.name} {product.code}") + # print(f"initial disruption {firm.name} {product.code}") # proactive strategy # get all the firm prod affected @@ -331,10 +331,10 @@ class Model(ap.Model): 'Product': di_supp_prod.code }) ]) - print(f"proactive add {select_cand.name} to " - f"{pro_firm.name} " - f"for {di_supp_node['Firm_Code']} " - f"{di_supp_node['Product_Code']}") + # print(f"proactive add {select_cand.name} to " + # f"{pro_firm.name} " + # f"for {di_supp_node['Firm_Code']} " + # f"{di_supp_node['Product_Code']}") # change capacity select_cand.dct_prod_capacity[di_supp_prod] -= 1 break @@ -356,8 +356,8 @@ class Model(ap.Model): / len(firm.dct_prod_up_prod_stat.keys()) \ / self.remove_t firm.size_stat.append((size, self.t)) - print(f'in ts {self.t}, reduce {firm.name} size ' - f'to {firm.size_stat[-1][0]} due to {prod.code}') + # print(f'in ts {self.t}, reduce {firm.name} size ' + # f'to {firm.size_stat[-1][0]} due to {prod.code}') lst_is_disrupt = \ [stat == 'D' for stat, _ in firm.dct_prod_up_prod_stat[prod]['p_stat'] @@ -377,7 +377,7 @@ class Model(ap.Model): firm in self.dct_lst_init_disrupt_firm_prod.keys() \ and prod in self.dct_lst_init_disrupt_firm_prod[firm] if status == 'D' and not is_init: - print("not stop because", firm.name, prod.code) + # print("not stop because", firm.name, prod.code) break else: continue @@ -390,7 +390,7 @@ class Model(ap.Model): self.stop() def step(self): - print('\n', '=' * 20, 'step', self.t, '=' * 20) + # print('\n', '=' * 20, 'step', self.t, '=' * 20) # remove edge to customer and disrupt customer up product for firm in self.a_lst_total_firms: @@ -410,7 +410,7 @@ class Model(ap.Model): firm.disrupt_cus_prod(prod, up_prod) for n_trial in range(self.int_n_max_trial): - print('=' * 10, 'trial', n_trial, '=' * 10) + # print('=' * 10, 'trial', n_trial, '=' * 10) # seek_alt_supply # shuffle self.a_lst_total_firms self.a_lst_total_firms = self.a_lst_total_firms.shuffle() @@ -447,7 +447,7 @@ class Model(ap.Model): # self.a_lst_total_firms.dct_request_prod_from_firm = {} why? def end(self): - print('/' * 20, 'output', '/' * 20) + # print('/' * 20, 'output', '/' * 20) qry_result = db_session.query(Result).filter_by(s_id=self.sample.id) if qry_result.count() == 0: @@ -458,8 +458,8 @@ class Model(ap.Model): lst_is_normal = [stat == 'N' for stat, _ in dct_status_supply['p_stat']] if not all(lst_is_normal): - print(f"{firm.name} {prod.code}:") - print(dct_status_supply['p_stat']) + # print(f"{firm.name} {prod.code}:") + # print(dct_status_supply['p_stat']) for status, ts in dct_status_supply['p_stat']: db_r = Result(s_id=self.sample.id, id_firm=firm.code,