1.一种时间窗约束下的卡车无人机任务分配方法,其特征在于,包括以下步骤:S1、确定配送任务的基础信息;
S2、基于基础信息,构造卡车的初始配送路线;
S3、基于卡车的初始配送路线,生成无人机路线,并得到卡车无人机配送路线的解;
S4、构建邻域结构;
S5、基于邻域结构,采用双重变邻域搜索算法对卡车无人机配送路线的解进行迭代优化,获得最优卡车无人机配送路线;
所述步骤S1中的基础信息包括顾客的初始位置对应的距离矩阵,顾客的时间窗对应的时序约束矩阵以及配送任务需要的卡车数量;
其中,基于n个顾客点 ,确定两两顾客之间欧氏距离的代价矩阵,即为距离矩阵D;
第i个顾客的时间窗为 ,根据全部顾客的时间窗得到对应的时序约束矩阵为 ;
表示时序约束矩阵 的第 行第 列的元素,若 ,则 ,否则 ;其中,表示允许顾客i最早被访问的时间, 表示允许顾客i最晚被访问的时间;
所述步骤S2具体为:
S21、初始化卡车路线 ,将仓库点0加入到当前已访问点的集合 中;
同时,将当前已行驶距离最短的卡车记为 ,且当有多辆已行驶距离相同的卡车时,从中随机抽取一辆卡车记为 ;
S22、根据时序约束矩阵 得到由 中全零列的索引构成的集合B,基于集合B确定待插入的顾客点 并将其插入到卡车 的当前路线中;
S23、基于卡车 的当前路线,更新集合 、时序矩阵 和卡车 的路线 ,并根据所有卡车路线更新 ;
S24、判断当前集合 中是否包含了全部的顾客点索引;
若是,则进入步骤S25;
若否,则返回步骤S22;
S25、将当前所有卡车路线作为初始配送路线;
所述步骤S22中,待插入的顾客点 为:式中, 表示卡车 当前路线上最后一位顾客的索引, 表示卡车 从顾客点 到顾客点 的旅行时间;
所述步骤S23中,集合 、时序矩阵 和卡车 的路线 的更新公式为:式中, 表示集合中元素仅为顾客点 的集合, 表示时序矩阵 中第 行的全部元素, 表示并集;
所述步骤S3具体为:
利用Fast‑2Opt策略对卡车的初始配送路线进行初步优化,再利用FindSortie策略生成无人机路线,进而得到卡车无人机配送路线的初始解 ,并初始化当前解 、全局最优解 ,且记解 的旅行成本为 , 的旅行成本为 ;
所述步骤S4中,构建的邻域结构的邻域操作包括:(1)随机交换点:随机取解向量的上部向量中的两个点,并将该两点的位置进行交换;
(2)随机交换整体:随机取整个向量中的两列,并将其位置进行交换;
(3)随机插入点:随机取解向量的上部向量中的一个点,并随机插入到上部向量的其他位置;
(4)随机插入整体:随机取整个解向量中的一列,并随机插入到整个解向量的其他位置;
(5)去除无人机路线:随机取解向量的下部向量中元素值为1的点,将其值改为0;
(6)添加无人机路线:随机取解向量的下部向量中元素值为0的点,将其值改为1;
(7)随机翻转点:随机取解向量的下部向量中的两个点,然后将下部向量中这两个点之间的序列进行翻转;
(8)随机改变值:随机取解向量的下部向量中的一段序列,然后将该段序列的值进行转变;
(9)随机交换不同的值:随机取解向量的下部向量中两个元素值不同的点,并进行位置交换;
(10)下部向量的随机插入:随机取解向量的下部向量中的一个点,并随机插入到下部向量的其他位置;
(11)随机比例交换点:根据卡车数量 ,将解向量分为相应 个局部解向量,然后随机取其中两个局部解向量的上部向量中的两段序列,并满足:(12)随机比例交换整体:根据卡车数量 ,将解向量分为相应 个局部解向量,然后随机取其中两个整个局部解向量中的两段序列,并满足:式中, 、 分别是两个局部解向量的上部向量的长度, 、分别是对应其局部解向量的上部向量中该段序列的长度;
所述步骤S5具体为:
S51、初始化迭代次数k=1;
S52、随机采取一个邻域结构对解 进行一次邻域扰动,得到扰动后的解为 ,并记解的旅行成本为 ;
S53、采用操作 对解 进行迭代优化得到新的解 和对应的旅行成本 ,并判断 是否成立;
若是,则将解 赋予解 ,旅行成本 赋予 ,解 赋予全局最优解 ,旅行成本赋予 ,使k的值为1,返回步骤S52;
若否,则将k的值增加1,并进入步骤S54;
S54、判断 是否成立:
若是,返回步骤S52;
若否,进入步骤S55;
S55、再次初始化迭代次数k=1;
S56、将解 分解为 个局部解向量,每个局部解向量对应各个卡车和其携带的无人机的路线;同时记局部解 为取当前解 的第 个局部解向量,表示第 辆卡车和其携带的无人机的路线的解,且 为 对应的旅行成本;
S57、采用操作 对局部解 进行迭代优化,得到新的局部解 ,并将局部解 取代解 中的 部分,得到新的整体解 ,同时更新其旅行成本 ;
S58、判断 是否成立;
若是,则使k的值增加1,并返回步骤S57;
若否,则将整体解 赋予 ,整体解 旅行成本赋予 ,并进入步骤S59;
S59、判断算法运行时长是否达到预设时长;
若是,则输出当前全局最优解 和对应的旅行成本 ,停止迭代,得到最优卡车无人机配送路线;
若否,则使k的值为1,并返回步骤S52;所述步骤S53中,操作 的实现方法具体为:S531、取 ,记 表示利用12个邻域结构中的第 个邻域结构对解 进行邻域扰动;
S532、执行 邻域操作得到新的解 ,并记解 的旅行成本为 ;
判断 < 是否成立;
若是,则将解 赋予解 ,同时更新当前局部最优解的旅行成本 ,使q=1,并随机打乱当前12个邻域结构的顺序,进入步骤S533;
若否,则使q的值增加1,进入步骤S533;
S533、判断 是否成立;
若是,则返回步骤S532;
若否,则将解 赋予 ,将旅行成本 的值赋予 ,完成对解 的迭代优化;
所述步骤S57中,操作 的实现方法具体为:S571、取 ,记 表示利用前10个邻域中的第q个邻域对局部解 进行邻域扰动;
S572、执行 邻域操作得到新的局部解 ,并记局部解 的旅行成本为;
判断 是否成立;
若是,则将局部解 赋予局部解 ,同时更新当前局部最优解的旅行成本,使q=1,并随机打乱当前前10个邻域结构的顺序;
若否,则使q的值增加1,并进入步骤S573;
S573、判断 是否成立;
若是,则返回步骤S572;
若否,则将局部解 赋予 ,完成对局部解的迭代优化。
2.根据权利要求1所述的时间窗约束下的卡车无人机任务分配方法,其特征在于,所述步骤S1中,确定配送任务需要的卡车数量的方法为:S11、计算一辆卡车在任意两个顾客点之间行驶的平均时间 ;
S12、计算顾客被服务的平均时间 ;
S13、根据平均时间 和 ,计算一辆卡车在其最大工作时长 内能访问的平均顾客数;
S14、根据平均顾客数 和顾客数量n,计算配送任务中需要的卡车数量 。