- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36354 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13867
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 616
- 主题
- 542
- 精华
- 12
- 分享
- 0
- 好友
- 225
TA的每日心情 | 开心 2020-11-14 17:15 |
|---|
签到天数: 74 天 [LV.6]常住居民II
 群组: 2019美赛冲刺课程 群组: 站长地区赛培训 群组: 2019考研数学 桃子老师 群组: 2018教师培训(呼伦贝 群组: 2019考研数学 站长系列 |
1.线性规划的局限性; N- r9 ~* j- O9 l8 m) W- D9 j
只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。
- w8 d, }' l# o& _6 v- G- a; ?% r3 R8 `* H9 o
2.实际决策中,衡量方案优劣考虑多个目标
4 ]/ a1 `+ r5 [9 z6 n2 F这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。" I9 E6 h* {$ h! [) S
8 S- z' D0 ~; d! ^2 K5 D6 ?6 c3.目标规划(Goal Programming)- }5 N( {# `4 Q6 C8 H3 ] Z
美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。
( J8 c7 i" R" }) j8 c6 L) R" J% @" k. s% g% P
4.求解思路: l# u( r9 ]' l3 c( }8 n; B2 A h
(1)加权系数法
8 v! {5 K4 b% Z1 F) x. b1 g) `/ |为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。
+ v8 D! W% e, t- D L8 C7 K8 S, |5 X* r4 p; E0 t
(2)优先等级法
' x$ o- c. ]" P; ?将各目标按其重要程度不同的优先等级,转化为单目标模型。/ b( @9 `! Q; ~6 y, e0 J
Y" A8 L5 |* g5 ^/ L7 h) Z
(3)有效解法
! f2 `! N9 ?+ s$ w寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。
7 e$ V. K4 @% D5 E2 v
" t2 ]' Q- M/ w0 C2 G4 o: W1 O2 目标规划的数学模型
7 B0 y2 Q3 {( y) {5 V3 g. r为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。# T+ E+ U: W. ?
Y/ c5 H# ]& t- c: p H
例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。! ?* S6 d! m. J" p
8 \1 M7 u# \7 n3 q5 d6 w# K: X' A
![]()
5 w( M, w9 L' ^% g: W- Q0 q6 K0 k9 `" _" X( g
解 这是一个单目标的规划问题,用线性规划模型表述为:
2 A F$ |# i( s6 O! S+ S& J0 V5 Q9 v
![]()
1 Y3 _* {# y6 Y. `8 z' E( C' F# b* o" i1 V
但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如
- C" [0 O, |9 M* g" K& l3 \6 ]$ T2 [& Y
(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。
9 _& T% w1 `3 H' m
/ B) L) R# X; @/ {(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。, u7 b6 A& L: O x
6 T7 d; u4 f: z& s8 s* ^- M9 u
(iii)应尽可能充分利用设备,但不希望加班。 % K a H' t( o/ ?# |& \
$ x$ p/ P2 U& Q- _8 }6 M: y1 H
(iv)应尽可能达到并超过计划利润指标 56 元。
) }5 A! {' f8 I! _* H
! `2 K' l- p, r5 @7 w$ s! K这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。 : s" u# p9 U* V, L$ e/ [, c
0 ]' w6 m/ J5 H& T) ?. z
1. 正、负偏差变量
% O% V6 q% i0 K: t. Z0 n3 ]9 T* D, E6 ^
; W0 W' F( c8 m7 Q' }$ R
$ e- b/ [; H- m2. 绝对(刚性)约束和目标约束 * U8 S# I! L0 j9 C5 T5 X5 _" Z. h8 n
6 _* W3 M# s5 U# i' b& V H# |) X![]()
' J+ p* G$ a0 a# }2 k
, }) Z1 L4 ~: m& B5 H3. 优先因子(优先等级)与权系数
6 M; p# }% O6 X1 K' V6 Q: k* Z5 Z- t" H' Z7 ~( z, v+ G2 O0 \" i
![]()
9 o8 i r" [9 G+ @
7 p. _0 e' {* y6 d6 M2 H" z& j+ D2 n+ Q, R0 `/ F
4. 目标规划的目标函数 $ Y9 T) s: w5 Z; H" M; r1 x- l; n$ d0 W
* ^1 h$ K" n( S- I
![]()
* U" f) }$ ?$ I) {
$ G+ D2 h# }) b6 l# s: I对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。
2 H% k7 y1 g! b5 w
4 j! ]' U g. Q) a例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是
% T8 V2 `0 R6 W7 w6 {! g
9 L) h2 s/ T, o. n+ s![]()
% J7 L& n9 q X2 P+ i: ~& X! n3 @/ b# n
5.目标规划的一般数学模型: i5 H" D) [% \3 J- \
8 D! G% h' f; s9 Z
; z6 J3 V/ u3 B3 m8 M9 j5 U- [
: f: l$ ^! E# B T2 x
; Z6 T" E* ~5 B1 P y+ H9 Y建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
# \& _8 G. h4 C4 h) F5 |. d# m
5 X; {$ ?2 }1 V9 F) G r3 求解目标规划的序贯式算法
6 Y1 L( ^, s# ^- J0 N6 ` s序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。
( w" Y z+ t3 M; Y. w- J
- u M% }& U2 j. m/ Q![]()
( L( G8 X/ a$ Z6 g" k, k
$ e6 V: I: @ l/ P1 R0 U/ K![]()
( @( j; Y ^" U( Q! ]5 i# L6 |* n
& Y' a. _. {9 e6 Z注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。
, t0 j) q4 ?2 P( ~1 F5 \3 V" b; B/ l( c+ {9 W
例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:! W% ~( q3 L( H1 h( N0 Q, E/ L
`' X" C/ ]# Y# W+ h" s & @, R/ [% d6 M: v1 B! z
3 R2 g3 b* M4 ]: V) ~(1)力求使利润指标不低于 1500 元;
; \: n0 }3 j+ m# z' }$ r% O/ Q/ Z/ [' k) X8 ?8 R7 `! d+ V
(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;
$ t8 E9 Z4 X) d6 `$ ^0 {
8 j# R4 g- x2 b& e' ](3)设备 A为贵重设备,严格禁止超时使用;$ `% g; h Y) Z) \. I' ]' e; c
' Q) _# j6 {& I- w! w(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。
2 ?; q- J3 o8 B" S) h4 C% d% a8 E* d1 c0 ~
建立相应的目标规划模型并求解。& i5 ?4 y! ]0 k: S$ y+ v/ }
\* j: D/ j$ b- {( ^' n6 }
解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。 " w$ n, b2 T& p* W
, [7 W0 }9 U4 i) n
9 ?# T& p/ l1 J" U( R* v1 w
$ }8 c1 H/ [: U5 ]4 N3 Y( @
序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下:
; u. e. `8 u7 q. Z0 \: C, t
& L& L' H$ Q3 L6 c4 R5 t$ tmodel:
4 m! h6 }' a- T3 p3 ?sets:
/ Z( }3 f) R0 N2 r% C _+ evariable/1..2/:x; 2 H) w; r* K3 G, P3 D7 t& T
S_Con_Num/1..4/:g,dplus,dminus;
+ {& p$ D) K6 x6 j; l& w! IS_con(S_Con_Num,Variable):c; $ E- X9 C5 ]' M: Z2 |3 `* `% @
endsets - D' J% q: i' H4 ], b, r
data: 0 J v# p3 G8 [5 R3 A0 f0 ]
g=1500 0 16 15; 9 X H6 S0 [) Q$ V5 O
c=200 300 2 -1 4 0 0 5; ' F8 W! @0 z5 X( B( V
enddata
; T2 u* q; X; zmin=dminus(1);
% {! j9 p7 `# Z$ u7 S, `2*x(1)+2*x(2)<12;
0 u5 t0 i. H1 Q4 L- V7 p@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); + |. m0 B" r5 }
end4 i+ C Y$ \9 h& Q
9 ?8 |5 J+ U ^# H, G求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model: / T" ?% G: q+ F
sets:
* w& _1 d' l+ @& T# W0 svariable/1..2/:x;
5 \) d \" h$ P/ {7 ]S_Con_Num/1..4/:g,dplus,dminus; + D4 S, O! h! c, X( J( i$ ?8 \
S_con(S_Con_Num,Variable):c;
/ G. u4 G2 J6 }8 u& f% i- S, }* @% `endsets
! L, w+ O/ u7 Z- G% Edata: " U$ ~. K, u* t1 W
g=1500 0 16 15; , T6 V0 k& u5 L. ^
c=200 300 2 -1 4 0 0 5; 0 q+ y2 l& K9 u& H
enddata
0 w# G' N# `6 o. n6 C A& O, Pmin=dplus(2)+dminus(2); !二级目标函数; $ a7 p* {- A4 D8 j9 p# t' R
2*x(1)+2*x(2)<12; + A) D6 |* U; S7 w
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); ; E ~1 x( B( {+ m
dminus(1)=0;!一级目标约束; ! A3 ~0 f! E1 l- t
@for(variable gin(x));
5 b% f( L0 z& U6 x- Q; Yend + J: Q0 z) G: M
8 z& ?+ y+ ~* j& C* | _4 g$ G求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下: " I6 t a* S- E- C3 ^% a2 }
9 O: }4 I V# V: gmodel: + I- A2 _6 ~" k( e9 B
sets: $ X8 z7 l, r0 W
variable/1..2/:x; * G9 C* q7 s' O' U7 ^
S_Con_Num/1..4/:g,dplus,dminus;
1 Q: z0 C( e/ u) ^) Q; `- yS_con(S_Con_Num,Variable):c;
2 x+ k9 P" Q/ ^endsets ) u- F K$ C1 L& E+ q6 P- [" D
data:
6 K# E& a) `/ r) C& L2 T: {- sg=1500 0 16 15; . i5 w6 \# ?8 X* |
c=200 300 2 -1 4 0 0 5;
' Q$ m0 X' O& Z, O- m" t |7 xenddata * F n9 b. l% C' `. f* s% ?( d
min=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数; 3 Q; v7 d. g, F3 m* j3 b
2*x(1)+2*x(2)<12;* q$ }5 K! ^( o4 U" |
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
" {1 X8 w* e( L& e6 {) Idminus(1)=0;!一级目标约束;
9 z9 e: r# T8 i l' qdplus(2)+dminus(2)=0;!二级目标约束; * d2 P) \) r$ \, C) L
end
* p% F. \6 |- p. E; O
. f& w+ Q& k6 k- C5 h9 L; b q目标函数的最优值为29,即第三级偏差为29。 - ^, a/ P! A. L7 F% g
, y3 @+ b, y0 {
分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。
& z' m, e" w0 ~' b7 p: T1 O% |* }$ W% Q* X- x* d A6 F0 V g
上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。
( v2 V3 u2 Y* t8 F3 n
5 D2 L% r4 @( Y2 X! _. G例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。
5 G! A" K% B* P5 K% A8 @
3 E$ q' c9 F% smodel:
! U: u4 u) n5 ^sets:
' k/ z j* M% |! ]) ]& Blevel/1..3/:p,z,goal;
7 _) d9 m7 }" p% Y, L1 [" V5 T* Tvariable/1..2/:x; K5 a. y2 C- x( i4 M& s+ ]
h_con_num/1..1/:b;
5 t- O- l6 M2 g% Y) t! ps_con_num/1..4/:g,dplus,dminus;
5 S& F7 q" g; K' j% Kh_con(h_con_num,variable):a; , @( C# I% T7 L( u
s_con(s_con_num,variable):c;
( d" x, q0 I; C! j: _! _' |obj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus; 2 n& H1 Q/ G2 ]7 e) j ^
endsets ) h z q) @( w% G8 N! r& n/ e
data: 0 X$ @. {+ W ~8 H& f
ctr=?;
$ j$ Z7 g2 \6 sgoal=? ? 0;
' j% H A( e; Q8 z2 L% ]: \/ U9 vb=12; 1 H7 z$ v+ d3 ^1 t5 r: ^2 _
g=1500 0 16 15;
- n8 d" V: d% K+ z/ [a=2 2; 2 } I! g, g+ _
c=200 300 2 -1 4 0 0 5;
9 Y6 `6 w, Q+ R" q' o, xwplus=0 1 3 1;
3 j+ @) H( K! J7 mwminus=1 1 3 0; ) C7 f. G9 M" _& F
enddata ) o( S! b& Q1 z- H" Q3 U: {
min=@sum(level:p*z); - T$ y! I" K5 X" Y* e) @
p(ctr)=1; 4 \: J, Z; |/ S( F w3 ~, x! B
@for(level(i)|i#ne#ctr:p(i)=0);
/ P1 _: o; d' E/ @@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))); 3 v' P' m/ v' ]/ X0 G: a6 s
end # [) b, d/ k, y- H( u$ I. L K3 a! k
- R/ k; F3 P' @
L* D! ?# g g9 `0 L0 Y# I1 Z* }6 u! U7 c; ?' l1 ~6 P' [
7 _ m6 r5 T3 g' m0 y# B# S
* C& C) X1 ?+ s u1 i4 F( W4 多标规划的 Matlab 解法 多目标规划可以归结为
. X; S6 Q- {- x# Z" u$ Q( R$ a / w m/ o- v7 |/ k7 p% w" h0 P
! C! Y6 {! ~9 H6 A[x,fval]= fgoalattain('fun',x0,goal,weight)
3 ]5 y: p4 j5 W8 x! k6 \% l[x,fval]= fgoalattain('fun',x0,goal,weight,A,b) & n. q# M& L# g8 f9 U
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq) 5 N3 u* d; d1 s; a) O4 X
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) 6 x+ f+ D9 U+ s5 I4 N2 P
9 u0 m1 \! r' @. q5 o* U4 n4 v: P" m/ e- y/ {0 [
要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。
! g9 l8 o5 \4 m: M, w 例 5 求解多目标线性规划问题 : z1 U( I; d; J) H
2 A6 x" y0 B: b# m7 ]
![]()
- ~3 R" v5 C9 _; V2 A
2 t4 r0 q, ?: `解 (i)编写 M 函数 Fun.m:
6 I* g, C8 U, H+ L, @& F8 O) m
$ d1 x) ]+ M2 k# Efunction F=Fun(x);
/ i4 Z% ?! [% K7 S( k' V6 E5 V4 Y1 h
F(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4);
# \& y% h9 E d) i7 q6 b
6 f4 G# M# M+ ^' mF(2)=3*x(2)+2*x(4);
" E9 x% d8 d4 S# t4 v; l6 u; [' K* g2 J: A9 C/ E) d6 Q
(ii)编写 M 文件 1 T2 S9 k) }! J- ?$ V* I
0 b- b0 m' I/ m# y+ D( C" y9 ea=[-1 -1 0 0 4 }; h" e3 K; c8 m Z
0 0 -1 -1 5 b3 Z, e$ G, x+ b" r& d4 @1 h+ f; N
3 0 2 0 % p/ l& \" A& ]4 q5 I. U5 X
0 3 0 2];
0 S2 D; \! I8 e& e6 Ob=[-30 -30 120 48]'; b4 ], C3 A K
c1=[-100 -90 -80 -70];
! h- G7 N9 O: k# Ac2=[0 3 0 2]; $ c6 E- M7 D+ g/ H
[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值
# K# V+ J! B" h[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值
/ d, A! _; E) ], V4 jg3=[g1;g2] %目标goal的值
$ e# P9 u9 }) y) r4 {6 K9 l[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1)) 3 `+ S2 b" v9 I/ V
%这里权重weight=目标goal的绝对值
! u, C; Z6 S* W. L
3 Z- D) _7 @* m* {9 h( M/ L就可求得问题的解。 习题
5 C3 {9 S+ @9 G2 J# @+ z0 ? ) ?" l* u3 |$ h% m( ^' C- l8 W9 i. B. `
4 X% X' f6 t2 B
————————————————
3 ^! Z+ |! J+ a$ l/ @) F g版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
( T0 Q% W1 D. j7 j原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932. |. f& C ]; w. Q- `8 U, {, Q6 f
9 I: `4 \0 L' V3 y) ^3 f' F3 h: B, E& ^ y1 e3 Z: @
|
zan
|