parameter.py :
self.num_type = 10 # 资源的种类
self.num_ent = 10 # 企业的数量
self.num_type_ent = 4 # 每一种资源对应企业的数量,也就是服务的数量
关于self.num_type_ent的意思,两种解释都有依据。即每一种资源由四家企业提供,每一个子任务对应有四家企业服务。
之前的参数为:
self.num_type = 50 # 资源的种类
self.num_ent = 200 # 企业的数量
self.num_type_ent = 20 # 每个子任务对应服务的数量
self.num_task = 1
self.num_subtask = 10 # 子任务数
修改后的参数为:
self.num_type = 10 # 资源的种类
self.num_ent = 10 # 企业的数量
self.num_type_ent = 4 # 每个子任务对应服务的数量
self.num_task = 1
self.num_subtask = 6 # 子任务数
报错如下:
分析后发现是在生成顾客所在地理位置时
self.add_task = np.random.randint(0, 200)+1 # 顾客所在的地理位置
超过了环境中的 norm_lc的下标设置
envrionment.py
self.end_c = self.pa.norm_lc[self.arr_actions[self.pa.num_subtask-1]-1][self.pa.add_task-1]
for i in range(self.num_ent):
for j in range(self.num_ent):
self.norm_lc[i][j] = (self.max_lc - self.dis_cost[i][j]) / (self.max_lc - self.min_lc)
np.savetxt("./data/norm_lc.txt", self.norm_lc, fmt = "%f", delimiter=" ")
即随机生成的顾客地理位置下标不合适,为了一劳永逸,我们将代码直接修改为:
self.add_task = np.random.randint(0, self.num_ent)+1 # 顾客所在的地理位置