最短路径问题的0-1规划模型,lingo直接求解
0-1规划在各种实际问题中的应用以及lingo求解

势,才最有可能取得好成绩?
姿势 成绩
队员
自由泳
蛙泳
蝶泳
仰泳
A B
56 63
74 69
61 65
63 71
C
D
57
55
77
76
63
62
67
62
• 假设问题的决策变量 1 , 第i名运动员游第j种姿势 xij= 0 , 第i名运动员不游第j种姿势
四名运动员的成绩矩阵aij=
56 63 57 55
74 69 77 76
280 30 200
400 40 300
5 1 4
3 0.5 2
300 300 300
• 三种服装的利润分别为120元、10元、100元.
• 设xi表示生成第i(i=1,2,3)种服装的数量,yi表示是否 生产第i种服装. 生产第 i种 服 装 1, yi i种 服 装 0, 不 生 产 第
即甲完成B任务,乙完成D任务,丙完成E任务,丁完成A任务 总用时105分钟.
• 第(2)题,按照指派模型,可添加一个虚拟完
成人戊.而实际上,戊所完成任务还是由甲乙
丙丁完成的.
• 为了保证时间最少,戊完成各项任务的时间,
就取完成各任务所需时间最短人的时间.
• 若戊完成哪项任务,则那项任务所需时间最
短人来完成.
建立i污水厂 1, yi 0,不建立i污水厂
min z=0.03x1+0.03x2+0.04x3+400y1+300y2+250y3 80x1+50x2+40x3≥80000 60x1+40x2+50x3≥60000 x1≤800y1 s.t. x2≤500y2 x3≤400y3 xi≥0 yi=0或1
Lingo的应用实例

Lingo应用——旅游路线最短问题题目:从北京乘飞机到东京、纽约、墨西哥城、伦敦、巴黎五个城市做旅游,每个城市去且仅去一次,再回到东京,问如何安排旅游线路,使总旅程最短。
各城市之间的航线距离如下表:运用lingo软件求解模型建立前问题分析:1.这是一个求路线最短的问题,题目给出了两两城市之间的距离,而在最短路线中,这些城市有的两个城市是直接相连接的(即紧接着先后到达的关系),有些城市之间就可能没有这种关系,所以给出的两两城市距离中有些在最后的最短路线距离计算中使用到了,有些则没有用。
这是一个0-1规划的问题,也是一个线性规划的问题。
2.由于每个城市去且仅去一次,最终肯定是形成一个圈的结构,这就导致了这六个城市其中有的两个城市是直接相连的,另外也有两个城市是不连接的。
这就可以考虑设0-1变量,如果两个城市紧接着去旅游的则为1,否则为0。
就如同下图实线代表两个城市相连为1,虚线代表没有相连为03. 因为每个城市只去一次,所以其中任何一个城市的必有且仅有一条进入路线和一条出去的路线。
求解:为了方便解题,给上面六个城市进行编号,如下表(因为北京是起点, 将其标为1)假设:设变量x ij 。
如果x ij =1,则表示城市i 与城市j 直接相连(即先后紧接到达关系),否则若x ij =0,则表示城市i 与城市j 不相连。
特别说明:x ij 和x ji 是同一变量,都表示表示城市i 与城市j 是否有相连的关系。
这里取其中x ij (I<j)的变量。
模型建立:由于这是一个最短路线的问题,且变量已经设好。
目标函数:min z=51*x12+78*x13+68*x14+51*x15+13*x16+56*x23+35*x24+21*x25+60*x26+21*x34+57*x35+70*x36+36*x45+68*x46+61*x56约束条件:1. 上面目标函数中的变量是表示两个城市是否直接相连接的关系,且最短路线是可以形成圈的,如下图实线代表两个城市相连为1,虚线代表没有相连为0如上图城市a和城市b有直接相连接的关系,所以之间变量为1,而城市a 与城市e则没有直接相连接的关系,之间变量为0。
用Lingo求解整数(0-1)规划模型

