线性规划应用于现代管理科学,研究最早,发展最成熟。在生产活动、经营活动和工程设计中,经常会面临一些需要决策的问题,当只考虑单个主要目标时,线性规划就是处理单目标优化行之有效的方法。但在现实生活中,一些决策问题往往要同时考虑多个目标,而这些目标之间又常常是不协调的,甚至是相互矛盾的,这就是多目标决策所面临的问题。而其中又以多目标线性规划较为普遍。例如,企业生产计划方案决策中要求产品产量高、消耗低和质量好等多个目标。由于同时要对多个互不相容的目标进行优化和分析,因而用传统的线性规划方法很难解决问题,而目标规划方法是多目标决策分析的一种有效手段,也是解决多目标线性规划问题的一种比较成熟的方法,其原理在于寻找一个"尽可能"满足所有目标的解,而不是绝对满足这些目标的值。
3.1 目标规划模型的表达形式
为了圆满地解决实际中遇到的相互矛盾的多目标优化问题,需要引入目标偏差变量,在通常的线性规划模型基础上,建立起偏差变量的新的目标函数,从而得到目标规划的模型。
[ 例 4-3-1 ] :设有两种产品,都要经过两道工序,有关资料如表
4-2-1 所示。
表 4-2-1 两种产品的有关资料
|
产品甲 |
产品乙 |
工序能提供的工时 |
边际贡献 ( 元/ ke) |
6 |
4 |
(h) |
产品加工需要的
工序 (h / ke) |
工序
1 |
2 |
1 |
100
|
工序
2 |
1 |
1 |
80
|
市场销售量限值 (ke) |
不限 |
70 |
|
现要求确定这两种产品的生产数量x1和x2,使总的边际贡献有最大值。
若把上述问题归结为线性规划问题,则其模型表达形式为:
用单纯形法求解,可以求得最优解为 ,而 。
如果用多目标规划来处理这个问题,则必须把边际贡献目标函数改为约束条件, 并取某一适当大的数 b1(
在本例中。取b1=1000)作为边际贡献的目标值,取 作为实际边际贡献超过b1的正偏差,取 作为实际边际贡献低于 b1的负偏差,即 =实际边际贡献-b1, 而 =b1-实际边际贡献。显然, , ≥0
,但不能同时有 , >0。由此,原来的目标函数被改成为约束条件
6x1+4x2+ - =1000
,
同时把w= 要求有最小值作为新的目标函数, 即要求实际边际贡献低于b1的偏差有最小值,这实际上等价于要求边际贡献有最大值。综上所述,可以得到如下的目标规划模型表达式。

用单纯形法可以解得最优解为 。即实际边际贡献=b1- =1000-640=360。其结果与用一般线性规划模型的单纯形法得到的解完全一致。
[例 4-3-2] 在上例中,已知第一工序在正常情况下能够提供的加工小时数为100。如果这一工序允许加班的话,可取 为这一工序的加班工时数, 为这一工序的剩余工时数。 于是有2x1+x2+ - =100。由此,新的目标规划模型表达式为:

用单纯形法可以解得最优解为 , w*= + =580。即产品甲生产量为
,第一工序加班工时数为 =60,实际边际贡献=b1- =1000-520=480。
[ 例 4-3-3 ] 在例 4-3-2 中,若第二工序也可加班, 但两道工序的加班工时数之和不 得超过 160 ,则可取 为第二工序的加班工时数,
为第二工序的剩余工时数;
和
分别为加班工时数之和超过和低于160
的工时数;又若产品乙必须严格控制在70kg以内,并尽可能接近70kg,则可取
为实际数不到70kg的偏差,而 可以不计,这是因为正偏差是不允许的。这时问题的目标是要使下列各值都能有最小值。
(1) 边际贡献的负偏差 ;
(2) 第一、二工序加班工时的正偏差 , ;
(3) 加班工时数之和超过 160 的正偏差 ;
(4) 产量未能达到70kg的负偏差 。相应的目标规划模型表达式为:

用单纯形法同样可以解得最优解。但在实际问题中,各个目标偏差的重要性通常并不相等。 例如在本例中, 设能控制两道工序加班工时数之和不超过160最为重要,其次是 , 又次之,最后是 , 。 则可按各目标的轻重缓急,将各目标分成不同的优先考虑等级,对于最重要二级的目标要优先予以优化,当它们已无法继续改进时,才转而考虑次重要一级的目标优化。而且次重要一级目标的优化以不破坏比它更重要的各级目标的最优性条件为前提。为此,引入了优先等级因子
,它们之间永远有下列关系:

在本例中,引进优先等级因子,形成等级目标规划后的目标函数改写为:

所有约束条件均保持不变。
|