您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 有时间限制的物资配送车辆路径问题
1有时间限制的物资配送车辆路径问题摘要:这是一个带有时间约束的车辆路径安排问题,车辆路径问题是指一定数量的各自有不同货物需求的客户,配送中心向客户提供货物,由一个车队负责分送货物,组织适当的行车路线,并能在一定约束条件下,使客户的需求得到满足且达到诸如路程最短,成本最小,耗费时间最少等目的。根据题中所给的条件,我们建立了一个求最短路径的模型,所用到的算法是遗传算法,遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然计划过程搜索最优解的方法。我们暂且考虑车辆都在规定时间内到达客户的情况,这种做法虽有不妥之处却在一定程度上简化了该模型。我们所建立的模型针对该问题,在需求量、接货时间段、各种费用消耗已知的情况下,采用规划模型,引入0-1变量,建立各个约束条件,包括车辆的容量限制、到达每个客户的车辆和离开每个客户的车辆均为1的限制、货物剩余量、时间段限制,目标函数为可行路径长度的最小化。根据这些约束条件及所建立模型,我们可以编程解决该问题,在本文假设条件下,可得:最短路径为:910公里,发车数量为:3辆,货车行驶路径分别为:0-8-5-7-0,0-3-1-2-0,0-6-4-0车辆编号所执行的任务路线到达各点的时间路线长度货运量10-8-5-7-00-1.6-3.9-7.7-13.980+75+90+160=4053+1.5+2.5=720-3-1-2-00-1.5-3.3-5.6-8.875+40+65+60=2404.5+2+1.5=830-6-4-00-2-6-10.8100+75+90=2654+3=7但是,由于受到我们假设的约束,这样得出的结果未必为最优解,然后我们可用典型的单源最短路径算法即Dijkstra(迪杰斯特拉)算法进行优化,这种算法用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩散,直到扩散到终点为止。优化后可得最短路为公里885,三条路径分别为分别为:0-8-5-7-2-0,0-3-1-2-0,0-6-4-0。关键词:遗传算法,迪杰特斯拉算法,时间限制,车辆路径2一、问题重述物流中心O有容量为Q的车辆若干辆,负责对需求量分别为iq的iN个客户进行货物派送工作,客户i的货物需求量为iq,且iqQ,车辆必须在一定的时间范围,iiab内到达,否则会有一定的损失,按照要求求解一下两个问题:1.建立送货车辆每天总运行里程最短的一般数学模型,并给出求解方法。2.具体求解以下算例,载重量为Q8吨、平均速度为v50千米/小时的送货车辆从物流中心(i0)出发,为编号是i1,2,…,8的8个客户配送物资。某日,第i个客户所需物资的重量为iq吨(iqQ),在第i个客户处卸货时间为is小时,第i个客户要求送货车辆到达的时间范围,iiab由表1给出。物流中心与各客户以及各客户间的公路里程(单位:千米)由表2给出。问当日如何安排送货车辆(包括出动车辆的台数以及每一台车辆的具体行驶路径)才能使总运行里程最短表1物资配送任务及其要求客户i12345678iq(吨)21.54.531.542.53is(小时)121322.530.8,iiab[1,4][4,6][1,2][4,7][3,5.5][2,5][5,8][1.5,4]3表2点对之间的公路里程(千米)ij0123456780040607590200100160801400654010050751101002606507510010075757537540750100509090150490100100100010075751005200501005010007090756100757590757007010071601107590759070010088010075150100751001000二、问题分析本题属于比较常见的车辆路径问题(VRP),不同的是,装货点只有一个。车辆路径问题,即对于多个装货点和卸货点,组织适当的行车线路,使车辆有序地通过它们,在满足一定的约束条件(如货物需求量、发送量、交发货时间、车辆容量限制、行驶里程限制、时间限制,即时间窗等)下,达到一定问题的目标(如路程最短、费用最少、时间尽量少、使用车辆数尽量少等)。要在一定的约束条件下,使得派送总费用最小(派送总费用包括运输成本,车辆在客户要求到达时间之前到达产生的等待损失,车辆在客户要求到达时间之后到达所受惩罚等),相应的,总路程也最短。现在就要根据这些约束条件,从而确定最佳派送方案。题中已给定客户i的货物需求量iq,每个客户的接货时间范围[ia,ib],卸货时间is,和物流中心与各客户之间及客户与客户之间的路程ijd,货车最大载重量Q,货车行驶速度v等,因此,我们便要根据题意,选取若干辆车进行送货,然后考虑每辆车负责哪些客户的送货任务。我们可4以在适当合理的假设下,通过编程,给出满足题中限制条件(各客户时间范围,货车最大载重量,剩余物资等)的很多参考方案,并在不重复的基础上选出使得总路程最小的路径,从而建立最优化模型确定最佳车辆派送方案。三、模型假设1、车辆不会出现折线行走,即车辆在经过某个客户点时一定卸货。2、物流中心有足够的资源以及足够的车辆以供配送。3、每辆车送货行驶时不会有突发状况影响车辆的送货计划以及车辆速度。4、每个客户的物资只能由一辆车辆配送。四、符号定义与说明O物流中心Q车辆的最大送货量m运送车辆的总数,iiab第i个客户最早到时间为ia,第i个客户的最晚到时间ib。iq第i个客户的所需货物数量ijdi到j的路程ijt车辆从i到j的行驶时间is车辆在i处的卸货(等待)时间ijkx编号为k的车辆从i走到jz所有车辆行驶的总路程ikyi的货物由编号为k的车辆完成5五、模型建立与求解1、模型思路给出所有路径(穷举法或图的遍历)——限制条件下求解可行路径(遗传算法)——在求出的路径中选择最短路径(优化)——考虑车辆返回物流中心时可走折线路线,用迪杰特斯拉算法求解最短路径(最优化)。2、模型建立(1)建立二维数组,对从物流中心出发的所有客户进行全排列。或客户与物流中心均看成点,互相连接,标记其之间距离,使其成为图,图的遍历,指的是从图中的任一顶点出发,对图中的所有顶点访问一次且只访问一次。本题中,我们采用方法来进行编程。(2)根据题意,模型所求目标函数为ijninjmkijkdxz001minv车辆的平均行驶速度6限制条件为:1NikiqikyQ(车辆k的运输总重不超过车辆的最大载重)iijiibvdsa(车辆的到达时间在所规定的,iiab内)mi=01mikky=(每个客户的货物只能由一辆车来配送)1i=1,2......NNjijkx0=iky(保证每个到达i点的车辆离开i点)Niijkx0=jky(3)遗传算法取可行路径1.编码采用自然数编码,即序数编码。货物运输路线可以编成长度为N+m的染色体11121s21210,,,,0,,,0,,0,,,)tmmwiiiiiii(,,其中,iki表示第iki项任务。0表示车场,m表示完成任务所需的车辆数。2.出生初始群体初始群体随机产生,即产生N项货物运输任务点的全排列,12,,,Niii,如果11sijjqQ,且1sijjqQ,将s至N的数向后移动一位,将0插入第s位。接着,继续上述操作,直到m个70全部插入为止。这样就构成了一条初始染色体。用这种方法构造一个群体的染色体。如:031285764,该编码插零之后变成03120857064。它代表着需要三辆车运输货物。其中,第1辆车行走路线为03120,即从仓库出发到依次到商店再回到仓库。第2辆车行走路线为08570,第3辆车行走路线为0640。3.适应度函数适应度函数取'kkbzfz,其中kf为染色体kv的适应度,b为常数,'z为初始种群中最好的染色体的运输成本,kz为染色体kv对应的运输成本。4.遗传算子选取最佳保留的轮盘赌复制法进行染色体的复制。变异算子采用反转变异。交叉算子用最大保留交叉,其操作过程为:a)若染色体交叉点处的两个基因都为0,则直接进行顺序交叉运算;b)若染色体交叉点处的基因不全为0,则将交叉点左移(右移),直到左右两个交叉处的基因都为0,再进行顺序交叉运算。5.算法的实现步骤a)初始化:设置进化代数计数器t=0,设置最大进化代数T,随机生成M个个体作为初始群体P(0).b)个体评价:计算群体P(t)中各个个体的适应度。c)选择运算:将选择算子作为群体。选择的目的是把优化的个体直接遗传到下一代或通过配对交叉产生新的个体在遗传到下一代。选择操作是建立在群体中个体的适应度评估基础上的。d)交叉运算:将交叉算子作用与群体,所谓交叉是指把两个父代个体的部分结构加以替换重组而生成新个体的操作。遗传算法中起核心作用的就是交叉算子。e)变异运算:将变异算子作用于群体。即是对群体中的个体串的某些基因座上的基因值作变动。群体P(t)经过选择、交叉、变异运算之后得到下一代群体P(t+1)。f)终止条件判断:若t=T,则以进化过程中所得到的具有最大适应度个体作为最优解输出,终止计算。(4)优化在可行路径中利用计算机程序进行简单的大小比较,取最小值。(5)再优化考虑到车辆返回物流中心时可以经过其他的点回到物流中心,利用迪杰特斯拉算法对优化的结8果进行再优化。迪杰特斯拉算法(Dijkstra)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解。其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知初始时,S中仅含有源。设u是G的某一个顶点,把从源到u且中间只经过S中顶点的路称为从源到u的特殊路径,并用数组dist记录当前每个顶点所对应的最短特殊路径长度。Dijkstra算法每次从V-S中取出具有最短特殊路,长度的顶点u,将u添加到S中,同时对数组dist作必要的修改。一旦S包含了所有V中顶点,dist就记录了从源到所有其它顶点之间的最短路径长度。3.具体模型求解(问题2)题中所给定的条件为8个客户点,车辆载重Q为8吨,平均行驶速度为50公里每小时,其时间限制和所需货物量由表1表2给出。(1)全排列,共有8!次排列方,数量过多,具体在此不列举。(2)遗传算法选取可行路径,并将可行路径设为二维数组,列举限制条件,编程求解,结果为:(3)优化,利用编程来比较繁琐的路径结果,选出最短的03120857064,即路径为03120,08570,0640,分别由三辆车来配送,总路程为910公里。(4)再优化,利用迪杰特斯拉算法求出物流中心与各个仓库之间的最短距离,如表所示:编号12345678最短距离406075909010013580根据表格,发现2号车辆返回物流中心的过程可以进行优化,从客户7经由客户2再返回物流中心更近,可节省路程25km,即路程总量为885,配送方案为031208572064,三辆车的行驶计划分9别为031200857200640。六、模型评价与推广1、模型评价:由上述所建立的模型,便可得到有时间限制的物流配送车辆路径问题的解决方法。首先我们对此问题进行了合理的假设,并建立相应模型简化了实际中的复杂问题。考虑了主要约束条件对目标函数的影响,相对来说比较符合实际。当然,假设能在一定程度上简化问题,也会忽略实际中某些条件的影响,多种假设同时发生也许会产生大的影响。例如,我们假设每个客户的需求只能由一辆车配送,但也不排除多辆车配送时耗时更短这种状况,由此所得的最短时间就会小于我们模型中所得结果了。另外,也许会出现在某些客户那里不卸货只是经过的情况,如:从a到b的距离大于从a到c再到b,这时,便可选择由a经过c再到b的路径,但却因为剩余货物量或时间范围等问题在c处不卸货,而我们前面的假设中说,凡是经过的客户都会卸货,所以,由于这个假设,我们得到的时
本文标题:有时间限制的物资配送车辆路径问题
链接地址:https://www.777doc.com/doc-2320195 .html