[发明专利]一种基于蚁群算法的生产配送调度方法有效

专利信息
申请号: 201510897042.4 申请日: 2015-12-04
公开(公告)号: CN105528675B 公开(公告)日: 2016-11-16
发明(设计)人: 程八一;黄小曼;王刚;胡笑旋;李凯;刘渤海 申请(专利权)人: 合肥工业大学
主分类号: G06Q10/04 分类号: G06Q10/04;G06Q50/28
代理公司: 安徽省合肥新安专利代理有限责任公司 34101 代理人: 陆丽莉;何梅生
地址: 230009 安*** 国省代码: 安徽;34
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 算法 生产 配送 调度 方法
【权利要求书】:

1.一种基于蚁群优化的生产配送调度方法,其特征是按如下步骤进行:

步骤1、假设存在n个批需要进行生产和配送,生产各个批的设备容积记为B;配送各个批的车辆容积记为V;由所述n个批构成一个批集合,记为U={b1,b2,…,bk,…,bn},bk表示第k个批;且将第k个批bk的尺寸记为Sk;将第k个批bk的生产时间记为Tk;将加入同一辆车中进行配送的所有批记为一个组;1≤k≤n;

步骤2、将所述批集合U中的尺寸相同的批分为一类,从而获得a个分类;记为W={w1,w2,…,wz,…,wa},wz表示第z个分类;所述第z个分类wz中的批总数记为fz

步骤3、初始化蚁群算法的各个参数,包括:m表示第m只蚂蚁,并初始化m=1;M表示蚂蚁总数、L表示迭代次数,并初始化L=1;Lmax表示最大迭代次数;

步骤4、定义变量为l,并初始化l=1;定义第k个批bk的标识符为flagk,并初始化flagk=0;

步骤5、创建第L次迭代的第m只蚂蚁的第l个组和与其对应的第l个候选表并使得第L次迭代的第m只蚂蚁能将所述n个批分配到不同个组中进行配送;并第L次迭代的第m只蚂蚁对所有批次完成分组所使用的车辆总数

步骤6、将m+1赋值给m,并返回步骤5执行,直到m=M为止,从而获得第L次迭代的所有M只蚂蚁对所有批次完成分组所使用的车辆总数集合

步骤7、从所述车辆总数集合中选取最小值作为第L次迭代的局部最优解,记为πL

步骤8、利用式(1)更新第L次迭代的第i个候选批bi′和第j个已加入到第l个组中的候选批bj′之间的信息素τij(L),从而获得第L+1次迭代的信息素τij(L+1):

<mrow><msub><mi>&tau;</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>L</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&rho;</mi><mo>)</mo></mrow><msub><mi>&tau;</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>L</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>m</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>L</mi><mo>)</mo></mrow><mo>&dtri;</mo><msub><mi>&tau;</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>

式(1)中,ρ表示信息素的蒸发速率;mij(L)表示第L次迭代中第i个候选批bi′和第j个已加入到第l个组中的候选批bj′被分到同一组的次数;并有:

步骤9、利用式(3)和式(4)判断τij(L+1)是否满足信息素浓度限定区间[τminmax],若满足,则保留第L+1次迭代的信息素τij(L+1),并执行步骤11;否则,执行步骤10:

<mrow><msub><mi>&tau;</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mo>&le;</mo><mfrac><mn>1</mn><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&rho;</mi><mo>)</mo><mi>f</mi><mo>(</mo><msup><mi>&pi;</mi><mo>*</mo></msup><mo>)</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>

<mrow><msub><mi>&tau;</mi><mi>min</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>&tau;</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mroot><mn>0.05</mn><mi>a</mi></mroot><mo>)</mo></mrow></mrow><mrow><mo>(</mo><mi>a</mi><mo>/</mo><mn>2</mn><mo>-</mo><mn>1</mn><mo>)</mo><mroot><mn>0.05</mn><mi>a</mi></mroot></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>

式(3)和式(4)中,π*表示当前已获得的所有局部最优解中的最小值;

步骤10、若τij(L+1)≥τmax,则将τmax赋值给τij(L+1);若τij(L+1)≤τmin,则将τmin赋值给τij(L+1);

步骤11;将L+1赋值给L,判断L<Lmax是否成立,若成立,返回步骤4执行,否则完成Lmax次迭代,并获得全局最优解πbest,即为Lmax次迭代中的所有局部最优解的最小值;以全局最优解πbest所对应的配送方案作为最优配送方案;

步骤12、将最优配送方案中每一组中的批按照生产时间进行降序排序,获得的排序结果作为批生产的次序,从而获得最优生产和配送联合调度方案。

2.根据权利要求1所述的基于蚁群优化的生产配送调度方法,其特征是,所述步骤5中,第L次迭代的第m只蚂蚁是按如下步骤将所述n个批分配到不同组中进行配送:

步骤5.1、定义变量f;

步骤5.2、初始化z=1;

步骤5.3、初始化f=1;

步骤5.4、判断所述第z个分类wz中选出第f个批的标识符flagf是否为1;若为1,则表示第f个批已经完成分组,并执行步骤5.5;否则,将第z个分类wz中选出第f个批加入到所述第l个候选表中,并执行步骤5.6;

步骤5.5、将f+1赋值给f,并返回步骤5.4执行,直到f=fz为止后,执行步骤5.6;

步骤5.6、将z+1赋值给z,并返回步骤5.3执行;直到z=a为止后,从而获得待更新的第l个候选表记所述待更新的第l个候选表中的候选批为{b1,b2,…,bi,…,ba};1≤i≤a;

步骤5.7、从所述待更新的候选表中选择尺寸最大的批bkey′作为关键批加入到所述第l个组并将关键批bkey′的标识符flag′key置为1;然后从候选表中删除关键批bkey′;

步骤5.8、利用式(5)获得第m只蚂蚁将所述待更新的第l个候选表中第i个候选批bi′加入到第l个组的候选概率从而获得第m只蚂蚁将所有候选批加入到第l个组的候选概率集合

<mrow><msubsup><mi>P</mi><mrow><mi>i</mi><mi>l</mi></mrow><mi>m</mi></msubsup><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mfrac><mrow><msubsup><mi>&theta;</mi><mrow><mi>i</mi><mi>l</mi></mrow><mi>&alpha;</mi></msubsup><msubsup><mi>&eta;</mi><mrow><mi>i</mi><mi>l</mi></mrow><mi>&beta;</mi></msubsup></mrow><mrow><msub><mi>&Sigma;</mi><mrow><msub><mi>b</mi><msup><mi>i</mi><mo>&prime;</mo></msup></msub><mo>&Element;</mo><msubsup><mi>X</mi><mi>l</mi><mrow><mo>&prime;</mo><mrow><mo>(</mo><mi>L</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></msubsup></mrow></msub><msubsup><mi>&theta;</mi><mrow><mi>i</mi><mi>l</mi></mrow><mi>&alpha;</mi></msubsup><msubsup><mi>&eta;</mi><mrow><mi>i</mi><mi>l</mi></mrow><mi>&beta;</mi></msubsup></mrow></mfrac></mtd><mtd><mrow><msub><mi>b</mi><mi>i</mi></msub><mo>&Element;</mo><msup><msub><mi>X</mi><mi>l</mi></msub><mrow><mrow><mo>(</mo><mi>L</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></msup></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>e</mi><mi>l</mi><mi>s</mi><mi>e</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>

式(5)中,α为信息素的权重,β为启发式信息的权重;θil表示第i个候选批bi′能加入到第l个组中配送的期望度;ηil表示将第i个候选批bi′能加入到第l个组配送的启发式信息;并有:

<mrow><msub><mi>&theta;</mi><mrow><mi>i</mi><mi>l</mi></mrow></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mo>|</mo><msubsup><mi>G</mi><mi>l</mi><mrow><mrow><mo>(</mo><mi>L</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></msubsup><mo>|</mo></mrow></mfrac><msub><mi>&Sigma;</mi><mrow><mi>j</mi><mo>&Element;</mo><msubsup><mi>G</mi><mi>l</mi><mrow><mrow><mo>(</mo><mi>L</mi><mo>)</mo></mrow><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></msubsup></mrow></msub><msub><mi>&tau;</mi><mrow><mi>i</mi><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>L</mi><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>

<mrow><msub><mi>&eta;</mi><mrow><mi>i</mi><mi>l</mi></mrow></msub><mo>=</mo><mfrac><msub><mi>S</mi><mi>i</mi></msub><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></msubsup><msub><mi>S</mi><mi>i</mi></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>7</mn><mo>)</mo></mrow></mrow>

式(6)中,τij表示第L次迭代的第i个候选批bi′和第j个已加入到第l个组中的候选批bj′之间的信息素,1<i≠j≤a;Si表示第i个候选批bi′的尺寸;

步骤5.9、从所述候选概率集合中选出最大候选概率所对应的最大候选批,记为b′max;则所述最大候选批b′max的尺寸记为smax

步骤5.10、将所述最大候选批b′max加入到所述第l个组并将最大候选批b′max的标识符flag′max置为1;

步骤5.11、将所述车辆容积V减去所述最大候选批b′max的尺寸smax,获得剩余车辆容积,记为

步骤5.12、根据所述剩余车辆容积从所述待更新的第l个候选表中删除尺寸大于所述剩余车辆容积的候选批;从而获得更新的第l个候选表Xl(L)(m)

步骤5.13、获得所述最大候选批b′max所对应的分类,记为wmax

步骤5.14、判断所述最大候选批b′max在所对应的分类wmax中是否为第fz个批;若是,则从更新的第l个候选表Xl(L)(m)中删除所述最大候选批b′max;否则,从更新的第l个候选表Xl(L)(m)中删除所述最大候选批b′max,并将所述最大候选批b′max所对应的分类wmax中第fmax+1个批加入到所述更新的第l个候选表Xl(L)(m)中,从而获得再次更新的第l个候选表Xl(L)(m)

步骤5.15、以所述再次更新的第l个候选表Xl(L)(m)作为待更新的第l个候选表并返回步骤5.8顺序执行,直到待更新的第l个候选表为空为止,即将第L次迭代的第m只蚂蚁的第l个组加满;从而获得第L次迭代的第m只蚂蚁的第l个组的配送方案;

步骤5.16、判断n个批的标识符是否都为1,若都为1,则表示完成第L次迭代的第m只蚂蚁对所述n个批的分配;并将l赋值给否则,将l+1赋值给l,并返回步骤5顺序执行。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于合肥工业大学,未经合肥工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510897042.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top