1、建立数学模型, 2、用lingo循环语句编写程序.
上机作业题 人员安排问题
某城市的巡逻大队要求每天的各个时间段都有一
定数量的警员值班, 以便随时处理突发事件, 每人连续 工作6h, 中间不休息. 如表所示是一天8个班次所需值 班警员的人数情况统计:
班次
时间段
人数 班次
时间段
人数
1
6:00~9:00
例 4 求函数 z x 22 y 22 的最小值.
例 4 求函数 z x 22 y 22 的最小值.
解: 编写Lingo 程序如下:
min=(x+2)^2+(y-2)^2; @free(x); 求得结果: x=-2, y=2
二、Lingo 循环编程语句
(1) 集合的定义 包括如下参数: 1) 集合的名称.
12,8 3,0; enddata
!数据赋值;
max=@sum(bliang(i):a(i)*x(i)); !目标函数;
@for(yshu(j):@sum(bliang(i):x(i)*c(j,i))<=b(j));
!约束条件;
例6:人员选拔问题
队员号码 身高 / m 位置 队员号码 身高 / m 位置
例 2 用Lingo软件求解整数规划问题
min z 2 x1 5 x2 3 x3
4 x1 x2 x3 0
2
x1
4 x2
2 x3
2
x1
x2
x3
2
xi 0 且取整数, i 1, 2, 3
Lingo 程序:
min=2*x1+5*x2+3*x3; -4*x1-x2+x3>=0; -2*x1+4*x2-2*x3>=2; x1-x2+x3>=2; @gin(x1);@gin(x2);@gin(x3);
Lingo求解简单规划模型代码

一、Lingo 能做什么——Lingo 的简单模型1、简单线性规划求解(目标函数)2134maxx x z += s.t.(约束条件)⎪⎪⎩⎪⎪⎨⎧≥≤≤+≤+0,781022122121x x x x x x x(决策变量) x 1,x 2手工计算的方法注:Lingo 中“<”代表“<=”,“>”代表“>=”,Lingo 中默认的变量都是大于等于0的,不用显式给出。
求解结果:z=26,x1=2,x2=62、整数规划求解219040Max x x z += ⎪⎩⎪⎨⎧≥≤+≤+0,702075679212121x x x x x xLingo 程序求解3、0-1规划求解Max 432215.18.04.0x x x x f +++=10106234321≤+++x x x x10,,,4321或=x x x x12344、非线性规划求解||4||3||2||min 4321x x x x z +−−=s.t. ⎪⎪⎩⎪⎪⎨⎧−=+−−=−+−=+−−2132130432143214321x x x x x x x x x x x x12345、背包问题一个旅行者的背包最多只能装 6kg 物品,现有4 件物品的重量和价值分别为 2 kg ,3 kg ,3 kg ,4 kg ;1 元,1.2元,0.9元,1.1元。
问应怎样携带那些物品使得携带物品的价值最大?建模:记j x 为旅行者携带第j 件物品的件数, 取值只能为 0 或 1。
求目标函数43211.19.02.1x x x x f +++=在约束条件643324321≤+++x x x x 下的最大值.用Lingo 软件求解0-1规划计算结果6、指派问题有四个工人,要指派他们分别完成4项工作,每人做各项工作所消耗的时间如下表: 问指派哪个人去完成哪项工作,可使总的消耗时间为最小? 设:第i 个工人做第j 项工作用时ij t ,标志变量ij f 定义如下:变量名 取值⎩⎨⎧=其他件工作个工人去做第指派第01j i f ijmin∑∑==×4141i j ij ijt fs.t. 141=∑=i ijf()4,3,2,1=j 每份工作都有一人做∑==411j ijf()4,3,2,1=i 每人都只做一项工作(1) 集合定义部分(从“SETS :”到“ENDSET ”):定义集合及其属性,语句“work/A,B,C,D/”其结果正是定义了4个集合元素,没有定义变量名。
_最佳旅游路线设计

