1、-253-第二十一章 目标规划1 目标规划的数学模型为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍目标规划的有关概念及数学模型。例 1 某工厂生产 I,II 两种产品,已知有关数据见下表I II 拥有量原材料 kg 2 1 11 设 备 hr 1 2 10 利润 元/件 8 10试求获利最大的生产方案。解 这是一个单目标的规划问题,用线性规划模型表述为:210maxxz,21最优决策方案为: 元。62,34*2*zx但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于产品 II。(i
2、i)超过计划供应的原材料,需要高价采购,这就使成本增加。(iii )应尽可能充分利用设备,但不希望加班。(iv)应尽可能达到并超过计划利润指标 56 元。这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题的方法之一。下面引入与建立目标规划数学模型有关的概念。1. 正、负偏差变量设 为决策变量的函数,正偏差变量 表示决策值超过目标值d 0,maxdd的部分,负偏差变量 表示决策值未达到目标值的部分,这里0,in表示 的目标值。因决策值不可能既超过目标值同时又未达到目标值,即恒有0。2. 绝对约束和目标约束绝对约束是指必须严格满足的等式约束和不等式约束;如线性规划问题的所有约
3、束条件,不能满足这些约束条件的解称为非可行解,所以它们是硬约束。目标约束是目标规划特有的,可把约束右端项看作要追求的目标值。在达到此目标值时允许发生正或负偏差,因此在这些约束中加入正、负偏差变量,它们是软约束。线性规划问题的目标函数,在给定目标值和加入正、负偏差变量后可变换为目标约束。也可根据问题的需要将绝对约束变换为目标约束。如:例 1 的目标函数 可变换为2108xz目标约束 。绝对约束 可变换为目标约束5610812dx2x。21dx-254-3. 优先因子(优先等级)与权系数一个规划问题常常有若干目标。但决策者在要求达到这些目标时,是有主次或轻重缓急的不同。凡要求第一位达到的目标赋于优
4、先因子 ,次位的目标赋于优先因子1P,并规定 。表示 比 有更大的优先权。以此类推,2PKkPk,21,k,若要区别具有相同优先因子的两个目标的差别,这时可分别赋于它们不同的权系数,这些都由决策者按具体情况而定。jw4. 目标规划的目标函数目标规划的目标函数(准则函数)是按各目标约束的正、负偏差变量和赋于相应的优先因子而构造的。当每一目标值确定后,决策者的要求是尽可能缩小偏离目标值。因此目标规划的目标函数只能是 。其基本形式有三种:),(mindfz(1)要求恰好达到目标值,即正、负偏差变量都要尽可能地小,这时)(indfz(2)要求不超过目标值,即允许达不到目标值,就是正偏差变量要尽可能地小
5、,这时)(if(3)要求超过目标值,即超过量不限,但必须是负偏差变量要尽可能地小,这时mndz对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标函数,以下用例子说明。例 2 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学321,P模型是 3221)(mindPdP.3,21,0, 56182321idxxi目标规划的一般数学模型为KkklklLl dwPz1min-255-K
6、kdmibxakgdcknjjij kjk,21,0,)(,21,1 建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一定的主观性和模糊性,可以用专家评定法给以量化。2 多标规划的 Matlab 解法多目标规划可以归结为, minx使得goalweihtF)(beqxAb,0)(0cxul其中 和 是向量, 和 是矩阵; 和lgoaleit, Aeq)(,xceq是向量函数,他们可以是非线性函数。 是所考虑的目标函数, 是欲)(F)(xFgoal达到的目标,多目标规划的 Matlab 函数 fgoalattain 的用法为x,fval= fgoalattain(fun,x
7、0,goal,weight)x,fval= fgoalattain(fun,x0,goal,weight,A,b)x,fval= fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq)x,fval= fgoalattain(fun,x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)其中 fun 是用 M 文件定义的目标向量函数, x0 是初值,weight 是权重。A,b 定义不等式约束 A*x b,Aeq,beq 定义等式约束 Aeq*x=Beq,nonlcon 是用 M 文件定义的非线性约束 c(x)0,ceq(x)=0。返回
8、值 fval 是目标向量函数的值。要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。例 3 求解多目标线性规划问题 42 43211 min70890axxZx4,1 ,082331ixi解 (i)编写 M 函数 Fun.m:-256-function F=Fun(x);F(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4);F(2)=3*x(2)+2*x(4);(ii)编写 M 文件 a=-1 -1 0 00 0 -1 -13 0 2 00 3 0 2;b=-30 -30 120 48;c1=-100 -90
9、 -80 -70;c2=0 3 0 2;x1,g1=linprog(c1,a,b,zeros(4,1) %求第一个目标函数的目标值x2,g2=linprog(c2,a,b,zeros(4,1) %求第二个目标函数的目标值g3=g1;g2 %目标goal的值x,fval=fgoalattain(Fun,rand(4,1),g3,abs(g3),a,b,zeros(4,1)%这里权重weight= 目标goal 的绝对值就可求得问题的解。习题二十一1. 试求解多目标线性规划问题s.t. 2123 maxxz0,572121x2一个小型的无线电广播台考虑如何最好地安排音乐、新闻和商业节目时间。依据法
10、律,该台每天允许广播12小时,其中商业节目用以赢利,每分钟可收入250美元,新闻节目每分钟需支出40美元,音乐节目每播一分钟费用为17.50美元。法律规定,正常情况下商业节目只能占广播时间的20%,每小时至少安排 5分钟新闻节目。问每天的广播节目该如何安排?优先级如下:满足法律规定的要求;1p:每天的纯收入最大。2试建立该问题的目标规划模型。3. 某工厂生产两种产品,每件产品I 可获利10元,每件产品II 可获利8元。每生产一件产品I ,需要3小时;每生产一件产品 II,需要2.5小时。每周总的有效时间为120小时。若加班生产,则每件产品I的利润降低 1.5元;每件产品II 的利润降低1元。决策者希望在允许的工作及加班时间内取最大利润,试建立该问题的目标规划模型,并求解。