模型逻辑修改完成,没有内容的输出 和对于 数据库的调整 也没有跑代码

This commit is contained in:
Cricial 2024-09-20 09:26:39 +08:00
parent 356582e2f3
commit 8b231696f6
30 changed files with 1671 additions and 35 deletions

View File

@ -24,6 +24,13 @@
</Attribute> </Attribute>
</value> </value>
</entry> </entry>
<entry key="\input_data\firm_industry_relation.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\input_data\oa_with_exp.csv"> <entry key="\input_data\oa_with_exp.csv">
<value> <value>
<Attribute> <Attribute>
@ -52,6 +59,69 @@
</Attribute> </Attribute>
</value> </value>
</entry> </entry>
<entry key="\input_data\测试 BomNodes.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\input_data\测试 Firm_amended 170.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\测试数据 companies_devices.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\测试数据 companies_materials.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\测试数据 companies_products.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\测试数据 consumed_materials.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\测试数据 industry_raw_materials_products.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\测试数据 produced_products.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
<entry key="\测试数据 products_materials_equipment.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
</map> </map>
</option> </option>
</component> </component>

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -64,11 +64,12 @@ class ControllerDB:
# 行索引 (index):这一行在数据帧中的索引值。 # 行索引 (index):这一行在数据帧中的索引值。
# 行数据 (row):这一行的数据,是一个 pandas.Series 对象,包含该行的所有列和值。 # 行数据 (row):这一行的数据,是一个 pandas.Series 对象,包含该行的所有列和值。
for _, row in firm.iterrows(): firm_industry=pd.read_csv("input_data/firm_industry_relation.csv")
code = row['Code'] firm_industry['Firm_Code'] = firm_industry['Firm_Code'].astype('string')
row = row['1':] for _, row in firm_industry.iterrows():
for product_code in row.index[row == 1].to_list(): code = row['Firm_Code']
dct = {code: [product_code]} row = row['Product_Code']
dct = {code: [row]}
list_dct.append(dct) list_dct.append(dct)
# fill g_bom # fill g_bom

124
firm.py
View File

@ -2,21 +2,54 @@ from mesa import Agent
class FirmAgent(Agent): class FirmAgent(Agent):
def __init__(self, unique_id, model, type_region, revenue_log, a_lst_product): def __init__(self, unique_id, model, type_region, revenue_log, n_equip_c, a_lst_product,
production_output, demand_quantity, c_price, R, P, C):
# 调用超类的 __init__ 方法 # 调用超类的 __init__ 方法
super().__init__(unique_id, model) super().__init__(unique_id, model)
# 初始化模型中的网络引用 # 初始化模型中的网络引用
self.firm_network = self.model.firm_network self.firm_network = self.model.firm_network
self.product_network = self.model.product_network self.product_network = self.model.product_network
# 初始化代理自身的属性 # 初始化代理自身的属性
self.type_region = type_region self.type_region = type_region
self.size_stat = [] self.size_stat = []
self.dct_prod_up_prod_stat = {} self.dct_prod_up_prod_stat = {}
self.dct_prod_capacity = {} self.dct_prod_capacity = {}
# 企业涉及的产业
self.indus_i = a_lst_product
# 各资源库存信息,库存资源,库存量
self.R = R
# 包括库存时间的值 方便后面统计
self.R1 = {0: R}
# 设备资产信息,持有设备,设备数量, 增加 设备残值 [[1,2,3],[] ]
self.C = C
# 包括设备时间步的值
self.C1 = {0: C}
# 复制一份
self.C0 = C
# 产品库存信息 库存产品,库存量 ID 数量
self.P = P
# 包括 产品时间
self.P1={0:P}
# 企业i的供应商
self.upper_i = [u for u, v in self.firm_network.in_edges(self.unique_id)]
# 企业i的客户
self.downer_i = [u for u, v in self.firm_network.out_edges(self.unique_id)]
# 设备c的数量 (总量) 使用这个来判断设备数量
self.n_equip_c = n_equip_c
# 设备c产量 更具设备量进行估算
self.c_yield = production_output
# 消耗材料量 根据设备量进行估算
self.c_consumption = demand_quantity
# 设备c购买价格初始值
self.c_price = c_price
# 资源r补货库存阈值
self.s_r = 40
self.S_r = 120
# 设备补货阙值 可选
# self.ss_r = 70
# 每一个周期步减少残值x
self.x = 20
# 试验中的参数 # 试验中的参数
self.dct_n_trial_up_prod_disrupted = {} self.dct_n_trial_up_prod_disrupted = {}
self.dct_cand_alt_supp_up_prod_disrupted = {} self.dct_cand_alt_supp_up_prod_disrupted = {}
@ -200,6 +233,89 @@ class FirmAgent(Agent):
else: else:
down_firm.dct_cand_alt_supp_up_prod_disrupted[product].remove(self) down_firm.dct_cand_alt_supp_up_prod_disrupted[product].remove(self)
def seek_material_supply(self, material_type):
lst_firm_material_connect = [] # 符合条件 可选择的上游
upper_i_material = [] # 特定 资源的上游 企业集合
for firm in self.upper_i:
for sub_list in firm.R:
if sub_list[0] == material_type:
upper_i_material.append(firm)
# 没有 上游 没有 材料的情况,也就是紊乱的情况
# if len(upper_i_material)==0:
if self.is_prf_conn:
for firm in upper_i_material:
if self.firm_network.has_edge(self.unique_id, firm.unique_id) or self.firm_network.has_edge(
firm.unique_id, self.unique_id):
lst_firm_material_connect.append(firm)
if len(lst_firm_material_connect) == 0:
if self.is_prf_size:
lst_size = [firm.size_stat[-1][0] for firm in upper_i_material]
lst_prob = [size / sum(lst_size) for size in lst_size]
select_alt_supply = \
self.random.choices(upper_i_material, weights=lst_prob)[0]
else:
select_alt_supply = self.random.choice(upper_i_material)
elif len(lst_firm_material_connect) > 0:
if self.is_prf_size:
lst_firm_size = [firm.size_stat[-1][0] for firm in lst_firm_material_connect]
lst_prob = [size / sum(lst_firm_size) for size in lst_firm_size]
select_alt_supply = self.random.choices(lst_firm_material_connect, weights=lst_prob)[0]
else:
select_alt_supply = self.random.choice(lst_firm_material_connect)
return select_alt_supply
def seek_machinery_supply(self, machinery_type):
lst_firm_machinery_connect = [] # 符合条件 可选择的上游
upper_i_machinery = [] # 特定 资源的上游 企业集合
for firm in self.upper_i:
for sub_list in firm.R:
if sub_list[0] == machinery_type:
upper_i_machinery.append(firm)
# 没有 上游 没有 材料的情况,也就是紊乱的情况
# if len(upper_i_machinery)==0:
if self.is_prf_conn:
for firm in upper_i_machinery:
if self.firm_network.has_edge(self.unique_id, firm.unique_id) or self.firm_network.has_edge(
firm.unique_id, self.unique_id):
lst_firm_machinery_connect.append(firm)
if len(lst_firm_machinery_connect) == 0:
if self.is_prf_size:
lst_size = [firm.size_stat[-1][0] for firm in upper_i_machinery]
lst_prob = [size / sum(lst_size) for size in lst_size]
select_alt_supply = \
self.random.choices(upper_i_machinery, weights=lst_prob)[0]
else:
select_alt_supply = self.random.choice(upper_i_machinery)
elif len(lst_firm_machinery_connect) > 0:
if self.is_prf_size:
lst_firm_size = [firm.size_stat[-1][0] for firm in lst_firm_machinery_connect]
lst_prob = [size / sum(lst_firm_size) for size in lst_firm_size]
select_alt_supply = self.random.choices(lst_firm_machinery_connect, weights=lst_prob)[0]
else:
select_alt_supply = self.random.choice(lst_firm_machinery_connect)
return select_alt_supply
def handle_material_request(self, material_list):
for list in self.P:
if list[0] == material_list[0]:
list[1] -= material_list[1]
def handle_machinery_request(self, machinery_list):
for list in self.C:
if list[0] == machinery_list[0]:
list[1] -= machinery_list[1]
def refresh_R(self):
self.R1[self.model.t] = self.R
def refresh_C(self):
self.C1[self.model.t] = self.C
def refresh_P(self):
self.P1[self.model.t] = self.P
def clean_before_trial(self): def clean_before_trial(self):
self.dct_request_prod_from_firm = {} self.dct_request_prod_from_firm = {}

View File