摘要:本次课题主要研究的是怎样选择一条最佳的旅游路线的问题。
针对这个问题,我主要考虑的是旅游途中所花费的时间和旅游费用。
首先我通过上网以及翻阅相关的书籍查阅各景点之间的距离、门票费用和最佳参观时间,据此将景点图简化成赋权无向图。
然后利用floyd算法得到每2个景点间的最短路径。
问题一给定了时间约束,要求花最少的钱游尽可能多的地方。
据此,我们以花费最少为目标,以时间限制及线路要求为约束,建立0-1规划模型,利用lingo软件对模型求解。
对结果进行综合分析,最后我们向王先生夫妇推荐景点数为16的路线:乌鲁木齐-达坂城-哈密-库尔勒-楼兰-阿克苏-千佛洞-天鹅湖-伊犁-博乐-石河子-克拉玛依-阿勒泰-昌吉-天山天池-乌鲁木齐。
平均每个景点花费为73.4元,除了吃饭以外,这对夫妇总共花费估计为4102元。
问题二要提出2条路线游完所有景点,据此,我们首先将所有景点按南北疆分为2组。
这两条路线要求交通费用最少,即总路程最少,我们以总行驶路程为目标,以相应的条件为约束,建立0-1线性规划模型。
利用lingo求解得到每组路线所需最短时间,并求得其均衡度。
然后对其进行调整,找到均衡度最好的一种分组。
我们为王先生夫妇推荐的第一个月的路线为:乌鲁木齐-昌吉-博乐-石河子-克拉玛依-阿勒泰-额尔齐斯河-喀纳斯湖-天山天池-哈密-吐鲁番-达坂城-乌鲁木齐,交通费用为740元。
第二个月的路线为乌鲁木齐--库尔勒--楼兰--尼雅遗址--和田--喀什--阿克苏--千佛寺--伊犁--天鹅湖--乌鲁木齐,交通费用为820元。
问题三与问题二相似,我们根据各景点之间的最短路径画出以乌鲁木齐为树根的树形图,然后按分类原则分为三组。
将模型二中的目标函数换为考察时间最小得到模型三,分别用lingo求解得到每组最佳路线及时间。
求其均衡度,然后对其进行调整。
最后,我们对该考察团设计了三条考察路线。
路线一:乌鲁木齐-博乐-伊犁-昌吉-天山天池-吐鲁番-达坂城 -乌鲁木齐,考察时间为47天。
用Lingo求解整数(0-1)规划模型.

Lingo 程序: max=2*x1+5*x2+3*x3+4*x4;
-4*x1+x2+x3+x4>=0; -2*x1+4*x2+2*x3+4*x4>=1; x1+x2-x3+x4>=1; @bin(x1);@bin(x2);@bin(x3);@bin(x4);
温州大学城市学院
例 2 用Lingo软件求解整数规划问题 min z 2 x1 5 x2 3 x3
温州大学城市学院
注意:
Lingo 默认变量的取值从0到正无穷大,
变量定界函数可以改变默认状态.
@free(x): 取消对变量x的限制(即x可取任意实数值)
例 4 求函数 z x 2 y 2 的最小值.
2 2
温州大学城市学院 例 4 求函数 z x 2 y 2 的最小值.
,8
温州大学城市学院
温州大学城市学院
上机作业题
要求:
1、建立数学模型,
2、用lingo循环语句编写程序.
温州大学城市学院
上机作业题
人员安排问题
某城市的巡逻大队要求每天的各个时间段都有一 定数量的警员值班, 以便随时处理突发事件, 每人连续 工作6h, 中间不休息. 如表所示是一天8个班次所需值 班警员的人数情况统计:
成绩 甲 乙 丙 丁 自由泳 / s 56 63 57 55 蛙泳 / s 74 69 77 76 蝶泳 / s 61 65 63 62 仰泳 / s 63 71 67 62
甲, 乙, 丙, 丁 四名队员各自游什么姿势 , 才最有可能取得好成绩?
温州大学城市学院
LINDO软件求线性规划、整数规划和0-1规划

