lingo求解多目标规划--例题_第1页
lingo求解多目标规划--例题_第2页
lingo求解多目标规划--例题_第3页
lingo求解多目标规划--例题_第4页
lingo求解多目标规划--例题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验二:目标规划一、实验目的目标规划是由线性规划发展演变而来的,线性规划考虑的是只有一个目标函数的问题, 而实际问题中往往需要考虑多个目标函数,这些目标不仅有主次关系,而且有的还相互矛 盾。这些问题用线性规划求解就比较困难,因而提出了目标规划。熟悉目标规划模型的建 立,求解过程及结果分析。二、目标规划的一般模型设xj(j 1,2n)是目标规划的决策变量, 共有m个约束是国内刚性约束, 可能是等式 约束,也可能是不等式约束。设有l个柔性目标约束,其目标规划约束的偏差是 di ,di (i 1,2,1)。设有q个优先级别,分别为 p1,p2,pq。在同一个优先级 pk中,有不同的权重,分别记为wk

2、j ,wkj ( j 1,2,.,l) 。因此目标规划模型的一般数学表达式为:qlmin zpk(wkjdjwkjdj );k1 j1ns.t.aijxj( , )bi ,i 1,2,.m,j1ncijxjdi di gi ,i1,2,.l,j1xjo, x 1,2,.,n,di , di 0,i1,2,.l.三、实验设备及分组实验在计算机中心机房进行,使用微型电子计算机,每人一机(一组)四、实验内容及步骤1、打开lingo ,并利用系统菜单和向导在e盘创建一个项目。目录和项目名推荐使用学生自己的学号。2、以此题为例,建立数学模型,并用说明语句进行说明,增强程序的可读性。例 2.1:某工厂生产

3、i、n两种产品,需要用到 a b, c三种设备,已知有关数据见下表。企 业的经营目标不仅仅是利润,还需要考虑多个方面:(1) 力求使利润不低于 1500元;(2) 考虑到市场需求,i、n两种产品的产量比应尽量保持1: 2;(3) 设备a为贵重设备,严格禁止超时使用;(4) 设备c可以适当加班,但要控制;设备b即要求充分利用,又尽可能不加班。在重要性上,设备 c是设备b的3倍。in设备的生产能力/ha (h/件)2212b (h/件)4016c (h/件)0515利润元/件200300解:此题中只有设备 a是刚性约束,其余都是柔性约束。首先,最重要的指标是企业的利润,将它的优先级列为第一级;其次

4、是i、n两种产品的产量保持 1: 2的比例,列为第二级;再次,设备 b、c的工作时间要有所控制,列为第三级。在第三级中,设备 b的重要性是设备c的3倍,因此它们的权重不一样,设备b的系数是设备c的3倍。该计划问题可用数学模型表示为:目标函数min zp1dlp2(d2 d2 ) p3(3d3 3d3 d4 )满足约束条件2x1 2x212200x1 300x2 d1 d115002x1 x2 d2 d204x1d 3 d3 165x2 d4 d415x1,x2,di ,di0,i 1,2,3lingo 程序为:model :sets :! 集合定义部分(从“ sets: ”开始,到“ ends

5、ets ”结束):定义集合变量及其元素(含义类似数组的下标)和属性(含义类似于数组)。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 为属性列表。在“ ”中的内容,表示是可选的项,即该项可以有也可以没有。variab

6、le/1.2/:x;! x 为决策变量向量。h_con_num/1.1/:b;!在目标规划中,约束有两类。一类是对资源有严格限制的,同线性规划的处理相同,用严格的等式或者不等式约束来处理,称此约束为刚性约束( hard constraint )。b表示的是刚性约束的资源向量。s_con_num/1.4/:g,dplus,dminus;!另一类约束是可以不严格限制的,连同原线性规划的目标,构成柔性约束( softconstraint )。g表示的是柔性约束的资源向量,dplus,dminus是偏差变量。在目标规划中,用偏差变量( deviational variables )来表示实际值与目标值

7、之间的差异, 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=? ? ?;!常数列表中的数据之间可以用“,”或者“空格”或者“回车”分开。

