ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:73.63KB ,
资源ID:11156039      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11156039.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Matlab学习系列27 多目标规划.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Matlab学习系列27 多目标规划.docx

1、Matlab学习系列27 多目标规划27. 多目标规划一、线性规划的局限性 1. 线性规划要求所求解问题必须满足全部的约束,而实际问题中并非所有约束都需要严格的满足;2. 线性规划只能处理单目标的优化问题,从而对一些次目标只能转化为约束处理,而实际问题中,目标和约束是可以相互转化的,处理时不一定要严格区分;3. 线性规划在处理问题时,将各个约束(也可看成目标)的地位看成同等重要,实际问题中,各个目标的重要性有层次上的差别,在同一层次也可能有不同权重;4. 线性规划寻找最优解,而许多实际问题只要找到满意解就可以了。例1 (线性规划生产安排问题) 某企业生产甲、乙两种产品,需要用到A,B,C三种设

2、备,每天产品盈利与设备使用工时及限制如下表:甲乙设备生产能力/hA/(h/件)2212B/(h/件)4016C/(h/件)0515盈利/(元/件)200300问:该企业应如何安排生产,能使总利润最大? 解:设甲乙产品的产量分别为x1, x2,建立线性规划模型:用Lingo可求得最优解:x1=3, x2=3, z*=1500. 但实际上,企业的经营目标不仅仅是利润,还需要考虑多个方面,比如:增加下列因素(目标)(1)力求使利润不低于1500元;(2)考虑市场需求,甲乙两种产品的产量比应尽量保持1:2;(3)设备A位贵重设备,严格禁止超时使用;(4)设备C可以适当加班,但要控制,设备B既要求充分利

3、用,又尽可能不加班,在重要性上,设备B是设备C的3倍。这就需要用目标规划。二、目标规划的基本概念1. 设置偏差变量偏差变量表示实际值与目标值之间的差异;d+表示超出目标的差值,称为正偏差变量;当实际值超过目标值时,有d- = 0,d+ 0; d-表示未达到目标的差值,称为负偏差变量;当实际值未达到目标值时,有d+ = 0,d- 0. 注:若实际值与目标值一致,有d- = d+ = 0.2. 统一处理目标与约束目标规划中,约束有两类,一类是对资源有严格限制的,用严格的等式或不等式约束来处理(同线性规划),例如,例1中设备A禁止超时使用,则有刚性约束:另一类约束是可以不严格限制的,连同原线性规划的

4、目标,构成柔性约束,例如,例1中希望利润不低于1500元,则目标可表示为甲乙两种产品产量尽量保持1:2的比例,则目标可表示为设备C可以适当加班,但要控制,则目标可表示为设备B要求充分利用,又尽可能不加班,则目标可表示为结论:若希望不等式保持大于等于,则极小化负偏差;若希望不等式保持小于等于,则极小化正偏差;若希望保持等式,则同时极小化正负偏差。3. 目标的优先级与权系数目标规划中,目标的优先分为两个层面,第一个层面是目标分成不同的优先级,在求解目标规划时,必须先优化优先级高的目标,再优化优先级低的目标;通常用P1, P2, 表示不同的因子,并规定Pk Pk+1.第二个层面是目标处于同一优先级,

5、但两个目标的权重不同,此时应两目标同时优化,但用权重系数的大小来表示目标重要性的差别。目标规划建模中,除刚性约束必须严格满足外,对所有目标约束均允许有偏差。其求解过程要从高到低逐层优化,中不增加高层次目标的偏差值的情况下,逐次使低层次的偏差达到极小。 例1按目标规划的方法可建立如下目标规划模型:设备A是刚性约束,其余是柔性约束;首先,最重要的指标是企业的利润,故将其优先级列为第一级;其次,甲乙两种产品的产量保持1:2的比例,列为第二级;再次,设备C,B的工作时间要有所控制,列为第三级。中第三级中,设备B的重要性是设备C的3倍,因此其权重不一样,设备B前的系数是C前系数的3倍,于是得到:三、目标

