1.一种基于节约里程和边际代价的多卡车多无人机任务分配方法,其特征在于:包括以下步骤:S1、获取客户点集合和卡车停靠点位置集合;
S2、对客户点集合和卡车停靠点位置集合进行计算,得到各客户点之间的节约矩阵;
S3、根据各客户点之间的节约矩阵获取卡车路径集合;
S4、根据卡车路径集合获取无人机路径集合;
S5、基于卡车路径集合和无人机路径集合进行计算,得到各个无人机对应的路径集合以及对应的卡车无人机的总距离;其中,各个无人机对应的路径集合为分配后的无人机路径集合;
S6、对卡车路径集合、分配后的无人机路径集合以及对应的卡车无人机的总距离进行迭代优化,得到每辆卡车对应的最优卡车路径集合、最优无人机路径集合以及对应的卡车无人机的最优总距离;
所述步骤S2进一步包括:
S2‑1、根据客户点集合 以及卡车停靠点集合 获取各客户点与各卡车停靠点之间的欧氏距离矩阵 ;其中,客户点集合 , 表示客户点数量,卡车停靠点集合 初始为卡车停靠点集合 , 表示给定卡车数量,表示给定卡车停靠点数量;
S2‑2、利用Prim聚类算法对客户点集合 和卡车停靠点集合 进行聚类,得到被聚类到各客户点的卡车停靠点集合 ;
S2‑3、根据公式:
得到客户点 和对应的被聚类后的卡车停靠点 ;其中,表示客户点,表示顶点,表示客户点 和顶点 的欧氏距离, 表示无人机最大飞行距离, 表示取最小值对应的变量值, 表示还没有被聚类的客户点集合,且 初始值为客户点集合 ,表示被聚类到卡车停靠点 的客户点集合, 表示第 个卡车停靠点;
S2‑4、判断客户点 是否可行;若是则进入步骤S2‑5;反之则结束运行;
S2‑5、令卡车停靠点集合 为 ,并根据公式:进行更新,得到更新后的客户点集合 、更新后的卡车停靠点集合 以及更新后的客户点 对应被聚类到的卡车停靠点 ;
S2‑6、判断更新后的客户点集合 是否为空集;若是则进入步骤S2‑7;反之则返回步骤S2‑2;
S2‑7、根据公式:
得到第 个客户点 和第 个客户点 之间形成的路径的距离成本节约值 ;其中,初始值为1, 表示被聚类到客户点 的卡车停靠点, 表示被聚类到客户点的卡车停靠点;
若 ,则将客户点 、客户点 以及对应的距离成本节约值 记录至节约矩阵,将节约矩阵 当前的总行数 的数值加1,其对应公式为:其中,初始值为1,节约矩阵 初始值为空集;
S2‑8、判断标号 是否等于客户点数量 ;若是则进入步骤S2‑9;反之则标号 加1并返回步骤S2‑7;
S2‑9、将第三列至最后一列的节约矩阵 根据第三列的值进行降序排列,得到各客户点之间的节约矩阵 ;
所述步骤S6进一步包括:
S6‑1、根据公式:
得到当前最优卡车路径集合 、当前最优无人机路径集合 、当前最优总距离 以及当前最优卡车停靠点集合 ,且迭代次数 ;其中,表示卡车路径集合, 表示分配后的无人机路径集合, 表示卡车无人机的总距离,表示卡车停靠点位置集合, 表示给定卡车数量;
S6‑2、根据公式:
得到移除卡车停靠点 的卡车停靠点集合 ;
S6‑3、将卡车停靠点集合 作为参数并采用与步骤S2至步骤S4相同的方法,得到对应的卡车路径集合和无人机路径集合;
S6‑4、将卡车停靠点集合 作为参数,采用与步骤S2‑2至S2‑4相同的方法判断是否生成可行解;若是则进入步骤S6‑5;反之则进入步骤S6‑7;
S6‑5、判断基于卡车停靠点集合 得到的总距离 是否小于当前最优总距离;若是则进入步骤S6‑6;反之则进入步骤S6‑7;
S6‑6、根据公式:
对当前最优卡车路径集合 、无人机路径集合 、当前最优总距离以及当前最优卡车停靠点集合 进行更新;
S6‑7、判断迭代次数 是否等于 ;若是则进入步骤S6‑8;反之则迭代次数 加1并返回步骤S6‑2;其中, 表示卡车路径集合 的停靠点总数;
S6‑8、判断当前最优总距离 是否小于 ;若是则进入步骤S6‑9;反之则得到每辆卡车对应的最优卡车路径集合、最优无人机路径集合以及对应的卡车无人机的最优总距离;
S6‑9、重复步骤S5得到各无人机的飞行路径集合 ,将卡车路径集合 赋值为当前最优卡车路径集合 ,将分配后的无人机路径集合 赋值为各无人机的飞行路径集合 ,将总距离 赋值为当前最优总距离 ,将卡车停靠点集合赋值为当前最优卡车停靠点集合 ,并返回步骤S6‑1。
2.根据权利要求1所述的基于节约里程和边际代价的多卡车多无人机任务分配方法,其特征在于:所述步骤S3进一步包括:S3‑1、根据更新后的卡车停靠点集合 获取各停靠点之间的欧氏距离矩阵 ;
S3‑2、根据被聚类到各客户点的卡车停靠点集合 构建初始无人机路径集合 ;其中, , ;
S3‑3、令 ,其中, 表示当前的无人机路径集合, 表示当前的节约矩阵;
S3‑4、判断当前的节约矩阵 是否为空集;若是则进入步骤S3‑12;反之则进入步骤S3‑
5;
S3‑5、根据公式:
移除节约矩阵 的第一行数据,并在无人机路径集合 进行寻找,得到更新后的节约矩阵 以及分别与客户点 和客户点 对应的无人机路径 和 ;
S3‑6、根据客户点 和 在无人机路径 和 中的位置判断无人机路径 和 是否进行融合;若是则进入步骤S3‑7;反之则返回步骤S3‑4;
S3‑7、根据公式:
将无人机路径 和 进行融合,得到融合后的无人机路径 ;其中,表示无人机路径 中的有序顶点集合, 表示无人机路径 中的有序顶点集合, 和 分别表示无人机路径 和 的顶点总数;
S3‑8、判断融合后的无人机路径 是否同时满足无人机最大飞行距离约束和载荷约束;若是则进入步骤S3‑9;反之则返回步骤S3‑4;
S3‑9、将 的结果作为当前的无人机路径集合 ;其中,表示在 中去除 ;
S3‑10、判断融合后的无人机路径 的起飞点 和降落点 是否相同;若是则返回步骤S3‑4;反之则进入步骤S3‑11;
S3‑11、根据公式:
更新各停靠点之间的欧氏距离矩阵 ;其中, 表示融合后的无人机路径 的顶点总数;
S3‑12、利用最小边际算法并根据公式:
得到每辆卡车的路径 ,并更新卡车停靠点集合 和卡车路径 ;其中, 表示卡车编号, 表示卡车停靠点 被分配的卡车编号, 表示卡车停靠点 插入到卡车路径的位置, 表示卡车停靠点 插入到卡车路径 的第 个位置后的卡车 的路径, 表示卡车路径对应的总距离, 表示基于欧氏距离矩阵 遍历计算卡车路径的总旅行距离, 表示该客户点 被分配到的卡车编号记录数组;
S3‑13、重复步骤S3‑12直至卡车停靠点集合 为空集,得到卡车路径集合。
3.根据权利要求2所述的基于节约里程和边际代价的多卡车多无人机任务分配方法,其特征在于:所述步骤S3‑6的融合判断标准为:若客户点 和 位于同一条无人机路径,即 ,则不进行融合;
若在无人机路径 的客户点 不是第一个被无人机服务的客户点,也不是最后一个被无人机服务的客户点,则不进行融合;
若在无人机路径 的客户点 不是第一个被无人机服务的客户点,也不是最后一个被无人机服务的客户点,则不进行融合;
若在无人机路径 的客户点 和在无人机路径 的客户点 都不是第一个或者最后一个被无人机服务的客户点,则不进行融合。
4.根据权利要求2所述的基于节约里程和边际代价的多卡车多无人机任务分配方法,其特征在于:所述步骤S3‑8的无人机最大飞行距离约束为:根据公式:
得到融合后的无人机路径 中的各个顶点对应的当前无人机累计的飞行距离 ;其中, 、 分别表示第 个顶点和第 个顶点, 表示第个顶点 和第 个顶点 之间的欧氏距离;
依次判断各个顶点对应的当前无人机累计的飞行距离 是否大于无人机最大飞行距离;若融合后的无人机路径 中的最后一个顶点对应的当前无人机累计的飞行距离 小于等于无人机最大飞行距离 ,则满足无人机最大飞行距离约束,反之则不满足无人机最大飞行距离约束;
所述步骤S3‑8的无人机载荷约束为:
根据公式:
依次得到融合后的无人机路径 中的各个顶点对应的包裹总量 ;其中, 表示第 个顶点, 表示第 个顶点 需要投递的包裹重量;
根据公式:
得到无人机在离开融合后的无人机路径 中第 个客户点所携带的包裹重量:其中, 表示第 个顶点 需要收取的包裹重量;
判断融合后的无人机路径 中的各个顶点的包裹总量数组 的各元素是否大于可携带最大包裹重量 ;若是则不满足无人机载荷约束;反之则满足无人机载荷约束。
5.根据权利要求2所述的基于节约里程和边际代价的多卡车多无人机任务分配方法,其特征在于:所述步骤S4进一步包括:S4‑1、根据节约里程算法,重复步骤S3‑3至S3‑8得到满足无人机最大飞行距离约束和载荷约束的融合后的无人机路径;
S4‑2、判断满足无人机最大飞行距离约束和载荷约束的融合后的无人机路径是否可行;若是则得到可行无人机路径并进入步骤S4‑3;反之则返回步骤S4‑1;
S4‑3、判断可行无人机路径是否满足无人机数量约束;若是则进入步骤S4‑4;反之则返回步骤S4‑1;
S4‑4、根据步骤S3‑9的公式更新无人机路径集合 ;
S4‑5、判断节约矩阵 是否为空集;若是则进入步骤S4‑6;反之则返回步骤S4‑1;
S4‑6、根据公式:
得到卡车 沿卡车路径 的总距离 ,并将 的值加1;其中,卡车编号 初始值为1,总距离 初始值为0, 表示卡车路径集合 的停靠点总数;
S4‑7、当停靠点 时,将停靠点 恢复至初始值,将 的值加1;
S4‑8、重复步骤S4‑6和S4‑7,将得到的所有总距离 进行相加得到卡车路径集合的总距离 ;
S4‑9、根据公式:
进行计算,直至顶点 ,得到加上在该无人机路径上行驶距离的总距离 ;其中,顶点 初始值为2,总距离 的初始值为 , 表示无人机路径集合 的顶点总数;
S4‑10、将停靠点 的值加1,将顶点 恢复至初始值;
S4‑11、重复步骤S4‑9和S4‑10,对总距离 进行更新,得到卡车路径集合 与无人机路径集合 所对应的总距离 。
6.根据权利要求5所述的基于节约里程和边际代价的多卡车多无人机任务分配方法,其特征在于:所述步骤S4‑2判断融合后的无人机路径是否可行的标准如下:若融合后的无人机路径的起飞点和降落点分别由不同的卡车来访问,则融合后的无人机路径不可行;
若融合后的无人机路径的起飞点和降落点由相同的卡车来访问且融合后的无人机路径的起飞点和降落点不同,卡车先访问无人机路径的降落点,再访问无人机路径的起飞点,则融合后的无人机路径不可行;
所述步骤S4‑3的无人机数量约束为:
令可行无人机路径是由卡车 上的无人机进行访问,且卡车 对应的卡车路径 ,卡车 依次访问卡车停靠点 、可行无人机路径的起飞点 ,即,则根据公式:得到初始无人机路径集合 ;
在初始无人机路径集合 中找到具有不同起飞点和降落点且分别以 为起飞点和降落点的无人机路径集合 和 ,根据:判断卡车 离开卡车停靠点 时搭载的无人机数量 是否小于等于每辆卡车携带的无人机数量 ;若是则满足无人机数量约束;反之则不满足无人机数量约束;其中,表示卡车 从其他卡车停靠点起飞降落到卡车停靠点 的无人机数量,表示卡车 从卡车停靠点 起飞降落到其他卡车停靠点的无人机数量, 表示卡车在离开卡车停靠点 后所搭载的无人机数量,其求取过程为:得到卡车 在离开卡车停靠点 后所搭载的无人机数量 ;其中, 表示具有不同起飞点和降落点且以卡车停靠点 为起飞点的无人机路径集合, 表示卡车 从卡车停靠点 起飞降落到其他卡车停靠点的无人机数量;
若 ,则 ;反之则将 的值加1,并根据公式:依次计算卡车 离开卡车停靠点 搭载的无人机数量 ,直至 ;其中,初始值为1, 表示卡车 离开卡车停靠点 搭载的无人机数量, 表示具有不同起飞点和降落点且以卡车停靠点 为降落点的无人机路径集合, 表示具有不同起飞点和降落点的且以卡车停靠点 为降落点的无人机路径数量,表示具有不同起飞点和降落点且以卡车停靠点 为起飞点的无人机路径集合,表示具有不同起飞点和降落点的且以卡车停靠点 为起飞点的无人机路径数量。
7.根据权利要求6所述的基于节约里程和边际代价的多卡车多无人机任务分配方法,其特征在于:所述步骤S5进一步包括:S5‑1、根据无人机路径集合 、卡车路径集合 以及卡车编号记录数组 ,获取无人机路径集合 ,其对应公式为:其中, 表示第 个无人机路径, 表示第 个无人机路径的第 个客户点,无人机路径集合 初始为空集;
S5‑2、初始化 值,并根据各卡车对应的无人机路径集合 获取两个大小为 的状态标识矩阵 和 ;其中, ;
S5‑3、对各卡车对应的无人机路径集合 进行搜索,得到以卡车停靠点 为起飞点的无人机路径集合 并初始化 ;
S5‑4、基于状态标识矩阵 和 ,依次对无人机路径集合 中的每一条无人机路径进行分配,并判断分配后的每一条无人机路径的起飞点和降落点是否相同;若是则进入步骤S5‑5;反之则进入步骤S5‑6;
S5‑5、根据公式:
将无人机路径 分配至无人机 并更新卡车 上的无人机 的无人机路径集合和状态标识矩阵 ,进入步骤S5‑7;
S5‑6、根据公式:
判断无人机路径 是否可以插入到卡车 上的无人机 的无人机路径集合 ;若是则根据公式:将无人机路径 分配至无人机 并更新卡车 上的无人机 的无人机路径集合、状态标识矩阵 以及无人机 在卡车停靠点集合 的状态标识矩阵 ;其中, 表示且, 表示无人机的降落点位于卡车路径中的位置;
S5‑7、判断当前的 是否等于 ;若是则进入步骤S5‑8;反之则将 的值加1并返回步骤S5‑4;
S5‑8、判断当前的 是否等于 ;若是则进入步骤S5‑9;反之则将 的值加1并返回步骤S5‑3;
S5‑9、判断当前的 是否等于 ;若是则得到分配后的无人机路径集合 ;反之则将的值加1并返回步骤S5‑2。
8.根据权利要求7所述的基于节约里程和边际代价的多卡车多无人机任务分配方法,其特征在于:所述步骤S5‑2的状态标识矩阵 用于描述当无人机路线的起飞点和降落点不同时,该无人机在卡车路径上各个停靠点的使用状态;所述使用状态有四种状态,分别为:卡车 上的无人机 在卡车停靠点 不执行任何操作,则 ;其中,表示卡车 上的无人机 在卡车停靠点 的状态;
卡车 上的无人机 在卡车停靠点 执行一次起飞或降落操作,则 ;
卡车 上的无人机 在卡车停靠点 需要执行一次降落并再次起飞,则;
卡车 上的无人机 没有经过或者降落在卡车停靠点 ,则 ;
定义两个大小为 的矩阵 和 ;初始时,卡车编号 ,矩阵 和 为零矩阵;
所述步骤S5‑2的状态标识矩阵 用于当无人机路线具有相同的起飞点和降落点时,无人机在该路线起飞点的起飞次数。