@ -0,0 +1,476 @@
Firm_Code,Product_Code
0,1.4.4
1,2.1.1.5
2,1.1.3
3,1.3.1.4
3,1.3.1.5
3,1.3.1.6
3,1.3.4.1
4,1.2.2
5,1.4.5.3
5,1.4.5.4
5,1.4.5.5
5,1.4.5.9
6,1.3.1.2
6,2.1.2.1
6,2.1.2.2
6,2.1.2.3
6,2.1.2.4
7,2.2
8,1.4.1.1
9,1.3.3.6
9,1.3.3.7
10,1.3.3.5
11,1.4.4.2
12,1.2.1
13,1.2.2
13,2.1.3.1
13,2.1.3.2
13,2.1.3.3
13,2.1.3.4
13,2.1.3.5
13,2.1.3.6
13,2.1.3.7
13,2.1.4.1.1
13,2.1.4.1.2
13,2.1.4.1.3
13,2.1.4.1.4
13,2.1.4.2.1
13,2.1.4.2.2
13,2.3.1
13,2.3.2
13,2.3.3
14,1.3.3.4
14,1.3.4.3
15,1.3.3.5
16,1.1.3
16,2.3.1
16,2.3.2
16,2.3.3
17,1.4.2.4
18,1.3.3.2
19,1.4.2.1
20,1.3.1.2
21,1.3.1.3
22,1.2.1
22,1.2.2
22,1.3.3.6
22,2.1.1.1
22,2.1.1.2
22,2.1.1.3
22,2.1.1.4
22,2.1.1.5
22,2.1.3.1
22,2.1.3.2
22,2.1.3.3
22,2.1.3.4
22,2.1.3.5
22,2.1.3.6
22,2.1.3.7
22,2.1.4.1.1
22,2.1.4.1.2
22,2.1.4.1.3
22,2.1.4.1.4
22,2.1.4.2.1
22,2.1.4.2.2
22,2.3.1
22,2.3.2
22,2.3.3
23,1.1.2
23,1.3.3.1
23,1.3.3.2
23,1.3.3.3
23,1.3.3.4
23,1.4.2.7
23,2.1.3.6
23,2.3.1
23,2.3.2
23,2.3.3
24,1.1.1
25,1.3.1.7
26,2.1.3.1
26,2.1.3.2
26,2.1.3.3
26,2.1.3.4
26,2.1.3.5
26,2.1.3.6
26,2.1.3.7
27,1.4.4.2
28,2.2
29,1.3
30,1.4.2.6
31,1.3.3.3
31,2.1.4.1.1
31,2.1.4.1.2
31,2.1.4.1.3
31,2.1.4.1.4
31,2.1.4.2.1
31,2.1.4.2.2
32,1.2.3
33,2.1.2.1
33,2.1.2.2
33,2.1.2.3
33,2.1.2.4
34,1.3.3.3
35,1.1.3
36,1.1.1
37,1.4.1.2
37,1.4.1.4
37,1.4.2.2
37,1.4.3.1
37,1.4.4.3
37,1.4.5.2
38,2.1.1.1
38,2.1.1.2
38,2.1.1.3
38,2.1.1.4
38,2.1.1.5
39,1.3.1
40,1.4.2.1
40,1.4.2.5
40,1.4.3.3
40,1.4.4
41,1.4.1.2
41,1.4.1.5
41,1.4.3.1
41,1.4.3.2
41,1.4.3.4
41,1.4.3.5
41,1.4.5
42,1.3.1.1
42,1.3.1.3
42,1.3.1.4
43,1.3.1.5
43,1.3.1.6
44,1.1.1
45,1.3.3.1
45,1.3.4.1
45,1.3.4.2
45,2.1.4.1.1
45,2.1.4.1.2
45,2.1.4.1.3
45,2.1.4.1.4
45,2.1.4.2.1
45,2.1.4.2.2
46,1.3.1.2
47,2.1.1.1
47,2.1.1.2
47,2.1.1.3
47,2.1.1.4
47,2.1.2.1
47,2.1.2.2
47,2.1.2.3
47,2.1.2.4
47,2.1.3.6
48,1.2.2
49,1.3.1.1
49,1.3.1.4
49,1.3.1.6
49,1.3.3.1
49,2.1.2.1
49,2.1.2.2
49,2.1.2.3
49,2.1.2.4
50,1.3.1.5
51,1.4.2.1
52,1.4.5.5
53,1.4.1.3
53,1.4.1.4
53,1.4.1.5
53,1.4.2.3
53,1.4.2.4
53,1.4.3.3
53,1.4.3.4
53,1.4.3.5
53,1.4.3.6
53,1.4.4.4
53,1.4.5.2
53,1.4.5.3
53,1.4.5.6
53,1.4.5.7
53,1.4.5.8
54,1.4.1.3
54,1.4.2.4
54,1.4.4.3
55,1.4.1.1
55,1.4.1.2
55,1.4.1.3
55,1.4.2.1
55,1.4.2.2
55,1.4.4.4
56,1.1.1
56,1.3.1.7
57,1.3.3.3
57,2.3.1
57,2.3.2
57,2.3.3
58,1.2.2
58,1.3.1.6
58,1.3.2
58,1.3.4.1
58,1.3.4.2
58,1.3.4.3
58,2.1.2
59,1.4.2.5
60,2.1.1.1
60,2.1.1.2
60,2.1.1.3
60,2.1.1.4
60,2.1.1.5
61,1.3.3.3
62,1.3.1.2
62,2.1.2.1
62,2.1.2.2
62,2.1.2.3
62,2.1.2.4
63,1.4.1.1
63,1.4.2.4
63,1.4.4.5
64,1.1.2
65,1.2.1
66,1.2.1
67,1.2
68,1.3.1.1
68,1.3.1.2
68,1.3.1.3
69,1.1.1
70,1.3.3.2
70,1.3.3.4
71,1.3.1.2
72,1.3.1.2
73,2.1.3
74,1.3.3.2
74,2.1.3
75,1.3.3
76,1.3.1.3
77,1.3.3.6
77,1.3.4
78,2.1.1.1
78,2.1.1.2
78,2.1.1.3
78,2.1.1.4
78,2.1.1.5
79,1.3.1.1
79,1.3.1.4
79,1.3.1.6
79,2.1.2
79,2.1.3.1
79,2.1.3.2
79,2.1.3.3
79,2.1.3.4
79,2.1.3.5
79,2.1.3.6
79,2.1.3.7
79,2.1.4.1
79,2.1.4.2
79,2.3.1
79,2.3.2
79,2.3.3
80,1.3.4
80,2.1.1
81,1.3.4
81,2.1.2
81,2.1.4.1
81,2.1.4.2
82,2.1.2.1
82,2.1.2.2
82,2.1.2.3
82,2.1.2.4
83,1.3.3.2
84,2.1.2
84,2.1.4
84,2.3
85,1.3.1
85,2.1.1
86,1.1
87,1.1.1
88,1.1.3
89,1.1.2
89,1.2.1
89,1.3.3.1
90,1.3.1.7
91,1.2.1
92,1.3.3.4
93,1.3.1
94,1.1
95,1.2.3
95,2.3
96,1.2.1
96,1.2.3
97,1.2
97,1.3.3
97,2.1.3
98,2
99,1.1.2
99,1.2.1
99,1.3.1
99,1.3.3
99,2.1
99,2.3
100,1.3.1
101,1.1.1
102,2
102,2.1.4
103,1.1.1
104,1.1.1
105,1.1
106,1.1
106,1.2
106,1.3
106,2.1.1
106,2.1.3
106,2.2
107,1.4.3.3
108,2.1.3
108,2.2
109,1.3.3.1
110,1.3.3.5
111,1.3.1.6
111,1.3.3.1
111,1.3.4.1
112,1.3.3.7
113,1.1.1
114,1.3.5.1
115,1.1.3
115,2.1.4
116,1.3.1.7
117,2.1.1.1
117,2.1.1.2
117,2.1.1.3
117,2.1.1.4
117,2.1.1.5
117,2.1.4.1.1
117,2.1.4.1.2
117,2.1.4.1.3
117,2.1.4.1.4
117,2.1.4.2.1
117,2.1.4.2.2
118,1.3.3.6
119,1.3.1.1
120,1.2.3
121,1.4.2.4
122,1.4.2.6
123,1.1.2
124,1.2.1
124,2.3
125,1.2.3
126,1.1
126,1.2
126,1.4
126,2.1.1.5
126,2.1.3
126,2.2
126,2.3
127,1.1.1
127,1.1.3
128,1.1.2
129,1.1.2
129,1.2.3
130,1.3.2
130,1.3.4.1
130,1.3.4.2
130,1.3.4.3
130,1.3.5
131,2.1.1.1
131,2.1.1.2
131,2.1.1.3
131,2.1.1.4
131,2.1.1.5
132,1.3.3.2
133,1.4.1.3
133,1.4.4.1
134,1.3.3.5
135,1.1.3
135,1.3.2.1
135,1.3.4.1
135,2.1.3.1
135,2.1.3.2
135,2.1.3.3
135,2.1.3.4
135,2.1.3.5
135,2.1.3.6
135,2.1.3.7
135,2.2
136,1.2.1
137,2.1.4.1.1
137,2.1.4.1.2
137,2.1.4.1.3
137,2.1.4.1.4
137,2.1.4.2.1
137,2.1.4.2.2
138,1.3.1.5
139,1.3.3.7
140,1.4.1.1
140,1.4.1.4
140,1.4.1.5
140,1.4.5.1
140,1.4.5.3
140,1.4.5.4
140,1.4.5.9
141,1.3.3.2
142,1.4.1.1
142,1.4.2
142,1.4.3
143,2.1.1.1
143,2.1.1.2
143,2.1.1.3
143,2.1.1.4
143,2.1.1.5
144,2.1.2.1
144,2.1.2.2
144,2.1.2.3
144,2.1.2.4
145,1.3.1.4
146,1.3.1.1
147,1.1.2
148,2.1.1
148,2.1.3
148,2.2
149,2.1.2.1
149,2.1.2.2
149,2.1.2.3
149,2.1.2.4
150,1.1.1
151,1.3.5.1
152,1.4.4.1
153,1.3.1.1
153,1.3.1.4
154,2.1.4.1.1
154,2.1.4.1.2
154,2.1.4.1.3
154,2.1.4.1.4
154,2.1.4.2.1
154,2.1.4.2.2
155,2.3
156,1.3.1.7
157,1.4.1
158,1.4.4.1
159,2.1.2
160,1.4.1.3
161,2.3.1
161,2.3.2
161,2.3.3
162,1.4.5.6
162,1.4.5.7
163,2.1.4.1.1
163,2.1.4.1.2
163,2.1.4.1.3
163,2.1.4.1.4
163,2.1.4.2.1
163,2.1.4.2.2
164,1.3.3.6
165,2.1.2.1
165,2.1.2.2
165,2.1.2.3
165,2.1.2.4
166,1.2.3
167,1.1.1
168,1.1.2
168,1.3.3.1
168,1.3.3.2
168,1.3.3.4
168,2.3.1
168,2.3.2
168,2.3.3
169,1.1.1
170,1
1 Firm_Code Product_Code
2 0 1.4.4
3 1 2.1.1.5
4 2 1.1.3
5 3 1.3.1.4
6 3 1.3.1.5
7 3 1.3.1.6
8 3 1.3.4.1
9 4 1.2.2
10 5 1.4.5.3
11 5 1.4.5.4
12 5 1.4.5.5
13 5 1.4.5.9
14 6 1.3.1.2
15 6 2.1.2.1
16 6 2.1.2.2
17 6 2.1.2.3
18 6 2.1.2.4
19 7 2.2
20 8 1.4.1.1
21 9 1.3.3.6
22 9 1.3.3.7
23 10 1.3.3.5
24 11 1.4.4.2
25 12 1.2.1
26 13 1.2.2
27 13 2.1.3.1
28 13 2.1.3.2
29 13 2.1.3.3
30 13 2.1.3.4
31 13 2.1.3.5
32 13 2.1.3.6
33 13 2.1.3.7
34 13 2.1.4.1.1
35 13 2.1.4.1.2
36 13 2.1.4.1.3
37 13 2.1.4.1.4
38 13 2.1.4.2.1
39 13 2.1.4.2.2
40 13 2.3.1
41 13 2.3.2
42 13 2.3.3
43 14 1.3.3.4
44 14 1.3.4.3
45 15 1.3.3.5
46 16 1.1.3
47 16 2.3.1
48 16 2.3.2
49 16 2.3.3
50 17 1.4.2.4
51 18 1.3.3.2
52 19 1.4.2.1
53 20 1.3.1.2
54 21 1.3.1.3
55 22 1.2.1
56 22 1.2.2
57 22 1.3.3.6
58 22 2.1.1.1
59 22 2.1.1.2
60 22 2.1.1.3
61 22 2.1.1.4
62 22 2.1.1.5
63 22 2.1.3.1
64 22 2.1.3.2
65 22 2.1.3.3
66 22 2.1.3.4
67 22 2.1.3.5
68 22 2.1.3.6
69 22 2.1.3.7
70 22 2.1.4.1.1
71 22 2.1.4.1.2
72 22 2.1.4.1.3
73 22 2.1.4.1.4
74 22 2.1.4.2.1
75 22 2.1.4.2.2
76 22 2.3.1
77 22 2.3.2
78 22 2.3.3
79 23 1.1.2
80 23 1.3.3.1
81 23 1.3.3.2
82 23 1.3.3.3
83 23 1.3.3.4
84 23 1.4.2.7
85 23 2.1.3.6
86 23 2.3.1
87 23 2.3.2
88 23 2.3.3
89 24 1.1.1
90 25 1.3.1.7
91 26 2.1.3.1
92 26 2.1.3.2
93 26 2.1.3.3
94 26 2.1.3.4
95 26 2.1.3.5
96 26 2.1.3.6
97 26 2.1.3.7
98 27 1.4.4.2
99 28 2.2
100 29 1.3
101 30 1.4.2.6
102 31 1.3.3.3
103 31 2.1.4.1.1
104 31 2.1.4.1.2
105 31 2.1.4.1.3
106 31 2.1.4.1.4
107 31 2.1.4.2.1
108 31 2.1.4.2.2
109 32 1.2.3
110 33 2.1.2.1
111 33 2.1.2.2
112 33 2.1.2.3
113 33 2.1.2.4
114 34 1.3.3.3
115 35 1.1.3
116 36 1.1.1
117 37 1.4.1.2
118 37 1.4.1.4
119 37 1.4.2.2
120 37 1.4.3.1
121 37 1.4.4.3
122 37 1.4.5.2
123 38 2.1.1.1
124 38 2.1.1.2
125 38 2.1.1.3
126 38 2.1.1.4
127 38 2.1.1.5
128 39 1.3.1
129 40 1.4.2.1
130 40 1.4.2.5
131 40 1.4.3.3
132 40 1.4.4
133 41 1.4.1.2
134 41 1.4.1.5
135 41 1.4.3.1
136 41 1.4.3.2
137 41 1.4.3.4
138 41 1.4.3.5
139 41 1.4.5
140 42 1.3.1.1
141 42 1.3.1.3
142 42 1.3.1.4
143 43 1.3.1.5
144 43 1.3.1.6
145 44 1.1.1
146 45 1.3.3.1
147 45 1.3.4.1
148 45 1.3.4.2
149 45 2.1.4.1.1
150 45 2.1.4.1.2
151 45 2.1.4.1.3
152 45 2.1.4.1.4
153 45 2.1.4.2.1
154 45 2.1.4.2.2
155 46 1.3.1.2
156 47 2.1.1.1
157 47 2.1.1.2
158 47 2.1.1.3
159 47 2.1.1.4
160 47 2.1.2.1
161 47 2.1.2.2
162 47 2.1.2.3
163 47 2.1.2.4
164 47 2.1.3.6
165 48 1.2.2
166 49 1.3.1.1
167 49 1.3.1.4
168 49 1.3.1.6
169 49 1.3.3.1
170 49 2.1.2.1
171 49 2.1.2.2
172 49 2.1.2.3
173 49 2.1.2.4
174 50 1.3.1.5
175 51 1.4.2.1
176 52 1.4.5.5
177 53 1.4.1.3
178 53 1.4.1.4
179 53 1.4.1.5
180 53 1.4.2.3
181 53 1.4.2.4
182 53 1.4.3.3
183 53 1.4.3.4
184 53 1.4.3.5
185 53 1.4.3.6
186 53 1.4.4.4
187 53 1.4.5.2
188 53 1.4.5.3
189 53 1.4.5.6
190 53 1.4.5.7
191 53 1.4.5.8
192 54 1.4.1.3
193 54 1.4.2.4
194 54 1.4.4.3
195 55 1.4.1.1
196 55 1.4.1.2
197 55 1.4.1.3
198 55 1.4.2.1
199 55 1.4.2.2
200 55 1.4.4.4
201 56 1.1.1
202 56 1.3.1.7
203 57 1.3.3.3
204 57 2.3.1
205 57 2.3.2
206 57 2.3.3
207 58 1.2.2
208 58 1.3.1.6
209 58 1.3.2
210 58 1.3.4.1
211 58 1.3.4.2
212 58 1.3.4.3
213 58 2.1.2
214 59 1.4.2.5
215 60 2.1.1.1
216 60 2.1.1.2
217 60 2.1.1.3
218 60 2.1.1.4
219 60 2.1.1.5
220 61 1.3.3.3
221 62 1.3.1.2
222 62 2.1.2.1
223 62 2.1.2.2
224 62 2.1.2.3
225 62 2.1.2.4
226 63 1.4.1.1
227 63 1.4.2.4
228 63 1.4.4.5
229 64 1.1.2
230 65 1.2.1
231 66 1.2.1
232 67 1.2
233 68 1.3.1.1
234 68 1.3.1.2
235 68 1.3.1.3
236 69 1.1.1
237 70 1.3.3.2
238 70 1.3.3.4
239 71 1.3.1.2
240 72 1.3.1.2
241 73 2.1.3
242 74 1.3.3.2
243 74 2.1.3
244 75 1.3.3
245 76 1.3.1.3
246 77 1.3.3.6
247 77 1.3.4
248 78 2.1.1.1
249 78 2.1.1.2
250 78 2.1.1.3
251 78 2.1.1.4
252 78 2.1.1.5
253 79 1.3.1.1
254 79 1.3.1.4
255 79 1.3.1.6
256 79 2.1.2
257 79 2.1.3.1
258 79 2.1.3.2
259 79 2.1.3.3
260 79 2.1.3.4
261 79 2.1.3.5
262 79 2.1.3.6
263 79 2.1.3.7
264 79 2.1.4.1
265 79 2.1.4.2
266 79 2.3.1
267 79 2.3.2
268 79 2.3.3
269 80 1.3.4
270 80 2.1.1
271 81 1.3.4
272 81 2.1.2
273 81 2.1.4.1
274 81 2.1.4.2
275 82 2.1.2.1
276 82 2.1.2.2
277 82 2.1.2.3
278 82 2.1.2.4
279 83 1.3.3.2
280 84 2.1.2
281 84 2.1.4
282 84 2.3
283 85 1.3.1
284 85 2.1.1
285 86 1.1
286 87 1.1.1
287 88 1.1.3
288 89 1.1.2
289 89 1.2.1
290 89 1.3.3.1
291 90 1.3.1.7
292 91 1.2.1
293 92 1.3.3.4
294 93 1.3.1
295 94 1.1
296 95 1.2.3
297 95 2.3
298 96 1.2.1
299 96 1.2.3
300 97 1.2
301 97 1.3.3
302 97 2.1.3
303 98 2
304 99 1.1.2
305 99 1.2.1
306 99 1.3.1
307 99 1.3.3
308 99 2.1
309 99 2.3
310 100 1.3.1
311 101 1.1.1
312 102 2
313 102 2.1.4
314 103 1.1.1
315 104 1.1.1
316 105 1.1
317 106 1.1
318 106 1.2
319 106 1.3
320 106 2.1.1
321 106 2.1.3
322 106 2.2
323 107 1.4.3.3
324 108 2.1.3
325 108 2.2
326 109 1.3.3.1
327 110 1.3.3.5
328 111 1.3.1.6
329 111 1.3.3.1
330 111 1.3.4.1
331 112 1.3.3.7
332 113 1.1.1
333 114 1.3.5.1
334 115 1.1.3
335 115 2.1.4
336 116 1.3.1.7
337 117 2.1.1.1
338 117 2.1.1.2
339 117 2.1.1.3
340 117 2.1.1.4
341 117 2.1.1.5
342 117 2.1.4.1.1
343 117 2.1.4.1.2
344 117 2.1.4.1.3
345 117 2.1.4.1.4
346 117 2.1.4.2.1
347 117 2.1.4.2.2
348 118 1.3.3.6
349 119 1.3.1.1
350 120 1.2.3
351 121 1.4.2.4
352 122 1.4.2.6
353 123 1.1.2
354 124 1.2.1
355 124 2.3
356 125 1.2.3
357 126 1.1
358 126 1.2
359 126 1.4
360 126 2.1.1.5
361 126 2.1.3
362 126 2.2
363 126 2.3
364 127 1.1.1
365 127 1.1.3
366 128 1.1.2
367 129 1.1.2
368 129 1.2.3
369 130 1.3.2
370 130 1.3.4.1
371 130 1.3.4.2
372 130 1.3.4.3
373 130 1.3.5
374 131 2.1.1.1
375 131 2.1.1.2
376 131 2.1.1.3
377 131 2.1.1.4
378 131 2.1.1.5
379 132 1.3.3.2
380 133 1.4.1.3
381 133 1.4.4.1
382 134 1.3.3.5
383 135 1.1.3
384 135 1.3.2.1
385 135 1.3.4.1
386 135 2.1.3.1
387 135 2.1.3.2
388 135 2.1.3.3
389 135 2.1.3.4
390 135 2.1.3.5
391 135 2.1.3.6
392 135 2.1.3.7
393 135 2.2
394 136 1.2.1
395 137 2.1.4.1.1
396 137 2.1.4.1.2
397 137 2.1.4.1.3
398 137 2.1.4.1.4
399 137 2.1.4.2.1
400 137 2.1.4.2.2
401 138 1.3.1.5
402 139 1.3.3.7
403 140 1.4.1.1
404 140 1.4.1.4
405 140 1.4.1.5
406 140 1.4.5.1
407 140 1.4.5.3
408 140 1.4.5.4
409 140 1.4.5.9
410 141 1.3.3.2
411 142 1.4.1.1
412 142 1.4.2
413 142 1.4.3
414 143 2.1.1.1
415 143 2.1.1.2
416 143 2.1.1.3
417 143 2.1.1.4
418 143 2.1.1.5
419 144 2.1.2.1
420 144 2.1.2.2
421 144 2.1.2.3
422 144 2.1.2.4
423 145 1.3.1.4
424 146 1.3.1.1
425 147 1.1.2
426 148 2.1.1
427 148 2.1.3
428 148 2.2
429 149 2.1.2.1
430 149 2.1.2.2
431 149 2.1.2.3
432 149 2.1.2.4
433 150 1.1.1
434 151 1.3.5.1
435 152 1.4.4.1
436 153 1.3.1.1
437 153 1.3.1.4
438 154 2.1.4.1.1
439 154 2.1.4.1.2
440 154 2.1.4.1.3
441 154 2.1.4.1.4
442 154 2.1.4.2.1
443 154 2.1.4.2.2
444 155 2.3
445 156 1.3.1.7
446 157 1.4.1
447 158 1.4.4.1
448 159 2.1.2
449 160 1.4.1.3
450 161 2.3.1
451 161 2.3.2
452 161 2.3.3
453 162 1.4.5.6
454 162 1.4.5.7
455 163 2.1.4.1.1
456 163 2.1.4.1.2
457 163 2.1.4.1.3
458 163 2.1.4.1.4
459 163 2.1.4.2.1
460 163 2.1.4.2.2
461 164 1.3.3.6
462 165 2.1.2.1
463 165 2.1.2.2
464 165 2.1.2.3
465 165 2.1.2.4
466 166 1.2.3
467 167 1.1.1
468 168 1.1.2
469 168 1.3.3.1
470 168 1.3.3.2
471 168 1.3.3.4
472 168 2.3.1
473 168 2.3.2
474 168 2.3.3
475 169 1.1.1
476 170 1

