1 / 11
文档名称:

lingo求解多目标规划--例题.doc

格式:doc   大小:96KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

lingo求解多目标规划--例题.doc

上传人:beny00011 2021/12/7 文件大小:96 KB

下载得到文件列表

lingo求解多目标规划--例题.doc

文档介绍

文档介绍:word
word
1 / 11
word
实验二:目标规划
一、实验目的
目标规划是由线性规划开展演变而来的,线性规划考虑的是只有一个目标函数的问题,而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛盾。这些问题用线性规划求解就比拟困难,因而提出了目标规划。熟悉目标规划模型的建立,求解过程与结果分析。
二、目标规划的一般模型
设是目标规划的决策变量,共有个约束是国刚性约束,可能是等式约束,也可能是不等式约束。设有个柔性目标约束,其目标规划约束的偏差是。设有个优先级别,分别为。在同一个优先级中,有不同的权重,分别记为。因此目标规划模型的一般数学表达式为:
min
.
三、实验设备与分组
实验在计算机中心机房进展,使用微型电子计算机,每人一机〔一组〕。
word
word
2 / 11
word
四、实验容与步骤
1、打开LINGO,并利用系统菜单和向导在E盘创建一个项目。目录和项目名推荐使用学生自己的学号。
2、以此题为例,建立数学模型,并用说明语句进展说明,增强程序的可读性。

某工厂生产Ⅰ、Ⅱ两种产品,需要用到A,B,C三种设备,有关数据见下表。企业的经营目标不仅仅是利润,还需要考虑多个方面:
力求使利润不低于1500元;
考虑到市场需求,Ⅰ、Ⅱ两种产品的产量比应尽量保持1:2;
设备A为贵重设备,严格禁止超时使用;
设备C可以适当加班,但要控制;设备B即要求充分利用,又尽可能不加班。在重要性上,设备C是设备B的3倍。


设备的生产能力/h
A〔h/件〕
2
2
12
B〔h/件〕
4
0
16
C〔h/件〕
0
5
15
利润 元/件
200
300
解:
此题中只有设备A是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次是Ⅰ、Ⅱ两种产品的产量保持1:2的比例,列为第二级;再次,设备B、C的工作时间要有所控制,列为第三级。在第三级中,设备B的重要性是设备C的3倍,因此它们的权重不一样,设备B的系数是设备C的3倍。
该计划问题可用数学模型表示为:
目标函数 min
满足约束条件
word
word
3 / 11
word
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;
!在目标规划中,约束有两类。一类是对资源有严格限制的,同线性规划的处理一样,用严格的等式或者不等式约束来处理,称此约束为刚性约束〔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;
!柔性约束在不同优先级下的权重。
endsets
data:
!数据输入局部〔从“data:〞开始,到“enddata〞完毕〕:作用在于对集合的属性〔数组〕输入必要的常数数据。
p=? ? ?;
!常数列表中的数据之间可以用“,〞或者“空格