lingo求解多目标规划__例题
一个使用Lingo求解多目标0-1整数规划问题答案
AK是一家空调制造商,其面临的需求增长很快。
预计2001年,其全国的需求在南部将为180,000单位,在中部为120,000单位,在东部为110,000单位,在西部为100,000单位。
DryIce在设计物流网络时,有四个备选的地点:New York, Atlanta, Chicago和San Diego。
在这四个地点建厂,工厂的生产能力将要么为200,000单位,要么为400,000单位。
工厂的年固定运营成本及从工厂所在地生产出产品并运往四个销售区域的生产和运输的单位成本如表所示。
请为该设施网络的设计建立模型,并请对模型作简要说明。
设定变量如下表所示:其中M11 M12等一系列值为0.1变量,即可得到如下式子:m12+9200000*m22+232*x12+212*x22+230*x32+280*x42+5600000*m13+9300000*m 23+238*x13+230*x23+215*x33+270*x43+6100000*m14+10200000*m24+299*x14+2 80*x24+270*x34+225*x44;m11*200000+m21*400000>=x11+x21+x31+x41;m12*200000+m22*400000>=x12+x22+x32+x42;m13*200000+m23*400000>=x13+x23+x33+x43;m14*200000+m24*400000>=x14+x24+x34+x44;x11+x12+x13+x14>=110000;x21+x22+x23+x24>=180000;x31+x32+x33+x34>=120000;x41+x42+x43+x44>=100000;@bin(m11);@bin(m21);@bin(m12);@bin(m22);@bin(m13);@bin(m23);@bin(m14);@bin(m24);通过运行LINGO得到如下结果:Global optimal solution found.Objective value: 0.1294800E+09Extended solver steps: 0Total solver iterations: 131Variable Value Reduced CostM11 0.000000 -6200000.M21 0.000000 -0.1440000E+08 X11 0.000000 0.000000X21 0.000000 41.00000X31 0.000000 31.00000X41 0.000000 136.0000M12 0.000000 -2500000.M22 1.000000 -6800000.X12 110000.0 0.000000X22 180000.0 0.000000X32 110000.0 0.000000X42 0.000000 95.00000M13 0.000000 -5400000.M23 0.000000 -0.1270000E+08 X13 0.000000 21.00000X23 0.000000 33.00000X33 0.000000 0.000000X43 0.000000 100.0000M14 1.000000 6100000.M24 0.000000 0.1020000E+08 X14 0.000000 27.00000X24 0.000000 28.00000X34 10000.00 0.000000X44 100000.0 0.000000Row Slack or Surplus Dual Price1 0.1294800E+09 -1.0000002 0.000000 -61.000003 0.000000 -40.000004 0.000000 -55.000005 90000.00 0.0000006 0.000000 -272.00007 0.000000 -252.00008 0.000000 -270.00009 0.000000 -225.0000如下表:总成本为:$129480000。
Lingo解目标规划
B
0.3 0.3 3.2
棉花库存量
300 180
甲绵(kg) 乙绵(kg)
利润(元/km)
若利润指标为1755元,A种棉花要生产650km,问 A,B两种棉纱各应该生产多少?
目标规划模型:
设分别生产A、B两种棉纱x1, x 2km,则: min z p d p2 d
1 1 2
0.5 x1 0.3x 2 300 0.1x1 0.3x 2 180 2.5 x1 3.2 x 2 d1 d1 1755 x1 d 2 d 2 650 x1, x 2, d i 0
整数线性规划的几种类型
纯整数线性规划 混合整数线性规划
0-1型整数线性规划
例:
max z 20x1 10x 2 5 x1 4 x 2 24 2 x1 5 x 2 13 s.t. x1, x 2 0 x1, x 2取整数
不考虑整数约束时求解
Lingo代码:
min=d21; 0.5*x1+0.3*x2<=300; 0.1*x1+0.3*x2<=180; 2.5*x1+3.2*x2+d11-d12=1755; x1+d21-d22=650; d11=0;
例4:已知有三个产地给四个销地供应某种产品,产销 地之间的供需量和单 7 13
Lingo代码
sets: cd/1..3/:a; xd/1..4/:b; links(cd,xd):c,x; px/1..13/:d1,d2; endsets data: a=300 200 400; b=200 100 450 250; c=5 2 6 7 3546 4 5 2 3; enddata min=d2(13); @for(cd(i):@sum(xd(j):x(i,j))=a(i)); @for(xd(j):@sum(cd(i):x(i,j))<=b(j)); x(1,4)+x(2,4)+x(3,4)+d1(4)-d2(4)=250; x(3,1)+d1(5)-d2(5)=100; @for(xd(j):@sum(cd(i):x(i,j))+d1(j+5)-d2(j+5)=b(j)*0.8); @sum(links(i,j):c(i,j)*x(i,j))+d1(10)-d2(10)=2950*1.1; x(2,4)+d1(11)-d2(11)=0; (x(1,1)+x(2,1)+x(3,1))-(200/450)*(x(1,3)+x(2,3)+x(3,3))+d1(12)-d2(12)=0; @sum(links(i,j):c(i,j)*x(i,j))+d1(13)-d2(13)=2950; y=@sum(links(i,j):c(i,j)*x(i,j)); d1(4)=0; d1(5)=0; d1(6)+d1(7)+d1(8)+d1(9)=0; d2(10)=115; d2(11)=0; d1(12)+d2(12)=30; d1(1)+d1(2)+d1(3)+d2(1)+d2(2)+d2(3)=0;
lingo-多目标规划模型
如上例的各个方案之间 , ④比①好,⑤比④好, ⑥比②好, ⑦比③好。
图 多目标规划的劣解与非劣解
而对于方案⑤、⑥、 ⑦之间则无法确定优劣, 而且又没有比它们更好 的其他方案,所以它们 就被称为多目标规划问 题的非劣解或有效解, 其余方案都称为劣解。 所有非劣解构成的集合 称为非劣解集。
当目标函数处于冲突状态时,就不会存在使所有目 标函数同时达到最大或最小值的最优解,于是我们只能 寻求非劣解。
用LINGO软件求解目标规划问题
1. 求解方法概述
• LINGO(或LINDO)不能直接求解目标规 划问题,但可以通过逐级求解线性规划的 方法,求得目标规划问题的满意解。
2. 示例
• 例1 用LINGO求解目标规划问题
min z P1 d 1 P2 d 2 P3 d 3
10x1 15x 2 d 1 d 1 40 x x d d 1 2 2 2 10 s.t. x2 d 3 d 3 7 x1 , x 2 , d , d j j 0, j 1,2,3
目标之间的矛盾性是指,如果改进某 一目标的值,可能会使另一个或一些目标 变差。正因为各目标的不可公度性和相互 之间的矛盾性,多目标决策问题不能简单 的作为单目标问题来处理。必须深入研究 其特征,特别是解的性质。单目标决策一 般有最优解,且往往是唯一的,有时可能 存在无限多个解。但是这里的“最优”往 往带有片面性,不能全而准确的反映决策 者的偏好信息。多目标决策问题不存在所 谓的“最优”解,只存在满意解。满意解 指决策者对于有关的所有目标值都认为满 意。
图6
LINGO运算后输出为:(参见图7)
图7
•
d 6 , d d d x 4 , x 0 , 因此, 1 3 7 2 1 1 =0, 2
用Lingo软件编程求解规划问题
x2桶牛奶生产A2 获利 16×4 x2
Max z 72 x1 64 x2
x1 x2 50
12 x1 8x2 480 3x1 100
x1, x2 0
线性规 划模型 (LP)
例1——加工奶制品的生产计划
x1 x2 50
12
x1 8x2 480 3x1 100
Lingo软件——基本集合元素的列举
一个原始集是由一些最基本的对象组成的。 setname [/member_list/] [: attribute_list];
sets: students/John Jill, Rose Mike/: sex, age;
endsets
集、集成员和集属性
• 集成员无论用何种字符标记,它的索引都是 从1开始连续计数。
ij
8
j 1
N Nij
V
i
i 1, ,6,j 1, ,8, i 1, ,6,
N 6
i1 ij
d
j
j 1, ,8.
结果
Lingo软件
Lingo 是一个可以简洁地阐述、解决和分析复杂问题的简便工具。
其特点是程序执行速度很快,易于输入、修改、求解和分析一个数 学规划问题。
N 6
i1 ij
d
j
j 1, ,8.
corps
需求量 35 37 22 32 41 32 43 38
拥有量
60 55 51 depot 43 41 52
B1 B2 B3 B4 B5 B6 B7 B8
A1
62674259
A2
49538582
用LINGO求解线性规划的例子
附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A1,或者在设备乙上用8小时加工成4公斤A2。
根据市场需求,生产的A1、A2能全部售出,且每公斤A1获利24元,每公斤A2获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且设备甲每天至多能加工100公斤A1,设备乙的加工能力没有限制。
试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:1)若用35元可以购买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划?数学模型:设每天用x1桶牛奶生产A1 ,用x2桶牛奶生产A2目标函数:设每天获利为z元。
x1桶牛奶可生产3x1公斤A1,获利24*3x1,x2桶牛奶可生产4*x2公斤A2,获利16*4x2,故z=72x1+64x2约束条件:原料供应:生产A1、A2的原料(牛奶)总量不超过每天的供应50桶,即x1+x2≤50劳动时间:生产A1、A2的总加工时间不超过每天正式工人总的劳动时间480小时,即12x1+8x2≤480设备能力:A1的产量不得超过设备甲每天的加工能力100小时,即3x1≤100非负约束:x1、x2均不能为负值,即x1≥0,x2≥0综上所述可得max z=72x1+64x2s.t.x1+x2≤5012x1+8x2≤4803x1≤100x1≥0,x2≥0显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。
LINGO求解线性规划用LINGO求解线性规划时,首先在LINGO软件的模型窗口输入一个LP模型,模型以MAX或MIN 开始,按线性规划问题的自然形式输入(见下面例子所示)。
用lingo求解规划问题实例
用lingo求解规划问题实例用Lingo求解规划问题实例问题一:某公司打算向它的3个营业区增设6个销售店,每个营业区至少增设一个。
从各区赚取的利润与增设的销售店个数有关,其数据如下表所示。
试求各区应分配几个增设的销售店,才能使总利润最大。
销售点增加数 0 1 2 3 4A区利润/万元 100 200 280 330 340B区利润/万元 200 210 220 225 230C区利润/万元 150 160 170 180 200分析:要设置集合zone/A,B,C/,表示三个地区。
因为获得的利润与地区和各地的销售点增加数均相关,所以可以仿照运输模型,用number/1..4/表示每个地区可选的销售点增加数,1,在i地区新增j个销售点,然后用一个派生集links(zone,number):c,profit,定义 c,,ij0,其他,profit(i,j)为在i地区新增j个销售点能获得的利润。
可写出约束条件为:4, c,1i,1,2,3,ijj,1c,0或1 ij34cj,6 ,,ijij,,11所求函数为max=@sum(links:c*profit);Lingo程序如下:model:sets:zone/A,B,C/; !A,B,C三个地区;number/1..4/; !各地区可选择新建的销售点数目,可选1~4中的一个数,通过links把zone和number联系起来;links(zone,number):c,profit; !若在i地区新建j个销售点,则c(i,j)=1,否则c(i,j)=0.profit(i,j)表示在i地区新建j个销售点的利润; endsets data:profit=200 280 330 340210 220 225 230160 170 180 200;enddatamax=@sum(links:c*profit);@for(zone(I):@sum(number(J):c(I,J))=1); !对于每一个地区,新建销售点的数目是一定的,c的和为1;@sum(zone(I):@sum(number(J):c(I,J)*J))=6; !三个地区新建的销售点总数为6;@for(links(i,j):@bin(c(i,j))); !每一个c(i,j)只能取0或1;end用Lingo求解,结果如下:Global optimal solution found.Objective value: 710.0000Extended solver steps: 0Total solver iterations: 0Variable Value Reduced CostC( A, 1) 0.000000 -200.0000C( A, 2) 0.000000 -280.0000C( A, 3) 1.000000 -330.0000C( A, 4) 0.000000 -340.0000C( B, 1) 1.000000 -210.0000C( B, 2) 0.000000 -220.0000C( B, 3) 0.000000 -225.0000C( B, 4) 0.000000 -230.0000C( C, 1) 0.000000 -160.0000C( C, 2) 1.000000 -170.0000C( C, 3) 0.000000 -180.0000C( C, 4) 0.000000 -200.0000 则在A,B,C区域应分别新增3,1,2个销售点,可获得的最大利润为710万元。
lingo求解多目标规划--例题
实验二:目标规划一、实验目得目标规划就是由线性规划发展演变而来得,线性规划考虑得就是只有一个目标函数得问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有得还相互矛盾。
这些问题用线性规划求解就比较困难,因而提出了目标规划。
熟悉目标规划模型得建立,求解过程及结果分析。
二、目标规划得一般模型设)...2,1(n j x j =就是目标规划得决策变量,共有m 个约束就是国内刚性约束,可能就是等式约束,也可能就是不等式约束。
设有l 个柔性目标约束,其目标规划约束得偏差就是),...,2,1(,l i d d i i =-+。
设有q 个优先级别,分别为q p p p ,...,21。
在同一个优先级k p 中,有不同得权重,分别记为),...,2,1(,l j w w kj kj =-+。
因此目标规划模型得一般数学表达式为: min ∑∑=++--=+=l j j kj j kj q k kd w d w p z 11);(s 、t 、,,...2,1,),(1m i b x a n j i j ij =≥=≤∑= .,...2,1,0,,,...,2,1,,,...2,1,1l i d d n x o x l i g d d x ci i j i n j i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。
四、实验内容及步骤1、打开LINGO ,并利用系统菜单与向导在E 盘创建一个项目。
目录与项目名推荐使用学生自己得学号。
2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序得可读性。
例2、1:某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。
企业得经营目标不仅仅就是利润,还需要考虑多个方面:(1) 力求使利润不低于1500元;(2) 考虑到市场需求,Ⅰ、Ⅱ两种产品得产量比应尽量保持1:2;(3) 设备A 为贵重设备,严格禁止超时使用;(4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。
实用运筹学4.2 目标规划的Lingo求解
(2) 当任务重时,可以采用加班的方法扩大生产,但每周加 班最好不超过10小时;
(3) 尽量达到销售指标;
(4) 尽可能减少加班时间.
试建立该问题的目标规划模型,并为该厂给出一个满意的生 产方案.
从计算结果可以看出,问题的最优解(满意解 )为甲机械生产10辆,乙机械和丙机械均生产8辆 ,获得利润78万元,有28个设备工时未利用.
练习: 假设某洗衣机厂生产全自动和半自动两种洗衣机,每 生产一台这两种洗衣机都需要工时为1(h/台). 工厂的正常 生产能力是每日两班、每周工作80小时. 根据市场需求,每 周的最大销售量为全自动70台,半自动35台.已知每售出一 台全自动和半自动洗衣机的利润分别为250元和150元,为了 制定合理的生产计划,负责人提出: (1) 尽量避免开工不足;
应用Lingo软件求解可得如下结果: Variable Value Reduced Cost D1_ 0.000000 9669.667 D2 0.000000 0.000000 D3 0.000000 100.0000 D4_ 28.00000 0.000000 D4 0.000000 2.000000 X1 10.00000 0.000000 X2 8.000000 0.000000 X3 8.000000 0.000000 D1 0.000000 330.3333 D2_ 0.000000 1000.000 D3_ 0.000000 0.000000
例4.2.1 某机床厂拟生产甲、乙、丙三种型号的机 床,每生产一台甲、乙、丙型号的机床需要的工时 分别为6小时、9小时、10小时,根据历史销售经验 ,甲、乙、丙型号的机床每月市场需求分别为10台 、12台、8台,每销售一台的利润分别为2.2万元、 3万元、4万元.生产线每天的工作时间为8小时. 企业负责人在制定生产计划时,首先要保证利润不 低于计划利润78万元;其次,根据市场调查,乙型 机床销量有下降的趋势,丙型机床销量有上升的趋 势,因而,乙型机床的产量不应多于丙型机床的产 量;此外,由于市场变化,甲型机床的原材料成本 增加,使得利润下降,应适当降低其产量;最后, 要充分利用原有的设备台时,尽量不要加班生产. 试为该企业制定合理的生产计划.
lingo-多目标规划模型
在生产系统、工程系统、社会经济系统中, 多目标决策问题更是屡见不鲜。比如在炼油厂的 生产计划中,基本的决策问题是如何根据企业的 外部环境与内部条件,制定出具体的作业计划。 该计划应能使企业的各种主要的经济指标达到预 定的目标。这些指标包括:利润、原油量、成本、 能耗等。其他企业一般也有类似的多目标计划决 策问题。 多目标决策问题有两个共同的特点,即各目 标的不可公度性和相互之间的矛盾性。所谓目标 的不可公度性指各目标之间没有统一的量纲,因 此难以作相互比较。
多目标决策问题的案例及特点 我们介绍两个日常生活中常见的决策问题。第 一个是顾客到商店购买衣服。对于顾客而言,购买 衣服就是一个决策问题,顾客本人是决策者,各种 各样的衣服是行动方案集。该决策问题的解就是顾 客最终买到一件合适的衣服(或选择一个满意的方 案)。那么,一件衣服(即一个方案)合适否(满 意否)应该根据几个指标来评价,比如衣服的质量、 价格、大小、式样、颜色等。 因此,顾客购买衣服的问题是多目标决策问题。 又如,公务人员外出办事总要乘某种交通工具。这 也是一个决策问题,决策者是公务员,备选方案是 可利用的交通工具。公务员为了选择合适的交通工 具,需要考虑几个指标,比如:时间、价格、舒适 性、方便程度等。显然这也是一个多目标决策问题。
图5
d 对应于第三优先等级,将 1 =0,d 2 6 作为约束条件,建立
线性规划问题:
min z d 3 10x1 15x2 d1 d1 40 x x d d 1 2 2 2 10 x2 d 3 d 3 7 s.t. d1 0, d 2 6 x , x , d , d 1 2 j j 0, j 1,2,3
由于模型的不准确性和单一目标的片面性,这 种所谓最优的方案并不一定是决策者满意的。自然, 用这种最优方案作为决策者的最终决策具有强迫性 质,往往难以为决策者接受。另一方面,多目标方 法向决策者提供经过仔细选择的备选方案(多种方 案)。这样使得决策者有可能利用自己的知识和经 验对这些方案进行评价和判断,从中找出满意方案 或给出偏好信息以及寻找更多的备选方案。 概括起来,多目标决策方法处理实际决策问题 有三个方面的优点:(1)加强了决策者在决策过程 中的作用;(2)可以得到范围更为广泛的备选决策 方案;(3)决策问题的模型和分析者对问题的直觉 将更加现实。
lingo处理实例(多目标问题)
•.LNG:文本格式的模型文件,不保存模型中的格式信 息(如字体、颜色、嵌入对象等); •.LDT:LINGO数据文件;
•.LTF:LINGO命令脚本文件; •.LGR:LINGO报告文件; •.LTX: LINDO格式的模型文件;
除“LG4”文件外, 另外几种格式的文件 都是普通的文本文件, 可以用任何文本编辑 器打开和编辑。
LINGO软件的基本使用方法
内容提要
1. LINGO入门 2.在LINGO中使用集合
3. 运算符和函数
4. LINGO的主要菜单命令 5. LINGO命令窗口
6.习题
1. LINGO入门 2.在LINGO中使用集合
3. 运算符和函数
1. LINGO入门 4. LINGO的主要菜单命令 5. LINGO命令窗口
LINGO软件的主要特色
两种命令模式 Windows模式: 通过下拉式菜单命令驱动LINGO运
行(多数菜单命令有快捷键,常用的菜单命令有快捷
按钮),图形界面,使用方便;
(这里主要介绍这种模式)
命令行 模式:仅在命令窗口(Command Window)下操 作,通过输入行命令驱动LINGO运行 。
从LINDO 到 LINGO 如今 LINGO 功能增强,性能稳定,解答结果可靠。
数学建模辅导
2012年07月19日
ቤተ መጻሕፍቲ ባይዱ
常见的问题
1 分析题目以及选题 2 方法的选择
3 模型的体现
4 对问题求解和软件使用 5 论文写作和格式、排版 6 其他
1 分析题目以及选题
• 越熟悉的领域越好??X (学经济的就一定要选择*
题?)
• • • • •
觉得越简单越好??X(**题感觉太难。) 感兴趣很重要 挖掘内部的数学问题(A题中的数学) 抓住主要问题(不要跑题,减速带的设计、不是分析特定类型) 要有独到的见解和创新的思路(只要讨论量与量的 关系就回归、拟合) • 要能够根据问题合理安排时间(无法完成题目)
用lingo求解数学规划模型实例
1, 第i个部队分配第j种装备 设 xij 0, 第i个部队不分配第j种装备
目标函数: max aij xij
i 1 j1
9
9
xij 1 i 1 9 s .t . : x 1 ij j1 xij=0或1
( i, j=1,2,…,9)
9
9
EQ1 EQ2 EQ3 EQ4 EQ5 EQ6 EQ7 EQ8 EQ9 AR1 0 0 0 0 0 0 0 0 1 AR2 0 0 0 1 0 0 0 0 0 AR3 0 0 0 0 0 1 0 0 0 AR4 0 0 0 0 1 0 0 0 0 AR5 1 0 0 0 0 0 0 0 0 AR6 0 0 0 0 0 0 1 0 0 AR7 0 0 0 0 0 0 0 1 0 AR8 0 0 1 0 0 0 0 0 0 AR9 0 1 0 0 0 0 0 0 0 装备 部队 1 2 3 4 5 6 7 8 9 A 0.24 0.31 0.31 0.49 0.63 0.45 0.45 0.32 0.33 B 0.42 0.04 0.24 0.06 0.15 0.02 0.07 0.24 0.56 C 0.15 0.60 0.08 0.28 0.31 0.37 0.26 0.58 0.41 D 0.46 0.69 0.14 0.13 0.60 0.14 0.15 0.64 0.13 E 0.34 0.11 0.54 0.65 0.06 0.69 0.18 0.43 0.65 F 0.69 0.24 0.61 0.41 0.41 0.29 0.43 0.45 0.07 G 0.03 0.45 0.37 0.55 0.47 0.61 0.55 0.09 0.22 H 0.57 0.35 0.48 0.25 0.19 0.18 0.66 0.05 0.46 I 0.69 0.27 0.34 0.36 0.31 0.46 0.08 0.20 0.11
数学建模必备知识lingo处理实例多目标问题ppt课件
LINGO软件的主要特色
两种命令模式 Windows模式: 通过下拉式菜单命令驱动LINGO运 行(多数菜单命令有快捷键,常用的菜单命令有快捷 按钮),图形界面,使用方便; (这里主要介绍这种模式)
命令行 模式:仅在命令窗口(Command Window)下操 作,通过输入行命令驱动LINGO运行 。
•.MPS:示MPS(数学规划系统)格式的模型文件。
• 运行状态窗口
Variables(变量数量): 变量总数(Total)、 非线性变量数(Nonlinear)、 整数变量数(Integer)。
Constraints(约束数量): 约束总数(Total)、 非线性约束个数(Nonlinear)。
约束条件主要有两个: 1)能力限制: R(IP )4,I0 1 ,2 ,3 ,4 2)产品数量的平衡方程:
I( N I ) IV ( N I 1 ) R V ( I ) O P ( I ) D P ( I ) I E , 1 , 2 , 3 , 4 M
INV (0)10
加上变量的非负约束
一个简单的LINGO程序
例 直接用LINGO来解如下二次规划问题:
Max98x127x72x120.3x1x22x22 1
s.t. x1x2100
2
x12x2
3
x1,x20 为整数
4
输入窗口如下:
程序语句输入的备注:
•LINGO总是根据“MAX=”或“MIN=”寻找目标函数, 而除注释语句和TITLE语句外的其他语句都是约束条 件,因此语句的顺序并不重要 。 •限定变量取整数值的语句为“@GIN(X1)”和 “@GIN(X2)”,不可以写成“@GIN(2)”,否则 LINGO将把这个模型看成没有整数变量。 •LINGO中函数一律需要以“@”开头,其中整型变量 函数(@BIN、@GIN)和上下界限定函数(@FREE、 @BND(L,X,U))。而且0/1变量函数是@BIN函数。
lingo求解多目标规划__例题
实验二:目标规划一、实验目的目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。
这些问题用线性规划求解就比较困难,因而提出了目标规划。
熟悉目标规划模型的建立,求解过程及结果分析。
二、目标规划的一般模型设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。
设有l 个柔性目标约束,其目标规划约束的偏差是),...,2,1(,l i d d i i =-+。
设有q 个优先级别,分别为q p p p ,...,21。
在同一个优先级k p 中,有不同的权重,分别记为),...,2,1(,l j w w kj kj =-+。
因此目标规划模型的一般数学表达式为:min ∑∑=++--=+=l j j kj j kj q k k d w d w p z 11);(s.t. ,,...2,1,),(1m i b x an j i j ij =≥=≤∑= .,...2,1,0,,,...,2,1,,,...2,1,1l i d d n x o x l i g d d x c i i j i nj i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。
四、实验容及步骤1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。
目录和项目名推荐使用学生自己的学号。
2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。
例2.1:某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。
企业的经营目标不仅仅是利润,还需要考虑多个方面:(1) 力求使利润不低于1500元;(2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2;(3) 设备A 为贵重设备,严格禁止超时使用;(4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。
目标规划练习题
多目标规划训练例题某音像商店有5名全职熟练货员和4名兼职售货员,全职售货员每月工作160h,兼职售货员每月工作80h,根据过去的工作纪录,全职售货员每小时销售CD25张,平均每小时工资15元,加班工资每小时22.5元,兼职售货员每小时销售CD10张,平均工资每小时10元,加班工资每小时10元,现在预测下个月CD销售量为27500张,商店每周开门营业6天,所以可能要加班,每出售一张CD盈利1.5元。
商店经理认为,保持稳定的就业水平加上必要的加班,比不加班但就业水平不稳定要好,但全职售货员如果加班过多,就会因为疲劳过度而造成效益下降,因此,不允许每月加班超过100h,建立相应的目标规划模型,并应用Lingo软件求解。
解:首先建立目标约束的优先级:1P :下月的CD 销售量达到27500张2P :限制全职售货员加班时间不超过100h3P :保持全体售货员充分就业,因为充分工作是良好劳资关系的重要因素,但对全职售货员要比兼职售货员加倍优先考虑4P :尽量减少加班时间,但对两种售货员区别对待,优先权因子由他们对利润的贡献而定。
第二,建立目标约束(1)销售目标约束,设1x :全体全职售货员下月的工作时间;2x :全体兼职售货员下月的工作时间;-1d :达不到销售目标的偏差;+1d :超过销售目标的偏差;希望下月的销售超过27500张CD 片,因此销售目标为⎩⎨⎧=-+++--275001025}min{11211d d x x d (2)正常工作时间约束,设-2d :全体全职售货员下月的停工时间; +2d :全体全职售货员下月的加班时间; -3d :全体兼职售货员下月的停工时间; +3d :全体兼职售货员下月的加班时间; 由于希望保持全体售货员充分就业,同时加倍优先考虑全职售货员,因此工作目标约束为⎪⎩⎪⎨⎧=-+=-+++-+---320800}2min{33222132d d x d d x d d(3)加班时间的限制,设-4d :全体全职售货员下月加班时间不足100h 的偏差;+4d :全体全职售货员加班时间超过100h 的偏差;限制全职售货员加班时间不超过100h ,将加班约束看成正常班约束,不同的是右端加上100 h ,因此加班目标约束为⎩⎨⎧=-++-+900}min{4414d d x d 另外,全职售货员加班1h ,商店得到的利润为15元)155.225.125(=-⨯,兼职售货员加班1h ,商店得到的利润为5元)5105.110(=-⨯,因此加班1h 全职售货员获得的利润是兼职售货员的3倍,故权因子之比为3:1:32=++d d所以,另一个加班目标约束为⎪⎩⎪⎨⎧=-+=-+++-+-++320800}3min{33222132d d x d d x d d第三,按目标的优先级,写出相应的目标规划模型:⎪⎪⎪⎩⎪⎪⎪⎨⎧==-+=-+=-+=-+++++++=+-+-+-+-+-++--+-4,3,2,1,,,,900320800275001025..);3()2(min 2144133222111213243234211i d d x x d d x d d x d d x d d x x t s d d P d d P d P d P z i i第四,写出相应的LINGO 程序 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二:目标规划一、实验目的目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。
这些问题用线性规划求解就比较困难,因而提出了目标规划。
熟悉目标规划模型的建立,求解过程及结果分析。
二、目标规划的一般模型设)...2,1(n j x j =是目标规划的决策变量,共有m 个约束是国刚性约束,可能是等式约束,也可能是不等式约束。
设有l 个柔性目标约束,其目标规划约束的偏差是),...,2,1(,l i d d i i =-+。
设有q 个优先级别,分别为q p p p ,...,21。
在同一个优先级k p 中,有不同的权重,分别记为),...,2,1(,l j w w kj kj =-+。
因此目标规划模型的一般数学表达式为:min ∑∑=++--=+=l j j kj j kj q k k d w d w p z 11);(s.t. ,,...2,1,),(1m i b x an j i j ij =≥=≤∑= .,...2,1,0,,,...,2,1,,,...2,1,1l i d d n x o x l i g d d x c i i j i nj i i j ij =≥=≥==-++-=+-∑ 三、实验设备及分组实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)。
四、实验容及步骤1、打开LINGO ,并利用系统菜单和向导在E 盘创建一个项目。
目录和项目名推荐使用学生自己的学号。
2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。
例2.1:某工厂生产Ⅰ、Ⅱ两种产品,需要用到A ,B ,C 三种设备,已知有关数据见下表。
企业的经营目标不仅仅是利润,还需要考虑多个方面:(1) 力求使利润不低于1500元;(2) 考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2;(3) 设备A 为贵重设备,严格禁止超时使用;(4) 设备C 可以适当加班,但要控制;设备B 即要求充分利用,又尽可能不加班。
在重要性上,设备C 是设备B 的3倍。
此题中只有设备A 是刚性约束,其余都是柔性约束。
首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B 、C 的工作时间要有所控制,列为第三级。
在第三级中,设备B 的重要性是设备C 的3倍,因此它们的权重不一样,设备B 的系数是设备C 的3倍。
该计划问题可用数学模型表示为:目标函数 min )33()(433322211++-+--+++++=d d d p d d p d p z 满足约束条件 2122x x + 12≤15003002001121=-+++-d d x x022221=-+-+-d d x x14x 1633=-++-d d 155442=-++-d d x3,2,1,0,,,21=≥+-i d d x x i iLINGO程序为:model:sets:!集合定义部分(从“sets:”开始,到“endsets”结束):定义集合变量及其元素(含义类似数组的下标)和属性(含义类似于数组)。
level/1..3/:p,z,goal;!level说明的是目标规划的优先级,有三个变量p,z,和goal。
其中p表示优先级,goal表示相应优先级时的最优目标值。
!“1 ..3”的意思是从1到3的所有整数。
!基本集合的定义格式为:setname[/member_ list/][:attribute_list];其中setname为定义的集合名,member_list为元素列表,attribute_list为属性列表。
在“[]”中的容,表示是可选的项,即该项可以有也可以没有。
variable/1..2/:x;!x为决策变量向量。
h_con_num/1..1/:b;!在目标规划中,约束有两类。
一类是对资源有严格限制的,同线性规划的处理相同,用严格的等式或者不等式约束来处理,称此约束为刚性约束(hard constraint)。
b表示的是刚性约束的资源向量。
s_con_num/1..4/:g,dplus,dminus;!另一类约束是可以不严格限制的,连同原线性规划的目标,构成柔性约束(soft constraint)。
g表示的是柔性约束的资源向量,dplus,dminus是偏差变量。
在目标规划中,用偏差变量(deviational variables)来表示实际值与目标值之间的差异,dplus为超出目标的差值,称为正偏差变量,dminus为未达到目标的差值,称为负偏差变量。
h_cons(h_con_num,variable):A;!刚性约束的价值向量。
s_cons(s_con_num,variable):c;!柔性约束的价值向量。
obj(level,s_con_num):wplus,wminus;!柔性约束在不同优先级下的权重。
endsetsdata:!数据输入部分(从“data:”开始,到“enddata”结束):作用在于对集合的属性(数组)输入必要的常数数据。
p=? ? ?;!常数列表中的数据之间可以用“,”或者“空格”或者“回车”分开。
如果想在运行时才对参数赋值,可以在数据段使用输入语句,但这仅用于对单个变量赋值,而不能用于属性变量(数值)。
输入语句格式为“变量名=?;”。
goal=? ? 0;b=12;g=1500 0 16 15;a=2 2;c=200 300 2 -1 4 0 0 5;!LINGO中的数据是按列赋值的,而不是按行赋值的。
wplus=0 0 0 00 1 0 00 0 3 1;wminus=1 0 0 00 1 0 00 0 3 0;enddatamin=sum(level:p*z);!目标函数(“min=”后面所接的表达式)是用求和函数“sum(集合下标:关于集合属性的表达式)”的方式定义的。
这个函数的功能是对语句中冒号“:”后面的表达式,按照“:”前面的集合指定的下标(元素)进行求和。
这里“sum”相当于求和符号“∑”。
for(level(i):z(i)=sum(s_con_num(j):wplus(i,j)*dplus(j))+sum(s_con_num(j):wminus(i,j)*dminus(j)));!约束是用循环函数“for(集合(下标):关于集合的属性的约束关系)”的方式定义的。
意思是对冒号“:”前面的集合的每个元素(下标),冒号“:”后面的约束关系式都要成立。
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));!限制0〈=z(i)〈=goal(i));!这个限制条件与集合之间有一个“|”分开,称为过滤条件。
限制条件“i#lt#size(level)”是一个逻辑表达式,意思是i〈size(level)。
#lt#是逻辑运算符号,意思是“小于”;size(level)表示集合level元素的个数。
End3、下面开始用LINGO中的图标或者Solve命令编译模型,当程序运行时,会出现一个对话框,如图2.1。
在作第一级目标计算时,p(1),p(2),p(3)分别输入1,0,0,goal (1)和goal(2)输入两个较大的值(例如100000),表明这两项约束不起作用。
运行状态窗口如图2.2,相应信息含义见实验一表1.1。
图2.1 LINGO的实时参数窗口图2.2:LINGO运行状态窗口计算结果如下:Global optimal solution found.Objective value: 0.000000Total solver iterations: 1Variable Value Reduced CostP( 1) 1.000000 0.000000P( 2) 0.000000 0.000000P( 3) 0.000000 0.000000Z( 1) 0.000000 0.000000Z( 2) 5.000000 0.000000Z( 3) 58.00000 0.000000GOAL( 1) 100000.0 0.000000GOAL( 2) 1000000. 0.000000GOAL( 3) 0.000000 0.000000X( 1) 0.000000 0.000000X( 2) 5.000000 0.000000B( 1) 12.00000 0.000000G( 1) 1500.000 0.000000G( 2) 0.000000 0.000000G( 3) 16.00000 0.000000G( 4) 15.00000 0.000000DPLUS( 1) 0.000000 0.000000DPLUS( 3) 0.000000 0.000000DPLUS( 4) 10.00000 0.000000 DMINUS( 1) 0.000000 1.000000 DMINUS( 2) 5.000000 0.000000 DMINUS( 3) 16.00000 0.000000 DMINUS( 4) 0.000000 0.000000 A( 1, 1) 2.000000 0.000000A( 1, 2) 2.000000 0.000000C( 1, 1) 200.0000 0.000000C( 1, 2) 300.0000 0.000000C( 2, 1) 2.000000 0.000000C( 2, 2) -1.000000 0.000000C( 3, 1) 4.000000 0.000000C( 3, 2) 0.000000 0.000000C( 4, 1) 0.000000 0.000000C( 4, 2) 5.000000 0.000000 WPLUS( 1, 1) 0.000000 0.000000 WPLUS( 1, 2) 0.000000 0.000000 WPLUS( 1, 3) 0.000000 0.000000 WPLUS( 1, 4) 0.000000 0.000000 WPLUS( 2, 1) 0.000000 0.000000 WPLUS( 2, 2) 1.000000 0.000000 WPLUS( 2, 3) 0.000000 0.000000 WPLUS( 2, 4) 0.000000 0.000000 WPLUS( 3, 1) 0.000000 0.000000 WPLUS( 3, 2) 0.000000 0.000000 WPLUS( 3, 3) 3.000000 0.000000 WPLUS( 3, 4) 1.000000 0.000000 WMINUS( 1, 1) 1.000000 0.000000 WMINUS( 1, 2) 0.000000 0.000000 WMINUS( 1, 3) 0.000000 0.000000 WMINUS( 1, 4) 0.000000 0.000000 WMINUS( 2, 1) 0.000000 0.000000 WMINUS( 2, 2) 1.000000 0.000000 WMINUS( 2, 3) 0.000000 0.000000 WMINUS( 2, 4) 0.000000 0.000000 WMINUS( 3, 1) 0.000000 0.000000 WMINUS( 3, 2) 0.000000 0.000000 WMINUS( 3, 3) 3.000000 0.000000 WMINUS( 3, 4) 0.000000 0.000000Row Slack or Surplus Dual Price1 0.000000 -1.0000003 0.000000 0.0000004 0.000000 0.0000005 2.000000 0.0000006 0.000000 0.0000007 0.000000 0.0000008 0.000000 0.0000009 0.000000 0.000000第一级的最优偏差为0,进行第二级计算。