From a16b352f1051b566bd2d690c86092295ef008490 Mon Sep 17 00:00:00 2001 From: Yofuria <20377277@buaa.edu.cn> Date: Tue, 25 Jul 2023 23:48:53 +0800 Subject: [PATCH] update --- .idea/.name | 2 +- Environment.py | 4 ++-- Order.py | 2 +- OrderSystem.py | 15 ++++++++++++--- demand23.xlsx | Bin 9591 -> 9592 bytes 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/.idea/.name b/.idea/.name index fed8c48..9d346b1 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -OrderSystem.py \ No newline at end of file +Order.py \ No newline at end of file diff --git a/Environment.py b/Environment.py index 6143305..e8fc976 100644 --- a/Environment.py +++ b/Environment.py @@ -84,7 +84,7 @@ class FMSEnv(ap.Model): self.stop() else: print(f"running the {self.t} step") - print(self.the_firm.the_os.ev_ave_delay_time) + print("当期延误时长为:{}".format(self.the_firm.the_os.ev_ave_delay_time)) # Record data after each simulation def update(self): # ? @@ -111,7 +111,7 @@ class FMSEnv(ap.Model): if __name__ == '__main__': dct_para = { - 'time': 60, # 进行总时间数 + 'time': 300, # 进行总时间数 # 'xv_int_max_order': random.randint(30, 50), # 'xv_dlv_product_para': tuple([(30, 100), (30, 50)]), # 'xv_dlv_product_para': tuple([30,40,30,20]), # 读取生产率 np.read. diff --git a/Order.py b/Order.py index a4a3fa9..ce5af22 100644 --- a/Order.py +++ b/Order.py @@ -21,7 +21,7 @@ class Order(ap.Agent): def setup(self, time_created): self.xv_time_created = time_created # 订单创建时间 # read the demand of 23 productions - self.xv_ary_dlv_product = np.asarray(pd.read_excel("demand23.xlsx").to_records(index=False)) # 接神经网络结果 + self.xv_ary_dlv_product = np.asarray(tuple([tuple(x) for x in pd.read_excel("demand23.xlsx").values])) # 接神经网络结果 self.ev_ary_dlv_product = np.asarray(tuple(pd.read_excel("demand23.xlsx").iloc[:, 1])) # 23x1 把产品的顺序按照xv_ary_product_id重新排列!!! self.xv_time_circle = np.random.randint(7, 11, 1) self.xv_dlv_t = self.xv_time_created + self.xv_time_circle # 随机生成期望交付时间 diff --git a/OrderSystem.py b/OrderSystem.py index f32fe42..dcfabb0 100644 --- a/OrderSystem.py +++ b/OrderSystem.py @@ -55,6 +55,7 @@ class OrderSystem(ap.Agent): sorted_indices = np.argsort(self.ev_ary_product_to_produce)[::-1] sorted_data = self.xv_ary_product[sorted_indices] # gap从大到小的产品id gap_sorted = self.ev_ary_product_to_produce[sorted_indices] + # print(gap_sorted) if gap_sorted[0] > 0: # 判断是否存在库存不足 pass else: @@ -65,6 +66,7 @@ class OrderSystem(ap.Agent): sorted_indices = np.argsort(option[:, 3])[::-1] sorted_data = option[sorted_indices] self.ev_int_produce_type = sorted_data[0, 0] + # print(option) # return self.ev_int_produce_type def do_shipment(self, ev_ary_current_product): @@ -76,8 +78,13 @@ class OrderSystem(ap.Agent): # Make shipments based on ranked order list self.ev_ave_delay_time = 0 self.ev_changed_product = np.array([float(x) for x in ev_ary_current_product[:, 1]]) # 23x1 ndarray 存储本次库存的改变 + # print(ev_ary_current_product) + print(self.a_lst_order[0].ev_ary_dlv_product) + if len(self.a_lst_order) > 1: + print(self.a_lst_order[1].ev_ary_dlv_product) for order in self.a_lst_order: - if order.xv_dlv_t == self.model.t: # 第一次交付 + # print(order.xv_dlv_t[0], self.model.t) + if order.xv_dlv_t[0] == self.model.t: # 第一次交付 # Check and make shipment order.ev_is_delivered = True for i in range(self.xv_product_num): @@ -86,7 +93,9 @@ class OrderSystem(ap.Agent): order.ev_ary_dlv_product[i] = 0 else: order.ev_is_delivered = False - elif order.xv_dlv_t < self.model.t and order.ev_is_delivered == False: # 第二次交付 + if order.ev_is_delivered: + print('hhh') + elif order.xv_dlv_t[0] < self.model.t and order.ev_is_delivered == False: # 第二次交付 order.ev_is_delivered = True for i in range(self.xv_product_num): if order.ev_ary_dlv_product[i] > self.ev_changed_product[i]: # 先判断能不能一次性交付 @@ -98,7 +107,7 @@ class OrderSystem(ap.Agent): order.ev_ary_dlv_product = np.zeros((self.xv_product_num,)) order.ev_actual_dlv_t = self.model.t - order.ev_int_delay_time = order.ev_actual_dlv_t - order.xv_dlv_t + order.ev_int_delay_time = order.ev_actual_dlv_t - order.xv_dlv_t[0] self.ev_ave_delay_time += order.ev_int_delay_time * delay_num / 10000 diff --git a/demand23.xlsx b/demand23.xlsx index cb5a8407aa8468bbd6cb1352ed691e4ce6546b41..37319265326c70e86792f13004c39799e904ce86 100644 GIT binary patch delta 492 zcmV+YI#dDFWaf~j9eZPY| zW0?{x%N4|E4hHp-!-I$yl;;}GbzXqBDHzX@l%c$c(Zt$e_Ar@ zj(Us>#&6jea7aiSOR!8Z%Ww(wi!BkYk%DiL#huP7fZ!N1kf5x=K_kFFUJF{9KQC0u zj#H*~Ubs%{xVvn@YjNwInRIKMPN$7&vx?#J2l#q$c2QOJQ&sMY14<&nDc8Vku9M~a z<7)A?e0hlQ&a~WM#*7`fWsg!2RmbyW`LS3%y?#A^M)LRaSlbHc2e{Yj^Y;L9PKxHQff)mACNdDW3ZCa9Ow^d&~@oJE%`tw4i zw47(}#VfPagISQV(Tz%3KWuM6yytIo;k zWP~D*xLup{Y|@>$ecv7Ugxr*G@7*sW)`N7L;9sKGvB{C`8KUQR2L{?A?f_Ahd;eQR z-?J41a2^7}ACuo76_cDHDg-JW005I|RwOn8 i{|S?hBtHSxlg=bO0g#gmB|8DUlSd^h23jEi0000T8QnGj