6、规划模型的一般形式: 设是目标规划的决策变量,共有m个刚性约束(等式或不等式约束),有l个柔性目标约束,其目标规划约束的偏差为,有个q优先级别,分别为,在同一个优先级中有不同的权重,分别记为,则目标规划模型的一般形式为:注:建立目标规划模型时,需要确定目标值、优先等级、权系数等,这些具有一定的主观性和模糊性,可以用专家评定法予以量化。序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序,将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。 例1模型的求解:Lingo代码:附录:Lingo语法(二)以料场选址问题为例:建筑工地的位置用平面坐标a, b表示(距离单位km);

7、水泥日用量(单位t)由下表给出:表 工地的位置(a, b)及水泥日用量123456a1.258.750.55.7537.25b1.250.754.7556.57.75d3547611目前想设置两个临时料场, 日储量各有20t,问两个料场选址在何处,分别向各工地运送多少吨水泥,能使总的吨公里数最小?求解:记工地的位置为(ai, bi), 水泥的日用量为di, i=1,6; 料场位置为(xi, yi), 日储量为ej, j=1, 2; 从料场j向工地i的运送量为cij, 则该问题的数学规划模型为: Lingo代码:MODEL:Title Location Problem;sets:demand/1

8、.6/:a,b,d;supply/1,2/:x,y,e;link(demand,supply):c;endsetsdata:!locations for the demand (需求点的位置);a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;!quantities of the demand and supply (供需量);d=3,5,4,7,6,11;e=20,20;enddatainit:!initial locations for the supply (初始点);x,y=5,1,2,7;endinit!Objective

