lingo求解多目标规划例题Word下载.docx

上传人:b****5 文档编号:19522190 上传时间:2023-01-07 格式:DOCX 页数:13 大小:71.48KB
下载 相关 举报
lingo求解多目标规划例题Word下载.docx_第1页
第1页 / 共13页
lingo求解多目标规划例题Word下载.docx_第2页
第2页 / 共13页
lingo求解多目标规划例题Word下载.docx_第3页
第3页 / 共13页
lingo求解多目标规划例题Word下载.docx_第4页
第4页 / 共13页
lingo求解多目标规划例题Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

lingo求解多目标规划例题Word下载.docx

《lingo求解多目标规划例题Word下载.docx》由会员分享,可在线阅读,更多相关《lingo求解多目标规划例题Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

lingo求解多目标规划例题Word下载.docx

某工厂生产Ⅰ、Ⅱ两种产品,需要用到A,B,C三种设备,已知有关数据见下表。

企业的经营目标不仅仅是利润,还需要考虑多个方面:

(1)力求使利润不低于1500元;

(2)考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:

2;

(3)设备A为贵重设备,严格禁止超时使用;

(4)设备C可以适当加班,但要控制;

设备B即要求充分利用,又尽可能不加班。

在重要性上,设备C是设备B的3倍。

设备的生产能力/h

A(h/件)

2

12

B(h/件)

4

16

C(h/件)

5

15

利润元/件

200

300

解:

此题中只有设备A是刚性约束,其余都是柔性约束。

首先,最重要的指标是企业的利润,将它的优先级列为第一级;

其次是Ⅰ、Ⅱ两种产品的产量保持1:

2的比例,列为第二级;

再次,设备B、C的工作时间要有所控制,列为第三级。

在第三级中,设备B的重要性是设备C的3倍,因此它们的权重不一样,设备B的系数是设备C的3倍。

该计划问题可用数学模型表示为:

目标函数min

满足约束条件

LINGO程序为:

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;

在目标规划中,约束有两类。

一类是对资源有严格限制的,同线性规划的处理相同,用严格的等式或者不等式约束来处理,称此约束为刚性约束(hardconstraint)。

b表示的是刚性约束的资源向量。

s_con_num/1..4/:

g,dplus,dminus;

另一类约束是可以不严格限制的,连同原线性规划的目标,构成柔性约束(softconstraint)。

g表示的是柔性约束的资源向量,dplus,dminus是偏差变量。

在目标规划中,用偏差变量(deviationalvariables)来表示实际值与目标值之间的差异,dplus为超出目标的差值,称为正偏差变量,dminus为未达到目标的差值,称为负偏差变量。

h_cons(h_con_num,variable):

A;

刚性约束的价值向量。

s_cons(s_con_num,variable):

c;

柔性约束的价值向量。

obj(level,s_con_num):

wplus,wminus;

柔性约束在不同优先级下的权重。

endsets

data:

数据输入部分(从“data:

”开始,到“enddata”结束):

作用在于对集合的属性(数组)输入必要的常数数据。

p=?

?

;

常数列表中的数据之间可以用“,”或者“空格”或者“回车”分开。

如果想在运行时才对参数赋值,可以在数据段使用输入语句,但这仅用于对单个变量赋值,而不能用于属性变量(数值)。

输入语句格式为“变量名=?

”。

goal=?

0;

b=12;

g=150001615;

a=22;

c=2003002-14005;

LINGO中的数据是按列赋值的,而不是按行赋值的。

wplus=0000

0100

0031;

wminus=1000

0030;

enddata

min=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):

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元素的个数。

End

3、下面开始用LINGO中的图标或者Solve命令编译模型,当程序运行时,会出现一个对话框,如图2.1。

在作第一级目标计算时,p

(1),p

(2),p(3)分别输入1,0,0,goal

(1)和goal

(2)输入两个较大的值(例如100000),表明这两项约束不起作用。

运行状态窗口如图2.2,相应信息含义见实验一表1.1。

图2.1LINGO的实时参数窗口

图2.2:

LINGO运行状态窗口

计算结果如下:

Globaloptimalsolutionfound.

Objectivevalue:

0.000000

Totalsolveriterations:

1

 

VariableValueReducedCost

P

(1)1.0000000.000000

P

(2)0.0000000.000000

P(3)0.0000000.000000

Z

(1)0.0000000.000000

Z