View File

@ -2,4 +2,4 @@
7,TRUE,TRUE,uniform,5,0.3,3,3 7,TRUE,TRUE,uniform,5,0.3,3,3
5,FALSE,FALSE,normal,10,0.5,5,2 5,FALSE,FALSE,normal,10,0.5,5,2
3,,,,15,0.7,7,1 3,,,,15,0.7,7,1
,, ,,,,,
1 n_max_trial,prf_size,prf_conn,cap_limit_prob_type,cap_limit_level,diff_new_conn,remove_t,netw_prf_n
2 7,TRUE,TRUE,uniform,5,0.3,3,3
3 5,FALSE,FALSE,normal,10,0.5,5,2
4 3,,,,15,0.7,7,1
5 ,, ,,,,,

View File

@ -0,0 +1,108 @@
Index,Code,Level,Name,产业种类
0,1,0,工业互联网,0
1,1.1,1,工业自动化硬件,1
2,1.1.1,2,工业计算芯片,0
3,1.1.2,2,工业控制器,0
4,1.1.3,2,工业服务器,0
5,1.2,1,工业互联网网络,1
6,1.2.1,2,网络互联服务,0
7,1.2.2,2,标识解析服务,0
8,1.2.3,2,数据互通服务,0
9,1.3,1,工业软件,1
10,1.3.1,2,设计研发软件,0
11,1.3.1.1,3,计算机辅助设计CAD,0
12,1.3.1.2,3,计算机辅助工程CAE,0
13,1.3.1.3,3,计算机辅助制造CAM,0
14,1.3.1.4,3,计算机辅助工艺过程设计CAPP,0
15,1.3.1.5,3,产品数据管理PDM,1
16,1.3.1.6,3,产品生命周期管理PLM,1
17,1.3.1.7,3,电子设计自动化EDA,1
18,1.3.2,2,采购供应软件,1
19,1.3.2.1,3,供应链管理SCM,1
20,1.3.3,2,生产制造软件,1
21,1.3.3.1,3,制造执行系统MES,1
22,1.3.3.2,3,分布式控制系统DCS,0
23,1.3.3.3,3,数据采集与监视控制系统SCADA,1
24,1.3.3.4,3,可编程逻揖控制系统PLC,1
25,1.3.3.5,3,企业资产管理系统EAM,1
26,1.3.3.6,3,运维保障系统MRO,1
27,1.3.3.7,3,故障预测与健康管理PHM,1
28,1.3.4,2,企业运营管理软件,1
29,1.3.4.1,3,企业资源计划ERP,1
30,1.3.4.2,3,客户关系管理CRM,1
31,1.3.4.3,3,人力资源管理HRM,1
32,1.3.5,2,仓储物流软件,0
33,1.3.5.1,3,仓储物流管理WMS,1
34,1.4,1,工业互联网安全管理,1
35,1.4.1,2,设备安全,1
36,1.4.1.1,3,工业防火墙,1
37,1.4.1.2,3,下一代防火墙,0
38,1.4.1.3,3,防毒墙,1
39,1.4.1.4,3,入侵检测系统,1
40,1.4.1.5,3,统一威胁管理系统,1
41,1.4.2,2,控制安全,1
42,1.4.2.1,3,工控安全监测与审计,1
43,1.4.2.2,3,工控主机卫士,1
44,1.4.2.3,3,工控漏洞扫描,0
45,1.4.2.4,3,安全隔离与信息交换系统,1
46,1.4.2.5,3,安全日志与审计,1
47,1.4.2.6,3,隐私计算,1
48,1.4.2.7,3,工控原生安全,1
49,1.4.3,2,网络安全,1
50,1.4.3.1,3,网络漏洞扫描和补丁管理,0
51,1.4.3.2,3,流量检测,1
52,1.4.3.3,3,APT检测,0
53,1.4.3.4,3,攻击溯源,0
54,1.4.3.5,3,负载均衡,1
55,1.4.3.6,3,沙箱类设备,0
56,1.4.4,2,平台安全,1
57,1.4.4.1,3,身份鉴别与访问控制,0
58,1.4.4.2,3,密钥管理,0
59,1.4.4.3,3,接入认证,0
60,1.4.4.4,3,工业应用行为监控,1
61,1.4.4.5,3,安全态势感知,0
62,1.4.5,2,数据安全,0
63,1.4.5.1,3,恶意代码检测系统,1
64,1.4.5.2,3,数据防泄漏系统,1
65,1.4.5.3,3,数据审计系统,0
66,1.4.5.4,3,数据脱敏,1
67,1.4.5.5,3,敏感数据发现与监控,0
68,1.4.5.6,3,数据容灾备份,0
69,1.4.5.7,3,数据恢复,1
70,1.4.5.8,3,数据加密,1
71,1.4.5.9,3,数据防火墙,0
72,2,0,工业互联网平台,1
73,2.1,1,PaaS,0
74,2.1.1,2,开发工具,1
75,2.1.1.1,3,算法建模工具,1
76,2.1.1.2,3,低代码开发工具,0
77,2.1.1.3,3,流程开发工具,1
78,2.1.1.4,3,组态建模工具,1
79,2.1.1.5,3,数字孪生建模工具,1
80,2.1.2,2,工业模型库,1
81,2.1.2.1,3,数据算法模型,0
82,2.1.2.2,3,业务流程模型,0
83,2.1.2.3,3,研发仿真模型,0
84,2.1.2.4,3,行业机理模型,1
85,2.1.3,2,工业物联网,1
86,2.1.3.1,3,物联网服务,0
87,2.1.3.2,3,平台基础服务,1
88,2.1.3.3,3,工业引擎服务,1
89,2.1.3.4,3,应用管理服务,1
90,2.1.3.5,3,容器服务,1
91,2.1.3.6,3,微服务,1
92,2.1.3.7,3,制造类API,0
93,2.1.4,2,工业大数据,1
94,2.1.4.1,3,工业大数据存储,1
95,2.1.4.1.1,4,关系型数据库,0
96,2.1.4.1.2,4,分布式数据库,1
97,2.1.4.1.3,4,实时数据库,0
98,2.1.4.1.4,4,时序数据库,0
99,2.1.4.2,3,工业大数据管理,0
100,2.1.4.2.1,4,数据质量管理,1
101,2.1.4.2.2,4,数据安全管理,1
102,2.2,1,IaaS,0
103,2.3,1,边缘层,0
104,2.3.1,2,工业数据接入,0
105,2.3.2,2,边缘数据处理,0
106,2.3.3,2,协议转换,1
1 Index Code Level Name 产业种类
2 0 1 0 工业互联网 0
3 1 1.1 1 工业自动化硬件 1
4 2 1.1.1 2 工业计算芯片 0
5 3 1.1.2 2 工业控制器 0
6 4 1.1.3 2 工业服务器 0
7 5 1.2 1 工业互联网网络 1
8 6 1.2.1 2 网络互联服务 0
9 7 1.2.2 2 标识解析服务 0
10 8 1.2.3 2 数据互通服务 0
11 9 1.3 1 工业软件 1
12 10 1.3.1 2 设计研发软件 0
13 11 1.3.1.1 3 计算机辅助设计CAD 0
14 12 1.3.1.2 3 计算机辅助工程CAE 0
15 13 1.3.1.3 3 计算机辅助制造CAM 0
16 14 1.3.1.4 3 计算机辅助工艺过程设计CAPP 0
17 15 1.3.1.5 3 产品数据管理PDM 1
18 16 1.3.1.6 3 产品生命周期管理PLM 1
19 17 1.3.1.7 3 电子设计自动化EDA 1
20 18 1.3.2 2 采购供应软件 1
21 19 1.3.2.1 3 供应链管理SCM 1
22 20 1.3.3 2 生产制造软件 1
23 21 1.3.3.1 3 制造执行系统MES 1
24 22 1.3.3.2 3 分布式控制系统DCS 0
25 23 1.3.3.3 3 数据采集与监视控制系统SCADA 1
26 24 1.3.3.4 3 可编程逻揖控制系统PLC 1
27 25 1.3.3.5 3 企业资产管理系统EAM 1
28 26 1.3.3.6 3 运维保障系统MRO 1
29 27 1.3.3.7 3 故障预测与健康管理PHM 1
30 28 1.3.4 2 企业运营管理软件 1
31 29 1.3.4.1 3 企业资源计划ERP 1
32 30 1.3.4.2 3 客户关系管理CRM 1
33 31 1.3.4.3 3 人力资源管理HRM 1
34 32 1.3.5 2 仓储物流软件 0
35 33 1.3.5.1 3 仓储物流管理WMS 1
36 34 1.4 1 工业互联网安全管理 1
37 35 1.4.1 2 设备安全 1
38 36 1.4.1.1 3 工业防火墙 1
39 37 1.4.1.2 3 下一代防火墙 0
40 38 1.4.1.3 3 防毒墙 1
41 39 1.4.1.4 3 入侵检测系统 1
42 40 1.4.1.5 3 统一威胁管理系统 1
43 41 1.4.2 2 控制安全 1
44 42 1.4.2.1 3 工控安全监测与审计 1
45 43 1.4.2.2 3 工控主机卫士 1
46 44 1.4.2.3 3 工控漏洞扫描 0
47 45 1.4.2.4 3 安全隔离与信息交换系统 1
48 46 1.4.2.5 3 安全日志与审计 1
49 47 1.4.2.6 3 隐私计算 1
50 48 1.4.2.7 3 工控原生安全 1
51 49 1.4.3 2 网络安全 1
52 50 1.4.3.1 3 网络漏洞扫描和补丁管理 0
53 51 1.4.3.2 3 流量检测 1
54 52 1.4.3.3 3 APT检测 0
55 53 1.4.3.4 3 攻击溯源 0
56 54 1.4.3.5 3 负载均衡 1
57 55 1.4.3.6 3 沙箱类设备 0
58 56 1.4.4 2 平台安全 1
59 57 1.4.4.1 3 身份鉴别与访问控制 0
60 58 1.4.4.2 3 密钥管理 0
61 59 1.4.4.3 3 接入认证 0
62 60 1.4.4.4 3 工业应用行为监控 1
63 61 1.4.4.5 3 安全态势感知 0
64 62 1.4.5 2 数据安全 0
65 63 1.4.5.1 3 恶意代码检测系统 1
66 64 1.4.5.2 3 数据防泄漏系统 1
67 65 1.4.5.3 3 数据审计系统 0
68 66 1.4.5.4 3 数据脱敏 1
69 67 1.4.5.5 3 敏感数据发现与监控 0
70 68 1.4.5.6 3 数据容灾备份 0
71 69 1.4.5.7 3 数据恢复 1
72 70 1.4.5.8 3 数据加密 1
73 71 1.4.5.9 3 数据防火墙 0
74 72 2 0 工业互联网平台 1
75 73 2.1 1 PaaS 0
76 74 2.1.1 2 开发工具 1
77 75 2.1.1.1 3 算法建模工具 1
78 76 2.1.1.2 3 低代码开发工具 0
79 77 2.1.1.3 3 流程开发工具 1
80 78 2.1.1.4 3 组态建模工具 1
81 79 2.1.1.5 3 数字孪生建模工具 1
82 80 2.1.2 2 工业模型库 1
83 81 2.1.2.1 3 数据算法模型 0
84 82 2.1.2.2 3 业务流程模型 0
85 83 2.1.2.3 3 研发仿真模型 0
86 84 2.1.2.4 3 行业机理模型 1
87 85 2.1.3 2 工业物联网 1
88 86 2.1.3.1 3 物联网服务 0
89 87 2.1.3.2 3 平台基础服务 1
90 88 2.1.3.3 3 工业引擎服务 1
91 89 2.1.3.4 3 应用管理服务 1
92 90 2.1.3.5 3 容器服务 1
93 91 2.1.3.6 3 微服务 1
94 92 2.1.3.7 3 制造类API 0
95 93 2.1.4 2 工业大数据 1
96 94 2.1.4.1 3 工业大数据存储 1
97 95 2.1.4.1.1 4 关系型数据库 0
98 96 2.1.4.1.2 4 分布式数据库 1
99 97 2.1.4.1.3 4 实时数据库 0
100 98 2.1.4.1.4 4 时序数据库 0
101 99 2.1.4.2 3 工业大数据管理 0
102 100 2.1.4.2.1 4 数据质量管理 1
103 101 2.1.4.2.2 4 数据安全管理 1
104 102 2.2 1 IaaS 0
105 103 2.3 1 边缘层 0
106 104 2.3.1 2 工业数据接入 0
107 105 2.3.2 2 边缘数据处理 0
108 106 2.3.3 2 协议转换 1

