- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36054 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13757
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 616
- 主题
- 542
- 精华
- 10
- 分享
- 0
- 好友
- 225
TA的每日心情 | 开心 2020-11-14 17:15 |
---|
签到天数: 74 天 [LV.6]常住居民II
 群组: 2019美赛冲刺课程 群组: 站长地区赛培训 群组: 2019考研数学 桃子老师 群组: 2018教师培训(呼伦贝 群组: 2019考研数学 站长系列 |
1.线性规划的局限性
, i7 V0 O8 R! E- {, x. I% E5 p只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。5 W' k5 L9 E' T2 l7 |/ o7 W
( j* _. c1 s: {( P4 S 2.实际决策中,衡量方案优劣考虑多个目标% p2 U2 Y( B+ y1 Z3 }. p1 ?
这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。
4 ]+ B& Y9 K A0 t6 z* I" g
( M& S# {, h: Y) \3 m' S9 B3.目标规划(Goal Programming)
9 i$ r/ \- H$ P# p4 u- v美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。0 X2 n) e, W: a+ L$ a* q
6 H {% r. Z( ^( G4 E" M
4.求解思路3 V" ?: E" H( U g
(1)加权系数法, c3 s$ e* [# v, S
为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。* u3 R) j% O9 y9 }( t7 C& p
% d6 e7 o$ Z4 L7 G4 a/ X(2)优先等级法
2 ~6 m# d4 N! Y将各目标按其重要程度不同的优先等级,转化为单目标模型。
$ V0 D7 t) v9 H8 ?% i: a" x G: g" C0 l1 v7 {- H
(3)有效解法
- A- r! ]! O0 Y% q- I/ p2 e寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。 7 `/ b8 m4 h8 e1 s8 t. W/ Q
}8 S: }2 c$ ~4 E& k5 P2 目标规划的数学模型+ E* ]# P+ A! V3 {. c% d& h
为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。
) x2 u7 B) t/ z- e5 Y
$ C. G5 e% J& ^8 U) _& I例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。1 K$ m4 n+ X8 |! Z
9 J( `8 w- p& J0 m: M/ }
+ \5 D* w0 ^6 Q& K
" u2 h! W' w; ?8 r: }" C: S
解 这是一个单目标的规划问题,用线性规划模型表述为: $ k2 W1 \9 R/ `, L( a
: O4 R. O+ v( T+ i; l' j q. `![]()
' \% u! R$ Q( l+ o
^6 \) `- s c4 s' j- m但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如3 ^4 B" b* J1 e! C1 R# E1 Z
$ X/ k+ _/ d" [+ Y
(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。
, U; ^; n' D: x8 v, o. D& T, @* I" b# h
(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。
0 m$ V6 `$ T, e9 v
/ l% d: J' _2 T. ~6 ](iii)应尽可能充分利用设备,但不希望加班。 2 B o( K* ]- N% e& Y
8 V! o% W% W! T" _(iv)应尽可能达到并超过计划利润指标 56 元。0 c& o. O7 T2 o1 Q4 R0 n. S
, l+ @; ^# l5 n' M# s+ \- [这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。
5 W) M9 X0 V" r% h( v# }; g8 q' K
7 w; l7 m9 m; w6 N; |1. 正、负偏差变量
/ ~8 F8 @- T* j
T1 n1 M$ U' O4 Z. c: x) ]![]()
- j5 p" v7 N' {! x: u* ?" F/ T& q& ?8 i9 p1 e$ t
2. 绝对(刚性)约束和目标约束 9 B" d* V. y( X" c
- q6 t0 W5 t$ a% V) ]8 X d
![]()
* M6 [" ` Y6 b% [+ |, \
, D1 P# u {. y0 l- P) s3. 优先因子(优先等级)与权系数
. R; X" Z/ x! G# d, Q- ^ [- W5 S/ z. b& _) b9 L5 D, |' r! T
![]()
, I7 L1 B5 D3 S# ]
# `' |" G! h. W: J* O' R5 S- W
7 k* H6 [7 E+ @. _ R0 Q8 l4. 目标规划的目标函数 # k* S' k( a" c; @
/ S- }# a) _: [' c/ E, Y![]()
0 a" b. }8 F9 [$ L, X3 Z3 f6 u! b0 S7 ]+ ?& M% b
对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。
5 [4 r1 t' P1 h0 i O2 g/ b: T4 g2 ]4 Q1 F8 u
例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是 : K* y( x" Q" _4 d
5 v% D1 U9 `. p2 n: Z
![]()
$ U0 {- b1 P( |! o- H9 U! h ]+ u; D4 `0 e# M
5.目标规划的一般数学模型
2 C5 b: p' g- o$ _/ l6 I' z0 L6 Q) ]$ h
6 r" ^: S Q4 e& C
7 w' r. u# V, P& p. k+ t5 \4 a, |( b& Y4 u4 I" @
建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
$ { l# l: t4 F) `
6 f2 C4 q+ y& Y$ J3 求解目标规划的序贯式算法
; s; l3 M8 n% i7 x8 h% E6 R, n序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。 7 a( A( y7 M) _1 R/ A! m
: c: w( h0 w9 a4 i! g![]()
# Z1 ]3 w5 a& }3 b5 R
- U) i" H: x8 T% M2 W) j: _ - _" X0 ^- |) N
1 ]- s8 b5 ^$ c" s, n3 O" R
注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。
+ ]$ O) E! ?# O+ i% `* \1 n# T8 K d
例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:7 R5 V% T; U1 s$ h; ^! \) R! v; j
2 N1 F& @% g% t![]()
; f7 n/ @1 x# j% I
( N5 W K7 n7 V(1)力求使利润指标不低于 1500 元;
1 k! D7 m3 d5 L: C7 K5 l. u3 r* V" d
4 B! F3 r% J- F(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;2 ` }/ }; w4 n h
' \% S6 C/ L2 e: O(3)设备 A为贵重设备,严格禁止超时使用;4 [0 ?$ ?' b, j
; |8 f: O' w! s3 q
(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。5 a# }# [: `/ }# O' M( X+ R
* V& V; g" N* ^8 b- _. \5 O& |
建立相应的目标规划模型并求解。+ M! e8 u9 e$ s4 d3 r
! }- i: ]/ N1 h( u解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。
& w: z+ P3 I" u7 S( p2 Q" C
2 S% N# x4 J& T& F5 ?5 }( t/ H ; b H& B" N# A' m4 Q. C
! Z0 A8 |# Z6 w
序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下: * w- i R3 ]8 D% d; B! O" Z
7 @/ A' T w4 _ d# t
model:
6 G7 k) x7 O' {' B: h: [sets:
1 ?8 U0 C: p Z7 y& k+ pvariable/1..2/:x; & f5 f5 n9 t! L8 l* z% Z, [0 v
S_Con_Num/1..4/:g,dplus,dminus; 6 S# W# @& H& U- h9 L
S_con(S_Con_Num,Variable):c;
' s7 G' M" d% g0 D4 m2 Rendsets % P; s+ k: l# A3 \( @1 }% F0 h
data:
( L9 t5 L) }3 mg=1500 0 16 15; + X/ k$ N# a x, p8 c U
c=200 300 2 -1 4 0 0 5; ' _1 o+ P+ o, [; j
enddata ' o& t& f' S: w. ~/ y
min=dminus(1);
4 `* v; J( a9 ^/ h2*x(1)+2*x(2)<12;
4 \3 ~# p3 u& p4 M- F@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); " s/ l) K# o$ f% `# g
end" Y1 Y+ G. @" I8 p6 L/ C: e' S
2 P, g8 E. i) S9 }2 a2 t求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model: ! M' ~9 i. C3 ~) X* ~' c
sets:
4 C9 ^) g; y4 `' \: t" J5 mvariable/1..2/:x;
. U" r9 X$ w0 SS_Con_Num/1..4/:g,dplus,dminus; 5 X' {4 w$ l+ W- C' \% d. Z
S_con(S_Con_Num,Variable):c;
4 X, J M/ @- W2 Z* ?/ kendsets / {8 D# J* z* \' m' v7 \
data:
" R; s# i1 Z5 K7 Vg=1500 0 16 15;
! k' k0 i% W! S, O2 ? pc=200 300 2 -1 4 0 0 5; ' m, k+ O# @5 e% {! G7 a3 o; Z
enddata 7 I4 r1 ~, W% _* a% ^: }
min=dplus(2)+dminus(2); !二级目标函数;
" C: i; ~$ a$ C9 X$ g3 E% q$ [) C2*x(1)+2*x(2)<12; - K' L( O, u8 g" W. l7 _
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
( }; i* B! _4 o1 Hdminus(1)=0;!一级目标约束;
9 k( ]( \" w3 l2 g4 {2 a @; f@for(variable gin(x));
Z& T1 y' m Pend 7 D0 l4 o) ^' x1 r m5 k
+ J3 R2 G4 w f+ z
求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下: 7 d% V S5 u. z# I5 q2 K$ o7 P7 `
7 ]. E3 I+ F Smodel: / S, i h G2 [
sets: & E3 z' ?8 ?$ |
variable/1..2/:x;
' p, j9 u+ j" {4 f e% w0 H" HS_Con_Num/1..4/:g,dplus,dminus; ; [/ R/ w% c' J3 A* k
S_con(S_Con_Num,Variable):c; e& }' I6 q! b! g9 Z- |, W( j; S
endsets
$ E7 G2 p2 P R0 E' x. zdata: 6 \( F0 i. g: \. C3 |
g=1500 0 16 15;
2 z$ \6 a8 a5 a) Z) @5 l+ vc=200 300 2 -1 4 0 0 5; : Z& y4 d5 d! ]
enddata
. h: z3 A9 H- M8 B9 Rmin=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数; 2 ?. W# g- H B. n7 E& I1 q0 L
2*x(1)+2*x(2)<12;+ C7 r9 t7 N& W% x v+ b( _# l
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); : N! t2 x1 q+ ~6 f5 b7 \; ?; G
dminus(1)=0;!一级目标约束;
) K9 l( g' c* _, \: O" {" n/ Xdplus(2)+dminus(2)=0;!二级目标约束;
4 s/ x0 Q+ m, O, Q+ |& Hend
* K- |, q, N; e m/ r b! S9 E9 N: T! k a) s& [, G- H U& P
目标函数的最优值为29,即第三级偏差为29。 & Z$ n, U+ x- E; _8 q
+ Q: l1 m) v3 V# j分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。' @$ s8 f5 h& \2 O: L" q
" o& r& j$ {6 r! z! ?# k3 c0 l; _) V
上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。
4 k& K L. [: U" i/ M9 F7 b" h9 u. n; i# ?8 U
例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。
) J8 g4 B+ G' [3 X- ~- C
* @0 z, z$ N( S0 O6 s# q4 w: Jmodel:
7 Q0 m S4 S. p6 Qsets:
; {1 O* {6 A, y8 Nlevel/1..3/:p,z,goal; / t) e0 n# Q& `0 k D y ~- H: J
variable/1..2/:x; / T% J1 k/ s. R( u3 M' w, p) w1 L
h_con_num/1..1/:b; # m0 G5 c y6 a7 U" P$ N
s_con_num/1..4/:g,dplus,dminus; - Y6 _( R$ }, S f
h_con(h_con_num,variable):a; 2 F! ?9 Z. L, k* b
s_con(s_con_num,variable):c;
- b7 M9 t2 z( d: [# v+ ]- ]obj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus;
3 {; q7 n3 e( V7 @- b3 oendsets
+ J: [0 q; o0 T( N5 `$ r" v: @data: : J/ H% [ ?" P D
ctr=?; % D( c8 B/ m+ P
goal=? ? 0; K# ~# l1 @8 h) F
b=12;
8 _& i( Z0 E; L) _) [$ b- a; @* ug=1500 0 16 15;
: Q( t& a& u$ W% K+ v- a- ~a=2 2; / q0 r$ i/ Y( h* d
c=200 300 2 -1 4 0 0 5; * W3 H1 b0 w0 ?+ l: `* c
wplus=0 1 3 1; - h9 }7 F) [% r
wminus=1 1 3 0; 5 J; w2 `4 M- S# Q: `
enddata ( M4 P4 I6 D# _1 m* u
min=@sum(level:p*z);
" A; I- o3 w3 S, Z. V' q2 m' _p(ctr)=1;
2 b6 `6 S& ?; H$ w- z; n; a, o@for(level(i)|i#ne#ctr:p(i)=0);
2 `, z5 D3 {; ~" p0 g5 i8 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)));
7 n# w8 x n {# Eend 2 f R; x4 b* |* n& W* Y
. ~7 c' t& O7 P' i9 G" d2 o% G8 _$ W/ e9 s& ~$ g% G( Q; B
& o! }4 \( {- n1 z0 x% u! J- r , P* ^% W- w/ B3 l( n! r
& J, g$ U3 Y9 _8 `6 V% w
4 多标规划的 Matlab 解法 多目标规划可以归结为
8 U; x( `; l, W2 P1 p3 m 9 y+ B. }, g8 j2 N: z E: f
' I* f7 A0 J* a: |, J( Y1 h! R
[x,fval]= fgoalattain('fun',x0,goal,weight) ! m5 z( e, m. K( R. S
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b) - ` i1 T4 s q M
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
# G5 P- x. n- |! J7 B6 {$ T: D[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
- l4 ^0 T6 U8 p+ M% C$ j [- b9 S% Z. o6 }# ? `
$ F3 U& V$ `* e, z要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。" Q( f5 g8 U9 h; {3 w& v
例 5 求解多目标线性规划问题 & I0 w7 ?' D4 {- w( U" i* h
/ U% _- Z C$ ?# \7 m9 M2 G, Y ) x0 `! L9 M) r8 v6 O* B
$ Y9 m2 u$ }5 b3 ~解 (i)编写 M 函数 Fun.m:
6 A6 U2 H* {; R, |* ~# ]4 j
7 A) A7 i$ p( {4 ?0 dfunction F=Fun(x);
1 m7 |: N; E' S% r$ y) a0 i5 Y1 g* D) F8 P' P' G U" W: q
F(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4);
8 Z) r. ]# s" m/ ?, o4 \* J
, ]3 I3 H+ Z# C" w6 ^7 c. [' f3 uF(2)=3*x(2)+2*x(4); . d0 J8 W3 @& S7 m1 O O" C
0 \/ X2 N5 V3 @, j2 f2 j7 i(ii)编写 M 文件
+ Q. l7 ]& U# q* C$ P
# ]9 q3 {0 G* k) |4 ha=[-1 -1 0 0 * [- E7 B& E% n8 s1 a6 h2 D$ A* w
0 0 -1 -1
! W# |4 D' w( w0 J! k 3 0 2 0 6 U9 _$ J6 E8 J: I b4 i+ g9 y p
0 3 0 2];
0 \1 A/ t/ [1 p. nb=[-30 -30 120 48]'; / _0 b- K% \$ Z# {
c1=[-100 -90 -80 -70];
9 A! M7 k# J4 Cc2=[0 3 0 2];
* O) N+ g7 R0 }/ @[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值
3 _5 a' U# }. y3 }; X: {[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值 - e3 M8 @5 p" b* R5 F3 A
g3=[g1;g2] %目标goal的值
: H0 @9 |' t/ m' b. e6 m[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1))
/ J) D, l1 s+ a$ A5 N%这里权重weight=目标goal的绝对值
" o$ q" ~) D* r* Y* f0 s* x2 Q8 q" t! u8 t- ?! X
就可求得问题的解。 习题8 o; O) F b4 F" c/ E- w: E
![]()
7 y/ H+ |- H- {- U" s. `, N! j9 i1 y3 u+ L7 y4 l8 n
————————————————
4 X0 V3 u- \- Q6 G/ F版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
+ y5 K4 ?% P) S/ B原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932; x t$ W0 W) J% S. q; j9 Y
# P! m5 U/ v$ L v# p
# T K) N" _! V |
zan
|