- 在线时间
- 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.线性规划的局限性
( B" [9 E- N# h3 J" k; q只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。
7 m2 q& ?- o! Z8 Z) M I2 y
1 \/ L4 `) x- U5 s 2.实际决策中,衡量方案优劣考虑多个目标
# G2 V# h& h. l' ?这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。
2 m2 s8 D: W. s# d" @- @1 E2 @* n: {( F
3.目标规划(Goal Programming)( J# ^8 x- ^/ t# `8 @' @
美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。
- m+ r; y5 {9 I/ _6 c8 a; q, C7 H6 A7 I! U: V
4.求解思路5 h" t9 A6 e+ h4 Q: N, ] R
(1)加权系数法- t8 e( s6 i/ R$ j0 |
为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。! _5 ^4 E3 U0 w' g8 D
: h) G! D" k8 f1 a% D0 P
(2)优先等级法
% h$ M4 T7 C( N3 x将各目标按其重要程度不同的优先等级,转化为单目标模型。
% y6 ^. J# U7 f0 c1 e1 K- y: s' x" N3 Q0 J9 I0 d( D
(3)有效解法
4 q$ X- \7 s% r' Y8 Q! b寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。
2 Q# C& C9 m3 M! t% o1 ^- w8 S( S% \; T, x9 [/ Q
2 目标规划的数学模型% O, N0 U- }' J
为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。- u! Z/ A/ L/ F0 t; I
8 l; B( [. v; H* h1 h例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。
! [, `# M0 I8 z- [
: w" N4 s$ v2 H& i& }% {# Y![]()
% @5 L+ L- |1 n ?: [7 W2 s% ]/ C9 [. j+ |: u& J3 J5 P" B9 }
解 这是一个单目标的规划问题,用线性规划模型表述为:
8 s( L5 t$ [- _9 x
* G( Z7 O: {4 \1 |![]()
# j) P& f- A! y, n
: }0 `$ Y! M2 G/ O$ e+ L: N但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如
/ g7 F) a% Q! U! f3 R3 j @
. L) C% h/ l8 }) o7 w' ~% l, O B(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。. p1 q' T! _! U( y! B9 d9 Z3 i
. g1 Z' |" d# D# @- q(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。
) s' _* E8 E/ {
" H% b) @- q6 ~+ t$ {* v) a" E9 y% O(iii)应尽可能充分利用设备,但不希望加班。 # k f9 g1 m" D/ Q. |
7 N2 X. D" N; [+ n* q& |% v6 g0 _(iv)应尽可能达到并超过计划利润指标 56 元。
* s! ?! B& G. x( R4 @# J1 i+ E' Q* J8 W8 o! g6 N1 m
这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。
* p' I3 ^( M m9 h0 J
" n5 K" M# x! E2 m) t1. 正、负偏差变量
& Z* u, \2 f" Z: ~- b& u9 [# f
) @% c7 ]4 o. ~2 f![]()
" p/ k$ ^4 ]& j8 q: H3 Q
1 d( D& B; I# Y7 x& p2. 绝对(刚性)约束和目标约束 - n; Z# M8 G1 m B
; ]! N' j& K" N! m
" @; W. ]( M: t0 _% t: B. `/ G
: d- U; q% `+ K* i) x U: ?. }3. 优先因子(优先等级)与权系数
: q* m3 I3 W0 i' S" t; {; N+ o
d# B x$ C. j! }5 I: N% @4 j4 j" k![]()
& L7 q3 N; u& G7 D' R7 @0 K# }$ v8 K" |0 a8 W i/ U r
! W8 i g2 m* Y4 S8 \
4. 目标规划的目标函数 # U4 B+ d L6 p4 v
/ @/ `3 N) o" H P7 S
![]()
5 W3 v5 [# e" S9 I9 L: l& o" t8 I, f% p1 T
对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。
3 j/ }# l# V& a s* [/ t2 l
2 c4 |7 {# y# G, d* m9 Y! e例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是 ; i) Q& h6 G4 R% R, o( Z0 J- X
% Y. b% i7 k o" c% _" X7 G* z
; U) t) X0 T" z7 l2 z0 h/ |7 a
; X5 W8 a% r" f4 r5.目标规划的一般数学模型% o& B. L5 V9 {
' A. e! ~& u$ y, e7 o& O3 K![]()
4 r; I" l2 F; |- n
# q7 a- O9 V& n% H4 f+ Z: t% c: e. ~* E3 ]
建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
4 F, P$ F5 p. v; F- K' U' f7 w- E$ q' k4 i5 Y
3 求解目标规划的序贯式算法
5 ]: U' I- x# S+ A& q, b: c7 w序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。
: h: I7 ^4 ?$ x# P9 L- @3 I; b: p: @7 u
![]()
/ l8 j% c+ ~, |! H6 P, g( n# n4 L2 B% @
0 e# {, o! q0 s0 T3 T0 p
' B5 j+ y# c4 k2 D
注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。
9 H# \" }$ ~" `( r5 |
% h0 X3 t) c% e5 b R6 @例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:6 F: e/ b+ L3 T! l+ e
( c4 Q3 r2 v8 e% v! Y" [ , [- s' o2 _6 V% e, y" q% M6 B
" W! `1 J' }9 k" y; ?5 a
(1)力求使利润指标不低于 1500 元;
( p. u, B9 q: @, n+ r5 ^
K; h; a( w, M% Y(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;1 s$ G$ q1 Z7 o( d9 \) g9 D l
" m" Q$ P( f: h# X
(3)设备 A为贵重设备,严格禁止超时使用;9 l0 g1 V# B+ i; o; i0 j
+ I6 C5 B6 R$ \$ Y' s3 Y# E- G2 O
(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。
- y# }8 I7 @' P7 T2 V& a; I
5 l; E# A& Q) x& _2 P$ G建立相应的目标规划模型并求解。
' L6 x+ T# \: _' W( u2 j. f+ {! ]* r; j2 I8 }
解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。 5 Z7 H7 G8 n% i5 b" [
' B! S5 x# |3 |$ r& ^$ h
![]()
/ c7 [$ f$ l0 E
8 f* ~3 J! s1 a序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下:
' E$ T2 N1 J+ b5 v- k' Z% m$ f) @& h" t; x% V3 t) C' Y; T
model: 5 }7 N4 G; [6 g% z
sets:
4 r# z' G# N6 r& t& [variable/1..2/:x; / d% L& T7 s$ B
S_Con_Num/1..4/:g,dplus,dminus; ) U- d9 {* K+ m% L$ I3 W- H
S_con(S_Con_Num,Variable):c; " D! b2 L' R6 v$ K+ s
endsets
3 k* I% X! o& edata: ' g% |- @; w* h' w# T
g=1500 0 16 15; 1 R7 J1 c. F6 |# p0 x
c=200 300 2 -1 4 0 0 5;
/ c5 s& O+ d4 nenddata
# R! L4 }* w; ~: l8 Xmin=dminus(1);
' t5 F! b5 o5 Q( R2 B; W+ C2*x(1)+2*x(2)<12; 7 J, }3 I. ?# B
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
. |) y* W9 _' E: G) ^' T, N- yend! o. C; r* _# ^" U
: L U0 I1 c# m5 d3 P! L
求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model:
5 T$ j3 I& S4 L% v/ a8 ~sets: " H8 f4 f" @- F1 D0 p
variable/1..2/:x;
, G5 q' _5 i0 U8 f+ @8 jS_Con_Num/1..4/:g,dplus,dminus; ; N4 w7 t6 M2 p! v6 e6 _
S_con(S_Con_Num,Variable):c; 2 G8 q7 [# M1 J& k
endsets
# G( m3 E' D C idata:
, P) n r% \3 T3 y0 ~8 w2 S6 yg=1500 0 16 15;
0 c/ O! V3 I7 s" n9 Y- Bc=200 300 2 -1 4 0 0 5;
7 g3 ?3 Z+ |9 s6 w$ F& l* f. penddata
) `" W: k$ Y! o; k8 e$ Y3 nmin=dplus(2)+dminus(2); !二级目标函数; 8 c' |! T8 C- B5 z7 z, b9 n' N
2*x(1)+2*x(2)<12;
1 f/ ? B# V$ X- N( |3 @$ Q9 R1 s4 {@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
; _' e( Z& f; r9 tdminus(1)=0;!一级目标约束; 9 ~; w: O# [1 a5 N0 d
@for(variable gin(x)); 9 j8 Y* c3 o: @0 i9 w
end & ~0 t; H V* S8 t2 d
# M3 o3 R2 o3 ?9 [( w& q6 h
求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下: + D$ R+ \9 f3 E- q: C
; B" A/ E5 l1 J' z; T
model: + O8 i J4 u) [: |! D& Z
sets:
' L* I; e4 ]* x' evariable/1..2/:x; 4 K0 f- \) k/ R; z: x
S_Con_Num/1..4/:g,dplus,dminus; % e: a# D) @, k# J* y5 B, S
S_con(S_Con_Num,Variable):c;
8 N" o j+ g: t$ p. |1 fendsets $ A& @& ~8 D4 `
data: 0 c: Z8 f" E9 d1 \4 a% P8 m+ c
g=1500 0 16 15;
* @3 S$ q$ H3 _: Rc=200 300 2 -1 4 0 0 5; : q' n, ]# r3 O3 X. n; ^/ n. ?) t
enddata }% Y& T) i, e0 H
min=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数;
+ r4 [$ W$ }$ P$ h% O+ e+ t2*x(1)+2*x(2)<12;3 \# d3 Q, z/ W9 D5 b, W" m1 ~& v: M
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); . d* t$ h2 Y/ \
dminus(1)=0;!一级目标约束;
5 J& p9 K0 q1 M- w& R3 w0 c/ `# bdplus(2)+dminus(2)=0;!二级目标约束; % g. k2 S" U' U5 ~' v
end
1 a$ V9 M9 Y+ F1 ?4 ~( P; s$ l, \9 S+ H/ ]2 o# b$ k* X. g& V
目标函数的最优值为29,即第三级偏差为29。
0 t- s1 P5 H$ f+ q, {' H7 O* F8 f2 f. }' U7 M
分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。$ Z7 ~' A% I5 n: i e
. Q' P) c- g3 S! u* g$ z
上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。( j1 x, C$ l* M4 _3 h1 F2 |
4 P8 l( F' m( K/ x3 x1 m% R: ]
例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。8 [3 p" c0 e* z* `
- p5 b7 B# P4 Y) s# i- e
model: ; M" X) `+ T5 _( z |% L
sets:
3 ?7 F" y' ]% A- g' j1 K9 u$ blevel/1..3/:p,z,goal;
) a. Q* ?. {- D y* Cvariable/1..2/:x; 7 a {6 E' N+ V6 U! ^
h_con_num/1..1/:b;
; Q& S( h) B' f/ G6 Ys_con_num/1..4/:g,dplus,dminus;
0 h( w3 h" C3 r9 R8 @% m5 fh_con(h_con_num,variable):a;
% L3 l$ \& N! i& U" y, As_con(s_con_num,variable):c; 6 J; N6 r) f) x' Y: _& w9 c
obj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus; + Y ?, h2 g+ |) v. E& `! G
endsets , C! b9 ^$ d5 E' q a) j
data:
, K1 V2 {% x) T; k; R/ tctr=?;
- P. v) M, @9 ~$ o6 z) n' bgoal=? ? 0;
# q5 y# k/ o% Q; Cb=12;
4 v$ p- ]' S3 D8 K' x7 Qg=1500 0 16 15;
. j/ g; j/ I3 T( A) l/ W Xa=2 2;
8 R( c Y Y' ]c=200 300 2 -1 4 0 0 5; 4 _& h! \. S. L8 R3 k
wplus=0 1 3 1;
+ k' Q7 k) O$ U) Iwminus=1 1 3 0;
K4 e) p. s! }' `enddata
3 H7 `2 y2 L9 e) q( g7 |min=@sum(level:p*z); 2 k9 N& n r% U: ~( p" v+ {
p(ctr)=1; : \7 U- M* x9 k1 C/ \
@for(level(i)|i#ne#ctr:p(i)=0); ) O2 r: p3 S1 d% m. 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))); + i3 j6 O: @) z; Q
end
& f" q* h0 i* b0 L) p4 B9 ^$ U6 s' V" K
6 h, f. y1 a1 u" J
O3 u# b, T) m! m$ p, L 9 j9 ?6 m1 H+ U. T# v( L5 m/ l
/ k' ?; @0 m9 _: D4 多标规划的 Matlab 解法 多目标规划可以归结为
; H2 y- _5 [2 V) D6 p& v4 c 0 M. B8 m5 E- t; h# p* ^" b
6 f5 h& \4 y+ [8 S" { J2 L[x,fval]= fgoalattain('fun',x0,goal,weight)
* a% T# s5 N: ?. U; N3 n[x,fval]= fgoalattain('fun',x0,goal,weight,A,b) 6 V$ @$ R4 S! k" t
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
$ ?! x. b) P" y/ r[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
% S) F0 {9 g) V2 m4 h5 O3 [& b0 a6 Q
: [# B: G* b6 |9 X. L I要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。
* h) i3 b7 ] `+ N) n d' [# m 例 5 求解多目标线性规划问题
: n/ }) Y; p8 ]% ?- l# J' K' k7 D# p. X+ J W' @7 v1 \
/ P' L% K$ y" ]9 }, Y9 s* a' ^7 @ \, p
% T0 W) I" a$ `! ^" B3 T
解 (i)编写 M 函数 Fun.m: 7 _4 T, F2 W; ]" s/ W: C
9 c$ P2 m8 [ @6 [) X
function F=Fun(x);
' ~7 T3 |% t% S+ D$ r/ n+ {( g# c/ `) T
F(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4); 5 ?3 f$ K9 b& B& l. \. i) W! r
( ?! P2 D$ u& K5 U( t
F(2)=3*x(2)+2*x(4);
3 V, u4 b' b) j5 T8 l4 |
, G' E0 {1 ]4 W' w7 z$ ~(ii)编写 M 文件 0 h! L j+ C3 T% u; @5 o
3 F4 p w' `5 H( la=[-1 -1 0 0 ' I. [1 L# M: C3 I4 E
0 0 -1 -1 2 L t& O7 P4 [* v' {
3 0 2 0 $ X0 p. s, n: ] r/ {# e: s* h, t% [
0 3 0 2];
( E8 e& k9 q$ i: J# [; O+ M( A+ `9 zb=[-30 -30 120 48]';
. e- @8 b! Y6 A) }6 b- Xc1=[-100 -90 -80 -70]; 7 I+ }- D0 K/ v D; n3 v) E
c2=[0 3 0 2];
. f" I: I% U, }" k[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值
3 b6 a \+ E4 j3 p3 S% y9 {& X[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值 / g7 o0 M( b$ J& ~1 Z) x9 T7 ^: s
g3=[g1;g2] %目标goal的值
) b. a- Y1 ~" E& m. {/ B9 A% |6 y[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1))
8 i1 a5 R3 i h. Q' {%这里权重weight=目标goal的绝对值 0 N# K8 {# F5 A! d! s! z
: H8 j& g9 Q4 ^ M5 C O( N就可求得问题的解。 习题' w0 a. x1 \: q
. v4 W0 P2 j: b: I+ w/ ]/ D
4 h& H1 ^) B) m ~* e————————————————* M# O6 x$ r }( a/ J
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。* |3 ~+ I3 S0 X# @" B. o+ C
原文链接:https://blog.csdn.net/qq_29831163/article/details/894889329 W* x0 i, o* ^7 K
/ ~, o% j/ ^( M9 }8 k I4 a; ?- o
* E4 J& A! C1 ~" {) \ |
zan
|