View File

@ -0,0 +1,171 @@
Code,Company Name,原材料,库存商品,设备数量,Revenue,Total Employees (People),Type_Region,Self-supply Business (Yes/No),Revenue_Log,production_output,demand_quantity
1,Company_1,284.02,982.67,452.15,29692.44,963,Suburban,Yes,10.298647746934053,204.215,481.402
2,Company_2,591.75,232.7,597.47,37552.56,222,Urban,No,10.533496830634064,553.747,253.175
3,Company_3,514.2,466.73,388.52,23557.62,355,Urban,No,10.067204613987071,227.852,377.42
4,Company_4,893.84,633.71,580.73,89135.78,496,Urban,No,11.397916104118977,221.073,483.384
5,Company_5,306.54,844.63,474.67,60818.82,117,Suburban,Yes,11.015654559530484,391.467,209.654
6,Company_6,830.89,831.11,177.37,73695.09,279,Rural,No,11.207691454519859,372.737,473.089
7,Company_7,483.95,603.67,603.02,73826.05,832,Rural,Yes,11.209466929335226,186.302,485.395
8,Company_8,483.1,525.24,116.64,83568.26,242,Rural,Yes,11.333419061909991,437.664,500.31
9,Company_9,958.73,267.31,682.18,36015.98,351,Suburban,No,10.491718007837608,433.217,460.873
10,Company_10,946.82,215.02,393.99,26255.05,324,Suburban,No,10.175613630469309,472.399,381.682
11,Company_11,454.76,689.55,232.49,84782.37,81,Suburban,Yes,11.3478428992222,243.249,260.476
12,Company_12,323.83,177.09,624.04,26639.31,170,Suburban,No,10.19014322341799,321.404,148.382
13,Company_13,425.17,396.05,274.2,31290.59,265,Rural,No,10.351072692349652,287.42,490.517
14,Company_14,109.55,739.42,406.11,87814.36,788,Suburban,No,11.38298031978054,148.611,401.955
15,Company_15,202.82,923.13,100.91,43238.15,487,Suburban,No,10.674478486379028,210.091,336.282
16,Company_16,160.02,615.97,486.87,32433.19,658,Urban,No,10.386937560174536,327.687,459.002
17,Company_17,292.47,762.76,981.28,22436.39,755,Rural,Yes,10.018439473254828,433.128,232.247
18,Company_18,331.51,800.32,145.21,65352.83,631,Rural,Yes,11.087556023393986,388.521,358.151
19,Company_19,508.01,104.76,862.05,67955.82,579,Rural,No,11.126613067125563,576.205,465.801
20,Company_20,484.81,906.52,943.38,70611.44,692,Urban,No,11.164947450014383,325.33799999999997,513.481
21,Company_21,769.67,739.38,736.02,76562.51,383,Suburban,Yes,11.245862810333419,455.602,197.96699999999998
22,Company_22,533.36,234.46,657.71,38283.05,722,Urban,No,10.552762518463977,416.771,354.336
23,Company_23,641.84,872.33,487.84,42673.07,791,Suburban,Yes,10.661323321098049,183.784,208.184
24,Company_24,700.51,197.06,621.79,66410.79,503,Urban,No,11.10361482226283,257.179,341.051
25,Company_25,628.84,292.82,571.1,72622.08,997,Urban,No,11.19302428680546,240.11,317.884
26,Company_26,653.23,970.24,221.15,81298.66,667,Suburban,No,11.305884813235249,382.115,371.323
27,Company_27,747.52,130.58,938.29,73435.38,990,Urban,No,11.204161114818818,214.829,339.752
28,Company_28,878.41,322.67,211.96,77726.12,556,Rural,No,11.260946644601198,438.196,371.841
29,Company_29,758.14,433.16,956.4,33200.84,568,Suburban,No,10.410330455789328,458.64,510.81399999999996
30,Company_30,916.25,613.21,455.27,43485.34,347,Rural,No,10.680179148781386,252.527,267.625
31,Company_31,900.34,969.81,394.83,50244.63,433,Rural,No,10.824658954539137,373.483,322.034
32,Company_32,996.22,755.3,640.05,33162.77,550,Urban,No,10.409183140139199,514.005,450.622
33,Company_33,515.17,844.15,161.39,57032.93,853,Rural,Yes,10.951384099299384,272.139,470.517
34,Company_34,540.93,578.49,650.09,74078.09,806,Suburban,Yes,11.21287508605031,236.00900000000001,334.093
35,Company_35,366.24,940.41,849.01,19617.56,483,Rural,Yes,9.884180362490643,519.901,169.624
36,Company_36,405.22,450.03,380.13,11929.17,371,Rural,No,9.386741940165397,290.013,425.522
37,Company_37,760.77,517.35,208.94,86851.29,464,Suburban,No,11.371952624754107,145.894,425.077
38,Company_38,818.17,404.74,315.82,78053.26,201,Suburban,Yes,11.265146693168688,265.582,258.817
39,Company_39,586.03,697.5,155.23,42210.17,931,Suburban,No,10.650416466250073,158.523,523.603
40,Company_40,814.27,687.38,477.47,18756.58,673,Urban,Yes,9.839299903169191,295.747,192.427
41,Company_41,872.52,234.9,598.33,33207.98,178,Urban,No,10.410545487468179,269.833,469.252
42,Company_42,318.98,744.42,671.43,45471.87,404,Rural,No,10.72484917199056,178.143,350.898
43,Company_43,453.11,750.88,926.15,99013.81,875,Suburban,No,11.503014614337706,490.615,434.311
44,Company_44,130.39,274.92,629.0,13707.42,384,Urban,Yes,9.525692571040127,474.9,479.039
45,Company_45,578.76,368.08,890.9,26604.81,901,Rural,No,10.188847305490215,324.09000000000003,202.876
46,Company_46,265.4,987.58,137.93,39924.26,335,Suburban,No,10.594739438158781,349.793,331.54
47,Company_47,743.33,304.14,867.21,90417.33,567,Urban,Yes,11.412191231547315,371.721,453.33299999999997
48,Company_48,873.08,651.74,589.46,49837.92,599,Urban,Yes,10.816531419043114,371.946,299.308
49,Company_49,797.72,610.35,866.25,71390.29,680,Urban,Yes,11.17591714468184,317.625,432.772
50,Company_50,173.31,403.93,398.59,19134.31,577,Rural,No,9.859238337632949,383.859,427.331
51,Company_51,713.05,943.63,786.47,33400.45,814,Suburban,No,10.416324651927923,242.647,554.305
52,Company_52,769.5,939.62,827.64,15891.9,622,Urban,No,9.673564824440492,500.764,351.95
53,Company_53,424.01,131.65,979.59,68631.67,998,Rural,Yes,11.13650936898853,240.959,315.401
54,Company_54,923.68,474.15,214.87,18889.97,631,Suburban,Yes,9.84638637235242,403.487,459.368
55,Company_55,671.6,928.96,584.73,93556.96,965,Suburban,No,11.446325727652052,191.473,350.15999999999997
56,Company_56,740.88,450.42,624.08,75711.44,741,Rural,Yes,11.234684550861001,524.408,318.08799999999997
57,Company_57,409.56,660.05,574.35,30617.71,416,Rural,No,10.32933387869449,211.435,536.956
58,Company_58,436.2,294.82,599.98,78445.43,977,Urban,Yes,11.270158502799614,276.998,387.62
59,Company_59,516.54,770.6,290.97,37174.96,441,Suburban,Yes,10.523390695335847,419.097,475.654
60,Company_60,721.93,305.6,412.97,98848.66,842,Urban,Yes,11.501345272614115,316.297,280.193
61,Company_61,712.26,395.66,391.41,92570.96,996,Urban,No,11.435730764537892,151.14100000000002,496.226
62,Company_62,498.75,142.06,747.78,71608.94,917,Rural,Yes,11.178975205489529,536.778,380.875
63,Company_63,623.33,901.33,397.15,23513.3,567,Suburban,Yes,10.065321497485543,362.715,297.333
64,Company_64,263.36,133.88,830.99,20195.09,241,Urban,Yes,9.913194784536234,392.099,319.336
65,Company_65,479.22,672.42,688.79,41600.33,951,Suburban,No,10.635863378910198,528.879,334.922
66,Company_66,586.48,947.72,733.06,13215.54,624,Rural,Yes,9.489148688859606,487.306,478.648
67,Company_67,145.29,158.54,178.11,64118.35,910,Rural,Yes,11.068485873391767,260.811,258.529
68,Company_68,267.7,992.49,846.41,83839.88,127,Urban,No,11.336664068256136,552.641,188.77
69,Company_69,207.33,621.93,942.4,54187.36,793,Suburban,Yes,10.900202949897876,349.24,518.733
70,Company_70,107.17,406.95,154.29,15249.9,383,Suburban,Yes,9.632328224637009,506.429,294.717
71,Company_71,835.06,230.35,568.8,91044.0,294,Rural,No,11.419098185126074,318.88,291.506
72,Company_72,149.12,861.62,775.5,97301.35,155,Urban,No,11.485568142692438,360.55,156.912
73,Company_73,385.5,741.6,846.34,19971.89,201,Rural,Yes,9.902081063894537,205.63400000000001,445.55
74,Company_74,363.13,524.32,314.91,46296.94,763,Rural,Yes,10.742831147177496,255.491,284.313
75,Company_75,647.69,363.06,973.17,77340.29,460,Urban,No,11.25597031483101,381.317,278.769
76,Company_76,439.41,498.97,944.89,30625.18,754,Rural,Yes,10.329577825380776,526.489,258.94100000000003
77,Company_77,466.64,397.98,979.11,86794.57,418,Rural,Yes,11.371299341087946,417.911,347.664
78,Company_78,641.64,202.48,850.07,29307.04,807,Urban,No,10.285583039181757,259.007,379.164
79,Company_79,732.01,600.48,239.65,93479.02,864,Rural,Yes,11.445492305071953,246.965,195.201
80,Company_80,922.97,177.28,277.08,83955.43,883,Urban,Yes,11.33804134177189,500.70799999999997,222.297
81,Company_81,627.27,621.58,542.03,87676.13,277,Urban,No,11.38140496343402,546.203,518.727
82,Company_82,165.15,637.29,220.57,35181.96,313,Urban,Yes,10.468288730213176,371.057,246.515
83,Company_83,819.04,221.6,785.02,16422.34,471,Urban,No,9.706397881988158,424.502,273.904
84,Company_84,495.01,235.24,793.64,18346.41,797,Suburban,No,9.817189194015675,465.36400000000003,229.501
85,Company_85,189.98,626.37,530.14,49793.11,669,Suburban,No,10.815631900027373,492.014,420.998
86,Company_86,786.61,983.8,224.61,27511.88,420,Urban,No,10.222373190369527,296.461,200.661
87,Company_87,775.36,813.93,242.21,94867.05,336,Rural,Yes,11.460231716720575,458.221,433.536
88,Company_88,316.03,569.38,505.27,31548.83,265,Suburban,Yes,10.35929178328807,307.527,299.603
89,Company_89,411.42,968.1,873.75,17001.83,274,Suburban,No,9.741076264303647,220.375,534.142
90,Company_90,360.91,720.1,917.41,33781.07,582,Suburban,Yes,10.427655865407793,473.741,252.091
91,Company_91,358.16,611.27,878.08,94174.16,361,Urban,Yes,11.452901112955821,500.808,146.816
92,Company_92,353.58,598.11,973.92,46314.41,797,Suburban,No,10.743208422753485,540.392,251.358
93,Company_93,796.81,261.4,254.01,36160.77,589,Suburban,No,10.495730108527182,202.401,310.681
94,Company_94,479.78,168.81,256.88,40033.55,561,Rural,No,10.597473131541856,467.688,210.978
95,Company_95,500.33,585.43,362.28,58187.29,708,Urban,No,10.971422224990354,253.228,302.033
96,Company_96,267.69,499.92,214.82,79427.15,318,Suburban,No,11.282595528333824,179.482,373.769
97,Company_97,755.05,985.95,179.24,82469.43,673,Suburban,Yes,11.320182958199297,140.924,446.505
98,Company_98,302.62,320.94,594.75,51363.17,367,Suburban,No,10.84667665764297,510.475,362.262
99,Company_99,714.96,972.27,684.7,26131.27,620,Rural,No,10.170887960471719,552.47,208.496
100,Company_100,945.42,505.3,509.87,57539.11,222,Urban,Yes,10.960220169485046,174.987,338.54200000000003
101,Company_101,160.02,165.31,985.52,97438.02,772,Urban,Yes,11.486971762540222,329.552,243.002
102,Company_102,445.92,108.59,838.78,65823.19,990,Rural,No,11.094727486834918,310.878,233.59199999999998
103,Company_103,591.79,603.5,225.38,17043.42,511,Suburban,Yes,9.74351948447026,211.538,287.179
104,Company_104,252.06,450.61,405.59,57402.73,571,Rural,No,10.95784714215228,316.55899999999997,462.206
105,Company_105,165.62,951.39,306.5,45833.17,398,Rural,Yes,10.73276334377794,173.65,386.562
106,Company_106,255.06,128.16,259.17,13244.48,616,Urban,No,9.491336140837323,395.91700000000003,362.506
107,Company_107,447.35,180.41,643.05,70700.8,449,Rural,No,11.166212167237902,476.305,380.735
108,Company_108,781.83,434.34,550.93,81277.04,720,Suburban,Yes,11.305618844826347,450.093,377.183
109,Company_109,169.85,134.46,977.71,94591.41,473,Suburban,No,11.45732194753443,239.77100000000002,273.985
110,Company_110,125.7,708.42,777.62,11615.85,473,Rural,Yes,9.360125823758061,452.762,334.57
111,Company_111,866.33,981.73,892.43,14848.63,251,Suburban,Yes,9.605662884082752,436.243,392.63300000000004
112,Company_112,725.77,590.82,558.44,15328.79,949,Urban,Yes,9.63748803854849,397.844,518.577
113,Company_113,958.57,191.31,188.92,97104.67,310,Urban,Yes,11.483544747870583,305.892,306.85699999999997
114,Company_114,729.39,511.32,120.71,69592.56,191,Urban,No,11.150412944056944,457.071,390.93899999999996
115,Company_115,365.17,638.89,288.41,18567.32,982,Rural,Yes,9.829158325138039,372.841,401.517
116,Company_116,265.79,429.39,476.28,86839.57,716,Urban,No,11.371817672344777,372.628,356.579
117,Company_117,559.33,264.97,113.88,15724.66,744,Rural,Yes,9.66298545971327,444.388,394.933
118,Company_118,781.96,443.32,862.47,74245.47,273,Rural,No,11.215132044702743,427.247,508.196
119,Company_119,890.02,331.77,697.16,83693.72,772,Rural,Yes,11.334919223794108,531.716,428.002
120,Company_120,358.86,588.14,768.94,84336.55,101,Urban,No,11.342570620606638,188.894,371.886
121,Company_121,589.37,192.81,994.71,30198.07,651,Urban,Yes,10.315533294036035,451.471,426.937
122,Company_122,808.28,297.7,455.05,30809.46,875,Urban,Yes,10.335577064660097,157.505,494.828
123,Company_123,988.78,307.96,869.8,44511.43,310,Suburban,Yes,10.703501289105592,455.98,326.878
124,Company_124,461.81,849.69,521.11,84053.28,549,Suburban,Yes,11.339206162465574,425.111,217.18099999999998
125,Company_125,438.73,683.75,458.4,34747.89,771,Rural,Yes,10.455874129724979,386.84,305.873
126,Company_126,791.33,299.04,650.17,84231.54,634,Urban,Yes,11.341324714414265,208.017,494.13300000000004
127,Company_127,369.59,143.99,204.6,27639.11,536,Rural,Yes,10.22698707765262,338.46,479.959
128,Company_128,524.05,885.87,431.91,22997.06,766,Suburban,Yes,10.04312166065388,507.19100000000003,410.405
129,Company_129,677.07,490.74,311.48,21524.13,781,Rural,No,9.97692991036063,444.148,564.707
130,Company_130,178.2,260.51,858.09,83651.2,562,Rural,No,11.334411051799224,185.809,333.82
131,Company_131,691.31,398.92,644.53,87442.53,582,Rural,No,11.378737056558094,443.453,357.131
132,Company_132,189.46,575.78,346.71,13257.65,284,Rural,Yes,9.492330023297646,296.671,473.946
133,Company_133,488.33,731.67,953.18,26643.92,489,Rural,Yes,10.190316260976394,559.318,406.83299999999997
134,Company_134,369.02,465.67,667.29,78924.61,793,Suburban,No,11.27624837201392,238.72899999999998,205.902
135,Company_135,738.44,879.57,465.81,92477.88,609,Suburban,No,11.434724759768017,365.581,546.844
136,Company_136,758.99,786.45,658.38,52134.69,989,Urban,Yes,10.861585841104548,218.838,231.899
137,Company_137,464.53,270.67,133.65,25976.63,552,Suburban,Yes,10.164952566645338,168.365,274.453
138,Company_138,580.02,793.08,931.46,40643.76,471,Rural,Yes,10.612600597657721,362.146,444.002
139,Company_139,274.51,795.06,500.42,35139.32,233,Rural,Yes,10.46707601038709,281.04200000000003,458.451
140,Company_140,959.71,868.21,107.06,49994.95,428,Rural,Yes,10.81967727930944,361.706,578.971
141,Company_141,354.71,563.01,350.48,42908.83,610,Urban,No,10.666832911242361,272.048,357.471
142,Company_142,396.03,603.89,128.42,39303.37,668,Urban,No,10.579065544817109,332.842,170.603
143,Company_143,892.61,311.16,670.46,43027.27,864,Suburban,Yes,10.669589379711221,549.046,279.26099999999997
144,Company_144,486.76,626.8,943.16,39879.69,50,Rural,No,10.593622450725602,318.31600000000003,189.676
145,Company_145,917.34,288.69,643.88,55254.01,873,Suburban,Yes,10.919696195931778,281.38800000000003,371.73400000000004
146,Company_146,435.58,284.0,802.41,14442.55,517,Suburban,Yes,9.577933989653928,362.241,241.558
147,Company_147,202.67,381.12,247.09,64747.68,871,Rural,Yes,11.07825314880404,335.709,272.267
148,Company_148,394.8,297.97,982.49,64826.8,825,Suburban,No,11.079474377086543,261.249,240.48000000000002
149,Company_149,703.7,551.4,223.33,52703.5,186,Rural,No,10.872437145986403,325.333,248.37
150,Company_150,271.26,639.62,669.86,54145.21,286,Urban,No,10.899424790529425,392.986,361.126
151,Company_151,741.21,534.21,734.27,99208.27,649,Urban,Yes,11.504976656733618,459.427,365.121
152,Company_152,946.16,900.51,456.7,12725.19,836,Rural,Yes,9.451338772544975,533.67,282.616
153,Company_153,230.74,396.22,221.36,44064.93,469,Rural,No,10.693419506970148,279.136,139.074
154,Company_154,390.33,162.83,592.72,41020.68,592,Urban,Yes,10.621831608768346,283.272,484.033
155,Company_155,729.59,982.05,479.26,33549.17,191,Suburban,No,10.420767402898578,377.926,280.959
156,Company_156,873.45,147.99,568.87,10530.31,621,Urban,No,9.262013044390788,262.887,409.345
157,Company_157,799.45,990.69,784.19,76686.49,803,Rural,No,11.247480831032389,299.419,216.945
158,Company_158,491.74,143.25,906.25,59283.77,370,Suburban,No,10.990090854439025,558.625,390.174
159,Company_159,367.87,208.07,473.62,83903.97,372,Suburban,Yes,11.33742820957182,282.362,264.787
160,Company_160,564.46,355.27,733.19,61663.32,609,Urban,No,11.029444543649397,275.319,363.446
161,Company_161,607.02,300.46,718.76,99731.85,231,Suburban,No,11.510240363309093,538.876,257.702
162,Company_162,363.2,676.84,915.1,81358.78,101,Urban,No,11.306624035526434,493.51,285.32
163,Company_163,976.79,481.49,329.12,87221.77,246,Urban,No,11.37620923470151,221.912,377.679
164,Company_164,738.36,396.44,379.5,95322.53,249,Rural,No,11.465021473034172,364.95,406.836
165,Company_165,785.54,427.37,589.4,84393.08,683,Suburban,No,11.343240686701314,288.94,373.554
166,Company_166,992.29,576.28,173.55,43056.45,352,Rural,No,10.670267324417088,470.355,363.229
167,Company_167,346.54,528.08,728.16,68761.38,309,Rural,Yes,11.138397529103418,195.816,262.654
168,Company_168,523.22,482.95,699.79,58914.32,735,Rural,No,10.983839464028723,344.979,293.322
169,Company_169,891.58,418.18,511.08,28763.31,576,Urban,Yes,10.26685589561593,178.108,286.158
170,Company_170,712.0,906.86,583.05,16881.59,957,Urban,Yes,9.73397895802674,309.305,519.2
1 Code Company Name 原材料 库存商品 设备数量 Revenue Total Employees (People) Type_Region Self-supply Business (Yes/No) Revenue_Log production_output demand_quantity
2 1 Company_1 284.02 982.67 452.15 29692.44 963 Suburban Yes 10.298647746934053 204.215 481.402
3 2 Company_2 591.75 232.7 597.47 37552.56 222 Urban No 10.533496830634064 553.747 253.175
4 3 Company_3 514.2 466.73 388.52 23557.62 355 Urban No 10.067204613987071 227.852 377.42
5 4 Company_4 893.84 633.71 580.73 89135.78 496 Urban No 11.397916104118977 221.073 483.384
6 5 Company_5 306.54 844.63 474.67 60818.82 117 Suburban Yes 11.015654559530484 391.467 209.654
7 6 Company_6 830.89 831.11 177.37 73695.09 279 Rural No 11.207691454519859 372.737 473.089
8 7 Company_7 483.95 603.67 603.02 73826.05 832 Rural Yes 11.209466929335226 186.302 485.395
9 8 Company_8 483.1 525.24 116.64 83568.26 242 Rural Yes 11.333419061909991 437.664 500.31
10 9 Company_9 958.73 267.31 682.18 36015.98 351 Suburban No 10.491718007837608 433.217 460.873
11 10 Company_10 946.82 215.02 393.99 26255.05 324 Suburban No 10.175613630469309 472.399 381.682
12 11 Company_11 454.76 689.55 232.49 84782.37 81 Suburban Yes 11.3478428992222 243.249 260.476
13 12 Company_12 323.83 177.09 624.04 26639.31 170 Suburban No 10.19014322341799 321.404 148.382
14 13 Company_13 425.17 396.05 274.2 31290.59 265 Rural No 10.351072692349652 287.42 490.517
15 14 Company_14 109.55 739.42 406.11 87814.36 788 Suburban No 11.38298031978054 148.611 401.955
16 15 Company_15 202.82 923.13 100.91 43238.15 487 Suburban No 10.674478486379028 210.091 336.282
17 16 Company_16 160.02 615.97 486.87 32433.19 658 Urban No 10.386937560174536 327.687 459.002
18 17 Company_17 292.47 762.76 981.28 22436.39 755 Rural Yes 10.018439473254828 433.128 232.247
19 18 Company_18 331.51 800.32 145.21 65352.83 631 Rural Yes 11.087556023393986 388.521 358.151
20 19 Company_19 508.01 104.76 862.05 67955.82 579 Rural No 11.126613067125563 576.205 465.801
21 20 Company_20 484.81 906.52 943.38 70611.44 692 Urban No 11.164947450014383 325.33799999999997 513.481
22 21 Company_21 769.67 739.38 736.02 76562.51 383 Suburban Yes 11.245862810333419 455.602 197.96699999999998
23 22 Company_22 533.36 234.46 657.71 38283.05 722 Urban No 10.552762518463977 416.771 354.336
24 23 Company_23 641.84 872.33 487.84 42673.07 791 Suburban Yes 10.661323321098049 183.784 208.184
25 24 Company_24 700.51 197.06 621.79 66410.79 503 Urban No 11.10361482226283 257.179 341.051
26 25 Company_25 628.84 292.82 571.1 72622.08 997 Urban No 11.19302428680546 240.11 317.884
27 26 Company_26 653.23 970.24 221.15 81298.66 667 Suburban No 11.305884813235249 382.115 371.323
28 27 Company_27 747.52 130.58 938.29 73435.38 990 Urban No 11.204161114818818 214.829 339.752
29 28 Company_28 878.41 322.67 211.96 77726.12 556 Rural No 11.260946644601198 438.196 371.841
30 29 Company_29 758.14 433.16 956.4 33200.84 568 Suburban No 10.410330455789328 458.64 510.81399999999996
31 30 Company_30 916.25 613.21 455.27 43485.34 347 Rural No 10.680179148781386 252.527 267.625
32 31 Company_31 900.34 969.81 394.83 50244.63 433 Rural No 10.824658954539137 373.483 322.034
33 32 Company_32 996.22 755.3 640.05 33162.77 550 Urban No 10.409183140139199 514.005 450.622
34 33 Company_33 515.17 844.15 161.39 57032.93 853 Rural Yes 10.951384099299384 272.139 470.517
35 34 Company_34 540.93 578.49 650.09 74078.09 806 Suburban Yes 11.21287508605031 236.00900000000001 334.093
36 35 Company_35 366.24 940.41 849.01 19617.56 483 Rural Yes 9.884180362490643 519.901 169.624
37 36 Company_36 405.22 450.03 380.13 11929.17 371 Rural No 9.386741940165397 290.013 425.522
38 37 Company_37 760.77 517.35 208.94 86851.29 464 Suburban No 11.371952624754107 145.894 425.077
39 38 Company_38 818.17 404.74 315.82 78053.26 201 Suburban Yes 11.265146693168688 265.582 258.817
40 39 Company_39 586.03 697.5 155.23 42210.17 931 Suburban No 10.650416466250073 158.523 523.603
41 40 Company_40 814.27 687.38 477.47 18756.58 673 Urban Yes 9.839299903169191 295.747 192.427
42 41 Company_41 872.52 234.9 598.33 33207.98 178 Urban No 10.410545487468179 269.833 469.252
43 42 Company_42 318.98 744.42 671.43 45471.87 404 Rural No 10.72484917199056 178.143 350.898
44 43 Company_43 453.11 750.88 926.15 99013.81 875 Suburban No 11.503014614337706 490.615 434.311
45 44 Company_44 130.39 274.92 629.0 13707.42 384 Urban Yes 9.525692571040127 474.9 479.039
46 45 Company_45 578.76 368.08 890.9 26604.81 901 Rural No 10.188847305490215 324.09000000000003 202.876
47 46 Company_46 265.4 987.58 137.93 39924.26 335 Suburban No 10.594739438158781 349.793 331.54
48 47 Company_47 743.33 304.14 867.21 90417.33 567 Urban Yes 11.412191231547315 371.721 453.33299999999997
49 48 Company_48 873.08 651.74 589.46 49837.92 599 Urban Yes 10.816531419043114 371.946 299.308
50 49 Company_49 797.72 610.35 866.25 71390.29 680 Urban Yes 11.17591714468184 317.625 432.772
51 50 Company_50 173.31 403.93 398.59 19134.31 577 Rural No 9.859238337632949 383.859 427.331
52 51 Company_51 713.05 943.63 786.47 33400.45 814 Suburban No 10.416324651927923 242.647 554.305
53 52 Company_52 769.5 939.62 827.64 15891.9 622 Urban No 9.673564824440492 500.764 351.95
54 53 Company_53 424.01 131.65 979.59 68631.67 998 Rural Yes 11.13650936898853 240.959 315.401
55 54 Company_54 923.68 474.15 214.87 18889.97 631 Suburban Yes 9.84638637235242 403.487 459.368
56 55 Company_55 671.6 928.96 584.73 93556.96 965 Suburban No 11.446325727652052 191.473 350.15999999999997
57 56 Company_56 740.88 450.42 624.08 75711.44 741 Rural Yes 11.234684550861001 524.408 318.08799999999997
58 57 Company_57 409.56 660.05 574.35 30617.71 416 Rural No 10.32933387869449 211.435 536.956
59 58 Company_58 436.2 294.82 599.98 78445.43 977 Urban Yes 11.270158502799614 276.998 387.62
60 59 Company_59 516.54 770.6 290.97 37174.96 441 Suburban Yes 10.523390695335847 419.097 475.654
61 60 Company_60 721.93 305.6 412.97 98848.66 842 Urban Yes 11.501345272614115 316.297 280.193
62 61 Company_61 712.26 395.66 391.41 92570.96 996 Urban No 11.435730764537892 151.14100000000002 496.226
63 62 Company_62 498.75 142.06 747.78 71608.94 917 Rural Yes 11.178975205489529 536.778 380.875
64 63 Company_63 623.33 901.33 397.15 23513.3 567 Suburban Yes 10.065321497485543 362.715 297.333
65 64 Company_64 263.36 133.88 830.99 20195.09 241 Urban Yes 9.913194784536234 392.099 319.336
66 65 Company_65 479.22 672.42 688.79 41600.33 951 Suburban No 10.635863378910198 528.879 334.922
67 66 Company_66 586.48 947.72 733.06 13215.54 624 Rural Yes 9.489148688859606 487.306 478.648
68 67 Company_67 145.29 158.54 178.11 64118.35 910 Rural Yes 11.068485873391767 260.811 258.529
69 68 Company_68 267.7 992.49 846.41 83839.88 127 Urban No 11.336664068256136 552.641 188.77
70 69 Company_69 207.33 621.93 942.4 54187.36 793 Suburban Yes 10.900202949897876 349.24 518.733
71 70 Company_70 107.17 406.95 154.29 15249.9 383 Suburban Yes 9.632328224637009 506.429 294.717
72 71 Company_71 835.06 230.35 568.8 91044.0 294 Rural No 11.419098185126074 318.88 291.506
73 72 Company_72 149.12 861.62 775.5 97301.35 155 Urban No 11.485568142692438 360.55 156.912
74 73 Company_73 385.5 741.6 846.34 19971.89 201 Rural Yes 9.902081063894537 205.63400000000001 445.55
75 74 Company_74 363.13 524.32 314.91 46296.94 763 Rural Yes 10.742831147177496 255.491 284.313
76 75 Company_75 647.69 363.06 973.17 77340.29 460 Urban No 11.25597031483101 381.317 278.769
77 76 Company_76 439.41 498.97 944.89 30625.18 754 Rural Yes 10.329577825380776 526.489 258.94100000000003
78 77 Company_77 466.64 397.98 979.11 86794.57 418 Rural Yes 11.371299341087946 417.911 347.664
79 78 Company_78 641.64 202.48 850.07 29307.04 807 Urban No 10.285583039181757 259.007 379.164
80 79 Company_79 732.01 600.48 239.65 93479.02 864 Rural Yes 11.445492305071953 246.965 195.201
81 80 Company_80 922.97 177.28 277.08 83955.43 883 Urban Yes 11.33804134177189 500.70799999999997 222.297
82 81 Company_81 627.27 621.58 542.03 87676.13 277 Urban No 11.38140496343402 546.203 518.727
83 82 Company_82 165.15 637.29 220.57 35181.96 313 Urban Yes 10.468288730213176 371.057 246.515
84 83 Company_83 819.04 221.6 785.02 16422.34 471 Urban No 9.706397881988158 424.502 273.904
85 84 Company_84 495.01 235.24 793.64 18346.41 797 Suburban No 9.817189194015675 465.36400000000003 229.501
86 85 Company_85 189.98 626.37 530.14 49793.11 669 Suburban No 10.815631900027373 492.014 420.998
87 86 Company_86 786.61 983.8 224.61 27511.88 420 Urban No 10.222373190369527 296.461 200.661
88 87 Company_87 775.36 813.93 242.21 94867.05 336 Rural Yes 11.460231716720575 458.221 433.536
89 88 Company_88 316.03 569.38 505.27 31548.83 265 Suburban Yes 10.35929178328807 307.527 299.603
90 89 Company_89 411.42 968.1 873.75 17001.83 274 Suburban No 9.741076264303647 220.375 534.142
91 90 Company_90 360.91 720.1 917.41 33781.07 582 Suburban Yes 10.427655865407793 473.741 252.091
92 91 Company_91 358.16 611.27 878.08 94174.16 361 Urban Yes 11.452901112955821 500.808 146.816
93 92 Company_92 353.58 598.11 973.92 46314.41 797 Suburban No 10.743208422753485 540.392 251.358
94 93 Company_93 796.81 261.4 254.01 36160.77 589 Suburban No 10.495730108527182 202.401 310.681
95 94 Company_94 479.78 168.81 256.88 40033.55 561 Rural No 10.597473131541856 467.688 210.978
96 95 Company_95 500.33 585.43 362.28 58187.29 708 Urban No 10.971422224990354 253.228 302.033
97 96 Company_96 267.69 499.92 214.82 79427.15 318 Suburban No 11.282595528333824 179.482 373.769
98 97 Company_97 755.05 985.95 179.24 82469.43 673 Suburban Yes 11.320182958199297 140.924 446.505
99 98 Company_98 302.62 320.94 594.75 51363.17 367 Suburban No 10.84667665764297 510.475 362.262
100 99 Company_99 714.96 972.27 684.7 26131.27 620 Rural No 10.170887960471719 552.47 208.496
101 100 Company_100 945.42 505.3 509.87 57539.11 222 Urban Yes 10.960220169485046 174.987 338.54200000000003
102 101 Company_101 160.02 165.31 985.52 97438.02 772 Urban Yes 11.486971762540222 329.552 243.002
103 102 Company_102 445.92 108.59 838.78 65823.19 990 Rural No 11.094727486834918 310.878 233.59199999999998
104 103 Company_103 591.79 603.5 225.38 17043.42 511 Suburban Yes 9.74351948447026 211.538 287.179
105 104 Company_104 252.06 450.61 405.59 57402.73 571 Rural No 10.95784714215228 316.55899999999997 462.206
106 105 Company_105 165.62 951.39 306.5 45833.17 398 Rural Yes 10.73276334377794 173.65 386.562
107 106 Company_106 255.06 128.16 259.17 13244.48 616 Urban No 9.491336140837323 395.91700000000003 362.506
108 107 Company_107 447.35 180.41 643.05 70700.8 449 Rural No 11.166212167237902 476.305 380.735
109 108 Company_108 781.83 434.34 550.93 81277.04 720 Suburban Yes 11.305618844826347 450.093 377.183
110 109 Company_109 169.85 134.46 977.71 94591.41 473 Suburban No 11.45732194753443 239.77100000000002 273.985
111 110 Company_110 125.7 708.42 777.62 11615.85 473 Rural Yes 9.360125823758061 452.762 334.57
112 111 Company_111 866.33 981.73 892.43 14848.63 251 Suburban Yes 9.605662884082752 436.243 392.63300000000004
113 112 Company_112 725.77 590.82 558.44 15328.79 949 Urban Yes 9.63748803854849 397.844 518.577
114 113 Company_113 958.57 191.31 188.92 97104.67 310 Urban Yes 11.483544747870583 305.892 306.85699999999997
115 114 Company_114 729.39 511.32 120.71 69592.56 191 Urban No 11.150412944056944 457.071 390.93899999999996
116 115 Company_115 365.17 638.89 288.41 18567.32 982 Rural Yes 9.829158325138039 372.841 401.517
117 116 Company_116 265.79 429.39 476.28 86839.57 716 Urban No 11.371817672344777 372.628 356.579
118 117 Company_117 559.33 264.97 113.88 15724.66 744 Rural Yes 9.66298545971327 444.388 394.933
119 118 Company_118 781.96 443.32 862.47 74245.47 273 Rural No 11.215132044702743 427.247 508.196
120 119 Company_119 890.02 331.77 697.16 83693.72 772 Rural Yes 11.334919223794108 531.716 428.002
121 120 Company_120 358.86 588.14 768.94 84336.55 101 Urban No 11.342570620606638 188.894 371.886
122 121 Company_121 589.37 192.81 994.71 30198.07 651 Urban Yes 10.315533294036035 451.471 426.937
123 122 Company_122 808.28 297.7 455.05 30809.46 875 Urban Yes 10.335577064660097 157.505 494.828
124 123 Company_123 988.78 307.96 869.8 44511.43 310 Suburban Yes 10.703501289105592 455.98 326.878
125 124 Company_124 461.81 849.69 521.11 84053.28 549 Suburban Yes 11.339206162465574 425.111 217.18099999999998
126 125 Company_125 438.73 683.75 458.4 34747.89 771 Rural Yes 10.455874129724979 386.84 305.873
127 126 Company_126 791.33 299.04 650.17 84231.54 634 Urban Yes 11.341324714414265 208.017 494.13300000000004
128 127 Company_127 369.59 143.99 204.6 27639.11 536 Rural Yes 10.22698707765262 338.46 479.959
129 128 Company_128 524.05 885.87 431.91 22997.06 766 Suburban Yes 10.04312166065388 507.19100000000003 410.405
130 129 Company_129 677.07 490.74 311.48 21524.13 781 Rural No 9.97692991036063 444.148 564.707
131 130 Company_130 178.2 260.51 858.09 83651.2 562 Rural No 11.334411051799224 185.809 333.82
132 131 Company_131 691.31 398.92 644.53 87442.53 582 Rural No 11.378737056558094 443.453 357.131
133 132 Company_132 189.46 575.78 346.71 13257.65 284 Rural Yes 9.492330023297646 296.671 473.946
134 133 Company_133 488.33 731.67 953.18 26643.92 489 Rural Yes 10.190316260976394 559.318 406.83299999999997
135 134 Company_134 369.02 465.67 667.29 78924.61 793 Suburban No 11.27624837201392 238.72899999999998 205.902
136 135 Company_135 738.44 879.57 465.81 92477.88 609 Suburban No 11.434724759768017 365.581 546.844
137 136 Company_136 758.99 786.45 658.38 52134.69 989 Urban Yes 10.861585841104548 218.838 231.899
138 137 Company_137 464.53 270.67 133.65 25976.63 552 Suburban Yes 10.164952566645338 168.365 274.453
139 138 Company_138 580.02 793.08 931.46 40643.76 471 Rural Yes 10.612600597657721 362.146 444.002
140 139 Company_139 274.51 795.06 500.42 35139.32 233 Rural Yes 10.46707601038709 281.04200000000003 458.451
141 140 Company_140 959.71 868.21 107.06 49994.95 428 Rural Yes 10.81967727930944 361.706 578.971
142 141 Company_141 354.71 563.01 350.48 42908.83 610 Urban No 10.666832911242361 272.048 357.471
143 142 Company_142 396.03 603.89 128.42 39303.37 668 Urban No 10.579065544817109 332.842 170.603
144 143 Company_143 892.61 311.16 670.46 43027.27 864 Suburban Yes 10.669589379711221 549.046 279.26099999999997
145 144 Company_144 486.76 626.8 943.16 39879.69 50 Rural No 10.593622450725602 318.31600000000003 189.676
146 145 Company_145 917.34 288.69 643.88 55254.01 873 Suburban Yes 10.919696195931778 281.38800000000003 371.73400000000004
147 146 Company_146 435.58 284.0 802.41 14442.55 517 Suburban Yes 9.577933989653928 362.241 241.558
148 147 Company_147 202.67 381.12 247.09 64747.68 871 Rural Yes 11.07825314880404 335.709 272.267
149 148 Company_148 394.8 297.97 982.49 64826.8 825 Suburban No 11.079474377086543 261.249 240.48000000000002
150 149 Company_149 703.7 551.4 223.33 52703.5 186 Rural No 10.872437145986403 325.333 248.37
151 150 Company_150 271.26 639.62 669.86 54145.21 286 Urban No 10.899424790529425 392.986 361.126
152 151 Company_151 741.21 534.21 734.27 99208.27 649 Urban Yes 11.504976656733618 459.427 365.121
153 152 Company_152 946.16 900.51 456.7 12725.19 836 Rural Yes 9.451338772544975 533.67 282.616
154 153 Company_153 230.74 396.22 221.36 44064.93 469 Rural No 10.693419506970148 279.136 139.074
155 154 Company_154 390.33 162.83 592.72 41020.68 592 Urban Yes 10.621831608768346 283.272 484.033
156 155 Company_155 729.59 982.05 479.26 33549.17 191 Suburban No 10.420767402898578 377.926 280.959
157 156 Company_156 873.45 147.99 568.87 10530.31 621 Urban No 9.262013044390788 262.887 409.345
158 157 Company_157 799.45 990.69 784.19 76686.49 803 Rural No 11.247480831032389 299.419 216.945
159 158 Company_158 491.74 143.25 906.25 59283.77 370 Suburban No 10.990090854439025 558.625 390.174
160 159 Company_159 367.87 208.07 473.62 83903.97 372 Suburban Yes 11.33742820957182 282.362 264.787
161 160 Company_160 564.46 355.27 733.19 61663.32 609 Urban No 11.029444543649397 275.319 363.446
162 161 Company_161 607.02 300.46 718.76 99731.85 231 Suburban No 11.510240363309093 538.876 257.702
163 162 Company_162 363.2 676.84 915.1 81358.78 101 Urban No 11.306624035526434 493.51 285.32
164 163 Company_163 976.79 481.49 329.12 87221.77 246 Urban No 11.37620923470151 221.912 377.679
165 164 Company_164 738.36 396.44 379.5 95322.53 249 Rural No 11.465021473034172 364.95 406.836
166 165 Company_165 785.54 427.37 589.4 84393.08 683 Suburban No 11.343240686701314 288.94 373.554
167 166 Company_166 992.29 576.28 173.55 43056.45 352 Rural No 10.670267324417088 470.355 363.229
168 167 Company_167 346.54 528.08 728.16 68761.38 309 Rural Yes 11.138397529103418 195.816 262.654
169 168 Company_168 523.22 482.95 699.79 58914.32 735 Rural No 10.983839464028723 344.979 293.322
170 169 Company_169 891.58 418.18 511.08 28763.31 576 Urban Yes 10.26685589561593 178.108 286.158
171 170 Company_170 712.0 906.86 583.05 16881.59 957 Urban Yes 9.73397895802674 309.305 519.2

