- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36309 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13853
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 616
- 主题
- 542
- 精华
- 12
- 分享
- 0
- 好友
- 225
TA的每日心情 | 开心 2020-11-14 17:15 |
|---|
签到天数: 74 天 [LV.6]常住居民II
 群组: 2019美赛冲刺课程 群组: 站长地区赛培训 群组: 2019考研数学 桃子老师 群组: 2018教师培训(呼伦贝 群组: 2019考研数学 站长系列 |
1.线性规划的局限性& U! c7 [. |/ l/ x- M7 L/ ?" f( g. R
只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。$ M. a0 l( H$ U, |# g2 T! d3 _& z F# O% c
. ~% o& u( e( U5 G- }3 {" |' Z5 t 2.实际决策中,衡量方案优劣考虑多个目标" S! _, d: v0 j
这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。
9 A& p& P! Q! V& b0 _8 R/ Q- |7 I4 r" {3 t5 @9 A7 z9 |
3.目标规划(Goal Programming)
! \5 k: n4 F- F3 b6 W" J美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。) D* L7 {9 o' V3 K( J% [5 n3 K' J
4 }& \4 C Y W p4.求解思路
+ u/ n, Q" e6 M9 @5 N: \(1)加权系数法9 G+ }6 R" b2 B
为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。
" O2 a2 p9 u. i$ A( }0 i
C- D' L% V+ g7 C+ f) i(2)优先等级法
9 _9 V) t1 P8 l# w% [将各目标按其重要程度不同的优先等级,转化为单目标模型。
. q$ K, o1 b# ]& I6 N
3 O8 u* L* ^6 ^5 V& }( B, g, \(3)有效解法
% M( |6 G, M* K( Z! ]# R8 Q a寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。
- N! v2 o+ E9 U! M
9 v0 o9 Q5 e0 ]9 u8 Y7 I9 v2 目标规划的数学模型; N5 m7 l" p5 K, c
为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。
G$ q% O8 I2 Q6 M0 f4 e+ z) `3 t
' V: @* `( N" [例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。
* Y# D/ m0 t3 w) a3 u
; E6 D( i1 {/ n$ v. z* f/ s : `1 j5 }3 h; r, x6 j% j+ i5 R
: F' M% {" @9 W; L/ B: f解 这是一个单目标的规划问题,用线性规划模型表述为: ; X+ A0 |3 q/ K2 k4 Z% o
4 F' q4 m. [5 @% K0 ^, b; K " S& R+ C% W, Q+ c3 Q0 c" l, Z, b
0 p- w6 m3 d" K4 z E但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如
0 k0 a8 X9 }( ]% O6 z8 m, V$ j$ @" ~" G; Z# |' ^1 K) L: T
(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。. r1 k1 Q5 `: o( K% J X H9 p
0 e5 i& T, p; e7 w
(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。
1 ~ n( c" p) K$ z" [. K) i c/ P/ [/ [3 O! {# B
(iii)应尽可能充分利用设备,但不希望加班。 ; |) K8 c; [4 l1 ^! I3 O
0 J- L4 t; \/ ~% H(iv)应尽可能达到并超过计划利润指标 56 元。
5 |7 k( G% W& G" M9 m( C! g: `+ |# b
这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。
4 z, B* ^- W( E, R1 Q; I; G4 R+ e8 j3 S' n1 n, O
1. 正、负偏差变量
, Z! h/ H% V! b+ i, ?- d0 N; \" C- I' B
9 f3 H* z( P: e! S8 P; e![]()
0 V7 s; M" E1 }6 G$ G, H% Y' _( b, z) H5 N7 ?
2. 绝对(刚性)约束和目标约束
8 k0 C& ]8 p3 U8 n4 K+ D; r$ \3 z: D1 g M" t: }' @' e
![]()
. p+ ?5 \' N- f
6 U% ~' n6 h8 g# a3. 优先因子(优先等级)与权系数 / y6 l* @/ ~6 z( ~
1 H0 z. [1 e$ Q T6 r- j- M( J![]()
9 N6 _% b; i- _# N; p
$ t" x0 J& H( c% }$ f. K0 |( ]4 L# ?, H! @* l4 p m. E/ n3 E3 Q0 M
4. 目标规划的目标函数 0 ~5 [' }) @* b9 V) t7 c" H
2 v8 G/ j* x: W: s, ~
; x" C* T/ \# J+ I. R1 d A/ r" }
* @( O; D8 B) `- J对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。 . w! a% x" E1 C6 |4 R& W
' b. x9 A( i1 {( Z. d6 w! D
例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是 * c6 v, {# H0 q$ w4 D# i
; R2 M, N) e$ P* X# g9 k6 W9 d
![]()
$ G# b. ^% }: w/ A, F* y
8 V$ e1 k5 v. _+ B4 x, y3 b5.目标规划的一般数学模型
" M; T' N* z; a, b! r. r; b7 ~" _; f4 }( }6 q
![]()
1 y9 B+ p+ Y# ?. I$ ]) |
7 v+ E) T/ V- y: h
- ^; N/ M. `+ C& o/ M# ^, Y建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
0 o2 L' U' Q9 u6 x6 Y( m
6 G/ Q: J% u. Y/ I2 T3 求解目标规划的序贯式算法- }9 t. z8 ^, `; `4 C$ h+ s' X
序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。
5 [4 V5 k* l) W( f$ A) `' K! R, \5 a
![]()
+ T: W! P1 n* H. G( G5 V* ~+ o. b
& B A, G+ h, f# G![]()
9 A; P, X" T/ K0 `
$ s1 U9 {! i1 l: z# ]注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。
5 H+ ?0 _/ O& o0 b/ A
6 H! B" p0 o1 F; H例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:
6 i! o$ m$ U8 g/ e; i' d9 A
( K7 J2 E4 e u; f" R, s% m . e/ \1 R B( d
; R t: }8 t, C9 r [" ~! n3 @(1)力求使利润指标不低于 1500 元;
8 T" `1 I- ?6 H, R4 t/ _2 X. E9 j6 m
& A+ k" A4 h `(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;
' J" ~' O& P* I! e' F* b& N2 C4 S) c9 A' n
(3)设备 A为贵重设备,严格禁止超时使用;, D1 F# `7 u* P, O6 ?$ r A
( \' v4 w# p9 N9 z3 L$ ?! ?. H(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。2 D5 ~; }# n' M, `1 z& @6 k; a
1 F) K6 t1 K+ R& L( {4 ]建立相应的目标规划模型并求解。) R! @6 h+ i3 E
! D6 ?( ^# y* L/ `
解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。
/ ]* l6 N/ ^& C" p( ^3 d# ]/ D9 V- e5 _4 A8 M9 i% M
) G6 M7 }8 `: X) d
* R1 w. J+ o; V+ q序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下: 9 s" h2 G: N; x. j" t
% Y$ \' Y/ ]. m _$ {; gmodel: 8 \' V/ A2 h/ Y) E& q4 ?; j! t8 M$ c
sets: ) m+ ^# w' f7 n9 A
variable/1..2/:x;
8 c# L4 _2 W4 n8 b: {S_Con_Num/1..4/:g,dplus,dminus;
7 Q& k r; g9 @2 x& @4 NS_con(S_Con_Num,Variable):c; 0 @/ M. V! l3 a. c, H3 S4 B8 l- ^4 f- f
endsets 9 Y4 j# } |2 @9 u
data:
! L- N+ S6 E1 h# jg=1500 0 16 15; + ?, [9 O& ^$ f7 Q1 b& d' b$ {
c=200 300 2 -1 4 0 0 5; # u/ V( O6 S. ~6 \. e8 U/ N
enddata
7 V7 a i6 }4 G5 f6 F0 w6 O% J# N3 Lmin=dminus(1); 0 _2 A( B/ j% d
2*x(1)+2*x(2)<12; + h% u* b H4 o7 j: o
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); , R" Z+ g- T, W0 d
end" r* a# Q P# Q& }* _3 V
' z0 Q6 J/ i7 O ^1 m
求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model:
( J9 r% C8 x% Z a2 usets: . N; b4 J( X) H/ \$ R: T. V' z& W
variable/1..2/:x;
( s3 S" O3 H+ ]S_Con_Num/1..4/:g,dplus,dminus; 0 b9 M0 `; l0 w y1 J T9 k
S_con(S_Con_Num,Variable):c; * E/ i9 O4 D* W, D6 M9 p, |
endsets
3 t E* J" R5 i$ |! `# e) odata: # q! y" `4 g$ V6 x, V
g=1500 0 16 15; " L% x8 c- ]4 W6 [# \ W' b% x
c=200 300 2 -1 4 0 0 5; & C& B7 t: v2 H- ?
enddata 8 ?1 w5 w& e0 c; A. A
min=dplus(2)+dminus(2); !二级目标函数;
5 t3 I; m9 F" |, B5 Q2*x(1)+2*x(2)<12; " ^" ]* u7 k7 i3 {
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
& D$ h- G$ q4 I7 Z, O& ~4 H1 fdminus(1)=0;!一级目标约束;
2 f# Z, J) L* \$ `+ c@for(variable gin(x)); # x+ W8 c- \5 W, h0 e
end
2 L$ X: Y H6 x4 d0 x
8 k& Z8 ?9 i6 ` u' `( S3 u3 ^求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下:
2 C. G% C8 `( b4 e! Y- d7 m# w& }4 `% t$ Y1 P; U& `/ n( M: b
model: - l0 ~! Y6 t; @# h1 m
sets: 5 s6 p. u7 b3 V2 S3 S- P+ p
variable/1..2/:x; + m1 \5 ~5 I4 y2 ]- Y# a
S_Con_Num/1..4/:g,dplus,dminus;
2 h7 z7 H! t1 R# c D0 P5 |S_con(S_Con_Num,Variable):c;
( i; D* u& a8 T5 p9 a7 ~endsets
6 m( q: @& `) C7 O) W) c% i1 @& Xdata: ( U, n. L% k# ?
g=1500 0 16 15;
3 t: K, M3 [" W' P5 Ec=200 300 2 -1 4 0 0 5;
* U# q$ o( q) l( l! |. P5 Yenddata / b0 Y6 T$ g/ a) {9 m
min=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数; 3 L$ g( E' C0 s
2*x(1)+2*x(2)<12;! f" k. Q1 s# l- @+ B
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); : A+ E1 j9 K* F/ M" v
dminus(1)=0;!一级目标约束;
+ q* b, T6 B% a: `3 Fdplus(2)+dminus(2)=0;!二级目标约束; $ J/ }! j+ v3 X. s
end. ^# o% m! F( A* N0 ~) E% x
, l+ _0 S, b) g' ~7 T, C目标函数的最优值为29,即第三级偏差为29。 . f# V- x. h5 D
5 h- G4 E0 o* ~9 o分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。
& L) O) ?4 I' W+ h/ x
) a3 P$ S7 [1 H& _3 b$ W上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。
8 y* ~, o8 v L. n' P9 ]9 G' s/ m* a& c% L4 @ p6 o
例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。5 S N1 a3 @& w
1 W9 P1 J; n7 o% dmodel:
$ ]0 p' @4 p: y1 vsets:
T4 Q2 n& Z3 m% P mlevel/1..3/:p,z,goal;
J0 o# \. U3 k, svariable/1..2/:x; 9 v2 _4 o4 I' W N% M/ a
h_con_num/1..1/:b;
e+ a5 T& q7 X# M1 X# i' l" F5 r! cs_con_num/1..4/:g,dplus,dminus; 0 D/ S1 f# o! g1 J& W( P0 G
h_con(h_con_num,variable):a; 5 {2 L2 T1 Z- ~/ X. |8 U
s_con(s_con_num,variable):c;
& \: Q4 a5 d6 x: x7 M, R& a! bobj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus;
. }% f4 _" F* T2 s1 J# H# _& Hendsets 7 f1 d+ L! E3 R( b% y* y- \/ r" y
data: 6 |( [; k6 T3 }8 O
ctr=?;
* k5 c3 u, |: {% @2 T: F0 Egoal=? ? 0;
* N3 Z/ v- B0 W- L/ w6 A1 A" Eb=12; % j9 q8 o0 W6 k" m; E" k5 v
g=1500 0 16 15;
u) t) N' y1 \, f1 i: M oa=2 2;
1 v& D( H! e% m8 Y% Q; s8 Ec=200 300 2 -1 4 0 0 5; ) C( b1 l: U* R$ P
wplus=0 1 3 1; 4 J$ D9 h9 z' Z( E
wminus=1 1 3 0;
9 p& n7 e* `6 m+ c3 y0 T# v% R/ Lenddata
6 Q, q$ G1 E8 ^" y" fmin=@sum(level:p*z); 3 X* u& M3 l S& \# b% ^% ~8 a
p(ctr)=1;
; J7 }; q5 [ x& q7 U) ]@for(level(i)|i#ne#ctr:p(i)=0);
9 o: u* `4 ?$ k% a0 M1 H@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))); + N9 q8 V; J/ \" R" l) W O1 Y$ D
end
) R. `( h1 r4 Z6 M- D! S( {' W
+ U- R" h7 O# W6 ]6 \9 U) { C. S4 N5 K& t3 F- C8 L5 I2 T
% k+ d& z. s5 H7 N/ K9 [) c8 G5 H![]()
0 s! x4 D! e* i% s/ g5 j3 c' ]1 k( e8 t$ N7 b: n2 @
4 多标规划的 Matlab 解法 多目标规划可以归结为
+ [- }1 \$ ?" V0 D 8 B0 Z! @& e& ?) a( X% G8 Y
b. C9 A Z; ], Y; C[x,fval]= fgoalattain('fun',x0,goal,weight) 5 H5 X: ?6 I% U
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b)
1 Q1 V! u: t6 E& |* F[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
9 g8 {9 m1 q7 b+ S1 i, P" g- A$ g[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
* X; F8 Y& u, D$ V6 E q5 ?! Z1 E4 p5 g$ @( f
: @0 q% m: w" [) l3 T
要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。
- J9 a! V; e. h: D 例 5 求解多目标线性规划问题
# T; j+ g/ M/ m5 W! J
# P- Q1 W& x4 Q# ^![]()
; D' G( _% [& S5 c9 \+ I: t; ~9 L6 f0 H3 W9 Q
解 (i)编写 M 函数 Fun.m:
5 C& ]7 V( O+ O u3 a+ [' G3 E- Q; G' u1 r2 _8 C+ O
function F=Fun(x); 7 O& W3 {5 q3 f4 v& f3 Y: L
- f) {6 V) D) e, K' oF(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4); 9 S, d- F6 W$ p3 i" E; ]
1 ]7 n5 z5 X# C- @
F(2)=3*x(2)+2*x(4);
R0 h8 g; S2 `! {% V2 q
; V% u' f, Y0 R(ii)编写 M 文件 & G2 [ U7 g. o# Q! A6 Y% x7 b- ^% ?
" Z3 x$ k" s1 C; _# ha=[-1 -1 0 0
4 ?4 W; a, j, O" I! k T% P$ I 0 0 -1 -1 : e7 ~* n) W% C+ Q' b
3 0 2 0 # X% f* b% g7 Y* t/ E% W3 v
0 3 0 2]; 6 V$ R: W/ P) h
b=[-30 -30 120 48]'; ; A* o. K7 ^4 K. ~/ f1 k4 D. Z/ v
c1=[-100 -90 -80 -70];
( w6 F7 {. B; S8 y, ~5 b0 l0 nc2=[0 3 0 2]; " J. o# c5 a5 x$ f
[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值
9 e9 T$ L( \4 i; d8 {0 {[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值 9 Z1 w( E; s8 H8 }" M" ^3 ]1 K0 _
g3=[g1;g2] %目标goal的值 2 i' L2 v2 e3 N9 @
[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1)) $ c7 Y! G- m7 [) c. w& T
%这里权重weight=目标goal的绝对值 $ g4 ~7 d( }/ {# j2 ?8 Z# E5 K: e
; N- k0 s& v- ^ \" m5 n+ M" ^就可求得问题的解。 习题
# J" I7 L' }4 ?' o/ \1 O! ] 6 _, v8 Q! J+ w0 G8 A, M
+ k% k5 O+ E# A$ o! R1 u3 H, H; ~7 j————————————————
: K9 h: N$ X2 E9 e9 D7 C3 \( }版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
* C+ o+ M% b! K, J( h. ~: p) z原文链接:https://blog.csdn.net/qq_29831163/article/details/894889326 E5 {+ f8 q- A! d* C
9 K1 g# Q/ O3 y& L Y+ n
5 ]9 h, g5 {5 i
|
zan
|