您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页城市物流配送方案优化模型 数学建模

城市物流配送方案优化模型 数学建模

来源:抵帆知识网


天津大学数学建模选拔赛

题 目 城市物流配送方案优化设计

摘要

所谓物流配送就是按照用户的货物(商品)订货要求和物流配送计划,在物流配送节点进行存储、分拣、加工和配货等作业后,将配好的货物送交收货人的过程。本文就如何设计该城市的配送方案和增设新的配送网点并划分配送范围展开讨论。

第一问中,首先,在设计合理的配送方案时,我们要知道评价一个配送方案的优劣需考虑哪些指标。根据层次分析法所得各指标的权重及各因素之间关系可知:合理的配送方案需要优化货车的调度以及行驶路线。

然后,根据该城市的流配送网络路息以及客户位置及需求数据信息,用EXCEL进行数据统计并用matlab绘制物流信息图,在图中可以清晰地看出客户位置密集和稀疏的区域。之后,我们运用雷达图分割法将城市分为20个统筹区(以及100个二级子区域)。

接着,我们针对一个二级子区域分析货车行驶的最佳路线。利用聚类分析和精确重心法在二级子区域N1中设置了7个卸货点,该目标区域内的用户都将在该区域的卸货点取货。我们利用图论中的Floyd算法和哈密尔顿圈模型求解往返最短路线问题,得知最短路线为配送中心124675配送中心 ,最短路程为384.4332KM,最短运货用时为2.11小时。

最后,根据用户位置和需货量,计算出货车数量和车次,并给出了其中一种合理的针对整个城市的货车调度配送方案。

第二问中,我们建立了多韦伯模型,通过非线性0-1规划,确定了城市增加的5个分配中心的位置以及各自的分配送范围。配送中心位置结果如下: 配送中心编号 经度 纬度 3 4 5 6 7 108.0568015 108.679651 108.62185 109.2116693 109.1749773 26.717145 26.96601 25.9739482 26.5863 26.1636702 原配送中心 107.9725615162 26.6060305362822 关键词:层次分析法 聚类分析 精确重心法 Floyd算法 哈密尔顿圈 多韦伯模型

评阅编号 (由组委会填写)

一.问题重述

配送是指在经济合理区域范围内,根据客户要求,对物品进行拣选、加工、包装、分割、组配等作业,并按时送达指定地点的物流活动,即按用户定货要求,在配送中心或其它物流结点进行货物配备,并以最合理方式送交用户。

配送是从用户利益出发、按用户要求进行的一种活动,因此,在观念上必须明确“用户第一”,把用户利益作为设计配送方案时首先要考虑的问题。城市的配送系统不但要考虑企业自身和用户的利益,也应从公众利益出发,尽量减少交通拥挤和废物排放。这无疑更增加了配送系统管理的难度,有效解决该问题对于改善城市出行环境和提高企业服务水平具有重要意义。

基于以上背景,为某企业设计其配送方案,建立数学模型分析如下问题:

(1)假设该公司在整个城区仅有一个配送中心(107.9725615162,26.6060305362822)。附件1中给出了企业顾客位置和需求数据。附件2为配送网络路息。由于顾客需求为平均量,为克服需求高峰车辆不够的情况,实际中通常对每辆车的装载量进行,实际载货量为规定满载量的70%。司机工作时间为每天8小时。不考虑车辆数量,请为企业设计合理的配送方案。(每件产品规格:长:27.5CM,宽:9CM,厚:5CM)。配送用车请参考实际货车规格自己选定。

(2)适当增加配送中心数量,能降低配送成本,假设计划增设5个配送中心,请为各配送网点划分配送范围。

二、问题背景和问题分析

2.1问题背景

所谓物流配送就是按照用户的货物(商品)订货要求和物流配送计划,在物流配送节点(仓库、商店、货物站、物流配送中心等)进行存储、分拣、加工和配货等作业后,将配好的货物送交收货人的过程,城市物流配送是指在城市范围内进行的物流配送业务活动,城市物流配送系统的服务对象归类为:、工业、商业、农业、大众客户。城市物流配送已随客户需求变化从“少品种、大批量、少批次、长周期”向“多品种、小批量、多批次、短周期”转变。随着中国城市化进程的进一步加快,不管是从城市经济发展,还是从城市空间结构、城市交通运输布局及城市基础设施建设来考虑,每个城市都面临一个对原有的物流配送系统进行改造、建立新的物流配送系统的问题,这就是城市物流配送系统优化提出的原因。[1] 2.2问题分析

对于第一问,为了得到最优的配送方案,我们着重从货车的调度和货车的行走路线进行设计。首先我们需要对城市进行分区,并设计货车在所有区域内进行统筹调度的方法。然后,我们针对某一个小的区域,运用图论的知识,寻找货车运送完全部货物的最短路线,实现用户、社会和公司总体利益的最大化。

对于第二问,我们需要找到五个新增配送中心的位置并且划分各个配送网点的配送范围。这是一个典型的多韦伯问题。期间我们不但要注意使得配送中心到用户的距离之和最短。同时也要满足配送中心尽量偏重用户需求量大的地区的要求。

1

三、模型假设

1.建立基本模型时,所有配送用车规格(小型货车)相同。

2.送货时配送用车均以40KM/h的速度匀速行驶。(偏远地区交通环境良好,速度可适当提高)

3..送货时无极端天气以及交通拥挤、交通事故、道路修理等影响送货的情况发生。 4.不存在用户不取货以及退货的情况。

5.货物在包装、囤积和运输过程中没有破损。

6..基本模型中我们只要求货物在订货周期内送达即可,即达到此要求则可实现用户的满意度为满分。

7.在第一问中,我们选取一个子区域进行精确分析,以其为样本估计整个城市的情况,样本具有普遍性。

四、符号约定

xi:用户位置的经度值。 yi:用户位置的纬度值。 x0:配送中心的经度值。 y0:配送中心的纬度值。 i,j:用户位置编号。

:用户相对于配送中心的方位角。 L:用户距离配送中心的距离。 Dij:任意两个用户位置之间的距离。 C:哈密尔顿圈。 V:哈密尔顿圈中的边。

M:某一区域一周之内需要的车次数。 Q:某一区域一周之内的需货量。 N:一辆货车每日行驶车次数。 T:一辆货车行驶一个车次所需时间。 W:评定配选方案是否最优的的指标。 max:判断矩阵A的最大特征值;

CI:判断矩阵A的一致性指标; Zm:“招聘效益最大化”数值。

2

五、模型的建立与求解

5.1 对问题一的求解

问题一中,需要考虑用户需求,公司利益,环境影响等多个方面的问题,给出最佳的配送方案。

5.1.1 数据预处理