View File

@ -14,7 +14,6 @@ from product import ProductAgent
class MyModel(Model): class MyModel(Model):
def __init__(self, params): def __init__(self, params):
# 属性 # 属性
self.is_prf_size = params['prf_size'] self.is_prf_size = params['prf_size']
self.prf_conn = params['prf_conn'] self.prf_conn = params['prf_conn']
@ -60,12 +59,15 @@ class MyModel(Model):
self.is_prf_size = bool(params['prf_size']) self.is_prf_size = bool(params['prf_size'])
self.remove_t = int(params['remove_t']) self.remove_t = int(params['remove_t'])
self.int_netw_prf_n = int(params['netw_prf_n']) self.int_netw_prf_n = int(params['netw_prf_n'])
# 方法执行 # 方法执行
self.initialize_product_network(params) self.initialize_product_network(params)
self.initialize_firm_network() self.initialize_firm_network()
self.initialize_firm_product_network() self.initialize_firm_product_network()
self.add_edges_to_firm_network() self.add_edges_to_firm_network()
self.connect_unconnected_nodes() self.connect_unconnected_nodes()
self.resource_integration()
self.j_comp_consumed_produced()
self.initialize_agents() self.initialize_agents()
self.initialize_disruptions() self.initialize_disruptions()
@ -74,18 +76,33 @@ class MyModel(Model):
self.product_network = nx.adjacency_graph(json.loads(params['g_bom'])) self.product_network = nx.adjacency_graph(json.loads(params['g_bom']))
except Exception as e: except Exception as e:
print(f"Failed to initialize product network: {e}") print(f"Failed to initialize product network: {e}")
# 赋予 产业的量
# 产业种类
data = pd.read_csv('测试数据 products_materials_equipment.csv')
self.type = data
# 设备c折旧比值
device_salvage_values = pd.read_csv('测试数据 device_salvage_values.csv')
self.device_salvage_values = device_salvage_values
def initialize_firm_network(self): def initialize_firm_network(self):
# Read the firm data # Read the firm data
firm = pd.read_csv("input_data/Firm_amended.csv")
firm = pd.read_csv("input_data/测试 Firm_amended 170.csv")
firm['Code'] = firm['Code'].astype('string') firm['Code'] = firm['Code'].astype('string')
firm.fillna(0, inplace=True) firm.fillna(0, inplace=True)
firm_attr = firm.loc[:, ["Code", "Type_Region", "Revenue_Log"]]
firm_attr = firm.loc[:, ["Code", "Type_Region", "Revenue_Log", "原材料", "设备数量", "库存商品"]]
firm_industry_relation = pd.read_csv("input_data/firm_industry_relation.csv")
firm_industry_relation['Firm_Code'] = firm_industry_relation['Firm_Code'].astype('string')
firm_product = [] firm_product = []
for _, row in firm.loc[:, '1':].iterrows():
firm_product.append(row[row == 1].index.to_list()) grouped = firm_industry_relation.groupby('Firm_Code')['Product_Code'].apply(list)
firm_attr.loc[:, 'Product_Code'] = firm_product firm_product.append(grouped)
firm_attr['Product_Code'] = firm_attr['Code'].map(grouped)
firm_attr.set_index('Code', inplace=True) firm_attr.set_index('Code', inplace=True)
self.G_Firm.add_nodes_from(firm["Code"]) self.G_Firm.add_nodes_from(firm["Code"])
@ -97,21 +114,15 @@ class MyModel(Model):
self.Firm = firm self.Firm = firm
def initialize_firm_product_network(self): def initialize_firm_product_network(self):
""" Initialize the firm-product network """
# Read the firm-product data
Firm_Prod = pd.read_csv("input_data/Firm_amended.csv")
Firm_Prod.fillna(0, inplace=True)
# Stack the firm-product relationships into a DataFrame firm_industry_relation = pd.read_csv("input_data/firm_industry_relation.csv")
firm_prod = pd.DataFrame({'bool': Firm_Prod.loc[:, '1':].stack()}) firm_industry_relation['Firm_Code'] = firm_industry_relation['Firm_Code'].astype('string')
firm_prod = firm_prod[firm_prod['bool'] == 1].reset_index() # 将 'firm_prod' 表中的每一行作为图中的节点
firm_prod.drop('bool', axis=1, inplace=True) self.G_FirmProd.add_nodes_from(firm_industry_relation.index)
firm_prod.rename({'level_0': 'Firm_Code', 'level_1': 'Product_Code'}, axis=1, inplace=True)
firm_prod['Firm_Code'] = firm_prod['Firm_Code'].astype('string')
self.G_FirmProd.add_nodes_from(firm_prod.index) # 为每个节点分配属性
# Assign attributes to the firm-product nodes firm_prod_labels_dict = {code: firm_industry_relation.loc[code].to_dict() for code in
firm_prod_labels_dict = {code: firm_prod.loc[code].to_dict() for code in firm_prod.index} firm_industry_relation.index}
nx.set_node_attributes(self.G_FirmProd, firm_prod_labels_dict) nx.set_node_attributes(self.G_FirmProd, firm_prod_labels_dict)
def add_edges_to_firm_network(self): def add_edges_to_firm_network(self):
@ -204,19 +215,52 @@ class MyModel(Model):
def initialize_agents(self): def initialize_agents(self):
""" Initialize agents and add them to the model. """ """ Initialize agents and add them to the model. """
for ag_node, attr in self.product_network.nodes(data=True): for ag_node, attr in self.product_network.nodes(data=True):
product = ProductAgent(ag_node, self, name=attr['Name']) # 产业种类
type2 = self.type.loc[ag_node, '种类']
device_salvage_values = self.type.loc[ag_node, '设备残值']
j_comp_data_consumed = self.data_consumed.loc[ag_node]
j_comp_data_produced = self.data_consumed.loc[ag_node]
product = ProductAgent(ag_node, self, name=attr['Name'], type2=type2,
device_salvage_values=device_salvage_values,
j_comp_data_consumed=j_comp_data_consumed,
j_comp_data_produced=j_comp_data_produced, )
self.add_agent(product) self.add_agent(product)
# self.grid.place_agent(product, ag_node) # self.grid.place_agent(product, ag_node)
##print(f"Product agent created: {product.name}, ID: {product.unique_id}") ##print(f"Product agent created: {product.name}, ID: {product.unique_id}")
for ag_node, attr in self.firm_network.nodes(data=True): for ag_node, attr in self.firm_network.nodes(data=True):
a_lst_product = [agent for agent in self.product_agents if agent.unique_id in attr['Product_Code']] a_lst_product = [agent for agent in self.product_agents if agent.unique_id in attr['Product_Code']]
n_equip_c = self.Firm.loc[ag_node, '设备数量']
demand_quantity = self.Firm.loc[ag_node, 'production_output']
production_output = self.Firm.loc[ag_node, 'demand_quantity']
c_price = self.Firm.loc[ag_node, 'c_price']
# 资源 资源库存信息 利用 firm_resource
R = self.firm_resource_R.loc[ag_node]
P = self.firm_resource_R.loc[ag_node]
C = self.firm_resource_R.loc[ag_node]
firm_agent = FirmAgent( firm_agent = FirmAgent(
ag_node, self, ag_node, self,
type_region=attr['Type_Region'], type_region=attr['Type_Region'],
revenue_log=attr['Revenue_Log'], revenue_log=attr['Revenue_Log'],
n_equip_c=n_equip_c,
a_lst_product=a_lst_product, a_lst_product=a_lst_product,
demand_quantity=demand_quantity,
production_output=production_output,
c_price=c_price,
R=R,
P=P,
C=C
) )
self.add_agent(firm_agent) self.add_agent(firm_agent)
@ -258,6 +302,33 @@ class MyModel(Model):
elif isinstance(agent, ProductAgent): elif isinstance(agent, ProductAgent):
self.product_agents.append(agent) self.product_agents.append(agent)
def resource_integration(self):
data_R = pd.read_csv("测试数据 companies_materials.csv")
data_C = pd.read_csv("测试数据 companies_devices.csv")
data_P = pd.read_csv("测试数据 companies_products.csv")
firm_resource_R = (data_R.groupby('Firm_Code')[['材料id', '材料数量']]
.apply(lambda x: x.values.tolist()))
firm_resource_C = (data_C.groupby('Firm_Code')[['材料id', '材料数量']]
.apply(lambda x: x.values.tolist()))
firm_resource_P = (data_P.groupby('Firm_Code')[['材料id', '材料数量']]
.apply(lambda x: x.values.tolist()))
self.firm_resource_R = firm_resource_R
self.firm_resource_C = firm_resource_C
self.firm_resource_P = firm_resource_P
def j_comp_consumed_produced(self):
data_consumed = pd.read_csv('测试数据 consumed_materials.csv')
data_produced = pd.read_csv('测试数据 produced_products.csv')
data_consumed = (data_consumed.groupby('产业id')[['消耗材料id', '消耗材料数量']]
.apply(lambda x: x.values.tolist()))
data_produced = (data_produced.groupby('产业id')[['制造产品id', '制造产品数量']]
.apply(lambda x: x.values.tolist()))
self.data_consumed = data_consumed
self.data_produced = data_produced
def step(self): def step(self):
# 1. Remove edge to customer and disrupt customer up product # 1. Remove edge to customer and disrupt customer up product
for firm in self.company_agents: for firm in self.company_agents:
@ -303,5 +374,83 @@ class MyModel(Model):
for firm in self.company_agents: for firm in self.company_agents:
firm.clean_before_trial() firm.clean_before_trial()
# 3. 判断是否需要购买资源 判断是否需要购买机器
purchase_material_firms = {}
purchase_machinery_firms = {}
material_list = []
machinery_list = []
list_seek_material_firm = [] # 每一个收到请求的企业
list_seek_machinery_firm = [] # 每一个收到请求的企业
for firm in self.company_agents:
# 资源
for sub_list in firm.R:
if sub_list[1] <= firm.s_r:
required_material_quantity = firm.S_r - sub_list[1]
(material_list
.append([sub_list[0], required_material_quantity]))
purchase_material_firms[firm] = material_list
# 设备
for sub_list in firm.C:
# 对于设备的required_machinery_quantity 要有所改变 根据残值而言! 每一个周期固定减少残值值 x firm 里面定义
sub_list[2] -= firm.x
if sub_list[2] <= 0: # 残值小于等于 0 时
sub_list[1] -= 1
required_machinery_quantity = firm.C1[0][1] - sub_list[1] # 补回原来的量 也就是 1
(machinery_list
.append([sub_list[0], required_machinery_quantity]))
purchase_machinery_firms[firm] = machinery_list
# 寻源并发送请求 决定是否接受供应 并更新
for material_firm, sub_list in purchase_material_firms:
for material_list in sub_list:
(list_seek_material_firm
.append(material_firm.seek_material_supply(material_list[0])))
if len(list_seek_material_firm) != 0:
for seek_material_firm in list_seek_material_firm:
seek_material_firm.handle_material_request(material_list) # 更新产品
for R_list in firm.R:
R_list[1] = firm.S_r
for machinery_firm, sub_list in purchase_machinery_firms:
for machinery_list in sub_list:
(list_seek_machinery_firm
.append(machinery_firm.seek_machinery_supply(machinery_list[0])))
if len(list_seek_machinery_firm) != 0:
for seek_machinery_firm in list_seek_machinery_firm:
seek_machinery_firm.handle_machinery_request(machinery_list)
for C_list, C0_list in zip(firm.C, firm.C0):
C_list[1] = C0_list[1] # 赋值回去
C_list[2] = C0_list[2]
# 消耗资源过程
consumed_material = []
for product in firm.a_lst_product:
for sub_list_data_consumed in product.j_comp_data_consumed:
consumed_material_id = sub_list_data_consumed[0]
consumed_material_num = sub_list_data_consumed[1]
consumed_material.append([consumed_material_id, consumed_material_num])
for sub_list_consumed_material in consumed_material:
for sub_list_material in firm.R:
if sub_list_material[0] == sub_list_consumed_material[0]:
sub_list_material[1] = sub_list_material[1] - sub_list_consumed_material[1]
# 生产产品过程
produced_products = []
for product in firm.a_lst_product:
for sub_list_produced_products in product.j_comp_data_consumed:
produced_products_id = sub_list_produced_products[0]
produced_products_num = sub_list_produced_products[1]
produced_products.append([produced_products_id, produced_products_num])
for sub_list_data_produced_products in produced_products:
for sub_list_products in firm.P:
if sub_list_products[0] == sub_list_data_produced_products[0]:
sub_list_products[1] = sub_list_products[1] - sub_list_data_produced_products[1]
# 刷新 R状态
firm.refresh_R()
# 刷新 C状态
firm.refresh_C()
# 刷新 P状态
firm.refresh_P()
# Increment the time step # Increment the time step
self.t += 1 self.t += 1

