lingo求解多目标规划__例题
lingo处理实例(多目标问题)-文档资料

2 方法的选择
• 对问题进行数学描述。(比如A题) • 要有大致方向,不要直接去查题目的关键词,比如
。 直接搜索“股指预测”等等 • 平时要积累,比赛时要多查资料多思考。 • 组内讨论。 • 完整学习已有方法,关键步骤要知道为什么(一些
数学建模辅导
2012年07月19日
常见的问题
1 分析题目以及选题 2 方法的选择 3 模型的体现 4 对问题求解和软件使用 5 论文写作和格式、排版 6 其他
1 分析题目以及选题
• 越熟悉的领域越好??X (学经济的就一定要选择*
题?)
• 觉得越简单越好??X(**题感觉太难。) • 感兴趣很重要 • 挖掘内部的数学问题(A题中的数学) • 抓住主要问题(不要跑题,减速带的设计、不是分析特定类型) • 要有独到的见解和创新的思路(只要讨论量与量的
)。 特殊的回归模型 • 要结合自身条件选择方法,要可求解(偏微)。 • 对以有方法,要能够结合问题特点进行修正(规划
)。 问题、最短路等等,东三省D题
3 模型的体现
• 要有完整的建模过程,达到让人看懂(看不懂, 则白做) • 细致的问题分析(由此给出建立模型的依据,数学建模绝不简单的是用
) 计算机进行数据分析,比如C题 • 精确的提炼出所需变量(A题中需要分析的量) • 问题内在机理(变量之间的关系) • 选择特定方法的原因(比如一般的统计方法的使用都依赖于强烈的问
从LINDO 到 LINGO
如今 LINGO 功能增强,性能稳定,解答结果可靠。 与LINDO相比,LINGO 软件主要具有两大优点:
• 除具有LINDO的全部功能外,还可用于求解非线 性规划问题,包括非线性整数规划问题;
Lingo解目标规划

不考虑目标,运输问题的数学模型为:
设xij 表示从第i个产地向第j个销地的运量。则: min z cij xij
i 1 j 1 3 4
x
j 1 3
4
ij
ai , i 1,2,3 b j , j 1,2,3,4
x
i 1
ij
xij 0
Lingo代码:
sets: cd/1..3/:a; xd/1..4/:b; links(cd,xd):c,x; endsets data: a=300 200 400; b=200 100 450 250; c=5 2 6 7 3546 4 5 2 3; enddata min=@sum(links(i,j):c(i,j)*x(i,j)); @for(cd(i):@sum(xd(j):x(i,j))<=a(i)); @for(xd(j):@sum(cd(i):x(i,j))>=b(j));
整数线性规划一般形式:
max(min) z c j x j
j 1
n
( a )
n (b) aij x j ( , )bi j 1 (c ) xj 0 x , x , , x 中部分或全部取整数 ( d ) n 1 2
Lingo代码
min=d31; 2*x1+x2<=11; x1-x2+d11-d12=0; x1+2*x2+d21-d22=10; 8*x1+10*x2+d31-d32=56; d12=0; d21+d22=0;
例2:
min z p1d1 p2 d 2 p3 (2d 3 d 4 )
5 11
用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处理实例多目标问题ppt

IP,以PI开头表示PIP)
求解 器(求 解程 序)状 态框
解的目标函数值
当前解的状态 : "Global
Optimum", "Local Optimum", "Feasible", "Infeasible“(不可行), "Unbounded“(无界), "Interrupted“(中断), "Undetermined“(未确定)
本例中目标函数也可以等价地写成
@SUM(QUARTERS(i): 400*RP(i) +450*OP(i) +20*INV(i) ),
“@SUM”相当于求和符号“∑”, 由于本例中目标函数对集合QUARTERS的所有元素(下 标) 都要求和,所以可以将下标i省去。
约束的定义方式
循环函数 @FOR(集合(下标):关于集合的属性的约束关系式)
数学建模必备知识lingo处理实例多目标问题ppt
LINGO软件的主要特色
两种命令模式 Windows模式: 通过下拉式菜单命令驱动LINGO运 行(多数菜单命令有快捷键,常用的菜单命令有快捷 按钮),图形界面,使用方便; (这里主要介绍这种模式)
命令行 模式:仅在命令窗口(Command Window)下操 作,通过输入行命令驱动LINGO运行 。
用DEM,RP,OP,INV分别表示需求量、正常生产的产量、 加班生产的产量、库存量,则DEM,RP,OP,INV对每个 季度都应该有一个对应的值,也就说他们都应该是一 个由4个元素组成的数组,其中DEM是已知的,而 RP,OP,INV是未知数。
问题的模型(可以看出是LP模型 )
目标函数是所有费用的和 M I{ 4 N R 0 (I) 0 P 4O 5(I) 0 P 2I0 N (I)V I 1 ,2 ,3 ,4
用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 即要求充分利用,又尽可能不加班。
lingo多目标规划模型
x1 x1
15 x2
d
1
d
1
40
x2
d
2Leabharlann d210x2
d
3
d
3
7
x1
,
x
2
,
d
j
,
d
j
0,
j
1,2,3
第4页/共92页
解:首先对应于第一优先等级,建立线性规划问题:
minz d1 用LINGO求解,得最优解=0,最优s值.t.为100。x具1 体x11求,5x解x22过,d程1d如,1d下1:d10 40
理, 。 因此四个方案的优劣性见表。
第29页/共92页
非劣性可以用下图说明。
图 多目标规划的劣解与非劣解
在图1中,max(f1, f2) .就 方案①和②来说,①的 f2 目标值比②大,但其目 标值 f1 比②小,因此无 法确定这两个方案的优 与劣。
在各个方案之间, 显然:④比①好,⑤比 ④好, ⑥比②好, ⑦比 ③好……。
当目标函数处于冲突状态时,就不会存在使所有目 标函数同时达到最大或最小值的最优解,于是我们只能 寻求非劣解。
第36页/共92页
二、多目标决策的非劣解的求解方法
为了求得多目标规划问题的非劣解,常常需要将 多目标规划问题转化为单目标规划问题去处理。实现 这种转化,有如下几种建模方法。
效用最优化模型 罚款模型 约束模型 目标规划模型
第25页/共92页
对于单目标决策问题的解一般具有全 序最优性,而多目标决策问题的可行方案 集中的各方案只有部分序而非全序,并且 一般不存在满足最优性的可行解,而只有 矛盾性,即,尽管某一个可行解能使n个目 标中的某个目标最优,但不可能使其他的
用lingo求解数学规划模型实例
问题一:若该公司只经营一日游业务,只选择小型船,应如何 规划旅游线路? 问题二:若该公司只经营一日游业务,可同时选择小型船和大 型船,应如何规划旅游线路? 问题三:若该公司同时经营一日游、二日游业务,只选择小型 船,应如何规划旅游线路? 问题四:若该公司同时经营一日游、二日游业务,可同时选择 小型船和大型船,应如何规划旅游线路?
a=60,55,51,43,41,52; b=35,37,22,32,41,32,43,38; c=6,2,6,7,4,2,5,9,4,9,5,3,8,5,8,2,5,2,1,9,7,4,3, 3,7,6,7,3,9,2,7,1,2,3,9,5,7,2,6,5,5,5,2,2,8,1,4,3;
@text()=@table(x); enddata
例2 (指派问题)九种不同型号的装备配给9个部队, 由于各部队的特点与条件不同,不同的装备在不同部队 中产生效能不同,问如何分配可保证每个部队各分得一 种装备,且使总效能最大(装备在不同部队的效能见下表)。
装备 部队 1 2 3 4 5 6 7.31 0.49 0.63 0.45 0.45 0.32 0.33
9
sets: max aij xij army/ar1..ar9/; i 1 j1 equi/eq1..eq9/; 9 link(army,equi):a,x; xij 1 endsets i 1 [obj]max=@sum(link:a*x); 9 @for(equi(i):@sum(army(j):x(i,j))=1); xij 1 @for(army(j):@sum(equi(i): x(i,j))=1); j 1 @for(link: @bin(x)); xij=0或1 data: a=@file(F:\数学软件\lingoli\dali002.txt); ( i, j=1,2,…,9) @text(F:\数学软件 \lingoli\li002.txt )=@table(x); enddata
数学建模必备知识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 即要求充分利用,又尽可能不加班。
- 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,进行第二级计算。