本发明属于物流车调度,尤其涉及基于双染色体遗传算法的带服务约束多物流车调度方法。
背景技术:
1、本质上,物流运输优化问题可以归结为物流车调度优化问题。目前求解物流车调度优化问题主要存在两类方法:(1)精确方法,如整数规划、动态规划、分枝定界法等,但是随着物流数目的增多,精确方法所需要的计算成本会急剧增长,所以对于大规模物流的调度优化难以发挥作用;(2)启发式方法,如遗传算法、蚁群优化算法等;这类方法通过维持一个种群迭代搜索解空间,寻找物流调度优化的近似最优方案,具有较好的可行性和优化性能。但是现有针对物流调度的启发式方法一方面主要针对单物流车调度优化问题进行设计;另一方面,现有物流调度方法没有考虑到实际应用中用户物流对所服务的物流车的运输限制,如用户物流对车辆大小、类型等的要求。因此,现有物流调度优化方法无法满足日益多样、日益丰富、日益增长的物流运输需求。
技术实现思路
1、本发明所要解决的技术问题是:提出基于双染色体遗传算法的带服务约束多物流车调度方法,将物流调度优化问题建模为带服务约束的多物流车调度优化问题,使用双染色体编码技术将多物流车运输方案编码为遗传算法的个体,使用基于部分匹配交叉的遗传算法,优化物流车调度方案设计,进一步地提升物流调度效率,满足实际应用需求。
2、本发明为解决上述技术问题采用以下技术方案:
3、基于双染色体遗传算法的带服务约束多物流车调度方法,包括如下步骤:
4、s1、获取客户信息、仓库信息、物流车信息。
5、s2、对物流调度运输问题进行建模,基于客户物流信息,构建物流车对客户物流的可服务矩阵。
6、s3、设置交叉概率、变异概率、最大适应值评估次数、种群规模。
7、s4、依据收集的物流编号、物流车编号,随机初始化生成种群,其中种群中的每个个体表示一个可行的多物流车调度方案,由两个染色体表示,第一个染色体表示所有物流编号的随机排列,第二条染色体表示第一条染色体中每个用户物流随机分配的物流车序列。
8、s5、对种群中的每个物流车调度方案进行适应值评估,也即计算每个个体的适应值。
9、s6、依据所评估的适应值,计算物流车调度方案选择概率,根据轮盘赌策略选择种群中相对优秀的物流车调度方案(即种群中的一个个体)作为新种群。
10、s7、将步骤s6形成的新种群中物流车调度方案随机进行两两配对,并按照交叉概率,使用部分匹配交叉操作产生新的物流车调度方案;并依据可服务矩阵,修正物流车的分配,以确保所产生的新物流车调度方案可行。
11、s8、随机选择步骤s7产生的新物流车调度方案,按照变异概率,对所选择的方案进行变异操作,产生新的物流车调度方案,并依据可服务矩阵修正物流车的分配,以确保新产生的物流车调度方案可行。
12、s9、对步骤s8所产生的每个新物流车调度方案进行适应值评估。
13、s10、更新全局最优物流车调度方案,同时保存记录。
14、s11、若适应值评估次数达到预设次数,则输出全局最优的物流车调度方案,否则返回步骤s6重复迭代过程,直到达到预设次数时停止。
15、进一步的,步骤s2中,构建物流车对客户物流的可服务矩阵包括以下内容:
16、构建物流车针对用户物流的可服务矩阵。具体地,设定用户物流个数为 n,物流车辆数为 m,且 n>> m,则可服务矩阵大小为 n× m;而后用0和1填充该矩阵。当某辆物流车满足用户物流的约束条件时,该用户物流所对应的行和该物流车所对应的列元素为1;否则,该元素为0。通过构建的可服务矩阵,带服务约束的多物流车调度优化问题得以建模。
17、进一步的,步骤s4中,随机初始化生成种群包括以下子步骤:
18、s401、对可服务矩阵中的 n个客户和 m个物流车进行编号。
19、s402、针对种群中的每个个体,构建两个 n个元素的向量表示个体中的两条染色体;其中第一条染色体表示用户物流的服务序列,因此可以通过随机生成 n个用户物流编号的排列来初始化第一条染色体;第二条染色体表示分配给第一条染色体中用户物流的物流车,因此可以结合可服务矩阵为每个用户物流分配物流车;当一个用户物流只允许某一特定物流车服务时(即可服务矩阵所对应的行只有一个1),该物流只能分配所指定的特定物流车;当一个用户物流可以允许多个物流车服务时(即可服务矩阵所对应的行有多个1),则随机从这些物流车中选择一个来服务该用户物流。
20、s403、经过步骤s402的操作,生成了一个随机物流调度方案;重复 np次步骤s402的操作,即可生成 np个可行的物流车调度方案,其中 np为预设的种群规模。
21、进一步的,步骤s5中,由于本发明的优化目标是最小化所有物流车的总路径长度,因此,为了与遗传算法中适应值越好个体存活概率越大的准则相适应,本发明将物流车调度方案(个体)适应值定义为物流车调度方案中所有物流车的总路径长度的倒数。
22、对种群中的每个物流车调度方案进行适应值评估的具体公式为:
23、;
24、其中, f表示适应值函数, x i表示当前的物流车调度方案, c i表示第 i个目标客户, c i+1表示第 i+1个目标客户,为第 i个目标客户与第 i+1个目标客户之间的距离,为客户与客户 c1之间的距离, n j表示的是第 j个物流车所服务的客户个数,表示对于单个物流车调度方案中所有物流车的运行距离之和。
25、进一步的,步骤s6中,更新种群包括以下内容:
26、依据每个物流车调度方案的适应值,计算每个物流车调度方案的选择概率,具体计算公式如下:
27、;
28、其中,表示第 k个物流车调度方案被选中的概率,表示第 k个物流车调度方案的适应值,表示拥有 np个物流车调度方案的种群中所有方案的适应值总和。
29、依据轮盘赌选择算法,依次有放回地选取 np个物流车调度方案,形成一个新种群。
30、进一步的,步骤s7中,对新种群中的物流车调度方案进行交叉操作包括以下内容:
31、对新种群中的物流车调度方案进行随机两两配对,针对每对物流车调度方案随机生成一个在(0, 1)之间的均匀随机数;若该随机数小于设定的交叉概率 p c,则这对物流车调度方案需要进行交叉操作;否则,这对物流车调度方案不需要进行交叉操作。
32、交叉操作的具体内容为:针对两个物流车调度方案的第一条染色体执行部分匹配交叉操作,并对交叉后的第一条染色体中重复出现的城市进行纠正;结合可服务矩阵,对第二条染色体的物流车分配进行纠正。其中,对于第一条染色体的部分匹配交叉操作,具体步骤如下:
33、s701、将每对需要进行交叉操作的物流车调度方案命名为亲本1和亲本2;随机选择两个不同的基因点。
34、s702、交换亲本1和亲本2中两个基因点之间的基因片段,产生新的物流服务序列,假设名命名为子代1和子代2。
35、s703、子代1和子代2中的第一条染色体可能存在着重复服务的用户物流,为此,进行冲突检测,找出重复的用户物流;根据交换的基因片段间的映射关系对重复的用户物流进行修正。修正完第一条染色体后,根据可服务矩阵,修正第二条染色体。具体地,针对第一条染色体中的每个用户物流,检查所分配的物流车是否满足用户物流的需求;如果满足,则跳过,继续检查下一个用户物流;否则,需要对所分配的物流车进行纠正;若只有一辆物流车可以服务该用户物流,则用此物流车替换原有的物流车分配;若有多辆物流车可以服务该用户物流,则在所有能服务该用户物流的物流车中随机选择一个来代替原有的物流车分配。经过上述两种修正,交叉操作之后将产生两个可行的子代物流车调度方案。
36、进一步的,步骤s8中,对物流车调度方案进行变异操作包括以下内容:
37、针对交叉操作后种群中的每个物流车调度方案,随机生成一个在(0, 1)之间的均匀随机数;若该随机数小于系统预设的变异概率 p m,则对当前的物流车调度方案进行变异操作;否则,该物流车调度方案不进行变异操作。
38、对于每个需要变异的物流车调度方案,变异操作主要分为两个部分:对第一条染色体的变异操作和对第二条染色体的变异操作。对第一条染色体,随机选择该染色体上的两个不同位置,将这两个位置上的基因进行交换;对第二条染色体,随机选择该染色体上的一个位置,随机将该位置上原有的物流车编号替换为一个可服务该位置上对应第一条染色体上客户物流的物流车。
39、变异操作后的物流车调度方案中物流车的分配可能存在与可服务矩阵不一致的情况。因此,需要对变异后的个体中的第二条染色体进行纠正,以使得所有用户物流分配到的物流车与可服务矩阵一致,不存在冲突。
40、进一步的,步骤s10中,更新全局最优物流车调度方案包括以下内容:
41、对于经历交叉和变异操作后的种群,评估每个物流车调度方案的适应值;而后,将每个物流车调度方案的适应值与全局最优物流车调度方案的适应值进行比较。若某个物流车调度方案的适应值优于当前系统中的全局最优物流车调度方案的适应值,则该物流车调度方案代替当前系统中的全局最优物流车调度方案。更新全局最优物流车调度方案的具体公式如下:
42、;
43、其中,表示当前系统中的全局最优物流车调度方案。
44、进一步的,步骤s11中,输出全局最优的物流车调度方案包括以下内容:
45、初始时适应值评估次数初始化为0,在适应值评估过程中,每对一个物流车调度方案进行一次评估,适应值评估次数加1;若当前适应值评估次数达到预设次数时,则输出全局最优的物流车调度方案;否则返回步骤s6重复迭代过程,直到当前适应值评估次数达到预设次数时停止。预设的适应值评估次数一般设置为1000* n次。
46、本发明采用以上技术方案,与现有技术相比,其显著技术效果如下:
47、本发明所提出的技术应用场景广,考虑到了实际应用场景下不同待运输的物品对于运输车辆大小、形状、属性等诸多方面的要求,构建物流车针对客户物流的可服务矩阵,可以满足多种应用场景的要求,在可服务矩阵的约束下进行调度优化,以满足不同客户物流的需求,更贴近生活实际,具有较好的应用价值。
48、本发明通过构建带服务约束的多物流车调度优化问题,使用双染色体编码技术对物流车运输方案进行编码,提出改进的部分匹配交叉操作和变异操作,基于遗传算法,进行迭代优化,最终找到全局最优或近优的物流车调度方案。该发明技术能够大大节俭物流运输成本,提高物流运输效率。