View File

@ -1,13 +1,22 @@
from mesa import Agent from mesa import Agent
class ProductAgent(Agent): class ProductAgent(Agent):
def __init__(self, unique_id, model, name): def __init__(self, unique_id, model, name, type2, device_salvage_values, j_comp_data_consumed, j_comp_data_produced):
# 调用超类的 __init__ 方法 # 调用超类的 __init__ 方法
super().__init__(unique_id, model) super().__init__(unique_id, model)
# 初始化代理属性 # 初始化代理属性
self.name = name self.name = name
self.product_network = self.model.product_network self.product_network = self.model.product_network
if type2 == 0:
self.is_equip = True
else:
self.is_mater = True
self.device_salvage_values = device_salvage_values
self.j_comp_data_produced = j_comp_data_produced
self.j_comp_data_consumed = j_comp_data_consumed
def a_successors(self): def a_successors(self):
# 从 product_network 中找到当前代理的后继节点 # 从 product_network 中找到当前代理的后继节点
@ -22,4 +31,3 @@ class ProductAgent(Agent):
# 通过 unique_id 查找前驱节点对应的代理对象,直接从 self.product_agents 列表中获取 # 通过 unique_id 查找前驱节点对应的代理对象,直接从 self.product_agents 列表中获取
return [agent for agent in self.model.product_agents if agent.unique_id in predecessors] return [agent for agent in self.model.product_agents if agent.unique_id in predecessors]