9、 function (目标);OBJ min=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2);!demand constrains (需求约束);for(demand(i):DEMAND_CON sum(supply(j):c(i,j)=d(i););!supply constrains (供应约束);for(supply(j):SUPPLY_CON sum(demand(i):c(i,j) = e(j););for(supply: free(x); free(y););ENDLingo程序的一般结构:程序是以 MODEL: 开始,以END

10、结束。主体通常分为5个部分:(1) 集合段;(2) 数据段;(3) 初始段;(4) 计算段;(5) 目标与约束段。一、集合段以“SET:”开始,以“ENDSET”结束;用来定义必要的集合变量及元素、属性,相当于数组。sets:demand/1.6/:a,b,d;supply/1,2/:x,y,e;link(demand,supply):c;endsets表示集合1名称为demand,元素为16,即demand=1, 2, 3, 4, 5, 6,该集合的属性有a, b, d“集合的属性相当于以集合的元素为下标的数组”即相当于demand定义了如下数组的:a(1), a(2), a(3), a(4

11、), a(5), a(6)b(1), b(2), b(3), b(4), b(5), b(6)d(1), d(2), d(3), d(4), d(5), d(6)类似地,supply定义了如下数组x(1), x(2), y(1), y(2), e(1), e(2)注1:1, 2, 3, 4可简写为1.4;注2:若无属性列表,则该集合往往是作为循环变量来使用,或用来构造派生集合;注3:若无元素列表,则必须在程序的数据段以赋值语句方式给出元素列表。 派生集合:为了处理有两个下标的数组,引入派生集合:link(demand,supply):c;表示link = (s,t): sdemand, tsu

12、pply ,即笛卡尔积;其属性c则为62矩阵(二维数组):c(1,1), c(1,2)c(2,1), c(2,2)c(3,1), c(3,2)c(4,1), c(4,2)c(5,1), c(5,2)c(6,1), c(6,2) 注:demand和supply称为link的父集合。二、数据段以“DATA:”开始,以“ENDDATA”结束;用来对集合的属性(数组)输入必要的常数数据。data:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;enddata对集合的属性输入必要的常数数据,赋值

13、结果为:a(1)=1.25, a(2)=8.75, , a(6)=7.25b(1)=1.25, b(2)=0.75, , b(6)=7.75d(1)=3, d(2)= 5, , d(6)=11e(1)=20, e(2)=20若需要在运行时才对单变量(不能是属性变量,数组)参数赋值,可以在数据段使用输入语句:例如A = ? ;在求解时,Lingo将给出提示界面,等待用户输入变量A的数值。三、初始段以“INIT:”开始,以“ENDINIT”结束;用来对集合的属性(数组)定义初始值,一般作为迭代用。init:x,y=5,1,2,7;endinit这里与数据段的赋值一样。注意:变量x, y一起赋值时的

14、赋值顺序,相当于x(1)=5, y(1)=1, x(2)=2, y(2)=7同“x=5,2; y=1, 7;”四、计算段以“CALC:”开始,以“ENDCALC”结束;用来对原始数据进行计算处理。例如,CALC:T_d=SUM(demand:d); !总日用量;A_d=T_d/size(demand); !平均日用量;ENDCALC其中,函数size(demand)返回demand的元素个数。五、目标和约束段除上述四段之外的部分,无开始、结束标志;是模型的主体,用来定义目标函数和约束条件。1. 目标函数:OBJmin=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)

15、-b(i)2)(1/2);sum函数,派生集合(二维数组)link关于索引i,j对表达式求和; 2. 约束条件1:for(demand(i):DEMAND_CON sum(supply(j):c(i,j)=d(i););for函数,对集合demand的每个索引i,应用求和表达式,集合supply关于索引j对表达式求和; 约束条件2:for(supply(j):SUPPLY_CON sum(demand(i):c(i,j)=e(j););for函数,对集合supply的每个索引i,应用求和表达式,集合supply关于索引j对表达式求和;for(supply: free(X); free(Y);)

16、;for函数对集合supply所有元素,free函数取消x, y的非负限制。运行结果:Local optimal solution found. Objective value: 85.26604 Infeasibilities: 0.000000 Total solver iterations: 68 Model Title: Location Problem Variable Value Reduced Cost A( 1) 1.250000 0.000000 A( 2) 8.750000 0.000000 A( 3) 0.5000000 0.000000 A( 4) 5.750000 0

17、.000000 A( 5) 3.000000 0.000000 A( 6) 7.250000 0.000000 B( 1) 1.250000 0.000000 B( 2) 0.7500000 0.000000 B( 3) 4.750000 0.000000 B( 4) 5.000000 0.000000 B( 5) 6.500000 0.000000 B( 6) 7.750000 0.000000 D( 1) 3.000000 0.000000 D( 2) 5.000000 0.000000 D( 3) 4.000000 0.000000 D( 4) 7.000000 0.000000 D(

18、5) 6.000000 0.000000 D( 6) 11.00000 0.000000 X( 1) 3.254883 0.000000 X( 2) 7.250000 -0.1853513E-05 Y( 1) 5.652332 0.000000 Y( 2) 7.750000 -0.1114154E-05 E( 1) 20.00000 0.000000 E( 2) 20.00000 0.000000 C( 1, 1) 3.000000 0.000000 C( 1, 2) 0.000000 4.008540 C( 2, 1) 0.000000 0.2051358 C( 2, 2) 5.000000

19、 0.000000 C( 3, 1) 4.000000 0.000000 C( 3, 2) 0.000000 4.487750 C( 4, 1) 7.000000 0.000000 C( 4, 2) 0.000000 0.5535090 C( 5, 1) 6.000000 0.000000 C( 5, 2) 0.000000 3.544853 C( 6, 1) 0.000000 4.512336 C( 6, 2) 11.00000 0.000000 Row Slack or Surplus Dual Price OBJ 85.26604 -1.000000 DEMAND_CON( 1) 0.000000 -4.837363 DEMAND_CON( 2) 0.000000 -7.158911 DEMAND_CON( 3) 0.000000 -2.898893 DEMAND_CON( 4) 0.000000 -2.578982 DEMAND_CON( 5) 0.000000 -0.8851584 DEMAND_CON( 6) 0.000000 0.000000 SUPPLY_CON( 1) 0.000000 0.000000 SUPPLY_CON( 2) 4.000000 0.000000

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

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