实验2Lingo求解运输问题与整数规划
运筹学实验报告

运筹学实验报告中南民族⼤学管理学院学⽣实验报告课程名称:《管理运筹学》年级:2011级专业:会计学指导教师:胡丹丹学号:姓名:实验地点:管理学院综合实验室2012学年⾄2013学年度第2 学期⽬录实验⼀线性规划建模及求解实验⼆运输问题实验三⽣产存储问题实验四整数规划问题实验五⽬标规划实验六⽤lingo求解简单的规划问题实验七实验⼋实验九实验⼗实验(⼀)线性规划建模及求解实验时间:2013-5-18实验内容:某轮胎⼚计划⽣产甲、⼄两种轮胎,这两种轮胎都需要在A、B、C三种不同的设备上加⼯。
每个轮胎的⼯时消耗定额、每种设备的⽣产能⼒以及每件产品的计划如表所⽰。
问在计划内应该如何安排⽣产计划,使总利润最⼤?(1)请建⽴模型。
(2)使⽤“管理运筹学”软件求得结果。
根据“管理运筹学”软件结果,回答下列问题:(3)哪些设备的⽣产能⼒已使⽤完?哪些设备的⽣产能⼒还没有使⽤完?其剩余的⽣产能⼒为多少?(4)三种设备的对偶价格各为多少?请对此对偶价格的含义给予说明。
(5)保证产品组合不变的前提下,⽬标函数中的甲产品产量决策变量的⽬标系数的变化范围是多少?(6)当⼄中轮胎的单位售价变成90元时,最优产品的组合是否改变?为什么?(7)如何在A、B、C三台设备中选择⼀台增加1⼩时的⼯作量使得利润增加最多,请说明理由。
(8)若增加设备C的加⼯时间由180⼩时增加到200⼩时,总利润是否变化?为什么?(9)请写出约束条件中常数项的变化范围。
(10)当甲种轮胎的利润由70元增加到80元,⼄种轮胎的利润从65元增加到75元,请试⽤百分之⼀百法则计算其最优产品组合是否变化?并计算新利润(11)当设备A的加⼯时间由215降低到200,⽽设备B的加⼯时间由205增加到225,设备C的加⼯时间由180降低到150,请试⽤百分之⼀百法则计算原来的⽣产⽅案是否变化,并计算新利润。
实验相应结果:解:(1)设计划⽣产甲⼄两种轮胎的数量分别为x1,x2. 此线性规划的数学模型如下:Max f =70*x1+65*x2约束条件:7*x1+3*x2≤2154*x1+5*x2≤2052*x1+4*x2≤180x1 ≥0 , x2 ≥0(2)⽤运筹学软件求的结果如下:则当x1=20, x2=25时,最⼤利润为3025元(3)由(2)中结果可知,设备A和设备B的⽣产能⼒已经使⽤完,设备C 的⽣产能⼒还没有⽤完,还剩40h。
运筹学实验

《运筹学》上机实验报告学 院 机电工程学院 专 业 工业工程 指导教师 吴小东 班 级 工业10-1班 学生姓名 林 金 铎 学生学号实验时间 2012-2013学年第一学期实验一 使用LINGO 求解线性规划问题班级:工业10-1班 姓名:林金铎 学号: 评阅成绩: 已知如下线性规划模型:123max 303540z x x x =++1231231231233251823412229,,0x x x x x x x x x x x x ++≤⎧⎪++≤⎪⎨++≤⎪⎪≥⎩ 一、利用集的方法编写上述线性规划模型的LINGO 程序。
在LINGO 软件模型中编写本题的程序如下图1-1所示所示。
图1-1 LINGO 模型窗口截图点击LINGO 菜单下的Solve 选项,LINGO 软件求解所输入的模型,得到LINGO 运行状态窗口如图1-2所示图1-2 LINGO运行状态窗口截图运行结束后,关闭LINGO运行状态窗口,获得LINGO软件的结果报告窗口,如图1-3、1-4所示。
图1-3 LINGO结果报告窗口截图(一)图1-4 LINGO结果报告窗口截图(二)二、根据编写的程序,回答以下问题:1、哪些是原始集答:var(j), const(i)是原始集2、哪个是派生集该派生集是稠密集还是稀疏集该派生集有多少个成员答:A(i,j)是派生集,属于稠密集合,共有9个成员3、属性值“5”是属于成员(b1,x3)还是(b3,x1)的属性值答:属于成员(b1,x3)的属性值三、根据程序的运行结果,回答以下问题:1、全局最优值是否已经找到该值是多少答:已经找到,最优值为1652、该模型求解一共迭代了多少次答:共迭代了2次3、在求解结果的界面中,Variable、Value、Reduced Cost、Row、Slack or Surplus 和Dual Price分别表示什么答:Variable表示运算时各定义变量的取值;Value表示给出最优解中各变量的值;Reduced Cost表示列出最优单纯形表中判别数所在行的变量的系数,表示当变量有微小变动时, 目标函数的变化率;Row表示行数;Slack or Surplus 表示给出松驰变量的值;Dual Price表示当对应约束有微小变动时, 目标函数的变化率。
整数规划与运输问题