View File

@ -0,0 +1,43 @@
import pandas as pd
import numpy as np
# 设置随机种子
np.random.seed(42)
# 生成企业和设备数据
num_rows = 10 # 每个表的行数
# 构造数据
company_ids = np.random.randint(1000, 1100, size=num_rows)
device_ids = np.random.randint(100, 200, size=num_rows)
material_ids = np.random.randint(0, 100, size=num_rows)
product_ids = np.random.randint(0, 200, size=num_rows)
device_quantities = np.random.randint(50, 200, size=num_rows)
material_quantities = np.random.randint(100,200, size=num_rows)
product_quantities = np.random.randint(20, 100, size=num_rows)
# 创建三个表格的数据框
df_devices = pd.DataFrame({
'企业id': company_ids,
'设备id': device_ids,
'设备数量': device_quantities
})
df_materials = pd.DataFrame({
'企业id': company_ids,
'材料id': material_ids,
'材料数量': material_quantities
})
df_products = pd.DataFrame({
'企业id': company_ids,
'产品id': product_ids,
'产品数量': product_quantities
})
# 保存为CSV文件
df_devices.to_csv('测试数据 companies_devices.csv', index=False)
df_materials.to_csv('测试数据 companies_materials.csv', index=False)
df_products.to_csv('测试数据 companies_products.csv', index=False)

View File

@ -0,0 +1,42 @@
import pandas as pd
import numpy as np
# 设置随机种子,确保结果可重复
np.random.seed(42)
# 定义产业数量
num_industries = 10
# 创建产业ID列表
industry_ids = [i for i in range(0, num_industries + 1)]
# 为每个产业生成随机的材料id、消耗量、产品id和制造量
consumed_materials_data = []
produced_products_data = []
for industry in industry_ids:
# 每个产业消耗的材料生成1到3个随机材料ID和消耗量
num_materials = np.random.randint(1, 4)
for _ in range(num_materials):
material_id = np.random.randint(0, 100)
consumption_quantity = np.random.randint(50, 500)
consumed_materials_data.append([industry, material_id, consumption_quantity])
# 每个产业制造的产品生成1到3个随机产品ID和制造量
num_products = np.random.randint(1, 4)
for _ in range(num_products):
product_id = np.random.randint(100, 201)
production_quantity = np.random.randint(100, 1000)
produced_products_data.append([industry, product_id, production_quantity])
# 创建两个数据框
df_consumed_materials = pd.DataFrame(consumed_materials_data, columns=['产业ID', '消耗材料ID', '消耗量'])
df_produced_products = pd.DataFrame(produced_products_data, columns=['产业ID', '制造产品ID', '制造量'])
# 保存两个数据框为CSV文件
file_path_consumed = '测试数据 consumed_materials.csv'
file_path_produced = '测试数据 produced_products.csv'
df_consumed_materials.to_csv(file_path_consumed, index=False)
df_produced_products.to_csv(file_path_produced, index=False)

View File

@ -0,0 +1,15 @@
import pandas as pd
import random
import numpy as np
# 生成170条测试数据的函数
data=pd.read_csv('input_data/BomNodes.csv')
# 生成数据
df = pd.DataFrame(data)
df['产业种类'] = [random.choice([0, 1]) for _ in range(107)]
# 显示前几行
print(df.head())
# 保存数据到CSV文件
df.to_csv('input_data/测试 BomNodes.csv', index=False)

View File

