set to list

This commit is contained in:
HaoYizhi 2023-06-11 11:17:41 +08:00
parent 6d06bff9ec
commit 49d3c6791e
5 changed files with 14 additions and 14 deletions

Binary file not shown.

View File

@ -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)

View File

@ -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()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 961 KiB

After

Width:  |  Height:  |  Size: 2.4 MiB