1、我们已知,每件产品规格:长:27.5CM,宽:9CM,厚:5CM),体积为1237.5CM3。根据实际情况,我们选定货车箱为长3M,宽1.8CM,高1.8M的东风小型货车,体积为9.72M3。

由题目可知实际中通常对每辆车的装载量进行,为规定满载量的70%,所以实际载物体积为6.804M3,可载5180箱货物。(据计算,货物合理布局后可在货车中全部安放。) 2、对于表中空白数据,预先进行处理:订货周期空白默认为一周,订货量空白默认为0,订货时间空白默认为周六订货,此部分数据少,不影响最后结果。道路ID空白对结果无影响,故不考虑。

5.1.2 设计评定配送方案的指标

倘若想要设计一个最优的配送方案,需要知道哪些指标应该重点考虑,而那些可以在基本模型中忽略。只有首先通过层次分析法[2]计算出各指标的权重,我们才能做出一个合理度较高的优化方案。

一、层次分析法设定各指标权重

由题意,评价一个配送方案的是否合理主要可从用户利益,公司收益,社会利益三个方面来考虑。

1、用户利益主要由送货时间与“卸货点”到用户实际位置间的距离决定。 *“卸货点”:货车的卸车地点,用户可以到“卸货点”来取货,多个用户可以共用一个“卸货点”。

2、公司收益主要由仓库积压程度,需要拥有的车辆数,每天发出的车次数,车辆的总行驶距离即耗油数决定。

3、社会利益主要由所有车辆行驶的总公里数,每天发出的车次数,动用的货车种类决定。因为这三个量会影响污染的程度和交通拥挤的程度。 这是一个多目标决策问题。我们运用层次分析法确定各因素在评价方案优劣时所占的权重。具体分层如图所示: 目标层 模型合理度评价A

公司利益 B2 社会利益 3 用户利益 B1 准则层

卸到仓需每车车每动 货货库要天辆辆天用点 时积拥发的行发的与 间压有出总驶出货用程 的的行的的车户度车车驶总间车种

实辆次距公次类

际数数离里数 距数 离C1 C3 C9 C4 C5 C6 C8 C7 C2

3

对同一层次的各个元素关于上一层次中某一准则的重要性进行两两比较,构造两两比较判断矩阵。在构造两两比较判断矩阵的过程中,按1~9比例标度对重要性程度进行赋值。

下表给出1~9标度的含义:

标度 1 3 5 7 9 2,4,6,8 倒数 含义 表示两个元素相比,具有同样重要性 表示两个元素相比,前者比后者稍重要 表示两个元素相比,前者比后者明显重要 表示两个元素相比,前者比后者强烈重要 表示两个元素相比,前者比后者极端重要 表示上述相邻判断的中间值 若元素I和元素j的重要性之比为aij,那么元素j和元素I的重要性之比为1/aij 根据上述给出的标度含义表,对于任何一个准则,几个被比较元素通过两两比较就可以得到一个判断矩阵:

Aaijnx (1)

其中,aij就是ui与uj相对于C的重要性的比例标度。

根据得到的判断矩阵,我们采用“特征根法”来求解判断矩阵中被比较元素的排序权重向量。若矩阵A的最大特征值max对应的特征向量是W,将所得到的W经归一化后就是要求的权重向量。