@ -0,0 +1,36 @@
import pandas as pd
import random
import numpy as np
# 生成170条测试数据的函数
def generate_test_data(num_rows=170):
data = {
'Company ID': [i for i in range(1, num_rows + 1)], # 生成1到170的公司ID
'Company Name': [f'Company_{i}' for i in range(1, num_rows + 1)], # 生成公司名称
'原材料': [round(random.uniform(100, 1000), 2) for _ in range(num_rows)], # 原材料
'库存商品': [round(random.uniform(100, 1000), 2) for _ in range(num_rows)], # 库存商品
'固定资产原值': [round(random.uniform(100, 1000), 2) for _ in range(num_rows)], # 固定资产原值
'Revenue': [round(random.uniform(10000, 100000), 2) for _ in range(num_rows)], # Revenue
'Total Employees (People)': [random.randint(50, 1000) for _ in range(num_rows)], # 员工总数
'Type_Region': [random.choice(['Urban', 'Rural', 'Suburban']) for _ in range(num_rows)], # 区域类型
'Self-supply Business (Yes/No)': [random.choice(['Yes', 'No']) for _ in range(num_rows)] # 自营业务
}
df = pd.DataFrame(data)
# 添加Revenue_Log列
df['Revenue_Log'] = np.log(df['Revenue'])
df['production_output'] = df['固定资产原值'] / 10+np.random.randint(100, 500, size=len(df))
df['demand_quantity'] = df['原材料'] / 10 +np.random.randint(100, 500, size=len(df))
return df
# 生成数据
df_test_data = generate_test_data()
# 显示前几行
print(df_test_data.head())
# 保存数据到CSV文件
df_test_data.to_csv('input_data/测试 Firm_amended 170.csv', index=False)

View File

@ -0,0 +1,11 @@
企业id,设备id,设备数量
1051,187,104
1092,199,113
1014,123,180
1071,102,100
1060,121,184
1020,152,70
1082,101,122
1086,187,67
1074,129,181
1074,137,138
1 企业id 设备id 设备数量
2 1051 187 104
3 1092 199 113
4 1014 123 180
5 1071 102 100
6 1060 121 184
7 1020 152 70
8 1082 101 122
9 1086 187 67
10 1074 129 181
11 1074 137 138

View File

@ -0,0 +1,11 @@
企业id,材料id,材料数量
1051,1,159
1092,63,113
1014,59,108
1071,20,189
1060,32,152
1020,75,101
1082,57,183
1086,21,191
1074,88,159
1074,48,170
1 企业id 材料id 材料数量
2 1051 1 159
3 1092 63 113
4 1014 59 108
5 1071 20 189
6 1060 32 152
7 1020 75 101
8 1082 57 183
9 1086 21 191
10 1074 88 159
11 1074 48 170

View File

@ -0,0 +1,11 @@
企业id,产品id,产品数量
1051,58,63
1092,169,27
1014,187,66
1071,14,54
1060,189,97
1020,189,55
1082,174,69
1086,189,23
1074,50,21
1074,107,25
1 企业id 产品id 产品数量
2 1051 58 63
3 1092 169 27
4 1014 187 66
5 1071 14 54
6 1060 189 97
7 1020 189 55
8 1082 174 69
9 1086 189 23
10 1074 50 21
11 1074 107 25

View File

@ -0,0 +1,24 @@
产业ID,消耗材料ID,消耗量
0,51,398
0,14,156
0,71,238
1,74,137
1,99,409
1,23,180
2,37,435
2,63,493
3,21,302
3,88,98
4,61,224
4,61,100
5,72,216
6,8,395
6,52,435
7,80,469
7,49,409
8,62,451
9,47,320
9,71,264
9,61,345
10,52,329
10,25,266
1 产业ID 消耗材料ID 消耗量
2 0 51 398
3 0 14 156
4 0 71 238
5 1 74 137
6 1 99 409
7 1 23 180
8 2 37 435
9 2 63 493
10 3 21 302
11 3 88 98
12 4 61 224
13 4 61 100
14 5 72 216
15 6 8 395
16 6 52 435
17 7 80 469
18 7 49 409
19 8 62 451
20 9 47 320
21 9 71 264
22 9 61 345
23 10 52 329
24 10 25 266

View File

@ -0,0 +1,11 @@
设备id,设备残值
151,97
192,382
114,109
171,881
160,673
120,140
182,671
186,318
174,779
174,353
1 设备id 设备残值
2 151 97
3 192 382
4 114 109
5 171 881
6 160 673
7 120 140
8 182 671
9 186 318
10 174 779
11 174 353

View File

@ -0,0 +1,101 @@
材料id,设备id,产品id
51,192,14
71,160,20
82,186,74
74,187,116
99,123,130
21,152,1
87,129,37
1,163,187
20,132,57
21,188,48
90,158,169
91,159,14
61,161,174
61,150,107
54,163,130
50,106,20
72,138,17
3,188,59
13,108,89
52,101,83
91,159,198
43,107,174
34,177,80
35,149,103
3,101,133
53,103,190
17,189,43
33,173,189
99,113,94
47,114,199
77,186,189
39,184,81
52,123,153
88,159,123
40,128,14
44,164,88
70,108,87
0,107,62
10,180,135
34,134,32
4,140,27
6,172,71
11,133,32
47,122,61
87,136,98
43,185,34
64,198,100
46,177,130
0,104,141
26,108,14
89,141,123
76,150,62
95,151,131
93,200,150
14,142,28
35,112,159
70,158,85
27,165,169
44,161,184
5,127,27
43,183,29
61,174,127
91,188,189
96,100,120
26,161,120
76,102,197
71,126,136
61,136,50
43,123,58
31,195,179
61,157,51
11,138,129
2,200,112
55,180,186
1,101,53
86,200,128
18,101,52
43,189,159
69,131,67
54,174,183
16,137,23
68,197,138
15,196,200
58,169,92
2,119,186
35,118,89
66,118,147
95,170,51
32,139,127
38,181,103
0,110,184
88,149,150
30,193,41
98,106,143
89,159,112
1,100,47
11,168,36
31,108,98
18,147,130
19,123,53
1 材料id 设备id 产品id
2 51 192 14
3 71 160 20
4 82 186 74
5 74 187 116
6 99 123 130
7 21 152 1
8 87 129 37
9 1 163 187
10 20 132 57
11 21 188 48
12 90 158 169
13 91 159 14
14 61 161 174
15 61 150 107
16 54 163 130
17 50 106 20
18 72 138 17
19 3 188 59
20 13 108 89
21 52 101 83
22 91 159 198
23 43 107 174
24 34 177 80
25 35 149 103
26 3 101 133
27 53 103 190
28 17 189 43
29 33 173 189
30 99 113 94
31 47 114 199
32 77 186 189
33 39 184 81
34 52 123 153
35 88 159 123
36 40 128 14
37 44 164 88
38 70 108 87
39 0 107 62
40 10 180 135
41 34 134 32
42 4 140 27
43 6 172 71
44 11 133 32
45 47 122 61
46 87 136 98
47 43 185 34
48 64 198 100
49 46 177 130
50 0 104 141
51 26 108 14
52 89 141 123
53 76 150 62
54 95 151 131
55 93 200 150
56 14 142 28
57 35 112 159
58 70 158 85
59 27 165 169
60 44 161 184
61 5 127 27
62 43 183 29
63 61 174 127
64 91 188 189
65 96 100 120
66 26 161 120
67 76 102 197
68 71 126 136
69 61 136 50
70 43 123 58
71 31 195 179
72 61 157 51
73 11 138 129
74 2 200 112
75 55 180 186
76 1 101 53
77 86 200 128
78 18 101 52
79 43 189 159
80 69 131 67
81 54 174 183
82 16 137 23
83 68 197 138
84 15 196 200
85 58 169 92
86 2 119 186
87 35 118 89
88 66 118 147
89 95 170 51
90 32 139 127
91 38 181 103
92 0 110 184
93 88 149 150
94 30 193 41
95 98 106 143
96 89 159 112
97 1 100 47
98 11 168 36
99 31 108 98
100 18 147 130
101 19 123 53

View File

@ -0,0 +1,22 @@
产业ID,制造产品ID,制造量
0,182,314
1,152,869
1,187,591
2,132,559
3,158,610
3,141,575
3,159,882
4,163,604
4,102,584
4,150,746
5,103,700
5,159,113
6,159,554
6,143,608
6,107,134
7,105,665
7,103,921
8,143,261
8,173,369
9,179,848
10,140,256
1 产业ID 制造产品ID 制造量
2 0 182 314
3 1 152 869
4 1 187 591
5 2 132 559
6 3 158 610
7 3 141 575
8 3 159 882
9 4 163 604
10 4 102 584
11 4 150 746
12 5 103 700
13 5 159 113
14 6 159 554
15 6 143 608
16 6 107 134
17 7 105 665
18 7 103 921
19 8 143 261
20 8 173 369
21 9 179 848
22 10 140 256

View File

@ -0,0 +1,101 @@
产品id,种类
1,材料
2,材料
3,材料
4,材料
5,材料
6,材料
7,材料
8,材料
9,材料
10,材料
11,材料
12,材料
13,材料
14,材料
15,材料
16,材料
17,材料
18,材料
19,材料
20,材料
21,材料
22,材料
23,材料
24,材料
25,材料
26,材料
27,材料
28,材料
29,材料
30,材料
31,材料
32,材料
33,材料
34,材料
35,材料
36,材料
37,材料
38,材料
39,材料
40,材料
41,材料
42,材料
43,材料
44,材料
45,材料
46,材料
47,材料
48,材料
49,材料
50,材料
51,材料
52,材料
53,材料
54,材料
55,材料
56,材料
57,材料
58,材料
59,材料
60,材料
61,材料
62,设备
63,设备
64,设备
65,设备
66,设备
67,设备
68,设备
69,设备
70,设备
71,设备
72,设备
73,设备
74,设备
75,设备
76,设备
77,设备
78,设备
79,设备
80,设备
81,设备
82,设备
83,设备
84,设备
85,设备
86,设备
87,设备
88,设备
89,设备
90,设备
91,设备
92,设备
93,设备
94,设备
95,设备
96,设备
97,设备
98,设备
99,设备
100,设备
1 产品id 种类
2 1 材料
3 2 材料
4 3 材料
5 4 材料
6 5 材料
7 6 材料
8 7 材料
9 8 材料
10 9 材料
11 10 材料
12 11 材料
13 12 材料
14 13 材料
15 14 材料
16 15 材料
17 16 材料
18 17 材料
19 18 材料
20 19 材料
21 20 材料
22 21 材料
23 22 材料
24 23 材料
25 24 材料
26 25 材料
27 26 材料
28 27 材料
29 28 材料
30 29 材料
31 30 材料
32 31 材料
33 32 材料
34 33 材料
35 34 材料
36 35 材料
37 36 材料
38 37 材料
39 38 材料
40 39 材料
41 40 材料
42 41 材料
43 42 材料
44 43 材料
45 44 材料
46 45 材料
47 46 材料
48 47 材料
49 48 材料
50 49 材料
51 50 材料
52 51 材料
53 52 材料
54 53 材料
55 54 材料
56 55 材料
57 56 材料
58 57 材料
59 58 材料
60 59 材料
61 60 材料
62 61 材料
63 62 设备
64 63 设备
65 64 设备
66 65 设备
67 66 设备
68 67 设备
69 68 设备
70 69 设备
71 70 设备
72 71 设备
73 72 设备
74 73 设备
75 74 设备
76 75 设备
77 76 设备
78 77 设备
79 78 设备
80 79 设备
81 80 设备
82 81 设备
83 82 设备
84 83 设备
85 84 设备
86 85 设备
87 86 设备
88 87 设备
89 88 设备
90 89 设备
91 90 设备
92 91 设备
93 92 设备
94 93 设备
95 94 设备
96 95 设备
97 96 设备
98 97 设备
99 98 设备
100 99 设备
101 100 设备

View File

@ -0,0 +1,25 @@
import pandas as pd
import numpy as np
# 设置数据行数
total_rows = 100 # 总共100行
material_count = 61 # 前61行为材料
# 生成产品id
product_ids = np.arange(1, total_rows + 1)
# 生成种类前61行是材料后面是设备
categories = ['材料'] * material_count + ['设备'] * (total_rows - material_count)
# 创建数据框
df_products = pd.DataFrame({
'产品id': product_ids,
'种类': categories
})
# 保存为CSV文件
file_path_products = '测试数据 products_materials_equipment.csv'
df_products.to_csv(file_path_products, index=False) # index=False 不保存行索引
# 打印文件路径
print(f"CSV 文件已生成,路径为: {file_path_products}")

View File

@ -0,0 +1,42 @@
import pandas as pd
import numpy as np
# 设置随机种子,以便结果可重复
np.random.seed(42)
# 定义生成数据的行数
num_rows = 100 # 生成 100 行数据
# 创建空列表来存储生成的ID
material_ids = []
device_ids = []
product_ids = []
# 生成材料、设备、产品的ID确保同一行内的ID不重复
for _ in range(num_rows):
mat_id = np.random.randint(0, 100) # 材料ID范围 0-99
dev_id = np.random.randint(100, 201) # 设备ID范围 100-199
# 确保产品ID在当前行与材料ID和设备ID不重复
while True:
prod_id = np.random.randint(0, 201)
if prod_id != mat_id and prod_id != dev_id:
break
material_ids.append(mat_id)
device_ids.append(dev_id)
product_ids.append(prod_id)
# 创建数据框将三个ID列结合起来
df_ids = pd.DataFrame({
'材料id': material_ids,
'设备id': device_ids,
'产品id': product_ids
})
# 指定文件路径并保存为CSV文件
file_path_ids = '测试数据 material_device_product_ids.csv'
df_ids.to_csv(file_path_ids, index=False) # index=False 表示不保存行索引
# 打印文件路径
print(f"CSV 文件已生成,路径为: {file_path_ids}")

View File

@ -0,0 +1,25 @@
import pandas as pd
import numpy as np
# 设置随机种子以确保结果可重复
np.random.seed(42)
# 定义行数,即生成多少个设备
num_rows = 10
# 生成设备id例如100到200之间的设备ID
device_ids = np.random.randint(100, 200, size=num_rows)
# 生成设备残值假设范围在1000到10000之间
device_salvage_values = np.random.randint(10, 1000, size=num_rows)
# 创建数据框将设备id和设备残值结合起来
df_devices = pd.DataFrame({
'设备id': device_ids,
'设备残值': device_salvage_values
})
# 保存为CSV文件
file_path_devices = '测试数据 device_salvage_values.csv'
df_devices.to_csv(file_path_devices, index=False)

View File

@ -0,0 +1,17 @@
import pandas as pd
Firm_Prod = pd.read_csv("input_data/Firm_amended.csv")
Firm_Prod.fillna(0, inplace=True)
# Stack the firm-product relationships into a DataFrame
firm_prod = pd.DataFrame({'bool': Firm_Prod.loc[:, '1':].stack()})
firm_prod = firm_prod[firm_prod['bool'] == 1].reset_index()
firm_prod.drop('bool', axis=1, inplace=True)
firm_prod.rename({'level_0': 'Firm_Code', 'level_1': 'Product_Code'}, axis=1, inplace=True)
firm_prod['Firm_Code'] = firm_prod['Firm_Code'].astype('string')
# 保存为新的 CSV 文件
output_file_path = 'input_data/firm_industry_relation.csv'
firm_prod.to_csv(output_file_path, index=False)
print(f"新的 CSV 文件已保存到: {output_file_path}")