LINDO软件求线性规划、整数规划和0-1规划LINDO软件简介/求解线性规划问题LINDO是⼀种专门⽤于求解数学规划问题的软件包。
由于LINDO执⾏速度很快、易于⽅便输⼊、求解和分析数学规划问题。
因此在数学、科研和⼯业界得到⼴泛应⽤。
LINDO/GO主要⽤于解线性规划、⾮线性规划、⼆次规划和整数规划等问题。
也可以⽤于⼀些⾮线性和线性⽅程组的求解以及代数⽅程求根等。
LINDO/GO中包含了⼀种建模语⾔和许多常⽤的数学函数(包括⼤量概论函数),可供使⽤者建⽴规划问题时调⽤。
⼀般⽤LINDO(Linear Interactive and Discrete Optimizer)解决线性规划(LP—Linear Programming)。
整数规划(IP—Integer Programming)问题。
其中LINDO 6 .1 学⽣版⾄多可求解多达300个变量和150个约束的规划问题。
其正式版(标准版)则可求解的变量和约束在1量级以上。
LINGO则⽤于求解⾮线性规划(NLP—NON—LINEAR PROGRAMMING)和⼆次规则(QP—QUARATIC PROGRAMING)其中LINGO 6.0学⽣版最多可版最多达300个变量和150个约束的规则问题,其标准版的求解能⼒亦在10^4量级以上。
虽然LINDO和LINGO 不能直接求解⽬标规划问题,但⽤序贯式算法可分解成⼀个个LINDO和LINGO能解决的规划问题。
要学好⽤这两个软件最好的办法就是学习他们⾃带的HELP⽂件。
下⾯拟举数例以说明这两个软件的最基本⽤法。
(例⼦均选⾃张莹《运筹学基础》)例1.(选⾃《运筹学基础》P54.汽油混合问题,线性规划问题)⼀种汽油的特性可⽤两个指标描述:其点⽕性⽤“⾟烷数”描述,其挥发性⽤“蒸汽压⼒”描述。
某炼油⼚有四种标准汽油,设其标号分别为1,2,3,4,其特性及库存量列于下表1中,将上述标准汽油适量混合,可得两种飞机汽油,某标号为1,2,这两种飞机汽油的性能指标及产量需求列于表2中。
车辆派送问题最短行驶路线的建模分析