k1(k1)T,...n)表示第k1层上nk1个元素相对于总目标的排序权 设W(k1)(1(k1),2k1)(k)(k)T重向量,用Pj(k)(p1(kj,p2j,...pnkj)表示第k层上nk个元素对第k1层上第j个元素为

准则的排序权重向量,其中不受j元素支配的元素权重取为零。那么第k层上元素对目标的总排序W(k)为:

(k)(k)T(k)(k1)W(k)=(1(k),2,...,n)PW (2) k对于本模型依据上述的层次分析方法,计算得到如下各个层次下的判断矩阵和其对应的排序权重向量、一致性指标:

4

表1 目标层判断矩阵

合理度A 用户利益B1 公司收益B2 用户利益B1 1 5 公司收益B2 1/5 1 社会效益B3 1/7 1/2 CI=0.0071,CR=0.012,RI=0.58,m3.0142 此步骤中应注意“用户第一”的原则。 表2准则层B1的判断矩阵 用户利益B1 取货距离C1 到货时间C2 取货距离C1 1 1/2 到货时间C2 2 1 CI=0,CR=0,RI=0,m0

表3 准则层B2的判断矩阵

公司收益B2 仓库存货量C3 车辆数C4 仓库存货量C3 1 1/3 车辆数C4 3 1 出车次数C5 4 2 总油耗C6 7 4 CI=0.019,CR=0.021,RI=0.9,m4.0672

表4 准则层B3的判断矩阵 社会效益B3 出车种类C7 车辆数C8 总公里数C9 出车种类C7 1 1 2 拥挤程度C8 1 1 2 社会效益B3 7 2 1 出车次数C5 1/4 1/2 1 3 总油耗C6 1/7 1/4 1/3 1 总公里数C9 1/2 1/2 1

CI=0,CR=0,RI=0.58,m0

表5 各指标权重

取货到货仓库指标 距离 时间 存量 0.2340.4680.011W 368 735 510 根据多层一致性指标的计算方法

车辆数 0.027153 出车次数 0.044318 总油耗 0.105376 拥挤程度 0.027133 出车种类 0.027133 总公里数 0.0273 CR(k)CIRI(k)(k)(CI1,...,CInk1)W(k1)(RI1,...,RInk1)W(k1)(k)(k)(k)(k) (3)

利用上面求得的各个层次的一致性比例,得到CI(3)0.0320.1,符合递阶层次结构在3层水平以上的所有判断具有整体满意一致性的标准,即所得的排序权重向量是合理的。

5

二、运货方案评价指标的量化

由于各评价指标单位不同,难于统一,我们采用分项计分制,并在计算总分时利用向量的单位化将单位统一,从而求得该待评价方案的总分。

向量单位化的公式如下:

HjRjCjRjRjj (4)

22R2j1Rj2Rjn,是n维向量Rj的长度。

其中RjR,Rj具体的评分细则如下:

1、用户利益部分 用户部分采用罚函数进行计算。罚函数将有约束最优化问题转化为求解无约束最优化问题: 其中M为足够大的正数, 起\"惩罚\"作用, 称之为罚因子, F(x, M )称为罚函数. 即在规定时间(本处理解为一个订货周期内)收到货则用户满意度为1,记一分,超出规定时间后满意度递减。罚函数定义为 0 t<=t0 (5) (tt0)/ t>t0 卸货点距用户实际位置距离总和每一米记一分。 e 2、公司部分 公司效益部分同样采用计分制。 仓库存货量方面,以产品件数为单位,仓库每存有一件存货,记一分。 拥有车辆数方面,公司每拥有一辆货车(无论是什么型号的货车),记一分。 出车次数方面,公司每派出一辆送货车记一次分,大货车记三分,中货车记两分,小货车记一分。 总油耗方面,由于总路程可间接表明总油耗,故大货车每行驶一公里记四分,中货车每行驶一公里计二分,小货车每行驶一公里计一分。 3、社会效益部分 社会效益部分同样采用计分制。鉴于货车行驶会消耗能源,排放尾气,造成拥堵,而运输公司拥有的车数越多,城市交通拥挤越严重。故在车数方面,公司每拥有一辆货车记一分。而大货车对环境造成的破坏最大,所以在出车种类方面,每动用一次大货车计五分,中货车记三分,小货车记一分。 大货车每行驶一公里计四分,中货车每行驶一公里记二分,小货车记一分。 根据上述评分规则计算出分项得分,将分项得分归一化后乘以各分项权重值即得总分,总分越低则方案的整体合理度最高。 由此,我们可算出任何一个配送方案的合理度,从而比较得出最优的配送方案。根据各指标的权重可以得到结论。

配送方案设计应着重注意车辆调度和总行驶路程最短的问题。

6

5.1.3 利用matlab绘制物流网络图

7

图1 某城市物流网络图

注:其中蓝色线条代表可行驶的物流道路,黑色标记代表所有的用户位置,红色标记为配送中心的位置。

从图中可以看出,该城市的配送中心位于城市的西北部,且西北部的用户密集,交通发达,为市中心闹市区。而东南部用户和道路稀疏,为市郊。在分配车辆时应考虑这些问题。

5.1.4利用雷达图分割法给用户位置粗略分区

数据预处理:在Microsoft Excel 工作表中将来源于该城市的用户位置中的信息进行整理,计算出各点对于配送中心的方位角和距离。以配送中心的位置(x0,y0)为圆心,利用各用户位置的坐标(xi,yi),算出它们相对于配送中心位置(107.9725615162,26.6060305362822)的方位角θ和距离L。

当xi>107.9725615162时,

arctan[(yiy0)/(xix0)]

当xi<107.9725615162,yi>26.6060305362822时,

o

arctan[(yiy0)/(xix0)] +180

当xi<107.9725615162,yi<26.6060305362822时,

o

arctan[(yiy0)/(xix0)] -180 (6)

(7)

(i=1,2,3„„167)

观察该城市物流网络,我们发现,我们可以通过雷达图分割法将用户位置分为100个目标区域,分别计算每区的货车数量以及货车行驶路线。

*雷达分割法:以配送中心为圆心,根据各用户位置到配送中心的距离和方位角将其分配到不同的区域里。此过程在excel中利用函数计算以及筛选功能实现。

我们规定通过角度将图形分为20个统筹区,通过半径将每个统筹区分为5个二级子区域。

统筹区的标号见下页。

8

L{[111*(xix0)][111*cos*(yiy0)]2}2

图2 用户位置分割图

JGKG

IG

HG

GD

FDED

D

C

B

1 LG

区域N1

5.1.5确定每个区域的车次

在execl中对数据进行整合,可知每个统筹区的每日的订货量。结果如下表。 表6 各区域需货量

MG

NG

OGPGQGSGRGTG

区周1货量/域 箱 A 17065 B 304 C 9310 D 47 E 739 F 2750 G 2844 H 503 I 26 J 44 K 758

周2货量 17526 360 4421 7290 2430 405 4991 1623 1682 844 2359 周3货量 13961 334 4382 4124 4497 12 0 0 0 0 82 周4货量 17526 4998 1583 9432 15 3308 0 0 358 4314 270 9

周5货量 562 481 17 4831 10 5225 3131 82 155 2582 周6 0 0 0 1849 60 50 0 0 0 0 0 空白 752 231 0 73 119 0 0 0 0 0 0 周总货量 67392 6708 21460 32246 105 11750 10966 2208 2221 5256 14233

L M N O P Q R S T 6095 498 26 394 3761 8879 23419 13653 13118 5262 4 159 5071 8403 16579 8327 10237 12461 4067 2727 1726 4447 2093 6834 7040 14753 9127 10731 4074 2088 2136 2680 10881 13885 4179 12880 499 8 22 3274 1971 2348 1746 17983 7446 0 0 0 0 0 0 0 0 0 0 0 469 0 0 490 1751 24 0 266 7311 7128 15322 108 46011 56168 60829 55032

5.1.6 确定某个区域内卸货点的位置

为了安排该城市的配送方案,我们需要知道每个区域货车的需求量(车次)以及货车的最佳行驶路线,即找到使行驶总路线最短的方法,这明显是一个图论的问题。

接下来,我们针对某个区域的情况做进一步的分析。我们选定图中紫色区域即区域N1进行分析。区域N1中包含的用户位置见附表一。其包含112个用户。

一、聚类分析[3]确定卸货点覆盖区域

首先。我们采取相邻用户去同一卸货点取货的方式(暂时不考虑卸货点需要租用地点和工作人员看守的事宜,直接由货车司机看守等待用户取货),利用聚类分析的原理确定7个卸货点覆盖区域。聚类分析是研究如何对指标或样本进行分类的一种多元统计分析方法。描述变量之间亲疏关系的统计量有很多,目前应用最多的是距离和相似系数。研究样本或变量的亲疏程度的数量指标有两种,一种叫相似系数,性质越接近的变量或样本,它们的相似系数越接近于1或-l,而彼此无关的变量或样品它们的相似系数则越接近于0,相似的为一类,不相似的为不同类;另一种叫距离,它是将每一个样品看作p维空间的一个点,并用某种度量测量点与点之间的距离,距离较近的归为一类,距离较远的点应属于不同的类。

1.定义距离的准则

如果用dij表示第i个样品和第j个样品之间的距离,那么对一切i,j和k,dij应该满足如下四个条件: ①当且仅当i=j时,dij=0 ②dij>0

③dij=dji(对称性)

④dij≤dik+dkj(三角不等式)

2.Euclidian距离

欧氏距离( Euclidean distance)也称欧几里得距离是一个通常采用的距离定义,它是在m维空间中两个点之间的真实距离。

在二维和三维空间中的欧式距离的就是两点之间的距离,二维的公式是

d=sqrt(x1-x2)^2+(y1-y2)^2)(8) 转化为本题中的经纬度计算为:

2)(i,j=1,2,3„„Dij{[111*(xi(x9[111*cos112*()yi yj)]2}j)]

10

其中i,j为两个不同的用户位置, Dij为ij两个用户位置之间的距离。

在matlab中将距离相近的点聚类,将区域①中的112个用户分散到7个区域中。具体结构详见excel表格。

二、精确重心法[4]确定卸货点位置

重心法是将物流系统的需求点看成是分布在某一平面范围内的物体系统,各点的需求量和资源量分别看成是物体的重量,物体系统的重心将作为物流网点的最佳设置点, 利用确定物体中心的方法来确定物流网点的位置。

本题中我们希望每个卸货点区域中,卸货点到所有用户位置的距离之和D总最短。

D总= n 1/2 (10)

22 [(xx)(yy)]isisi1(xs,ys)为卸货点位置,n为该卸货点覆盖区域的用户数注:(xi,yi)为每个用户的位置,

量。

精确中心法目标函数为双变量系统,分别对xS和yS求偏导,并令岛数为零,求得隐含最优解的等式为:

(11)

(12)

(13)

一、Excel规划求解

1.在Excel中输入数据,并且假设原点坐标为(1,1),以覆盖区3为例,在K1中输入“=SQRT((111*($B$1-B9))^2+(99.25*($C$1-C9))^2)”,并将右下角的十字光标下拉复制公式。

11

2.规划求解,利用excel工具栏中的加载宏“规划求解”,对卸货点位置进行迭代,得到最佳卸货点位置。

3.第100次迭代求得卸货点坐标为(107.23,26.37949),此时总路程为2.12666KM。

4.七个卸货点均用此方法算出最佳位置,并计算出每个卸货点每天的需货量,图下表所示。

表7 卸货点信息表 卸货点 纬度 经度 周一货量 周二货量 周四货量 合计2 1 107.8788317 26.4090417 0 1270 0 1270 2 107.84632 26.42715803 0 66 26 92 3 107.23015 26.3794931 0 228 0 228 4 107.8230497 26.37831175 0 228 0 228 5 107.8082125 26.32132914 50 2695 0 2745 6 107.85249 26.30397829 0 70 0 70 7 107.8269235 26.28442958 40 210 0 250 合计1 90 4767 26 4883 由此可知一周之内该区域总共需要4883箱货物,根据计算我们可知一辆小型货车一周往返一次(一个车次)即可满足运货需求,并且小型货车在市区行驶灵活,减少交通污染。如果货车走完该区域用时远小于8小时,则回到出发点后进行其他区域的运货任务(相当于另外一辆车)。

接下来我们只需确定货车在一个区域的最短行驶路线即可。

12

5.1.8运用Floyd算法[5]确定每两个卸货点之间的最短距离

要给出将货物送到七个卸货点并返回的最短路线,我们将卸货点之间的距离求出。利用图论中的Floyd算法和哈密尔顿圈求解往返最短路线问题,在matlab中可以得出它的最佳路线和最短路程。

首先,我们绘制用户位置、卸货点以及其附近交通道路的图像,如图3所示。

图3 卸货点位置图

配送中

由图可知,卸货点均选在用户密集的地点,即卸货点选择正确。 然后,我们需要利用Floyd算法,计算每两点之间的最短距离。

Floyd算法是一种用于寻找给定的加权图中顶点间最短路径的算法。我们可以通过一个图的权值矩阵求出它的每两点间的最短路径矩阵。从图的带权邻接矩阵A=[a(i,j)] n×n开始,递归地进行n次更新,即由矩阵D(0)=A,按一个公式,构造出矩阵D(1);又用同样地公式由D(1)构造出D(2);„„;最后又用同样的公式由D(n-1)构造出矩阵D(n)。矩阵D(n)的i行j列元素便是i号顶点到j号顶点的最短路径长度,称D(n)为图的距离矩阵,同时还可引入一个后继节点矩阵path来记录两点间的最短路径。

为了简便计算,我们寻找离卸货点最近的公路节点作为“真实卸货点”,由此可知卸货点之间经历的公路编号和ID。

从而我们可以知道七个卸货点之间的最短距离,注意此距离并非是卸货点间直线距离,而是通过floyd算法而得到的公路折线距离。

例如卸货点1到卸货点2之间的最短距离为 KM,其间一次经历的公路编号为: 11947119481194911950119511195211953119531195311953① 

12105119071295612204142451427214271142701426914268

1425914266② 具体情况如下表所示。 表8 卸货点间距表 起点 终点 距离(KM) 0 1 22.20958

13

0 0 0 0 0 0 1 1 1 1 1 1 2 2 2 2 2 3 3 3 3 4 4 4 5 5 6

2 3 4 5 6 7 2 3 4 5 6 7 3 4 5 6 7 4 5 6 7 5 6 7 6 7 7 24.29047 24.36157 28.18446 33.59556 32.58055 35.66729 3.458314 29.60301 6.192421 44.33731 16.65842 20.34785 25.14470 2.734107 32.62384 13.2001 16.8 22.41059 23.946 11.94460 8.255160 29.873 10.46599 14.46599 19.42374 15.73430 3.38 14

5.1.9哈密尔顿圈[6]模型求解货车最短行驶路线

送货员要将货物送到七个卸货点(加上配送中心共八个点)并返回,即经过其中每一个点刚好形成一个圈。对于这种情况设计它的最短路线问题,我们建立哈密尔顿圈模型。

哈密顿图(Hamiltonian path)是一个无向图,由天文学家哈密顿提出,由指定的起点前往指定的终点,途中经过所有其他节点且只经过一次。在图论中是指含有哈密顿回路的图,闭合的哈密顿路径称作哈密顿回路,含有图中所有顶的路径称作哈密顿路径。 一、对于这一模型我们开始要画出8个点的坐标图,结合图形便于模型的求解和优化。

图4 区域①送货地点的坐标图

8

1

4

6

2

7 3

5

二、任取初始哈密顿回路:C1[1 2 3 4 5 6 7 8];

对所有的i,j,1i1jn,若W(Vi,Vj)W(Vi1,Vj1)W(Vi,Vi1)W(Vj,Vj1),则在C1中删去边Vi,Vi1和Vj,Vj1而插入新边Vi,Vj和Vi1,Vj1,形成新的H圈C,即

C[V1,V2,V3Vi,Vj,Vj1,Vi1,Vj1,Vn],V1对C重复这一步骤,直到条件不满足为

止,结合图一的路线图观察,从而进行优化,使用这种方法,借助matlab编程使用迭代的方法可以求出它的最优路径(见附录程序)。 综合上述方法,可求:

最短路线:812467538 最短路程:84.4332KM。 最短运货用时为2.11小时。

图5 区域①货物的最佳路线图

15

5.1.10设计车辆调度方案

上述,我们已经解决了某个区域的供货方式和行驶路径问题,以下我们做出整体的配送方案。

1.根据货物的每日和每周的需求量,我们做以下安排,当当日运送量Q远小于一辆货车的载货量(5180箱)的,由相邻区域安排货车同时运送两个区域的货物或者积压货物到一周之内运送,我们其他情况则为一个区域单独安排车次M,保证货物尽快送到。粗糙模型时,货物运送采用一周统筹的方式。

M=Q/5180 (四舍五入) (14)

2..车次不代表安排货车的数量,同一辆货车一天可以走多个车次。每日货车行驶车次N需要根据计算货车行走某一路线(一个车次)所需的时间T来设定。已知司机每日工作八小时。 N=8/T (取整法) (15)

3.货车数量确定后,则可分别安排每辆车的负责区域,尽量保证几辆车的行驶时间和行驶车次相等。

表9 各区域车次安排 周1车周2车周3车周4车周5车周6车周总车区域 任一天 次 次 次 次 次 次 次 A 4 4 3 4 0 0 0 15 B 0 0 0 1 1 0 0 2 C 2 1 1 0 1 0 0 5 D 2 2 2 2 1 0 0 9 E 0 1 1 0 1 0 0 3 F 1 0 0 1 1 0 0 3 G 1 1 0 0 1 0 0 3 H 0 1 0 0 0 0 0 1 I 0 1 0 0 0 0 0 1

16

J K L M N O P Q R S T 合计 0 0 2 0 1 0 1 2 5 3 4 28 1 1 1 0 0 1 2 3 2 2 3 27 0 2 1 1 0 1 0 1 1 3 2 19 1 0 2 1 1 0 1 2 5 1 3 25 0 1 0 0 0 1 0 1 1 4 1 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 6 2 2 3 4 9 14 13 13 112 一、粗糙模型

1、通过步骤5.1.4我们已知每个区域所需的车次数量,以及总车次数为112。根据以上结果,最近的区域出一个车次需要2.11小时,我们近似估计行驶一个车次平均需要的时间为4小时。按每个司机每天行驶8小时,每天行驶2个车次,则每辆车一周可以行驶16个车次计算,需要7辆车分送所有的货物。

进一步考虑到货车到卸货点卸货花费的时间,货车修理和司机轮休的影响,我们安排15辆车来进行运送。

将图中20个统筹区分为5部分,每3辆货车分管一个部分,均匀送货,具体情况参照步骤5.1.4中的车次表。

2、若所有货物都必须当天送达,则无论货物多少都要出车,仍按每辆车一天行驶2个车次计算,表中给出周一最繁忙需要出28个车次,即公司要安排14辆车。可以看出之前我们安排总共15辆车的计划是合理的。

二、最终配送方案

下面给出车辆的具体较优调度方法和运输公司所需拥有的最少车数。

由于对全部给定区域内的所有点进行优化统筹过于繁杂,但若是只考虑全局中的一小块又会失去统筹规划的意义,为此我们对题目给定范围进行扇形分区。总共划分为10个区域。则对于每一块区域,其总的货物需求量为它所包含的所有用户的货物需求量之和。货物由配送中心运至该区域的平均时间由于考虑到用户利益优先,最远点保证送到的原则,定为到其中较远点的距离。则有配送中心分别到各区域所需要的时间和各区域的货物需求量如下表:

表10 配送情况表 区域 到货时间 需求量

17

A 8h B 8h C 5h D E F G H 4h I 6.5h J 8h 4.4h 2.3h 3.5h 3.5h 7477件 74100537061230413169件 件 件 件 4088714439332301021111586件 件 件 9件 1件

优化调度方案所要达到的目标是所需的车辆数最少,所需发车的车次数最少。车辆的总闲置时间最少,以及车辆的总剩余可载货空间最少。

经多次试验(穷举法)得到一种较优的调度方案,见下表: 表11 调度方案表 星期 目的地 星期一 星期二 星期三 星期四 星期五 星期六 星期日 车辆 小车1 小车2 小车3 小车4 小车5 小车6 小车7 小车8 中车1 大车1 F,H B J J J I I I B,E A F,H B J J J I I I D,G A F,H B J J J I I I D,G A F,C B J J J I I I C,F A B B J J J I I I F,H A H,H B J J J I I I I A B B J J J J J A I A 经分析知此方案所有车辆均没有闲置时间,车辆总数仅需10辆,总的剩余可载货量仅有4000件左右,发车次数也仅有80车次,是一种较优的调度方案。

18

5.2 对问题二的求解

问题二中,我们需要在原图中再安置5个配送中心,从而使配送更快捷,服务更优化,使目标函数取得最优解。

5.2.1 确定八个待定的配送中心坐标

首先我们利用excel对数据进行合并,利用经纬度分割的方法,使167个用户位置聚合到100个用户聚合点(每个区域的中心位置)。并用三维图进行表示,其中坐标x,y代表100点的经纬度,坐标z表示某个点的货物总需求量,如下图所示。

图6 用户需求三维图

从图中可以看出,有明显的货物量凸起的部分,为货物紧需区域。我们利用matlab筛选出局部最优点,给出八个待定的配送中心位置,即需要从这八个点中进行选择。 八个待定配送中心的位置如下:

表10 待定点信息 待定点编号 经度 纬度 1 2 3 4 5 6 7 8 107.7914972 108.1980758 108.0568015 108.679651 108.62185 109.2116693 109.1749773 107.757158 26.22478355 26.22357626 26.717145 26.96601 25.9739482 26.5863 26.1636702 26.65597414

在matlab中绘制二维图可以看出八个待定点的位置如下:

19

图7 待定点方位图

5.2.2选定最终的配送中心位置和配送范围

我们现在要做的工作是在8个待定点中确定5个最终要选取的配送中心位置并为各配送网点划分配送范围。

明显可以看出,这是一个多韦伯问题[7](multi-Weber problem),它既包括用户的分配,又包括设施在空间上的定位,所以通常又把设施定位问题称为设施定位分配问题。设施定位问题是指在空间上寻找合适的设施布局,使用户与设施相互作用的费用满足某一准则的问题,共有18种准则,但最常用有三种准则,即“总和最小化”(MinSum)准则、“最大最小化”(Maxmin)准则和“最小最大化”(Minmax)准则。设施定位问题又有单设施定位问题和多设施定位问题。本题为多设施定位问题。

为了简化问题,我们利用第一步中聚合的100个用户聚合点代替实际的用户位置。 一、问题简化为:

1.有5个配送中心的需要选址,有100个已知位置的用户分配给不同的配送中心,每个用户需求的为aj,j=1,2,„„n。

2.我们需要找到

①配送中心的位置(选址) ②顾客对配送中心的分配

3.使顾客和服务他们的配送中心的距离之和最短。

4.同时考虑配送中心应该离用户需求量大的地方近一些。 二、我们用0-1规划来解决这个问题

设配送中心Pi坐标为(xi,yi)(i=1,2,3„„6)(包含了原有的配送中心P6),用户Rj坐标为(vj,uj)(j=1,2,3„„100),每个用户的需求量为wj,配送点i是否对用户j服务为zij,值为1表示服务,0表示不服务。

20

目标函数 Min f(xixj)2+(yiyj)2wjzij

j1i11006zi16ij1 j=1,2,3,„„100 (16)

zij =0或1

此问题为非线性0-1规划问题,不易求解,所以我们将配送中心的可能位置定在备选的八个待定点上。我们计算出用户Rj到配送中心Pi的距离为dij,。重新设定用户Rj坐标为(vj,uj)(j=1,2,3„„100),每个用户的需求量为wj,配送点i是否对用户j服务为zij,值为1表示服务,0表示不服务。si表示是否在i点设立配送中心。 则模型简化为:

目标函数 Min f1dijwjzij

j1i11009zi19ij1 j=1,2,3,„„100

(17) 9 si6i1 zij =0或1

si=0或1

运算过程见附录程序,结果见下表: 表11 配送中心位置信息 配送中心编号 经度 3 4 5 6 7 原 108.0568015 108.679651 108.62185 109.2116693 109.1749773 107.9725615162 纬度 26.717145 26.96601 25.9739482 26.5863 26.1636702 26.6060305362822

同时我们也知道了各个配送中心的配送范围,因为我们是用100个聚合点代替的所有用户位置进行计算,所以范围在图中的表示是网格状的,具体情况见下图:

21

图11 配送网点配送范围划分

结论:

各个配送中心的位置较为分散,近似平均的划分了图中所有的用户位置点,且用户相对密集的地方配送中心比较密集。

同时,本模型将“距离*需求量”作为0-1规划的权重,综合考虑了这两个指标,全面地分析了模型。

所以本模型合理。

22

六、模型推广

1.在基本模型中我们只考虑了所有车辆一次只对一个区域服务的情况。如果大、中、小型货车同时使用,则使模型更加复杂。可能一辆大货车可以一次性运送几个区的货物,则货车路径需要重新设计。货车调度表也更加复杂。

已知:大型货车:长:6M 宽:2.0M 高: 2.7M 满载量:182852箱 中型货车:长:5M 宽:1.9M 高: 1.9M 满载量: 9576箱 小型货车:长:3M 宽:1.8M 高: 1.8M 满载量: 6800箱

2.实际情况中要将货物在指定时间送达指定地点,我们会考虑指定时间早的先送货物,后送指定时间比较晚的。基础这样的考虑问题的方向,我们将货物送货时间和送达地点进行分块分组。由于数据量巨大,我们可以采用局部最优、模拟退火法和遗传算法计算出每一块中货物送达点的路线,求出其中耗时最短的路线即最短路程和最短时间。

3.设计出送货员将货物全部送到指定地点并返回的路线时,送货员有要中途返回取货的可能性。所以我们我们可以将送货员的送货区域的路线分为四条支路。

结合这一情况,我们考虑到图论中的最小生成树。由于最小生成树可以解决连线问题,而设计路线就属于连线问题。对于多个送货地点,送货员的线路比较多,所以我们采用Prim算法构造最小生成树。根据最小生成树,将送货员的送货区域划分为四组,从而得出它们的最佳路线。

4.对于这样的模型,我们可以推广到飞机送货路线,轮船运输等问题。

七、模型检验

7.1层次分析法的检验

由于本题的数据量,未能做出整个城市完整的模型,无法对模型进行合理度的计算。所以我们利用matlab随机生成3个矩阵,检验层次分析法的9个权重设置的合理性,证明该方法的正确性。

检验

生成的随机值如下: 取货距到货时仓库存出车次大车数 中车数 小车数 总路程 离 间 货量 数 5136 4 11798 1 3 13 120 07 7768 7.002 15867 0 2 10 118 9098 6023 3 7079 2 2 15 106 08 则根据计分标准可计算出各分项得分如下: 取货距到货时仓库存公司车出车次总里程 车总数 车种类 总油耗 离 间 货量 数 数 5136 0 11798 17 120 07 17 27 07 7768 1.001 15867 12 118 9098 12 16 9098 6023 0 7079 19 106 08 19 31 08

归一化后所得的分项得分如下:

23

取货距到货时仓库存公司车离 间 货量 数 0.46310.56170.60330 03 67021 07 0.70040.75550.42581 26 14267 0.300.33700.67420 83 69736 85 则方案的总得分如下: 方案号 方案一 得分 0.282611 出车次数 0.603327 0.593272 0.532939 总里程 车总数 车种类 总油耗 0.573203 0. 0.573267 0.603307 0.4258 0.674285 0.612058 0.362701 0.702733 0.573203 0. 0.573267 方案二 0.488856 方案三 0.1588 故知方案二最优。由此可知,当所有点的信息已知时,我们同样可以用此方法规划出较优的配送方案。

7.2 Excel规划求解精确重心法的检验与分析

其中一个卸货点求解的分析报告如下图所示。

八、模型的评价

24

7.1 模型的优点

(1)充分利用Excel对非常庞杂的数据进行统计处理,为模型的建立奠定了基础。 (2)运用表格和图像相结合,对于结果的分析更加清晰,使图论问题的解答更加明了。 (3)数学软件MATLAB的运用提高了结果的可行度,数据更加精确。

(4)多方位、多角度联系实际情况对于模型进行运用,层次分析法时和车辆调度时考

虑了用户、公司、社会多方的利益。 7.2 模型的缺点

(1)本题对数据依赖性比较大,只是根据题中所给数据做了一个理想化的模型,可能

与实际不相吻合。

(2)题目信息庞杂,数据可信度不是很精确,所以对现实的预测结论存在局限性。 (3)本题数据量巨大,我们利用了简化和聚合的方法,可能使结果不是实际中的最优化模型。

九、参考文献

[1] 邓爱民,王少梅,汪利君,城市物流配送系统优化研究[J],武汉理工大学学报:

交通科学与工程版,30(3):481-484 ,2006。

[2] 张吉军,模糊层次分析法 (FAHP)[J],模糊系统与数学,14(2): 80-88,2000。 [3] 高新波,模糊聚类分析及其应用[M],西安:西安电子科技大学出版,2004。 [4] 朱晓敏,张兆强,乔魏乾,基于重心法与物流量预测的物流园区选址[J],物流技

术,30(5): 88-92,2011。

[5] 周炳生,Floyd 算法的一个通用程序及在图论中的应用[J],杭州应用工程技术学

院学报,11(3): 1-9,1999。

[6] Lemon_keakea4,哈密尔顿图,http://www.doc88.com/p-0315324003.html,

2013.8.17。 [7] 维尼,选址分配问题——东大公开课,http://wenku.baidu.com/view/b08ecfaa00b52acfc7c a82.html,2013.8.18。

25

十、附录

10.1附表

10.1.1附表1 区域①用户信息表 客户代码 16716 16715 16714 16698 16699 16701 16705 16702 16706 16707 2048 16713 16710 16711 2061 16708 117 16709 16712 16703 16700 16729 115 16721 16704 16718 16719 16717 16728 118 16720 16726 16727 16725 16724 16722 16723 119 16697

经度 纬度 时间 订货量 周期 方位角 107.88526 26.41122093 2 60 1 65.86998807 107.8847011 26.41140242 2 50 1 65.70597148 与中心距离 107.8841532 107.8836235 107.88284 107.881957 107.8814962 107.8827721 107.8796138 107.880608 107.8467636 107.8791273 107.8787281 107.8777107 107.846 107.8762377 107.8779826 107.87929 107.8727602 107.8693195 107.8663141 107.861214 107.87936 107.8882977 107.888686 107.00801 107.8887 107.83801 107.8594007 107.858632 107.23879 107.8551712 107.8531945 107.84949 107.23411 107.28638 107.30046 107.32127 107.8400045 26.411261 26.41109336 26.41091455 26.41073521 26.41065573 26.40986558 26.41126137 26.41053239 26.42939826 26.41004045 26.41002994 26.40980056 26.42715959 26.40956074 26.40829994 26.40771963 26.40880181 26.40808677 26.407939 26.40691079 26.39233236 26.39242431 26.39165 26.39065911 26.39078228 26.38838178 26.40094444 26.40059595 26.38215561 26.39921824 26.39975934 26.381147 26.37953663 26.37868117 26.37774508 26.37693535 26.39221201 2 2 2 2 2 2 2 2 4 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 26

100 100 60 70 20 30 40 50 26 80 50 20 16 15 20 30 15 30 40 50 100 20 40 40 30 20 20 40 40 50 50 30 30 70 20 15 50 1 1 1 1 1 1 1 1 1 1 1 2 1 1 2 1 2 2 2 1 2 2 2 2 2 2 1 1 2 1 1 2 2 2 2 2 4 65.58850952 65.47734207 65.30851683 65.11339281 65.01116687 65.40694887 .49024408 .81147298 .292438 .51314692 .4193173 .20410769 .85769306 63.88417053 .43880804 .147524 63.16136231 62.45625693 61.79138496 60.7875 68.82960595 68.47326304 68.3258 69.04611138 68.736097 69.08563629 61.11277619 60.968058 70.29820661 60.42142563 59.9439177 69.72835839 70.49825047 70.68334958 70.7882219 70.762674 58.20444328 23.6942676 23.70268411 23.74270682 23.78335074 23.83731355 23.6774 23.92634493 23.94658703 23.967068 23.9809 24.0699467 24.10023772 24.12039168 24.192244 24.28038471 24.28778494 24.32932967 24.45908811 24.53529161 24.78041866 24.94840461 25.32294326 25.43724333 25.48818306 25.56312151 25.59913629 25.63799338 25.86299524 25.99963128 26.074779 26.39529775 26.396117 26.4531037 26.61006717 26.670 26.7411785 26.83411078 26.9114339 27.924368

16694 16696 16695 105 16692 166 16688 16690 16693 16691 16686 16687 108 16684 16683 16685 16651 1 107 169 16629 16658 112 162 16630 16631 163 16659 168 16634 16632 161 16638 16263 16628 16637 109 160 16635 166 16639 16657 165

107.8243602 107.8244913 107.8244565 107.8257411 107.825105 107.8237095 107.8205115 107.8198867 107.81453 107.8173347 107.8551111 107.87213 107.8562778 107.8570292 107.8555833 107.85625 107.8088048 107.80806 107.8084528 107.8081944 107.8081229 107.8099167 107.80788 107.8095278 107.8078719 107.8080061 107.8078298 107.8078313 107.8085747 107.8078696 107.8077566 107.8082579 107.8078447 107.8076 107.8074933 107.8076659 107.8075783 107.8076853 107.8075245 107.8076667 107.8074167 107.8076608 107.8076101 26.38839287 26.38663201 26.38571797 26.38184211 26.37916323 26.37655737 26.37556714 26.37448343 26.37183398 26.36752147 26.30786111 26.30136111 26.30433333 26.30385227 26.30433333 26.30355556 26.322243 26.32246091 26.32224409 26.32180556 26.32169266 26.32016667 26.32122222 26.32025 26.32115657 26.32106631 26.32103382 26.32086111 26.32042043 26.32077627 26.320774 26.32048717 26.32057343 26.32068 26.32073233 26.320601 26.32063053 26.32056262 26.32063828 26.320507 26.320638 26.3204308 26.32033381 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 27

25 30 20 30 20 60 25 30 20 20 10 20 5 25 5 25 80 80 5 300 20 100 30 100 30 10 10 30 80 10 20 20 350 590 15 40 20 50 20 50 20 30 15 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 1 1 4 1 1 1 1 1 1 1 1 1 1 2 2 1 1 2 1 1 2 1 1 1 1 1 2 55.74814 55.986159 56.09028395 56.78055235 56.97863615 57.031004 56.58604867 56.60159965 56.73916782 56.94421566 68.50142329 71.75834267 68.92288502 69.07771053 68.80814715 68.9677557 59.98819887 60.00832848 59.96100218 59.96028307 59.95933522 60.36293907 59.96507313 60.29694 59.96823874 59.99633503 59.97258076 59.9878434 60.138185 60.00099386 59.98280335 60.08462691 60.01487107 59.96877587 59.94817215 59.98487239 59.9698191 59.99182144 59.96103928 59.99380427 59.94477044 59.99959375 60.000311 29.227915 29.38009868 29.460966 29.74606507 30.03369037 30.36028 30.695562 30.78555571 31.088663 31.58721693 35.571384 35.60778561 35.8497 35.90945 35.91728852 35.97117274 36.33949103 36.34256852 36.38771571 36.44421019 36.459033 36.5099 36.5172417 36.520227 36.52449304 36.52571525 36.53862969 36.55514581 36.55635314 36.56117571 36.566152 36.5674531 36.58205863 36.58539686 36.5862949 36.58857038 36.59135382 36.59194134 36.5936027 36.59827008 36.59953 36.60597091 36.618106

16650 167 16633 16653 16660 166 16636 110 16652 16656 16655 16682 16731 16758 16756 16733 16732 16730 16757 16760 16748 16749 16759 167 16751 16668 113 16753 16761 16750 107.8075784 107.8075532 107.8074311 107.8074165 107.8073563 107.8071866 107.8066874 107.8056944 107.8058611 107.8062102 107.8055278 107.8585833 107.7791382 107.8207222 107.8204444 107.7797714 107.77818 107.7766696 107.8259722 107.8303056 107.8299444 107.8275278 107.8306351 107.8275177 107.8262222 107.8063212 107.8061322 107.8274722 107.8266944 107.82696 26.32026888 26.3201925 26.31952155 26.31933327 26.31873604 26.31878178 26.31857748 26.31872222 26.31725 26.31693243 26.31686111 26.28397222 26.32348072 26.29880556 26.29866667 26.32161875 26.32153733 26.32253657 26.28880556 26.28636111 26.28480556 26.28533333 26.2826219 26.28329675 26.28383333 26.29302706 26.29186956 26.27577778 26.274888 26.27104877 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 2 2 1 1 2 2 2 30 20 300 40 40 30 20 30 15 15 20 20 20 10 10 15 15 10 20 20 10 20 20 25 20 20 20 15 30 10 1 1 1 1 1 1 1 1 1 2 1 2 1 2 2 2 1 2 2 2 2 2 2 2 2 1 1 2 2 2 60.00125767 60.00409315 60.043049 60.05798572 60.10050087 60.07112452 60.01404004 59.85324743 60.00506204 60.08426945 59.98888684 70.51194372 55.60683217 63.70114662 63.6698223 55.86935014 55.65923846 55.35680365 65.19942348 66.01150968 66.06082329 65.666396 66.30697774 65.800792 65.57386299 62.027616 62.08821144 66.28377328 66.22762809 66.29451034 36.62610984 36.63485298 36.70613832 36.72505327 36.78584365 36.79083841 36.8381538 36.8794696 37.01162176 37.02281434 37.06750574 37.9209225 38.00746177 38.03920999 38.06669746 38.13870767 38.24494853 38.24908609 38.739213 38.83784143 39.01190484 39.06813366 39.202693 39.27468223 39.27960606 39.33924021 39.46257622 40.03943793 40.151524 40.60943481 10.2编程代码

10.2.1层次分析法matlab代码 m=[1 5 7; 1/5 1 2; 1/7 1/2 1]; [d,v]=eig(m) z1=[1 1/2; 2 1] [d,v]=eig(z1)

z2=[1 1/3 1/4 1/7; 3 1 1/2 1/4; 4 2 1 1/3;7 4 3 1]; [d,v]=eig(z2)

z3=[1 1 1/2;1 1 1/2;2 2 1]; [d,v]=eig(z3)

28

10.2.2绘制用户点与配送中心与路图matlab代码 clc;close all;clear all; X=107.9725615162; Y=26.6060305362822; file='D:\est\\1.xls';

[data text]=xlsread(file); y=data(:,3); x=data(:,2);

plot(x,y,'+k',X,Y,'pr'); for n=1:167

plot(data(n,2),data(n,3),'ro')

str=['(' num2str(x(n)) ',' num2str(y(n)) ')']; text(x(n)+0.2,y(n)+1,str); end

for i=1:442 Y1=DATA(:,2); X1=DATA(:,1); Y2=DATA(:,4); X2=DATA(:,3);

line([X1(i),X2(i)],[Y1(i),Y2(i)]); str= num2str(i);

text(X1(i)+0.2,Y1(i)+1,str) end

%»­pieͼ

X=107.9725615162; Y=26.6060305362822; y=Customer(:,2); x=Customer(:,1);

plot(x,y,'+k',X,Y,'pr'); hold on

m=jpoint(:,1); n=jpoint(:,2); plot(m,n,'.r')

10.2.3 画分区内节点与配送中心与经过的路图 %»­pieͼ

X=107.9725615162; Y=26.6060305362822; y=Customer(:,2); x=Customer(:,1);

plot(x,y,'+k',X,Y,'pr'); hold on

m=jpoint(:,1); n=jpoint(:,2);

29

plot(m,n,'.r') %»­Â·Í¼ for i=1:272 Y1=Road(i,3); X1=Road(i,2); Y2=Road(i,5); X2=Road(i,4);

line([X1,X2],[Y1,Y2]); hold on end

for x=1:19

str= num2str(Road(x,1)); plot(X1(x),Y1(x),'ro')

10.2.4 画卸货点与用户图 m=jpoint(:,1); n=jpoint(:,2); plot(m,n,'.r');

10.2.5 画三维图

x=[2,3,4,0,2,3,0,1,4]; y=[2,2,2,3,3,3,4,4,4];

z=[80,82,84,79,61,65,84,84,86];

subplot(2,1,1);stem3(x,y,z);title('RAW DATA'); xi=0:0.1:4;yi=2:0.2:4; [XI,YI]=meshgrid(xi,yi);

ZI=griddata(x,y,z,XI,YI,'v4');

subplot(2,1,2);mesh(XI,YI,ZI);title('GRIDDATA');

10.2.6 floyd算法matlab代码 function [d,r]=floyd(a) n=size(a,1); d=a;

for i=1:n for j=1:n r(i,j)=j; end

end for k=1:n for i=1:n for j=1:n

if d(i,k)+d(k,j)30

end end end end

10.2.7 最优哈密尔顿圈matlab代码 clc,clear

a(1,2)=56;a(1,3)=35;a(1,4)=21;a(1,5)=51;a(1,6)=60; a(2,3)=21;a(2,4)=57;a(2,5)=78;a(2,6)=70; a(3,4)=36;a(3,5)=68;a(3,6)=68; a(4,5)=51;a(4,6)=61; a(5,6)=13; a(6,:)=0; a=a+a';

c1=[5 1:4 6]; L=length(c1); flag=1;

while flag>0 flag=0; for m=1:L-3 for n=m+2:L-1

if a(c1(m),c1(n))+a(c1(m+1),c1(n+1))c1(m+1:n)=c1(n:-1:m+1); end end end End sum1=0; for i=1:L-1

sum1=sum1+a(c1(i),c1(i+1)); end

circle=c1; sum=sum1;

c1=[5 6 1:4];%改变初始圈,该算法的最后一个顶点不动 flag=1;

while flag>0 flag=0; for m=1:L-3 for n=m+2:L-1

if a(c1(m),c1(n))+a(c1(m+1),c1(n+1))< a(c1(m),c1(m+1))+a(c1(n),c1(n+1)) flag=1;

c1(m+1:n)=c1(n:-1:m+1); end

31

end end end sum1=0; for i=1:L-1

sum1=sum1+a(c1(i),c1(i+1)); end

if sum1circle,sum 运行结果:

circle = 1 2 4 6 7 5 3 8 sum = 84.4332

10.2.8 0-1规划lingo代码 MODEL: SETS:

Logistics/L1..L9/:x; Customer/C1..C100/:w;

Link(Logistics,Customer):z,d; ENDSETS DATA:

w=@OLE('D:\\weight.XLS'); d=@

OLE('D:\\distance.XLS'); ENDDATA

Min=@sum(customer(j):w(j)*link(i,j):d(i,j)*z(i,j)); x(9)=1;

@for(customer(j):

@sum(link(i.j):z(i,j))=1); @for(logistics(i):

@sum(Logistics(i):x(i))=6) @for(Link(i,j):@bin(z)); @for(L(i):@bin(x)); END

32

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务