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