(2)5.0000000.000000

Z(3)58.000000.000000

GOAL

(1)100000.00.000000

GOAL

(2)1000000.0.000000

GOAL(3)0.0000000.000000

X

(1)0.0000000.000000

X

(2)5.0000000.000000

B

(1)12.000000.000000

G

(1)1500.0000.000000

G

(2)0.0000000.000000

G(3)16.000000.000000

G(4)15.000000.000000

DPLUS

(1)0.0000000.000000

DPLUS

(2)0.0000000.000000

DPLUS(3)0.0000000.000000

DPLUS(4)10.000000.000000

DMINUS

(1)0.0000001.000000

DMINUS

(2)5.0000000.000000

DMINUS(3)16.000000.000000

DMINUS(4)0.0000000.000000

A(1,1)2.0000000.000000

A(1,2)2.0000000.000000

C(1,1)200.00000.000000

C(1,2)300.00000.000000

C(2,1)2.0000000.000000

C(2,2)-1.0000000.000000

C(3,1)4.0000000.000000

C(3,2)0.0000000.000000

C(4,1)0.0000000.000000

C(4,2)5.0000000.000000

WPLUS(1,1)0.0000000.000000

WPLUS(1,2)0.0000000.000000

WPLUS(1,3)0.0000000.000000

WPLUS(1,4)0.0000000.000000

WPLUS(2,1)0.0000000.000000

WPLUS(2,2)1.0000000.000000

WPLUS(2,3)0.0000000.000000

WPLUS(2,4)0.0000000.000000

WPLUS(3,1)0.0000000.000000

WPLUS(3,2)0.0000000.000000

WPLUS(3,3)3.0000000.000000

WPLUS(3,4)1.0000000.000000

WMINUS(1,1)1.0000000.000000

WMINUS(1,2)0.0000000.000000

WMINUS(1,3)0.0000000.000000

WMINUS(1,4)0.0000000.000000

WMINUS(2,1)0.0000000.000000

WMINUS(2,2)1.0000000.000000

WMINUS(2,3)0.0000000.000000

WMINUS(2,4)0.0000000.000000

WMINUS(3,1)0.0000000.000000

WMINUS(3,2)0.0000000.000000

WMINUS(3,3)3.0000000.000000

WMINUS(3,4)0.0000000.000000

RowSlackorSurplusDualPrice

10.000000-1.000000

20.000000-1.000000

30.0000000.000000

40.0000000.000000

52.0000000.000000

60.0000000.000000

70.0000000.000000

80.0000000.000000

90.0000000.000000

第一级的最优偏差为0,进行第二级计算。

在第二级目标计算时,p

(1),p

(2),p(3)分别输入0,1,0。

由于第一级的偏差为0,因此goal

(1)的输入值为0,goal

(2)输入一个较大的值(例如100000)。

Globaloptimalsolutionfound.

2

P

(1)0.0000000.000000

P

(2)1.0000000.000000

Z

(2)0.0000001.000000

Z(3)29.250000.000000

GOAL

(1)0.0000000.000000

GOAL

(2)100000.00.000000

X

(1)1.8750000.000000

X

(2)3.7500000.000000

DPLUS(4)3.7500000.000000

DMINUS

(1)0.0000000.000000

DMINUS

(2)0.0000000.000000

DMINUS(3)8.5000000.000000

20.0000000.000000

50.75000000.000000

第二级的最优偏差为0,进行第三级计算。

在第三级目标计算时,p

(1),p

(2),p(3)分别输入0,0,1。

由于第一级、第二级的偏差均为0,因此goal

(1)、goal

(2)的输入值也均是0。

GGlobaloptimalsolutionfound.

29.00000

0

P(3)1.0000000.000000

Z

(2)0.000000-5.666667

Z(3)29.000000.000000

GOAL

(2)0.0000000.000000

X

(1)2.0000000.000000

X

(2)4.0000000.000000

DPLUS

(1)100.00000.000000

DPLUS(3)0.0000006.000000

DPLUS(4)5.0000000.000000

DMINUS

(2)0.00000011.33333

DMINUS(3)8.0000000.000000

DMINUS(4)0.0000001.000000

129.00000-1.000000

30.000000-5.666667

40.000000-1.000000

50.0000000.3333333

70.0000005.666667

80.000000-3.000000

90.0000001.000000

第三级的最优偏差为29,所以最终结果是:

,利润为1600。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1