- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36305 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13852
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 616
- 主题
- 542
- 精华
- 12
- 分享
- 0
- 好友
- 225
TA的每日心情 | 开心 2020-11-14 17:15 |
|---|
签到天数: 74 天 [LV.6]常住居民II
 群组: 2019美赛冲刺课程 群组: 站长地区赛培训 群组: 2019考研数学 桃子老师 群组: 2018教师培训(呼伦贝 群组: 2019考研数学 站长系列 |
1.线性规划的局限性
( F& i8 w3 I3 r' `只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。
0 U5 E: e* d& T$ V( g' r! Y' `8 j- }0 p- w- r; }7 Q' }
2.实际决策中,衡量方案优劣考虑多个目标
9 Y4 l5 ]7 [# n3 D这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。
& H1 J+ ~" ~, {6 A& x n* E6 z! c0 K" U( ?) k ]# M1 ^, u
3.目标规划(Goal Programming)+ w0 q, H, V! z" k# d6 D6 A6 t& Y6 i
美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。$ `% t) s& ?+ |/ Y
+ `9 C0 Y$ ?# s
4.求解思路) ~5 `8 d& `( S6 v
(1)加权系数法/ d6 S! `% v8 [' p: e; k2 Y
为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。, j( w* U. a6 H5 y% {
- F8 j, A4 s% G+ N1 N7 w7 i h+ p
(2)优先等级法; ~: U2 {4 \& ]8 b- _4 y7 I' z
将各目标按其重要程度不同的优先等级,转化为单目标模型。
' {+ m6 d- M7 L) [, @2 p6 ~/ h0 a& @
/ Y- C: f) `8 y" S(3)有效解法; L! e% y! k' V
寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。 % b1 u. J# g) z9 R5 w. n
1 y# a ^% z& i7 A1 |! n
2 目标规划的数学模型
% B2 }; g3 A. O) g5 V, @ q8 o a为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。. I/ Q d5 r7 G' \ ]3 u v
/ v: s5 q" M, S# z5 R例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。( i" f( j' V' E
5 u# k4 ~! ` i9 \; ]: G; b0 |
7 F: L F) F5 n/ ~& z" u
+ L8 S3 T) e Q# T解 这是一个单目标的规划问题,用线性规划模型表述为: ! n, Q0 E6 @5 R4 G- n
2 ~3 A/ T$ X' M+ ?0 S/ x8 N/ X. [
" \5 L2 w0 o9 E8 G l& f- ~+ e
7 |5 M9 C' }( K l& \/ e" [8 D
但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如
$ g. l$ j2 t$ W
& r! X2 M6 P$ z7 m2 v% ~(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。4 z6 B$ ]9 q5 J2 g
) T! \* y: U' I4 v9 G( d$ a
(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。% A- [, C$ s& q3 e
$ i m, l) J3 t) S. g- N7 ^
(iii)应尽可能充分利用设备,但不希望加班。
# z5 f3 X0 ~( {* g! f- n1 u3 ~$ j8 F
9 C3 |6 k1 T5 u, K$ \; H, I- q(iv)应尽可能达到并超过计划利润指标 56 元。
) \% s) b" l2 `, L+ l6 C3 v$ S% d6 z; d6 Z$ i/ `" Q
这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。 6 `7 k* N# q9 X+ B6 H: b
4 K# U, J9 l8 W5 {: }/ G
1. 正、负偏差变量 / Y, v6 [" i9 o0 D& ~
! `" i' k9 M9 x: I# i
0 {! y% ], w* ~0 ?. |) W
, I4 W: |! ~' N1 e
2. 绝对(刚性)约束和目标约束 : ~2 r& N- @7 @
% P @% A3 g3 s- K 4 w( f6 i- H, P. K$ x# m8 C& T" v
9 q8 D Z4 u$ R4 B* N# x7 S4 e3. 优先因子(优先等级)与权系数
) r2 p: U7 h$ B) K. q0 D9 P, y5 ^
/ a; Y' C3 q& O) H, C! a: @ ; O* o% L: S1 S
5 z! K" I: ]; ]/ c9 k: B6 H; V
4. 目标规划的目标函数 5 H+ o2 H/ \5 B
, H; v1 K+ Q& }, }$ z1 W # R- g% D5 _. e" J# n
) C; q9 o1 u4 j9 \2 N对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。 4 }- I7 `3 B1 I$ F3 |
! V$ A1 V/ F$ g6 L$ w" F; g
例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是
" G; F' m# m* s8 M2 r2 p V
$ ?1 q2 X: B$ g3 {2 K8 U/ M/ k![]()
2 c# Q* T) u, E; P! F( N4 k+ J5 S$ {- v, ^7 [1 l
5.目标规划的一般数学模型
. k. h) N8 W( P" ^2 z
, U$ z. q: j, t: S' i! h![]()
/ \6 V8 _7 q( A- Z z, o: }# H- Q; G7 c2 l' J, U
" n# F( b0 `. O9 q
建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
, [. u9 m$ b* Q8 J) w6 h8 v
m, ~7 n; }5 M- u3 求解目标规划的序贯式算法
8 l0 V/ T. ?# y2 h, t# w7 {# |序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。 K4 U0 m& G9 _+ z$ }
: `2 g# q$ M \" S ; w* \: d6 D# j4 V
$ }8 k# r7 p" s, Q! H
![]()
! b, Y2 e+ i, A- x( S7 a
2 m7 \1 K! ?3 S注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。 / C$ W4 C( `# n' N6 Y
: r% m, v R$ |5 ]' n2 ^, E. a
例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:
0 ~8 g; l2 y, G+ I
- h) ^% c/ u+ l. [' W![]()
: H2 R2 t( D) A( s; X
8 E- Q, x5 \" m- R! R(1)力求使利润指标不低于 1500 元;
5 }* u/ }0 l& t& `% o% l, e5 d' B& P; n* W$ ?3 ?
(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2; i& i' U% _; v; z
4 a( N( q4 o7 Q- m8 R& b
(3)设备 A为贵重设备,严格禁止超时使用;* U! }1 S/ _8 Y2 Z3 ]! o: D n5 a
( B k7 ]+ H- a1 e$ l+ s* i- c
(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。
, Q! g$ D7 Y; d! I0 S2 T; f( u/ o% Z) y& |4 b4 E. |+ X- b
建立相应的目标规划模型并求解。
# c6 H$ S7 P6 D( {* G W0 ]8 J. h3 R w
解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。 " |, d& t- u" `+ c/ ]+ l& ^
) ?5 C! o% d$ I+ x1 k$ I' X+ v
* ]! ?4 T( I; p3 C' Y
! {, f4 f- w) \* P9 R& g
序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下: , X9 x; J* _$ K1 j
6 x0 D% K4 ~" G; `5 pmodel:
2 [0 k: g: X6 I5 l6 B. @; Rsets: 1 f3 S6 f% y8 U
variable/1..2/:x; % \- `: z1 Y' z! [4 P
S_Con_Num/1..4/:g,dplus,dminus;
r4 m$ y4 B+ n, `S_con(S_Con_Num,Variable):c; 1 |+ V9 J6 D( d# y/ l1 O. d% b6 q
endsets ( V. t+ |2 T1 e7 o3 w' D
data: / ^; v& E, \# ]
g=1500 0 16 15;
% H/ G. V, ^; L3 f2 t2 v# A+ Dc=200 300 2 -1 4 0 0 5;
! ]5 o" e3 C7 M, i$ H0 m2 M2 z/ L- penddata S8 A$ s# h8 U6 k( {
min=dminus(1);
3 q& D" |4 z& l0 q0 Y2*x(1)+2*x(2)<12;
5 P% | p/ U/ k@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); 2 x( t5 n( h% c% k
end" O/ y4 p' w( \3 w% {
8 Y5 v/ O% I ~3 k) h6 X) c
求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model: 9 g5 s; P! S3 X3 ` S; }& U5 M
sets:
0 a! t' r( |. [- y, Yvariable/1..2/:x; 4 P% ]7 i, Y5 d" w3 X: a
S_Con_Num/1..4/:g,dplus,dminus; y+ |6 P5 l1 S2 K& b% [" N& S/ U( J
S_con(S_Con_Num,Variable):c; 6 L" k& h1 u) ]8 Z# b
endsets " M. ~7 y* H2 F, c0 B; P2 v
data: 7 P1 j* Z' {- [2 B. }
g=1500 0 16 15; 7 p* E! s/ ^. ` o7 S* J
c=200 300 2 -1 4 0 0 5; V- q j+ y# k/ ?) y! X
enddata & Z) A, p8 \1 M- m- r. ^1 M
min=dplus(2)+dminus(2); !二级目标函数;
- y' \% `4 z# |2*x(1)+2*x(2)<12; ! L5 E7 E. T1 Y% ^- H
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
2 ^! J. j0 j2 {. v- e- ]dminus(1)=0;!一级目标约束;
& a7 m) l6 \0 Y8 X4 w1 ?2 |6 h@for(variable gin(x));
8 G& y% ^/ M {4 W! Iend 5 R3 @6 e, O7 U! q: t" L. p6 x
$ Q' |( ?6 e G$ d( ?2 r
求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下:
1 r* h; O, `# M/ k9 W# P2 e4 ] x0 C
model: " K( C) Y$ J5 q4 X
sets:
5 ^6 `- V! _8 p0 lvariable/1..2/:x; - h* j2 l+ i( T7 [7 V0 n( y" e
S_Con_Num/1..4/:g,dplus,dminus;
0 W# ?$ y/ K2 N& {, tS_con(S_Con_Num,Variable):c; 2 ~3 p0 z& P7 J+ B$ d" ^
endsets
. S: H' _7 q" s% Bdata:
% }1 I6 G8 ]) v% Bg=1500 0 16 15; & J7 B% ~% }' H* \7 b
c=200 300 2 -1 4 0 0 5; " A8 [4 K4 |- l
enddata " g0 T2 h# S3 j
min=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数; , ?6 M+ e6 C! k- I# k6 A8 t
2*x(1)+2*x(2)<12;- V/ Z- N, X) x5 @% B5 {
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
* L, ?+ T0 ^9 s9 [% zdminus(1)=0;!一级目标约束; 0 U' I( _. h8 i
dplus(2)+dminus(2)=0;!二级目标约束; 0 N9 B7 }& _5 x7 L9 j/ g
end
4 n: }; f* ~2 j9 d: B' P0 ?$ y$ W7 B1 ~: a7 d- W8 c0 l
目标函数的最优值为29,即第三级偏差为29。
, q8 p6 M8 y: `' w0 }( h) R, r5 j& }' `' i& N; w: J" F
分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。) X+ R8 k; B |# R- J4 k8 r6 Q
+ C* H6 y( {0 @1 e- M2 C
上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。- `5 ^$ _+ u1 {7 L+ @* h# e) r$ r
# \# u7 K6 o4 v, A4 v& ]例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。
. s# @' P3 l' H
1 M T$ Z, [+ R4 T$ A- |model: + U, A- e5 u) o* M( O/ ]& q8 H+ l
sets: $ P4 X/ W5 {* R, g- g
level/1..3/:p,z,goal; * W9 x/ E" i6 {" p& e
variable/1..2/:x; 8 w( K* b! Z( u0 Q% H
h_con_num/1..1/:b;
0 _( L4 _% o ?s_con_num/1..4/:g,dplus,dminus;
+ ? X6 @$ f6 O3 Ch_con(h_con_num,variable):a;
! m! A1 U6 }& s, Z% A: hs_con(s_con_num,variable):c;
$ c3 j1 U9 V2 h8 ^$ O! Tobj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus;
: S- L& N, i0 Iendsets ! k6 S$ C R4 z7 i' E5 `' C
data: ! ?5 ~ H. q( u; H
ctr=?; . V( j d/ j- m& f, X3 ^
goal=? ? 0;
3 ]) |0 f, d1 s( g# tb=12;
+ z/ l7 W3 F' I+ B: g; ^g=1500 0 16 15;
, t' [ z" x2 k- h0 ma=2 2; : Z9 g, v7 \% H( {& R: j3 N
c=200 300 2 -1 4 0 0 5;
( l6 j |/ S+ ?( ~- p$ A1 a+ bwplus=0 1 3 1; " H W2 Q* ~* Q l
wminus=1 1 3 0; % k, ^" `& @) {3 V2 Y+ p0 r: u! Q
enddata + E) z5 r! ], e o2 c
min=@sum(level:p*z); " u$ U! G9 x! I' P( o$ H" x
p(ctr)=1; % Y4 H6 G _0 g2 S4 [/ O& t0 w
@for(level(i)|i#ne#ctr:p(i)=0);
7 N% k, \7 H; G4 r@for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)* dminus(j))); @for(h_con_num(i) sum(variable(j):a(i,j)*x(j))<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))); H, S% R- o# c% p, K- M
end
( D$ F; ^* u, r) b6 j
' r; U' ?2 @" _$ m6 b7 ]( l, L' }2 h1 O
# k) N* y! n+ x- C3 N9 a) ]![]()
2 R9 W- a/ |8 y0 A% `0 Y' {& r: L. K- Q8 P- d9 e
4 多标规划的 Matlab 解法 多目标规划可以归结为
% i9 L0 u( z: x; u( o2 S 1 k' p3 U. G% M( h
C+ Q+ }, r; ?[x,fval]= fgoalattain('fun',x0,goal,weight)
3 k2 M! k+ l( [+ j[x,fval]= fgoalattain('fun',x0,goal,weight,A,b) # H# x+ p6 Q& u/ p
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
4 C$ ?0 M; ~4 j[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) 1 b( R1 L: ]1 i, g: {3 O, `
+ [: L' N& i, ^! j$ b! |. f% U9 d
7 [1 h3 w1 k# t) I要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。
5 A9 q# l4 q( Q: y5 O! c" a 例 5 求解多目标线性规划问题
/ |# H l8 I/ |9 r) q E
` r# w8 o9 \ O7 ^5 b; h ( r" j9 Y- x$ Q9 B: e
5 l3 X8 E. N% i$ j- e
解 (i)编写 M 函数 Fun.m:
% F7 h* }7 V' E: M
, ]7 i) |6 N# R' l( U O- vfunction F=Fun(x); * D1 \* Q; [' O% B
9 M, F2 I& D) F' R1 b! ^F(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4); 9 m7 N, o6 K3 W' }7 t
& B! ^/ S# Y! E9 V/ A( y3 e6 {. w6 R' }2 ~F(2)=3*x(2)+2*x(4);
. r- t; {, t' A6 R7 V6 l: S
4 S/ X2 L1 s _) m# d" _(ii)编写 M 文件
' j$ K( t4 s$ v" E- z/ M/ C
% o" Q2 m# l+ |a=[-1 -1 0 0 ( I3 p( j$ B. R3 u
0 0 -1 -1
' @& w4 f% d2 L- V) ^1 G; C 3 0 2 0
% R' z: V2 N* g 0 3 0 2]; * |2 {9 H; n' a7 w; a! |
b=[-30 -30 120 48]'; + u( r3 Y* b: [9 |) o( X! c
c1=[-100 -90 -80 -70];
* c( r) _! d; A4 w i+ Ac2=[0 3 0 2]; ! [% j8 U ]8 t' `1 \/ @
[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值
4 e. v, T, `7 d" @. p7 E[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值 & C1 t7 p6 ^1 I. l
g3=[g1;g2] %目标goal的值 & |0 \) I# w& t+ Y
[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1))
( ~& u: l8 H/ r- e* z" m# b%这里权重weight=目标goal的绝对值
/ y! s% a0 ^! m
' Z9 F0 E7 G" U8 S就可求得问题的解。 习题: Q4 U, M. V M& P! g
![]()
# L- p' J7 A5 j% m3 w* L% G6 @* B" J* p1 X v. e+ D8 W1 N4 _& t
————————————————4 d( y/ B2 D& J, A3 i
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。2 W2 }, t( `4 G, [4 \
原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932& p' L( H# j ?9 _9 q, P( O" ~1 j
. `9 j$ d0 R% j+ V& Z
# c( }/ `2 y, V' \ |
zan
|