车辆派送问题最短行驶路线的建模分析摘要车辆派送选取最短的行驶路线是商业公司经常要考虑的问题,一个最优的派送方案可以使公司的费用降到最低,从而使公司的利益最大化。
通过建立最优化规划模型来解决最优的车辆行驶路径问题,采用0-1整数规划简化模型,通过Lingo软件进行求解,有效解决了问题2中的具体算例,同时也给出了较普遍的求解这一类车辆行驶路径即问题3当客户i的货物需求量q i为随机参数时的数学模型及处理方法。
对于问题1,我们建立的规划模型是在客户的需求量在车辆运送的承载范围之内,我们使用0-1整数规划来解决车辆是否从客户i行驶到客户j这个问题,有效的简化了模型。
然后在考虑中心仓库的车辆数约束、车辆的载物量约束、时间约束、客户需求量约束的约束情况下,设立了行驶路径最短的目标函数。
并在问题1的具体算例中,利用Lingo软件求得了最优的规划方案:车辆最少数位3辆,行驶路径最短为910公里,路线分别为:0-3-1-2-0,0-8-5-7-0,0-6-4-0。
考虑当客户i的货物需求量q i为随机参数的情况下,客户的需求量可能大于车辆的载物量,此时每个客户可能被服务不止一次,我们通过调整约束条件,建立了车辆行驶最短路径的目标函数,使这一类的问题求解有一个更适用的模型。
关键词:车辆行径问题;0-1整数规划;目标规划模型;LINGO软件一、问题重述随着社会经济的日益发达和商业活动的日益频繁,合理的货物派送路径成了商业公司密切关注的问题。
车辆路径问题(VRP )是指给定一个或多个中心仓库、一个车辆集合和一个客户集合,每个客户有自己不同的货物需求,由车辆集合进行派送,要求在满足一定约束条件的情况下,组织合理的行车路线,达到路径最短、成本最少、或时间最短等目的。
一个商品基地,拥有一定数量容量为Q 的车辆,负责对N 个客户进行货物派送工作,客户i 的货物需求量为q i ,且i q Q <,车辆必须在一定的时间范围[],i i a b 内到达,早于i a 到达将产生等待损失,迟于i b 到达将处以一定的惩罚,给出使派送费用最小的车辆行驶路径问题的数学模型及其求解算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解:对于无向图的最短路问题,可以这样理解,从点到点和点到点的边看成有向弧,其他各条边均看成有不同方向的双弧,因此,可以按照前面介绍有向图的最短路问题来编程序,但按照这种方法编写LINGO程序相当于边(弧)增加了一倍.这里选择邻接矩阵和赋权矩阵的方法编写LINGO程序.
MODEL:
1] sets:
2] cities/1..11/;
3] roads(cities, cities): p, w, x;
4] endsets
5] data:
6] p = 0 1 1 1 0 0 0 0 0 0 0
7] 0 0 1 0 1 0 0 0 0 0 0
8] 0 1 0 1 1 1 1 0 0 0 0
9] 0 0 1 0 0 0 1 0 0 0 0
10] 0 1 1 0 0 1 0 1 1 0 0
11] 0 0 1 0 1 0 1 0 1 0 0
12] 0 0 1 1 0 1 0 0 1 1 0
13] 0 0 0 0 1 0 0 0 1 0 1
14] 0 0 0 0 1 1 1 1 0 1 1
15] 0 0 0 0 0 0 1 0 1 0 1
16] 0 0 0 0 0 0 0 0 0 0 0;
17] w = 0 2 8 1 0 0 0 0 0 0 0
18] 2 0 6 0 1 0 0 0 0 0 0
19] 8 6 0 7 5 1 2 0 0 0 0
20] 1 0 7 0 0 0 9 0 0 0 0
21] 0 1 5 0 0 3 0 2 9 0 0
22] 0 0 1 0 3 0 4 0 6 0 0
23] 0 0 2 9 0 4 0 0 3 1 0
24] 0 0 0 0 2 0 0 0 7 0 9
25] 0 0 0 0 9 6 3 7 0 1 2
26] 0 0 0 0 0 0 1 0 1 0 4
27] 0 0 0 0 0 0 0 9 2 4 0;
28] enddata
29]n=@size(cities);
30]min=@sum(roads:w*x);
31]@for(cities(i) | i #ne# 1 #and# i #ne# n:
32] @sum(cities(j): p(i,j)*x(i,j))
33] =@sum(cities(j): p(j,i)*x(j,i)));
34]@sum(cities(j): p(1,j)*x(1,j))=1;
END
在上述程序中,第6]行到第16]行给出了图的邻接矩阵,到和到的边按单向计算,其余边双向计算.第17]行到第27]行给出了图的赋权矩阵, 注意:由于有了邻接矩阵,两点无道路连接时,权值可以定义为0. 其它的处理方法基本上与有向图相同.
用LINGO软件求解,得到(仅保留非零变量)
Global optimal solution found at iteration: 2 0
Objective value: 13.00000
Variable Value Reduced Cost
X( 1, 2) 1.000000 0.000000
X( 2, 5) 1.000000 0.000000
X( 3, 7) 1.000000 0.000000
X( 5, 6) 1.000000 0.000000
X( 6, 3) 1.000000 0.000000
X( 7, 10) 1.000000 0.000000
X( 9, 11) 1.000000 0.000000
X( 10, 9) 1.000000 0.000000
即最短路径为
最短路长度为13.
→→→→→→→
1256371011。