1.一种基于策略梯度的超启发算法的车辆路径优化方法,其特征在于,所述方法包括以下步骤:
步骤1分析车辆路径问题,采用Augerat’s instances数据集,车辆路径问题的成本矩阵的元素是欧几里得距离;
假定配送中心设为i=0,客户点设为L(i=1,2,3,…,L),最多车辆数设为K(k=1,2,
3,…K),每辆车具有相同载重量为q,每个客户点需求量设为di(i=1,2,3,…,L),客户i到客户j的距离设为cij,优化的目标是行驶距离最短,一个完整的解包含了全部路径的集合;
步骤2输入系统所需的各种参数;设定Actor和Critic神经网络的结构并初始化权重参数;
步骤3通过K‑means聚类算法初始化生成种群规模为Npop的初始种群Pop(pi=p1,p2,p3,...,pnp),由初始种群根据目标函数计算种群中每个个体的适应度值f(fi=f1,f2,f3,...,fnp);随机挑选种群中的一个个体pi及其适应度值fi,初始化PB=pi,FB=fi,其中PBA A代表最优解个体,FB代表最优适应度值,设LLH数量为N ,Action取值为(1,2,3,…,N)整数,动作选择概率P=0.8,训练最大步数Dmax=800,状态值State={f,diff},其中f当代种群中最优个相较上一代最优个体改进的程度,diff是指种群在经过Action更新后两代之间的差异度;通过式(1)和式(2)计算State:A
步骤4随机生成一个[0,1]之间的数字,如果rand≤P,则随机从N个底层算子中挑选一个作为对种群进行处理的动作a;反之,如果rand>P,则将State输入Actor网络输出一个动作a;使用上面得到的动作对种群Pop中的个体进行处理,产生新的个体Ind,适应度值fit,判断,如果fit
步骤5判断mod(G,Dmax)是否等于0,如果不等于0,判断解是否连续一定的代数未改进,如果是,随机选择一个变异算子作为动作a,并使用该动作a对种群进行操作处理,反之进入步骤4;如果等于0,则从Experience Pool中抽取N条状态转移数据[s,a,r,st],Actor网络根据st向Critic网络提供at,同时Critic网络根据(s,a)与(st,at)得到Q(s,a)与Q(st,at),计算TD偏差,Critic网络根据TD偏差,按照相应公式进行权重参数的更新,Actor网络根据Critic网络提供的Q(st,at),按照相应公式进行权重参数更新,Actor和Critic神经网络权重参数的更新主要根据公式(4)和(5)所示:ωt+1=ωt+α[rt+γQ(st+1,at+1)‑Q(st,at)] (4)式中,ω,θ分别为Critic网络和Actor网络权重参数;α为Critic网络学习率,β为Actor网络学习率;t下标代表上代对应值,t+1代表此代更新后的值;
步骤6判断G是否大于最大迭代次数Gmax或者解在设定的代数内未改进,如果上述两条件都未达到,判断解是否连续一定的代数未改进,如果是,随机选择一个变异算子作为动作a,并使用该动作a对种群进行操作处理,反之进入步骤4,反之则输出最优解,完成任务。
2.如权利要求1所述的一种基于策略梯度的超启发算法的车辆路径优化方法,其特征在于,所述步骤2中,生成初始种群组的过程如下:
2.1)以配送中心为起点,对于第k辆车的配送路径,随机分配客户点到该条路径中,判断车辆的载重约束,若未超出标准载重量,则继续随机分配客户点,反之则生成第k+1条路径;重复循环,当所有客户点都被分配到相应配送路径中,则一个初始种群个体生成;
2.2)多次进行上述操作,生成设定数量个体的种群,选取种群中配送路径最短的个体,即该配送路径中配送车辆数为k,将k设为聚类块数;
2.3)将每个车辆配送的客户点中距离配送中心距离最近的客户点作为基准,其余客户点按照与基准客户点的距离远近划分为k个聚类块;
2.4)随机排列k个聚类块,根据车辆载重量约束,按照聚类块排列顺序,从相应聚类块中随机挑选客户点分配到配送路径中,若k块中客户点未能满足某条配送路径车辆载重,则向k+1聚类块中随机挑选客户点,直至达到车辆载重约束,反之则选用新的配送车辆,当所有客户点都被分配到相应配送路径中,由此产生一个初始解个体。