set to list
This commit is contained in:
		
							parent
							
								
									6d06bff9ec
								
							
						
					
					
						commit
						49d3c6791e
					
				
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -76,7 +76,8 @@ class ControllerDB:
 | 
			
		|||
        # list_dct = [{'2': ['1.1.3']}]
 | 
			
		||||
        # list_dct = [{'135': ['1.3.2.1']}]
 | 
			
		||||
        # 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']}]
 | 
			
		||||
 | 
			
		||||
        # fill g_bom
 | 
			
		||||
        BomNodes = pd.read_csv('BomNodes.csv', index_col=0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										25
									
								
								model.py
								
								
								
								
							
							
						
						
									
										25
									
								
								model.py
								
								
								
								
							| 
						 | 
				
			
			@ -71,14 +71,13 @@ class Model(ap.Model):
 | 
			
		|||
            for product_code in G_Firm.nodes[node]['Product_Code']:
 | 
			
		||||
                lst_pred_product_code += list(G_bom.predecessors(product_code))
 | 
			
		||||
            lst_pred_product_code = list(set(lst_pred_product_code))
 | 
			
		||||
            # to generate consistant graph
 | 
			
		||||
            lst_pred_product_code = list(sorted(lst_pred_product_code))
 | 
			
		||||
            # print(lst_pred_product_code)
 | 
			
		||||
            for pred_product_code in lst_pred_product_code:
 | 
			
		||||
                # for each product predecessor (component) the firm need
 | 
			
		||||
                # get a list of firm producing this component
 | 
			
		||||
                lst_pred_firm = \
 | 
			
		||||
                    Firm['Code'][Firm[pred_product_code] == 1].to_list()
 | 
			
		||||
                print(lst_pred_firm)
 | 
			
		||||
                lst_pred_firm_size_damp = \
 | 
			
		||||
                    [G_Firm.nodes[pred_firm]['Revenue_Log'] **
 | 
			
		||||
                        self.flt_netw_sply_prf_size
 | 
			
		||||
| 
						 | 
				
			
			@ -100,21 +99,21 @@ class Model(ap.Model):
 | 
			
		|||
                # graph firm prod
 | 
			
		||||
                set_node_prod_code = set(G_Firm.nodes[node]['Product_Code'])
 | 
			
		||||
                set_pred_succ_code = set(G_bom.successors(pred_product_code))
 | 
			
		||||
                set_use_pred_prod_code = \
 | 
			
		||||
                    set_node_prod_code & set_pred_succ_code
 | 
			
		||||
                lst_use_pred_prod_code = list(
 | 
			
		||||
                    set_node_prod_code & set_pred_succ_code)
 | 
			
		||||
                for pred_firm in lst_choose_firm:
 | 
			
		||||
                    pred_node = [n for n, v in G_FirmProd.nodes(data=True)
 | 
			
		||||
                                 if v['Firm_Code'] == pred_firm and
 | 
			
		||||
                                 v['Product_Code'] == pred_product_code][0]
 | 
			
		||||
                    for use_pred_prod_code in set_use_pred_prod_code:
 | 
			
		||||
                    for use_pred_prod_code in lst_use_pred_prod_code:
 | 
			
		||||
                        current_node = \
 | 
			
		||||
                            [n for n, v in G_FirmProd.nodes(data=True)
 | 
			
		||||
                             if v['Firm_Code'] == node and
 | 
			
		||||
                             v['Product_Code'] == use_pred_prod_code][0]
 | 
			
		||||
                        G_FirmProd.add_edge(pred_node, current_node)
 | 
			
		||||
 | 
			
		||||
        nx.to_pandas_adjacency(G_Firm).to_csv('adj_g_firm.csv')
 | 
			
		||||
        nx.to_pandas_adjacency(G_FirmProd).to_csv('adj_g_firm_prod.csv')
 | 
			
		||||
        # nx.to_pandas_adjacency(G_Firm).to_csv('adj_g_firm.csv')
 | 
			
		||||
        # nx.to_pandas_adjacency(G_FirmProd).to_csv('adj_g_firm_prod.csv')
 | 
			
		||||
        # unconnected node
 | 
			
		||||
        # for node in nx.nodes(G_Firm):
 | 
			
		||||
        #     if node.
 | 
			
		||||
| 
						 | 
				
			
			@ -284,17 +283,17 @@ class Model(ap.Model):
 | 
			
		|||
                                    'Product': di_supp_prod.code
 | 
			
		||||
                                })
 | 
			
		||||
                            ])
 | 
			
		||||
                            print(f"proactive add {select_cand.code} to "
 | 
			
		||||
                                  f"{pro_firm.code} "
 | 
			
		||||
                                  f"for {di_supp_node['Firm_Code']} "
 | 
			
		||||
                                  f"{di_supp_node['Product_Code']}")
 | 
			
		||||
                            # print(f"proactive add {select_cand.code} to "
 | 
			
		||||
                            #       f"{pro_firm.code} "
 | 
			
		||||
                            #       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
 | 
			
		||||
 | 
			
		||||
        nx.to_pandas_adjacency(G_Firm).to_csv('adj_g_firm_proactive.csv')
 | 
			
		||||
        # nx.to_pandas_adjacency(G_Firm).to_csv('adj_g_firm_proactive.csv')
 | 
			
		||||
        # draw network
 | 
			
		||||
        # self.draw_network()
 | 
			
		||||
        self.draw_network()
 | 
			
		||||
 | 
			
		||||
    def update(self):
 | 
			
		||||
        self.a_lst_total_firms.clean_before_time_step()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										
											BIN
										
									
								
								network.png
								
								
								
								
							
							
						
						
									
										
											BIN
										
									
								
								network.png
								
								
								
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 961 KiB After Width: | Height: | Size: 2.4 MiB  | 
		Loading…
	
		Reference in New Issue