drop firm attr a_lst_product/_disrupted
This commit is contained in:
		
							parent
							
								
									11abfa5ce8
								
							
						
					
					
						commit
						ae5bebb1f3
					
				
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -82,8 +82,8 @@ class ControllerDB: | ||||||
|         # list_dct = [{'140': ['1.4.5.1']}] |         # list_dct = [{'140': ['1.4.5.1']}] | ||||||
|         # list_dct = [{'133': ['1.4.4.1']}] |         # list_dct = [{'133': ['1.4.4.1']}] | ||||||
|         # list_dct = [{'2': ['1.1.3']}] |         # list_dct = [{'2': ['1.1.3']}] | ||||||
|         # list_dct = [{'135': ['1.3.2.1']}] |         list_dct = [{'135': ['1.3.2.1']}] | ||||||
|         list_dct = [{'79': ['2.1.3.4']}] |         # list_dct = [{'79': ['2.1.3.4']}] | ||||||
|         # list_dct = [{'99': ['1.3.3']}] |         # list_dct = [{'99': ['1.3.3']}] | ||||||
|         # list_dct = [{'41': ['1.4.5']}] |         # list_dct = [{'41': ['1.4.5']}] | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
							
								
								
									
										17
									
								
								model.py
								
								
								
								
							
							
						
						
									
										17
									
								
								model.py
								
								
								
								
							|  | @ -287,9 +287,9 @@ class Model(ap.Model): | ||||||
|                             self.a_lst_total_firms.select( |                             self.a_lst_total_firms.select( | ||||||
|                                 [firm.code == di_supp_node['Firm_Code'] |                                 [firm.code == di_supp_node['Firm_Code'] | ||||||
|                                  for firm in self.a_lst_total_firms])[0] |                                  for firm in self.a_lst_total_firms])[0] | ||||||
|                         lst_cand = self.model.a_lst_total_firms.select([ |                         lst_cand = self.a_lst_total_firms.select([ | ||||||
|                             firm.is_prod_in_current_normal(di_supp_prod) |                             firm.is_prod_in_current_normal(di_supp_prod) | ||||||
|                             for firm in self.model.a_lst_total_firms |                             for firm in self.a_lst_total_firms | ||||||
|                         ]) |                         ]) | ||||||
|                         n2n_betweenness = \ |                         n2n_betweenness = \ | ||||||
|                             sum([True if di_supp_code in path else False |                             sum([True if di_supp_code in path else False | ||||||
|  | @ -418,7 +418,7 @@ class Model(ap.Model): | ||||||
|             for product in firm.dct_prod_up_prod_stat.keys(): |             for product in firm.dct_prod_up_prod_stat.keys(): | ||||||
|                 status = firm.dct_prod_up_prod_stat[product]['status'][-1][0] |                 status = firm.dct_prod_up_prod_stat[product]['status'][-1][0] | ||||||
|                 if status == 'A': |                 if status == 'A': | ||||||
|                     print(firm.name, 'affected product: ', product.code) |                     print(firm.name, 'affected product:', product.code) | ||||||
|                     n_up_product_lost = \ |                     n_up_product_lost = \ | ||||||
|                         sum([not stat for stat in |                         sum([not stat for stat in | ||||||
|                              firm.dct_prod_up_prod_stat[ |                              firm.dct_prod_up_prod_stat[ | ||||||
|  | @ -428,10 +428,13 @@ class Model(ap.Model): | ||||||
|                     else: |                     else: | ||||||
|                         lost_percent = n_up_product_lost / len( |                         lost_percent = n_up_product_lost / len( | ||||||
|                             product.a_predecessors()) |                             product.a_predecessors()) | ||||||
|                         lst_size = self.a_lst_total_firms.size |                         # firm (affected) + other firm (same product, normal) | ||||||
|                         lst_size = [firm.size for firm |                         lst_firm = [firm] | ||||||
|                                     in self.a_lst_total_firms |                         lst_firm += \ | ||||||
|                                     if firm.is_prod_in_current_normal(product)] |                             [firm for firm | ||||||
|  |                              in self.a_lst_total_firms | ||||||
|  |                              if firm.is_prod_in_current_normal(product)] | ||||||
|  |                         lst_size = [firm.size for firm in lst_firm] | ||||||
|                         std_size = (firm.size - min(lst_size) + |                         std_size = (firm.size - min(lst_size) + | ||||||
|                                     1) / (max(lst_size) - min(lst_size) + 1) |                                     1) / (max(lst_size) - min(lst_size) + 1) | ||||||
|                         prob_disrupt = 1 - std_size * (1 - lost_percent) |                         prob_disrupt = 1 - std_size * (1 - lost_percent) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue