Matlab学习系列27. 多目标规划
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
27. 多目标规划
一、线性规划的局限性
1. 线性规划要求所求解问题必须满足全部的约束,而实际问题中并非所有约束都需要严格的满足;
2. 线性规划只能处理单目标的优化问题,从而对一些次目标只能转化为约束处理,而实际问题中,目标和约束是可以相互转化的,处理时不一定要严格区分;
3. 线性规划在处理问题时,将各个约束(也可看成目标)的地位看成同等重要,实际问题中,各个目标的重要性有层次上的差别,在同一层次也可能有不同权重;
4. 线性规划寻找最优解,而许多实际问题只要找到满意解就可以了。
例1 (线性规划——生产安排问题) 某企业生产甲、乙两种产品,需要用到A,B,C三种设备,每天产品盈利与设备使用工时及限制如下表:
问:该企业应如何安排生产,能使总利润最大?
解:设甲乙产品的产量分别为x 1, x 2,建立线性规划模型:
12121212max 200300 s. t. 2212 416 515 ,0
z x x x x x x x x =++≤≤≤≥
用Lingo 可求得最优解:x 1=3, x 2=3, z *=1500.
但实际上,企业的经营目标不仅仅是利润,还需要考虑多个方面,比如:增加下列因素(目标)
(1) 力求使利润不低于1500元;
(2) 考虑市场需求,甲乙两种产品的产量比应尽量保持1:2; (3) 设备A 位贵重设备,严格禁止超时使用;
(4)设备C 可以适当加班,但要控制,设备B 既要求充分利用,又尽可能不加班,在重要性上,设备B 是设备C 的3倍。
这就需要用目标规划。
二、目标规划的基本概念
1. 设置偏差变量
偏差变量——表示实际值与目标值之间的差异;
d +——表示超出目标的差值,称为正偏差变量;当实际值超过目标值时,有d - = 0,d + > 0;
d -——表示未达到目标的差值,称为负偏差变量;当实际值未达到目标值时,有d + = 0,d - > 0.
注:若实际值与目标值一致,有d - = d + = 0.
2. 统一处理目标与约束
目标规划中,约束有两类,一类是对资源有严格限制的,用严格的等式或不等式约束来处理(同线性规划),例如,例1中设备A 禁止超时使用,则有刚性约束:
122212x x +≤
另一类约束是可以不严格限制的,连同原线性规划的目标,构成柔性约束,例如,例1中希望利润不低于1500元,则目标可表示为
12min{}
2003001500
d x x d d --+
⎧⎨+++=⎩ 甲乙两种产品产量尽量保持1:2的比例,则目标可表示为
12
min{}
20d d x x d d +--+
⎧+⎨-+-=⎩ 设备C 可以适当加班,但要控制,则目标可表示为
2min{}
515
d x d d +-+
⎧⎨+-=⎩ 设备B 要求充分利用,又尽可能不加班,则目标可表示为
1min{}
416
d d x d d +--+
⎧+⎨+-=⎩ 结论:若希望不等式保持大于等于,则极小化负偏差;若希望不等式保持小于等于,则极小化正偏差;若希望保持等式,则同时极小化正负偏差。
3. 目标的优先级与权系数
目标规划中,目标的优先分为两个层面,第一个层面是目标分成不同的优先级,在求解目标规划时,必须先优化优先级高的目标,再
优化优先级低的目标;通常用P 1, P 2, …表示不同的因子,并规定P k >>P k+1.
第二个层面是目标处于同一优先级,但两个目标的权重不同,此时应两目标同时优化,但用权重系数的大小来表示目标重要性的差别。
目标规划建模中,除刚性约束必须严格满足外,对所有目标约束均允许有偏差。其求解过程要从高到低逐层优化,中不增加高层次目标的偏差值的情况下,逐次使低层次的偏差达到极小。
例1按目标规划的方法可建立如下目标规划模型:设备A 是刚性约束,其余是柔性约束;首先,最重要的指标是企业的利润,故将其优先级列为第一级;其次,甲乙两种产品的产量保持1:2的比例,列为第二级;再次,设备C ,B 的工作时间要有所控制,列为第三级。中第三级中,设备B 的重要性是设备C 的3倍,因此其权重不一样,设备B 前的系数是C 前系数的3倍,于是得到:
1122233341212111222133244min ()(33)
s. t. 2212
2003001500 20 416 515
z Pd P d d P d d d x x x x d d x x d d x d d x d d -+-+-+
-+-+-+-+=++++++≤+++=-+-=+-=+-=12 ,,,0, 1,2,3,4
i i x x d d i -+≥=
三、目标规划模型的一般形式:
设, 1,,j x j n =是目标规划的决策变量,共有m 个刚性约束(等式或不等式约束),有l 个柔性目标约束,其目标规划约束的偏差为
,, 1
,,j j d d j l +-
=,有个q 优先级别,分别为1,,q P P ,在同一个优先级k
P
中有不同的权重,分别记为,, 1,...,kj kj w w j l +-
=,则目标规划模型的一般
形式为:
1
1
11
min ()
s. t. (,) , 1,
, () , 1,
, () 0,q
l
k kj j kj j k j n
ij j i j n
ij j i i i j j z P w d w d a x b i m c x d d g i l x --++
===-+==+≤=≥=+-==≥∑∑∑∑刚性约束柔性约束 1,
, ,0, 1,
,i i j n
d d i l
-+=≥=
注:建立目标规划模型时,需要确定目标值、优先等级、权系数等,这些具有一定的主观性和模糊性,可以用专家评定法予以量化。
序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序,将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。
/~jxie/lindo 例1模型的求解: Lingo 代码: