- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36395 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13879
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 616
- 主题
- 542
- 精华
- 12
- 分享
- 0
- 好友
- 225
TA的每日心情 | 开心 2020-11-14 17:15 |
|---|
签到天数: 74 天 [LV.6]常住居民II
 群组: 2019美赛冲刺课程 群组: 站长地区赛培训 群组: 2019考研数学 桃子老师 群组: 2018教师培训(呼伦贝 群组: 2019考研数学 站长系列 |
1.线性规划的局限性
6 Z9 ?, O* l- v3 f0 X% s7 l1 [, }只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。5 ]* H4 ~: V: ?/ ~8 S0 S8 \" B
" l4 X- f. T# n# ?" `' `
2.实际决策中,衡量方案优劣考虑多个目标
: \/ O) y$ x b3 T这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。# c6 G, J# M4 @
' K+ W0 A& x4 x' _' U8 z+ E
3.目标规划(Goal Programming)' b8 Z6 w/ Z4 m0 D( n3 O
美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。# d4 q; T) C% r: p! u/ B0 q. I
. p$ y: _1 d1 O1 _
4.求解思路 Y( V, S/ G9 w0 }+ g: E7 F9 J
(1)加权系数法5 T$ o+ Z+ B( z, w8 _- s
为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。
- [; d6 [3 Y9 n3 |2 V0 u3 W- S* G. C! n* k
(2)优先等级法( \! H4 e4 K, ~, [ s! ]
将各目标按其重要程度不同的优先等级,转化为单目标模型。
5 U' n: F/ ^1 g1 B, V- M1 K+ }( Z' ?9 I! U( q* O7 C/ a) R+ v
(3)有效解法
6 o; P6 D B$ X6 g* ~3 K" J Z6 Y寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。 3 G5 i3 G5 N5 Q7 Y( U
. ~& n# {( m: l: Q% Y2 目标规划的数学模型
7 L5 u' P# F" H: P为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。
* [ g# j" h, I% O- \- G' Z! r, }$ e5 a: L- L
例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。; U0 k0 d2 L& g" N
) F4 O% i1 ^1 H! T1 l3 U![]()
L1 {( v) Z7 Q; t5 B
8 K! v, Z9 a2 r1 u5 _8 M解 这是一个单目标的规划问题,用线性规划模型表述为: : }4 v2 M+ U/ N: ^0 x0 v3 N
2 w. @; n) B- ?/ M. b- D
8 z6 k8 m1 m9 B9 V6 w
9 ]6 X! g( }5 ]% W但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如) I" \# _5 Z' L5 g/ ~
# N6 y" R* R4 O2 b5 R/ U5 G1 ?(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。
- V( |$ e0 F% e4 [6 U7 i: Z4 c2 O( {: Y1 s \) o
(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。# i) O" Y+ ?. v, l4 }# J7 c3 A
g! X$ B% G( B; h
(iii)应尽可能充分利用设备,但不希望加班。 % I# d9 l$ a6 Z' Z1 `
d' _ F+ S1 ^) j `6 b' V4 ?0 d
(iv)应尽可能达到并超过计划利润指标 56 元。
9 [# T. M) I, J: `5 F$ F
2 b; X/ h. L9 x1 S" M: P; k' i这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。
/ ^- ~( Y8 W& z6 t$ _& v
/ X( |$ E- s# u. H$ B0 R7 P1. 正、负偏差变量 0 e; @* G- x# N# r) D
0 f Y: Y5 ^- W$ i' q! I , e' v) M$ u$ B" E- r
- c: P2 v+ m9 T/ S
2. 绝对(刚性)约束和目标约束
8 Z: u1 b3 W& ?; Z9 _+ B- Y% Q8 x2 q1 j+ T; `
c* n, P6 e' T# s1 M2 e0 i$ X( b( A
% ` x& y$ a8 A( K
3. 优先因子(优先等级)与权系数 8 ~ r( ?: T8 Q5 v9 n
. l6 a, t' p' `0 }
t- ^" P4 n9 [' M
7 S* C6 L0 Z0 l* W5 C' [
$ a! x& `) \6 ]' P' t: J* x4. 目标规划的目标函数
. r U; p9 J$ n3 _/ o) P: m8 p! W2 Z3 W, ~
5 h+ M( S5 [% _: u, k+ N+ S9 H
' V( K6 t/ `) t% m# s* m对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。 2 G3 J/ @% V+ @3 F
! o) a$ w# t0 O: e0 k9 _# m例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是
" p, B% f) n, ~: M& W/ @) I/ T1 A- i! X# ]9 p% d) u
( I& I9 N: `1 D) J
( c b3 I# o. |+ O5 R6 {# b
5.目标规划的一般数学模型
8 |' W& e9 i# O# d( j2 Q; ^) D& X7 I5 p' y% X. Y3 r& g* ], W
![]()
' |! E+ i) X7 Y F- t# @
0 F* Y ? w/ R! P" c- Q. C c5 Z0 P) U- }2 d. V
建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。 $ F6 S* A* p( o6 O* C/ K
. w! ]( ?# o* I# x- f3 求解目标规划的序贯式算法
" k" K& i( r9 e1 S o$ O0 z7 x序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。
1 s. I8 l H, o
3 x. S7 k7 W2 W5 R 2 v( Q+ h' C4 L8 ]; a3 k
8 S/ G- g8 W* r- m1 a
! S8 ~4 H( X3 ?5 \9 w) ^
, `5 \! {8 O' ? F
注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。 # T% a( g5 h3 ^1 u
u& M- | J* c7 M L4 K" g/ j u例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:
! P" ?, J( D3 h& x& C" d- `7 G6 ]+ V9 h
2 H5 D' x2 j, p; c0 n0 R" v, j1 \
0 y, Z" w0 X/ g- X- `
(1)力求使利润指标不低于 1500 元;
8 G$ {' X4 k& o' U1 I8 c) o. I2 T/ N# @( u6 Y
(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;
0 R0 f) q6 i% G) P6 B. G X
" `8 E5 p+ Y2 d$ s6 u, s(3)设备 A为贵重设备,严格禁止超时使用;
1 q3 Q1 s4 m% s1 W0 D) J L" Q9 o# ~% p( C9 J6 c
(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。5 X+ A( k) ]6 a/ g" H
( _9 K5 e9 p* {7 E6 a4 f5 v: ?建立相应的目标规划模型并求解。
/ M% ~' a3 s" X; R' P8 `9 }) v! u# x6 [% U
解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。
2 f, ?8 U- f+ z7 H" L& O1 ^8 o3 j9 w2 B$ C0 `7 H; a6 U
![]()
) m% g+ p, R' n- d, I7 r( F3 {% z6 j; ~$ y
序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下: ' x( F; t+ f, G. _, ~
! y1 a: R# y1 O3 {' Hmodel:
$ Y4 H8 I: r0 N/ i+ i' Q+ @sets:
8 T! p( v/ \% |- l* g1 ~) [- p0 f! H; vvariable/1..2/:x; 6 C! |7 j( ~; j9 E' p" a" t/ V
S_Con_Num/1..4/:g,dplus,dminus;
5 b0 j- x% ]& Y: A, J; y# F, P' aS_con(S_Con_Num,Variable):c; 0 K! F% ?" ?" x e
endsets
( U$ o: [: @9 h# @& R7 Zdata: 9 P6 Q/ O) w. O; w' S
g=1500 0 16 15; $ S9 |0 T5 _! p
c=200 300 2 -1 4 0 0 5;
3 a; M8 r& E) T1 C1 s2 j8 Z2 K! @enddata
, p6 V+ H1 L0 Jmin=dminus(1); 6 y s$ E% }9 F9 \! f
2*x(1)+2*x(2)<12;
0 f/ ?; m( a/ c% U! ?4 j- z5 u+ L& F@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); % c ^5 {$ \+ t! d
end
& P( Y' z; |) E
3 O) }& k! t; v9 @. O5 O7 e求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model: % _2 p4 R. w) R6 N. `
sets: ; d1 i8 m ^5 c7 P" }
variable/1..2/:x; % w' v- T1 A+ ?1 q1 A& H
S_Con_Num/1..4/:g,dplus,dminus; % G% o: q% N, L7 e3 B
S_con(S_Con_Num,Variable):c; 2 ?1 }% Z$ U- i- p4 f1 h
endsets
/ h1 V. h' ]" Z6 t+ E% f; q5 A Bdata:
A; X+ a& x6 w( xg=1500 0 16 15;
! P; R* z0 P# E3 _+ A) X7 uc=200 300 2 -1 4 0 0 5;
2 D# i3 z4 {- F: l Lenddata " k& [- G( i& a# y& Y' |- W# c' f
min=dplus(2)+dminus(2); !二级目标函数; 6 }# U8 @0 r4 b4 O3 S
2*x(1)+2*x(2)<12; 8 b0 S5 z+ M/ c2 i d, F9 ]/ Q. _# {
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
$ }, w% `* E$ ^( K+ ~: C/ q& Bdminus(1)=0;!一级目标约束;
, R" Z5 z7 x- w$ I& F@for(variable gin(x)); 0 d4 X- {# ?4 \+ r7 c+ n
end 1 L# a9 U& X5 p# ~4 G
' ?* Z7 k! j# D. X7 ^& n
求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下: 8 j5 s2 |( l# V0 g4 [$ Q* p/ @
: i" T$ ` J' [9 T; O5 ]# d$ Q
model:
3 r, C3 |$ K5 i3 g3 g% r: d- @4 fsets:
9 E, A2 x% [6 J& Zvariable/1..2/:x;
* H& J' y% O1 f n7 \+ V$ d0 n5 mS_Con_Num/1..4/:g,dplus,dminus; 2 q! m3 z5 m, @' v
S_con(S_Con_Num,Variable):c; % _8 r0 N6 k2 u. A( w
endsets 6 X* w) \6 i0 S" A
data: # T" F a3 Z7 _4 p: `2 x q
g=1500 0 16 15; ! B8 u: P) w: g3 V& \* Z
c=200 300 2 -1 4 0 0 5;
3 t, k* o% x+ ^: U9 Oenddata
* Z/ q7 m2 u; d; J- u. B' vmin=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数;
% a( \. @$ T, ]0 {2*x(1)+2*x(2)<12;
' C5 J4 Y; s1 m6 p1 B7 C1 i1 c _ @for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
. X N+ }0 A' a. ~5 m7 U% S! odminus(1)=0;!一级目标约束; * I2 I/ K+ F! G1 [1 n, ^
dplus(2)+dminus(2)=0;!二级目标约束; , g+ u) U# L& A8 m+ r# K; o' K1 `9 \
end
5 l2 ]6 q5 p0 n9 d7 T5 m0 a7 R
8 R, e& z+ Y" w6 @目标函数的最优值为29,即第三级偏差为29。 9 a; b! N0 Q) X2 x
* y6 o& z. w% I4 t
分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。% d9 A' d$ W3 _! H2 }! _& h
$ X6 r+ v9 B+ q& d4 y
上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。! [$ K6 {' t' H, }9 ?
; P$ m( Z& {, f0 ~8 V
例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。
8 m) K3 ^, ^) B2 _: F& A. d) D0 d, ^+ E' g* r0 E# z! }- V) a3 A [9 o
model:
$ ^' L# k) `( Z3 Q5 A1 T! T+ i7 Z" ]sets:
1 n- o E) ]9 H5 r( E4 v7 d2 ulevel/1..3/:p,z,goal; : K% |( s& b" k
variable/1..2/:x;
2 O2 Q; Z( M3 E! k7 K7 h* }h_con_num/1..1/:b;
! a) f, n1 j; j& a5 Fs_con_num/1..4/:g,dplus,dminus; 2 i3 T; b6 s- a6 A
h_con(h_con_num,variable):a; / h" I& o- C( V& W
s_con(s_con_num,variable):c;
3 F# j8 e' Z& Q+ P' Vobj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus; 0 G% o0 y1 R$ q6 D' S4 E
endsets
! Z. y8 b r5 Z# d9 |8 `data: 1 _. p1 a4 [! z) q! B# x
ctr=?; / h$ Y @# @# A1 n9 }
goal=? ? 0; ! V" J9 w& C1 l3 U- Q( B& B
b=12; ) T7 g9 p# K! b& P$ q2 p) ^4 e
g=1500 0 16 15; 2 Z2 C6 l; O$ J# Q2 t: Z
a=2 2; ! |4 u8 |+ k2 f- q: \- N, s4 O; t$ _
c=200 300 2 -1 4 0 0 5; $ M. {# A$ T/ D) O! S+ T- t! w
wplus=0 1 3 1; 2 e. h. Z; Z; L
wminus=1 1 3 0; % R5 a6 x# t8 [% _, r. w2 v# r
enddata
* v+ I. D! [& o9 |! z" Amin=@sum(level:p*z); 5 H! j" s( f3 |# D/ c- q
p(ctr)=1; # J; l, l0 {) R- K& Z1 h! a( [1 E
@for(level(i)|i#ne#ctr:p(i)=0);
7 z# l& K0 X) f* ]@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)));
- Y3 W3 K' T8 a+ C- P- eend u8 Q$ M7 r& O6 m. Y0 ~
/ J7 D! c, {0 m; N0 N9 {
/ D9 g& j$ O: e( t
& y& Q- V, w! ]. y![]()
' D' H# i" S* t% ~' Z) E& U3 C2 i& z5 n4 [7 ^
4 多标规划的 Matlab 解法 多目标规划可以归结为
; J+ P) \1 i6 @3 v/ O ! ]2 m1 m, Q7 d' {' j% z+ H& Q! q! e4 g: m
7 b! o4 d4 f% l' {. T; e& P
[x,fval]= fgoalattain('fun',x0,goal,weight)
R9 F; v- m& J; L[x,fval]= fgoalattain('fun',x0,goal,weight,A,b) " d+ R0 C( X8 ~$ H+ H3 R: u5 e
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
- z+ W, s- Q: P# u& ~[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon) ( r& `" q) x5 J% a' _( J6 {6 X
5 a6 J+ d7 g2 l% P* [4 s1 e) L H
( k$ B! `$ B7 q+ l& {7 L+ ?
要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。
8 t. F; }: A% l, T, l- S; N R 例 5 求解多目标线性规划问题 , _3 ^ ?( v V- Q
" D3 t" Z" ?- q) ~![]()
1 I7 k+ q. C, r
" D9 W0 x6 G, f7 e解 (i)编写 M 函数 Fun.m: : Z5 v, P" q' S) i- U$ I8 @# b9 [
' y' s7 w9 ? s2 w' l
function F=Fun(x);
( j0 u1 h7 x) X8 I* S$ J& Z: Y' ~2 b3 S5 n% m, A
F(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4); 1 k: O. V7 U& c1 K& o6 ^
4 c! _3 ]- O. z
F(2)=3*x(2)+2*x(4); " L& s/ c9 J5 |3 a& a
+ o1 Y4 y) o3 I) @(ii)编写 M 文件
! b- O, i# n8 v* {6 J
6 x! \, B* r- j4 |( i3 Fa=[-1 -1 0 0
, _( o; {7 @0 G9 R 0 0 -1 -1 , c* U5 o, S! Q$ q4 w& w
3 0 2 0
: ]5 M$ I4 o2 }9 R$ G 0 3 0 2]; , g/ D: E1 p' m* A% E
b=[-30 -30 120 48]';
5 s" i7 w% r8 X0 c' z p. _- Nc1=[-100 -90 -80 -70];
. T- r9 R& o; Ec2=[0 3 0 2];
" O& H! u! o; m0 B5 x[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值
; O( Z4 K5 s8 w; x/ H[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值 : K& I& v1 U! ]+ |6 d+ P% \8 {" N2 r
g3=[g1;g2] %目标goal的值
) c4 D6 N: N7 H. e+ a& A" Y& d[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1)) % i' J7 w* c' |8 Q) [. K
%这里权重weight=目标goal的绝对值 , } w, H- T/ q
& u u( s! P4 N$ C* \就可求得问题的解。 习题) \. V o' M5 I: G2 {
7 ?+ D' S2 E4 {4 H% d
: q- n4 @% d# n+ N$ n% _————————————————
0 T. L" C- ]' i+ n3 q$ l版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
4 x, E, P! q1 T+ w' f$ H原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932
1 [) f+ x; |( W
' W2 m( J" v* k: l- O3 r9 T- S' \/ _. I6 l
|
zan
|