式中 xj-Myj≤0 是处理 xj 与 yj 一对变量之间逻辑关系的特殊约束,M为 任意大的正数当 xj>0 时 yj=1 ,当 xj=0 时,为使 Z 最小化,有 yj=0。 此问题为混合整数规划问题。
3.1.3 整数规划问题的解
从数学模型上看整数规划似乎是线性规划的一种特殊形式,求解 只需在线性规划的基础上,通过舍入取整,寻求满足整数要求的 解即可。但实际上两者却有很大的不同,通过舍入得到的解(整 数)也不一定就是最优解,有时甚至不能保证所得到的解是整数 可行解。
举例说明。
例3.5 设整数规划问题如下
max Z x1 x2
s.t.
146xx11
9x2 3x2
51 1
x1
,
x2
0且为整数
首先不考虑整数约束,得到线性规划问题(一般称为松弛问题)。
max Z x1 x2
s.t.
146xx11
9x2 3x2
(LP)
n
aij x j
j 1
bi
(i 1, 2,
, m)
x
j
0,(
j
1, 2,
, m)
1、先不考虑整数约束,解( IP )的松弛问题( LP ),可能得到以下情况 之一:
⑴.若( LP )没有可行解,则( IP )也没有可行解,停止计算。
⑵.若( LP )有最优解,并符合( IP )的整数条件,则( LP )的最优 解即为( IP )的最优解,停止计算。
max Z 3x1 2x2
max Z 3x1 2x2
2x1 x2 9
(
用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
甲, 乙, 丙, 丁 四名队员各自游什么姿势 , 才最有可能取得好成绩?
温州大学城市学院
实验二利用Lingo求解整数规划及非线性规划问题

例 3 用Lingo软件求解非线性规划问题
min z x1 12 x2 22
x2 x1 1,
x1
x2
2,
x1
0,
x2
0.
Lingo 程序: min= x1-1 ^2+ x2-2 ^2;
x2-x1=1;
x1+x2<=2;
注意: Lingo 默认变量的取值从0到正无穷大, 变量定界函数可以改变默认状态. @free x : 取消对变量x的限制 即x可取任意实数值
例 4 求函数 zx22y22 的最小值.
例 4 求函数 zx22y22 的最小值.
解: 编写Lingo 程序如下:
min= x+2 ^2+ y-2 ^2; @free x ; 求得结果: x=-2, y=2
二、Lingo 循环编程语句
1 集合的定义 包括如下参数: 1 集合的名称.
sets: endsets
44
minZ
aijxij
i1 j1
4
xij
1
j 1,2,3,4
s.t.
i 1 4
xij
1
i 1,2,3,4
j1
xij 0或1 i, j 1,2,3,4
LINGO程序如下:
MODEL: SETS: person/A,B,C,D/; task/1..4/; assign person,task :a,x; ENDSETS DATA: a=1100,800,1000,700,
77
63
67
丁
55
76
62
62
甲, 乙, 丙, 丁 四名队员各自游什么姿势 , 才最有可能取得好成绩
实验二、利用Lingo求解整数规划及非线性规划问题

建立数学模型
根据问题要求,建立相应的数 学模型,包括变量、约束条件 和目标函数等。
设置求解参数
根据问题类型和规模,设置合 适的求解参数,如求解方法、 迭代次数等。
分析结果
对求解结果进行分析,验证模 型的正确性和可行性。
05 整数规划问题求解实例
问题描述
问题背景
本实验将通过一个具体的整数规划问题,展示如 何利用LINGO软件进行求解。该问题涉及到生产 计划优化,目标是最大化利润,同时满足一系列 约束条件。
非线性规划问题在数学、经济、工程等领域有广泛应用,是 优化理论的重要分支。
非线性规划问题的分类
01
按照目标函数的性质,非线性规划问题可以分为凸规
划和凹规划。
02
按照约束条件的性质,非线性规划问题可以分为无约
束、有界约束和等式约束三种类型。
03
按照决策变量的个数,非线性规划问题可以分为单变
量和多变量规划。
定义约束条件
使用LINGO的FROM命令定义约束条件,例 如FROM ... >= ... (P1,P2,...,Pn)。
LINGO求解过程及果分析
求解过程
在LINGO中输入模型,选择求解器类型(整数求解器或线性求解器),设置参数,运行求解过程。
结果分析
查看求解结果,包括最优解、最优值、松弛解等信息。对结果进行解释和评估,分析其对实际问题的 指导意义。
07 实验总结与展望
实验收获与体会
掌握整数规划和非线性规划的基本概念和求解方法
通过实验,我深入了解了整数规划和非线性规划的基本概念和求解方法,包括数学模型 建立、约束条件处理、目标函数处理等。
熟练使用LINGO软件
通过实验,我掌握了LINGO软件的基本操作和参数设置,能够利用LINGO软件求解整 数规划和非线性规划问题。
Lingo实验例子

Lingo实验例子(例子来源:《运筹学教程》(第三版)胡运权主编清华大学出版社2007年第三版) 一、线性规划及单纯形法、灵敏度分析例1 P28页例5 Lingo程序:max=2*x1+x2;5*x2<=15;6*x1+2*x2<=24;x1+x2<=5;例2 P44页习题1.7(1)Lingo程序:model:max=2*x1-x2+2*x3;x1+x2+x3>=6;-2*x1+x3>=2;2*x2-x3>=0;end其余课本上的例题和习题同学们自己动手编写程序并进行调试运行,分析运行结果。
二、运输问题例3 P82页例1 Lingo程序:model:sets:gy/g1..g3/:ai;xs/x1..x4/:dj;link(gy,xs):c,x;endsetsdata:ai=16,10,22; dj=8,14,12,14;c=4,12,4,112,10,3,98,5,11,6;enddatamin=@sum(link(i,j):c(i,j)*x(i,j) );@for(gy(i):@sum(xs(j):x(i,j))=ai (i));@for(xs(j):@sum(gy(i):x(i,j))=dj (j));end例4 P98页例5(转运)Lingo程序:model:sets:plant/x1..x5/:produce; customer/y1..y5/:require;link(plant,customer):c,x; endsetsdata:produce=60,90,50,50,50;require=50,50,50,80,70;c=-4,5,3,2,1005,-1,2,100,43,2-3,5,52,100,5-3,6100,4,5,6,-5;enddatamin=@sum(link:c*x);@for(plant(i):@sum(customer(j):x (i,j))=produce(i));@for(customer(j):@sum(plant(i):x (i,j))=require(j));end三、目标规划例5 P108页例2 Lingo程序:第一种做法分三步来完成第一步:考虑目标:min=11Pd-model:min=dminus1;5*x1+10*x2<=60;x1-2*x2+dminus1-dplus1=0;4*x1+4*x2+dminus2-dplus2=36;6*x1+8*x2+dminus3-dplus3=48; end第二步:考虑目标:min=1122Pd P d-++ model:min=dminus1+dplus2;5*x1+10*x2<=60;x1-2*x2+dminus1-dplus1=0;4*x1+4*x2+dminus2-dplus2=36;6*x1+8*x2+dminus3-dplus3=48; end第三步:考虑目标:min=112233Pd P d P d-+-++model:min=dminus1+dplus2+dminus3;5*x1+10*x2<=60;x1-2*x2+dminus1-dplus1=0;4*x1+4*x2+dminus2-dplus2=36;6*x1+8*x2+dminus3-dplus3=48;end注意:如果想要在上述各步中进行灵敏度分析,只需按快捷键Ctrl+R就可以得到相应的结果或者采用一个程序进行输值运算:model:sets:level/1..3/:P,z,goal;variable/1..2/:x;h_con_num/1..1/:b;s_con_num/1..3/:g,dplus,dminus; h_cons(h_con_num,variable):A;s_cons(s_con_num,variable):C;obj(level,s_con_num):wplus,wminu s;endsetsdata:P=? ? ?;goal=? ? 0;b=60;g=0 36 48;A=5 10;C=1 -2 4 4 6 8;wplus=0 0 00 1 00 0 0;wminus=1 0 00 0 00 0 1;enddatamin=@sum(level:P*z);@for(level(i):z(i)=@sum(s_con_nu m(j):wplus(i,j)*dplus(j))+@sum(s _con_num(j):wminus(i,j)*dminus(j ))); @for(h_con_num(i):@sum(variable( j):A(i,j)*x(j))<=b(i));@for(s_con_num(i):@sum(variable( j):C(i,j)*x(j))+dminus(i)-dplus( i)=g(i));@for(level(i)|i #lt#@size(level):@bnd(0,z(i),goal(i) ));end例6 P110页例4 Lingo程序:第一种做法分四步来完成第一步:考虑目标:min=11Pd-model:min=dminus1;x1+2*x2+dminus1-dplus1=6;x1+2*x2+dminus2-dplus2=9;x1-2*x2+dminus3-dplus3=4;x2+dminus4-dplus4=2;end第二步:考虑目标:min=1122Pd P d-++model:min=dminus1+dplus2;x1+2*x2+dminus1-dplus1=6;x1+2*x2+dminus2-dplus2=9;x1-2*x2+dminus3-dplus3=4;x2+dminus4-dplus4=2;end第三步:考虑目标:min= 1122335Pd P d P d-+-++model:min=dminus1+dplus2+5*dminus3+3*d minus4;x1+2*x2+dminus1-dplus1=6;x1+2*x2+dminus2-dplus2=9;x1-2*x2+dminus3-dplus3=4;x2+dminus4-dplus4=2;end第四步:考虑目标:min= 1122334(53)Pd P d P d d-+--+++model:min=dminus1+dplus2+5*dminus3+3*d minus4+dplus1;x1+2*x2+dminus1-dplus1=6;x1+2*x2+dminus2-dplus2=9;x1-2*x2+dminus3-dplus3=4;x2+dminus4-dplus4=2;end注:做到此步后已得到满意解,可不必再往下求解,因为此时第三级优先因子已不能完全满足。
讲义:用LINGO解线性规划和整数规划

用LINGO 解线性规划和整数规划在工程技术、经济管理、科学研究和日常生活等许多领域中,人们经常遇到的一类决策问题是:在一系列客观或主观限制条件下,寻求使关注的某个或多个指标达到最大(或最小)的决策。
例如:★ 结构设计要在满足强度要求条件下选择材料的尺寸,使其总重量最轻; ★ 资源分配要在有限资源约束下制定各用户的分配数量,使资源产生的总效益最大;★ 运输方案要在满足物资需求和装载条件下安排从各供应点到各需求点的运量和路线,使运输总费用最低;★ 生产计划要按照产品工艺流程和顾客需求,制定原料、零件、部件等订购、投产的日程和数量,尽量降低成本使利润最高。
上述这种决策问题通常称为优化问题。
人们解决这些优化问题的手段大致有以下几种:1.依赖过去的经验判断面临的问题。
这似乎切实可行,并且没有太大的风险,但是其处理过程会融入决策者太多的主观因素,难以客观地加以描述,从而无法确认结果的最优性。
2.做大量的试验反复比较。
这固然比较真实可靠,但是常要花费太多的资金和人力,而且得到的最优结果基本上离不开开始设计的试验范围。
3.用数学建模的方法建立数学规划模型求解最优决策。
虽然由于建模时要作适当的简化,可能使得结果不一定完全可行或达到实际上的最优,但是它基于客观规律和数据,又不需要多大的费用,具有前两种手段无可比拟的优点。
如果在此基础上再辅之以适当的经验和试验,就可以期望得到实际问题的一个比较圆满的回答,是解决这种问题最有效、最常用的方法之一。
1.1.1 数学规划模型数学规划模型一般有三个要素:一是决策变量,通常是该问题要求解的那些未知量,不妨用n 维向量12n x (x ,x ,,x )'= 表示;二是目标函数,通常是该问题要优化(最小或最大)的那个目标的数学表达式,它是决策变量x的函数,这里抽象地记作f(x);三是约束条件,由该问题对决策变量的限制条件给出,即x允许取值的范围x∈Ω,Ω称可行域,常用一组关于x的不等式(也可是等式)g i(x)≤0(I=1,2,…,m)来界定。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非线性规划 (NLP)
Lingo
LINDO/LINGO软件的求解过程
1. 确定常数
2. 识别类型
LINDO/LINGO预处理程序
LP QP NLP IP 全局优化(选) 分枝定界管理程序 ILP IQP INLP
线性优化求解程序
非线性优化求解程序
1. 单纯形算法 2. 内点算法(选)
1、顺序线性规划法(SLP) 2、广义既约梯度法(GRG) (选) 3、多点搜索(Multistart) (选)
m in c ij x ij
i 1 j 1 8 x ij a i ( i 1,2,...,6) j61 s .t . x ij d i ( j 1,2,...,8) i 1 x ij 0, i 1,2,...,6, j 1....,8
6
8
model: !6发点8收点运输问题; sets: chandi/A1..A6/: a; xiaodi/B1..B8/: d; links(chandi,xiaodi): c, x; endsets !目标函数; min=@sum(links(i,j): c(i,j)*x(i,j)); !需求约束; @for(xiaodi(J): @sum(chandi(I): x(I,J))=d(J)); !产量约束; @for(chandi(I): @sum(xiaodi(J): x(I,J))<=a(I)); !这里是数据; data: a=60 55 51 43 41 52; d=35 37 22 32 41 32 43 38; c=6 2 6 7 4 2 9 5 49538582 52197433 76739271 23957265 5 5 2 2 8 1 4 3; enddata end
数学规划
实验2 Lingo求解运输问题和整数规划
LINGO软件简介
LINGO模型的优点
•包含了LINDO的全部功能 •提供了灵活的编程语言(矩阵生成器)
LINGO模型的构成:4个段
•目标与约束段 • 集合段(SETS ENDSETS)
• 数据段(DATA ENDDATA) •初始段(INIT ENDINIT)
产销不平衡问题
m in c ij x ij
i 1 j 1 8 x ij c i ( i 1,2,...,6) j61 s .t . x ij d i ( j 1,2,...,8) i 1 x ij 0, i 1,2,...,6, j 1....,8
i
6
8
a
i i
i
60 55 51 43 41 52 302
b 35 37 22 32 41 32 43 38 280
使用LINGO软件,编制程序如下:
使用LINGO软件,编制程序如下:
model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))<=capacity(I)); data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 49538582 52197433 76739271 23957265 5 5 2 2 8 1 4 3; enddata end
41
A6
销量
5
35
5
37
2
22
2
32
i i
8
41
1
32
4
43
3
38
52
a
i
i
60 55 51 43 41 52 302
b 35 37 22 32 41 32 43 38 280
• 解:设第I个产地运到第j个销地的单位运价为 cij ,第I个产地运到第j个销地的运量为 xij ,第I 个产地的产量为ai (I=1,2,…,6),第j个销地的销 量为 bj(j=1,2,…,8),运费为z,则此问题的数学 模型为如下的数学规划问题:
简单Lingo程序
•lingo程序:
Model: min=7*x1+3*x2; x1+x2>=345.5; x1>=98; 2*x1+x2<=600; end
优化模型
实际问题中 的优化模型
Min(或Max) z f ( x), x ( x1 ,x n ) s.t. g i ( x) 0, i 1,2, m
二、实验例题 例2.1 使用LINGO软件计算6个发点8个收点的最小费用运输问 题。产销单位运价如下表。
单 位 运 价 产地
销地 B1 B2 B3 B4 B5 B6 B7 B8 产量
A1
6
2
6
7
4
2
5
9
60
A2
A3
4
5
9
2
5
1
3
9
8
7
5
4
8
3
2
3
55
51
A4
A5
7
2
6
3
7
9
3
5
9
7
2
2
7
6
Hale Waihona Puke 1543f(x)~目标函数 gi(x)0~约束条件
T
x~决策变量 数学规划 线性规划(LP) 二次规划(QP) 非线性规划(NLP)
0-1整数规划 一般整数规划
纯整数规划(PIP) 混合整数规划(MIP)
连续规划
整数规划(IP)
LINDO 公司软件产品简要介绍
美国芝加哥(Chicago)大学的Linus Schrage教授于1980年前后开发, 后来成立 LINDO系统 公司(LINDO Systems Inc.), 网址:
What’s Best!: (SpreadSheet e.g. EXCEL) (V7.0)
演示(试用)版、学生版、高级版、超级版、工业版、 扩展版… (求解问题规模和选件不同)
LINDO和LINGO软件能求解的优化模型
优化模型
连续优化
整数规划(IP)
线性规划 (LP)
LINDO
二次规划 (QP)
LINGO
LINDO: Linear INteractive and Discrete Optimizer LINGO: Linear INteractive General Optimizer
(V6.1) (V8.0)
LINDO API: LINDO Application Programming Interface (V2.0)