8、如果想在运行时才对参数赋值, 可以在数据段使用输入语句, 但这仅用于对单个变量赋值, 而不能用于属性变量 (数值)。输入语句格式为“变量名= ?;”。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(集合下标:关于集合属性的表达式)”的方

9、式定义的。这个函数的功能是对语句中冒号“:”后面的表达式,按照“:”前 面的集合指定的下标(元素)进行求和。这里“sum”相当于求和符号“it。for (level(i):z(i)=sum(s_con_numo):wplus(i,j)*dpluso)+ sum(s_con_num(j):wminus(i,j)*dminus(j);!约束是用循环函数“ for(集合(下标):关于集合的属性的约束关系)”的方式定义的。 意思是对冒号“:”前面的集合的每个元素(下标),冒号“:”后面的约束关系式都要成立。for (h_con_num(i):sum(variableq):a(i,j)*x(j)<

10、=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、下面开始

11、用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的实时参数窗口图22lingo运行状态窗口计算结果如下:global optimal solution found.objective value:0.000000total solver iterations:1variablevaluere

12、duced costp( 1)1.0000000.000000p( 2)0.0000000.000000p( 3)0.0000000.000000z( 1)0.0000000.000000z( 2)5.0000000.000000z( 3)58.000000.000000goal( 1)100000.00.000000goal( 2)1000000.0.000000goal( 3)0.0000000.000000x( 1)0.0000000.000000x( 2)5.0000000.000000b( 1)12.000000.000000g( 1)1500.0000.000000g( 2)0.0

13、000000.000000g( 3)16.000000.000000g( 4)15.000000.000000dplus( 1)0.0000000.000000dplus( 2)0.0000000.000000dplus( 3)0.0000000.000000dplus( 4)10.000000.000000dminus( 1)0.0000001.000000dminus( 2)5.0000000.000000dminus( 3)16.000000.000000dminus( 4)0.0000000.000000a( 1, 1)2.0000000.000000a( 1, 2)2.0000000

14、.000000c( 1, 1)200.00000.000000c( 1, 2)300.00000.000000c( 2, 1)2.0000000.000000c( 2, 2)-1.0000000.000000c( 3, 1)4.0000000.000000c( 3, 2)0.0000000.000000c( 4, 1)0.0000000.000000c( 4, 2)5.0000000.000000wplus( 1, 1)0.0000000.000000wplus( 1, 2)0.0000000.000000wplus( 1, 3)0.0000000.000000wplus( 1, 4)0.00

15、00000.000000wplus( 2, 1)0.0000000.000000wplus( 2, 2)1.0000000.000000wplus( 2, 3)0.0000000.000000wplus( 2, 4)0.0000000.000000wplus( 3, 1)0.0000000.000000wplus( 3, 2)0.0000000.000000wplus( 3, 3)3.0000000.000000wplus( 3, 4)1.0000000.000000wminus( 1, 1)1.0000000.000000wminus( 1, 2)0.0000000.000000wminus

16、( 1, 3)0.0000000.000000wminus( 1, 4)0.0000000.000000wminus( 2, 1)0.0000000.000000wminus( 2, 2)1.0000000.000000wminus( 2, 3)0.0000000.000000wminus( 2, 4)0.0000000.000000wminus( 3, 1)0.0000000.000000wminus( 3, 2)0.0000000.000000wminus( 3, 3)3.0000000.000000wminus( 3, 4)0.0000000.000000row slack or sur

17、plus dual price10.000000-1.00000020.000000-1.00000030.0000000.00000040.0000000.00000052.0000000.00000060.0000000.00000070.0000000.00000080.0000000.00000090.0000000.000000第一级的最优偏差为 0 ,进行第二级计算。在第二级目标计算时, p ( 1 ) , p ( 2) , p(3)分别输入0, 1, 0。由于第一级的偏差为0,因此goal ( 1)的输入值为0, goal (2)输入一个较大的值(例如100000) 。计算结果如

18、下:global optimal solution found.objective value:0.000000total solver iterations:2variablevaluereduced costp( 1)0.0000000.000000p( 2)1.0000000.000000p( 3)0.0000000.000000z( 1)0.0000000.000000z( 2)0.0000001.000000z( 3)29.250000.000000goal( 1)0.0000000.000000goal( 2)100000.00.000000goal( 3)0.0000000.00

19、0000x( 1)1.8750000.000000x( 2)3.7500000.000000b( 1)12.000000.000000g( 1)1500.0000.000000g( 2)0.0000000.000000g( 3)16.000000.000000g( 4)15.000000.000000dplus( 1)0.0000000.000000dplus( 2)0.0000000.000000dplus( 3)0.0000000.000000dplus( 4)3.7500000.000000dminus( 1)0.0000000.000000dminus( 2)0.0000000.000

20、000dminus( 3)8.5000000.000000dminus( 4)0.0000000.000000a( 1, 1)2.0000000.000000a( 1, 2)2.0000000.000000c( 1, 1)200.00000.000000c( 1, 2)300.00000.000000c( 2, 1)2.0000000.000000c( 2, 2)-1.0000000.000000c( 3, 1)4.0000000.000000c( 3, 2)0.0000000.000000c( 4, 1)0.0000000.000000c( 4, 2)5.0000000.000000wplu

21、s( 1, 1)0.0000000.000000wplus( 1, 2)0.0000000.000000wplus( 1, 3)0.0000000.000000wplus( 1, 4)0.0000000.000000wplus( 2, 1)0.0000000.000000wplus( 2, 2)1.0000000.000000wplus( 2, 3)0.0000000.000000wplus( 2, 4)0.0000000.000000wplus( 3, 1)0.0000000.000000wplus( 3, 2)0.0000000.000000wplus( 3, 3)3.0000000.00

22、0000wplus( 3, 4)1.0000000.000000wminus( 1, 1)1.0000000.000000wminus( 1, 2)0.0000000.000000wminus( 1, 3)0.0000000.000000wminus( 1, 4)0.0000000.000000wminus( 2, 1)0.0000000.000000wminus( 2, 2)1.0000000.000000wminus( 2, 3)0.0000000.000000wminus( 2, 4)0.0000000.000000wminus( 3, 1)0.0000000.000000wminus(

23、 3, 2)0.0000000.000000wminus( 3, 3)3.0000000.000000wminus( 3, 4)0.0000000.000000rowslack or surplus dual price10.000000-1.00000020.0000000.00000030.0000000.00000040.0000000.00000050.75000000.00000060.0000000.00000070.0000000.00000080.0000000.00000090.0000000.000000第二级的最优偏差为 0 ,进行第三级计算。在第三级目标计算时,进行第三

24、级计算。在第三级目标计算时,p ( 1 ) , p ( 2) , p(3)分别输入0, 0, 1 。由于第一级、第二级的偏差均为 0,因此 goal ( 1)、 goal (2)的输入值也均是0。计算结果如下:gglobal optimal solution found.objective value:29.00000total solver iterations:0variablevaluereduced costp( 1)0.0000000.000000p( 2)0.0000000.000000p( 3)1.0000000.000000z( 1)0.0000000.000000z( 2)0

25、.000000-5.666667z( 3)29.000000.000000goal( 1)0.0000000.000000goal( 2)0.0000000.000000goal( 3)0.0000000.000000x( 1)2.0000000.000000x( 2)4.0000000.000000b( 1)12.000000.000000g( 1)1500.0000.000000g( 2)0.0000000.000000g( 3)16.000000.000000g( 4)15.000000.000000dplus( 1)100.00000.000000dplus( 2)0.0000000.

26、000000dplus( 3)0.0000006.000000dplus( 4)5.0000000.000000dminus( 1)0.0000000.000000dminus( 2)0.00000011.33333dminus( 3)8.0000000.000000dminus( 4)0.0000001.000000a( 1, 1)2.0000000.000000a( 1, 2)2.0000000.000000c( 1, 1)200.00000.000000c( 1, 2)300.00000.000000c( 2, 1)2.0000000.000000c( 2, 2)-1.0000000.000000c( 3, 1)4.0000000.000000c( 3, 2)0.0000000.000000c( 4, 1)0.0000000.000000c( 4, 2)5.0000000.000000wplus( 1, 1)0.0000000.000000wpl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论