- 在线时间
- 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 O8 Q) X) H' v) F9 h( N+ r
只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。
& g; {( b4 k* _+ C) R; Y# J
2 ]4 T- ~5 L: B3 P8 G% Y/ s# P# h 2.实际决策中,衡量方案优劣考虑多个目标
! |# U- ]9 h* B3 E6 E这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。. F! T9 k4 g: D7 s. o$ ?
" t2 a9 c; X" I$ a! g- W0 ~ A) i) C
3.目标规划(Goal Programming)8 D( Q9 |% z2 o9 r
美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。+ j7 p M+ @( t' S2 g7 @
0 c2 O# V X7 O, Q7 [$ s- j. @" E
4.求解思路
3 H& p- x0 A% T9 w3 U4 D(1)加权系数法' p4 d: b; p# T. D& o" W
为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。
! z$ Q& x7 g) l5 C
( W, N3 V2 h$ g) K7 K(2)优先等级法
8 _2 l3 w6 n& \8 R/ }将各目标按其重要程度不同的优先等级,转化为单目标模型。* W2 H, E: e9 P3 p/ B
5 S" p6 R! l5 x+ h5 k5 Z(3)有效解法' Z6 z4 e+ ]/ d1 q1 Q# x
寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。
; i+ r5 i& e* N; ^# f0 i6 C# [: r9 \, n, z) e. Q! E- I7 w
2 目标规划的数学模型 n) {, R# ?6 M( n
为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。! P. ?% v- p) {- n! Y# c: ]
+ w0 l- y( u. o s3 { I
例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。0 }. W; N- l- q; u( \
- [( q" y0 M( l- s9 F6 |- b
![]()
# j5 D! J, y" j+ N% X5 R8 R- f8 a5 D! s) K) I: P) J* s
解 这是一个单目标的规划问题,用线性规划模型表述为:
0 v$ @$ Q. q% B
- p" p, @7 \ t2 G6 U& T 8 u* w$ J- |2 C/ s7 p0 n
: Q2 f) E5 x+ y5 p A6 X' ]但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如9 J- D$ N9 d7 Z2 ]
+ y" A- R- R$ @/ N(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。6 i6 a6 X$ c8 i% O8 C8 l
7 T4 R9 z2 p) l2 d8 R c9 `(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。
+ A7 |% N5 S5 z# w. v( T- R
- K3 x. u. W$ Q& ]# C+ ~+ d0 X(iii)应尽可能充分利用设备,但不希望加班。 % q3 X1 d( F: a! N. X
. g7 g& C7 m4 G) d
(iv)应尽可能达到并超过计划利润指标 56 元。
; A8 j4 z# e4 W# D9 D; {7 N# f( ]' D! Q+ j4 y
这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。
+ ~. Q* \2 \* Z) c6 P% g' {, j
5 ^7 h" H( h5 k. k/ q+ w2 k! l1. 正、负偏差变量 5 o+ X) \% w$ K" N
! C) F7 o6 g& k5 ]2 v. A7 p/ u
/ D, K% l# }1 p& U
& [5 ~( t8 ~9 ?) l2. 绝对(刚性)约束和目标约束
( L9 ^ C$ P7 @6 S+ a+ `2 d
; d1 r- s/ m; S( \ 4 @7 T5 N; s' y0 w" ]) E; l# N. e
) E2 N1 T" z9 D( P" H8 K6 g/ T3. 优先因子(优先等级)与权系数 $ z4 D7 H2 `! t3 z( b P- v" I; V
& X0 w: t& E2 S. n3 I7 [8 U: V% } $ l* Q2 c2 r0 o0 S. a
) o* ^; y# |7 F# _1 m- H0 m8 R) h& E8 Q: `& t9 X
4. 目标规划的目标函数 0 d; v8 B( @' T5 h$ O9 V e
- |/ [! u5 l. I1 U7 s7 I
% b6 Q, e( |& N% x
0 v& J4 e& R( d- O对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。
$ A) q+ e! v5 y' X p p8 Q
+ T- P) l9 o4 J9 K$ P3 R例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是 ' z- p& d. P4 B/ g6 O
+ {7 g" D0 I8 h - H9 m: ?* T) J, ?: ]4 C# |
% Q; C5 s) r3 m5.目标规划的一般数学模型
6 C9 _) s, B& R6 ^5 o
( y }3 A5 m! A5 P! {. ~9 n4 F + X8 M8 c) x+ T( Q) Q
0 ]; T: w* p: L. B5 [
9 m/ D# K( y7 d; v9 l3 Z
建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
* r: B& u$ W* c4 J% J" n4 p
9 I b( [) w8 s' E: H" i6 [9 J2 J3 求解目标规划的序贯式算法
# d; \# C5 }1 A1 ]5 p" k序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。
6 U* x% a! I3 `+ V5 b7 R) O# N" C) a( `% }
![]()
' f; X% T. R2 S7 k% K3 S
/ s1 `: c0 [: w![]()
7 ~, L, `5 w/ ~: B7 U4 o5 ]' ^ v3 O- a( o7 ^% n6 o% R6 E1 ?2 I
注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。 ( R8 a1 P5 a$ z/ \# ?1 ]2 Z
, Y; n1 t; }5 e& h& x# |例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:
! Z" {) a% W1 j& J1 @5 c0 Y7 T* ]
7 N, A* w/ v! F. E% Q, w* I6 l* t![]()
& |* G% j5 M T
0 j& T6 q0 o/ I! x# k(1)力求使利润指标不低于 1500 元;
5 b! u! W: w1 m6 r* ~3 T/ b/ `7 K
(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;
& b2 ^4 ~0 J5 E0 X, _8 @* I1 s' s/ e+ v1 J* M$ ~
(3)设备 A为贵重设备,严格禁止超时使用;6 ~& c4 C3 m z* M
: m+ J9 h2 `; ~5 b* o! I* I(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。
! e7 k8 n1 G2 T/ i2 J# f
$ X0 E9 j% ~7 b0 a" H建立相应的目标规划模型并求解。
1 Q- r$ U% Q( i; ?2 Y% U
8 T" x) X" P( o% y; S# J: M. f解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。 ; p* o' s& n" r4 p; `9 t
4 ^8 p) I1 f+ }3 b9 c
y' B) J, y, Z8 Z2 g, z
0 A4 w: t: i( p& v
序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下:
9 ~3 X3 S2 b; c) d3 X
" X6 u: }, ?) y$ ^; K7 o# zmodel:
7 w( d: Q% Z' u; z" fsets:
; z m# I0 Z' ?' g' F9 Avariable/1..2/:x;
2 r9 p6 x$ w4 b/ K5 HS_Con_Num/1..4/:g,dplus,dminus; + a, {% H& W( a: ]& Q, ^1 \) X
S_con(S_Con_Num,Variable):c;
9 _& R1 w- ^3 N+ K3 M4 mendsets , b$ \- x5 T. h6 S; K( V/ v" H+ O" h
data: 4 B4 f; Q5 H9 h4 K) g% p" [0 p6 L
g=1500 0 16 15;
& ^6 _- R7 M3 y, w7 w `c=200 300 2 -1 4 0 0 5;
, B& Q. Q! x2 S# C# ~) Fenddata
+ Z+ \; i2 L% _ N! {/ Y( X8 u) R# I8 |min=dminus(1);
( [0 @# f1 D3 }: `1 a. g/ z2 _2*x(1)+2*x(2)<12;
9 ^/ i0 h0 h0 f# O" \2 r2 n@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
6 f+ w V$ [ {! a8 k5 m& _9 T. Fend6 r) g, a; T- E2 c4 C* O6 _
) E/ B: L* U7 D3 O3 P
求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model: 9 W6 s/ Z) d/ N" r5 z9 g# B
sets:
# Q4 y o( e" s. \variable/1..2/:x; ' Y& ?4 C& J) E
S_Con_Num/1..4/:g,dplus,dminus;
$ \0 h1 F' p* t/ K7 wS_con(S_Con_Num,Variable):c;
# L; P4 b: j4 V% s. Q3 v- S! hendsets , j1 U* {% b# Y6 U+ t
data:
* |- n, O% P0 M2 o1 A4 j3 Z* Y3 ag=1500 0 16 15;
7 w5 @7 s. j& x' Wc=200 300 2 -1 4 0 0 5;
3 N' A9 a" o, Menddata & ]& M8 z; R! }4 `% ^4 ^5 l
min=dplus(2)+dminus(2); !二级目标函数; : I1 G1 j+ Y7 W& M
2*x(1)+2*x(2)<12; ' I6 o u% b" c" }/ ~3 t& K
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
C x$ S' ~8 z; K& Gdminus(1)=0;!一级目标约束;
+ W5 D2 s' n8 x0 J9 w8 A8 o# s' y@for(variable gin(x));
! d( F3 C5 p: `5 B Tend
- {3 [' \% K2 L+ Y3 j* U4 K: g: e# k
求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下: 3 R; {* w" K6 d5 d' ^, h
) w# J' S( D4 Y: \model: 8 x. o& o8 i# y: d- F
sets:
& ?3 L- z# a1 V* V1 [' x% `variable/1..2/:x;
) o R7 b4 S" f3 r6 J+ ?. r8 H! oS_Con_Num/1..4/:g,dplus,dminus;
* z9 E. D, w' D7 q& O$ i8 X8 c6 gS_con(S_Con_Num,Variable):c; ( V1 P& r2 ?' _! E
endsets
s' R% g c) I7 {$ o Mdata: 0 b8 \8 }+ n) S
g=1500 0 16 15;
9 |2 a. ^( L4 y {. U8 {c=200 300 2 -1 4 0 0 5; % f7 A6 c, B4 k1 c
enddata . l) b( D$ _( V$ g6 j, B: J& k5 D
min=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数;
, s; M8 [7 V. Y8 n2*x(1)+2*x(2)<12;
; L$ I1 r+ P) e; K8 [* ^8 R: X @for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
4 |, Y% Q! h9 X2 [; B" m# A" L rdminus(1)=0;!一级目标约束; ' r+ ^0 F2 U5 r/ `6 p/ p4 i; ^
dplus(2)+dminus(2)=0;!二级目标约束; # ]3 w9 L p% d3 i# X" V
end% ]" \# `) V" m5 r$ ]* }3 k
* ^9 U, Z' t9 o! I
目标函数的最优值为29,即第三级偏差为29。 " B/ M D* w2 t; d" z
# }2 T" e( }8 o/ ]/ D9 ~7 L
分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。0 D) E% U( b# H6 G/ J, {8 ]5 B* m
; g) o; `3 g! E; D/ t
上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。
/ H6 C1 D9 j o& T: S
$ @& ]5 W& o& Y- L m, ?例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。3 n& N5 Q% ~) k9 y# _# e: n
6 l3 S( T2 f. J9 [model: + J" K! ~6 V9 L8 n
sets:
# {4 b( A* J' D' w5 p& U- elevel/1..3/:p,z,goal; / J- y- M; S( a4 ?
variable/1..2/:x;
+ F) e V6 K% M! hh_con_num/1..1/:b; 5 L5 m! X$ ]; i8 H
s_con_num/1..4/:g,dplus,dminus;
A- m5 ]# j/ n9 Z- {h_con(h_con_num,variable):a; . ], T& ?( l0 t6 h i
s_con(s_con_num,variable):c;
( \" K. q9 t/ ~8 [: X0 B1 M$ W. W! Zobj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus;
0 R" ~" e. z/ t) @7 ]' u+ Tendsets
( N" Y* @+ c. K) J* X; L6 X& ]9 D& Cdata:
5 R" y- ~/ V% j5 t3 fctr=?; . Y0 I- K- w6 T3 }) F
goal=? ? 0;
$ e6 T2 y) f) N- k) Lb=12; ( q( i* r1 V% ? o2 x
g=1500 0 16 15; 1 @( f6 r/ P( C3 I
a=2 2;
# ?4 S H+ Q- P. g) o- Hc=200 300 2 -1 4 0 0 5;
5 B# U$ y8 ]( ?& S% o3 f" O6 P9 `wplus=0 1 3 1; ' W6 @) X+ n& ~& e
wminus=1 1 3 0;
4 e0 \% x" Y8 y( ~enddata
; D g8 ]' [+ z4 E- D/ [. E0 bmin=@sum(level:p*z);
T c% {2 {- X' dp(ctr)=1;
! r- s( x9 F4 y8 Z L/ S0 q@for(level(i)|i#ne#ctr:p(i)=0); - v0 N1 N Q3 ?- p4 G8 \
@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)));
0 X, V! M, _: e" n' l( G# \3 |end 5 }/ r6 j, E, M" T
, k% j. k6 g' x! p" l! U5 \$ [, c: d' M0 A- R' u' Y8 H# a; b
' e" Y, q! u3 r4 D( H
![]()
/ V) h" s; A6 j! n, p- E+ l; F2 q; \% | ?( A! z7 ^$ Z) q
4 多标规划的 Matlab 解法 多目标规划可以归结为
. m( ~$ Z# }1 r . I+ o5 z* P t* \& P
. ~; V, C- T) i4 R2 V; D
[x,fval]= fgoalattain('fun',x0,goal,weight)
" M& Q! R* x/ i[x,fval]= fgoalattain('fun',x0,goal,weight,A,b)
4 f/ w) W4 C7 p8 j, ^) J' n: g: E[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
/ P2 g1 H2 l5 ~( g( |) V[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
, l, G# j" |" p# l# M. |! m- }/ c( Q
8 a0 g0 [/ e2 u' G! Z1 L要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。
# c9 b% O E. F1 a, D% b2 [ 例 5 求解多目标线性规划问题
; \% K+ ^ Z, u8 s! y! g
( _. M, J- R( t7 M7 x - H" f# R# K [1 ^0 _- [
8 L* S' [/ t: ^" p解 (i)编写 M 函数 Fun.m: ' t( @: {( J7 L" |, _. n
! F! M3 Z0 V: A9 x& e# H9 o7 P3 s6 K: Rfunction F=Fun(x); . F) e0 G6 ?( F; @
# O# P: I) s( D+ iF(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4); z& i0 a4 `8 T: y
7 K3 W# l3 Q+ T& \/ I3 ?3 C1 Q' SF(2)=3*x(2)+2*x(4);
! i& u- n$ D3 ?* P5 R% e
9 L% k; Z7 s! L(ii)编写 M 文件
1 t' C% O0 T* E
4 h3 D3 B4 Y5 G; Za=[-1 -1 0 0
. A, |. F9 n f 0 0 -1 -1
5 E, L u2 O( W0 M- d7 E 3 0 2 0 1 r5 o1 \1 f b$ Y3 M/ R, ^
0 3 0 2]; * n( b* p4 F! z5 C
b=[-30 -30 120 48]'; ' _4 s' [7 A" n. u
c1=[-100 -90 -80 -70]; ! \$ \% p1 Y) G
c2=[0 3 0 2];
* T' d4 M# ]$ u2 `4 T6 a: t" ^[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值 * q7 A8 C \0 Z5 H8 h9 P! q
[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值 7 `/ L: T6 O9 r
g3=[g1;g2] %目标goal的值
/ |& n* r3 ]6 r) l4 p; T[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1)) & c! o5 m% `+ x3 J0 A' h. i
%这里权重weight=目标goal的绝对值
$ ^5 t4 I7 t; L) s1 u+ r3 K- _$ k5 m0 y# a
就可求得问题的解。 习题4 B, u6 K% U7 ?$ @ I+ {4 N
: \0 f/ y& a& G' S
! I% V# u0 g5 `5 C3 y
————————————————6 a" j( g8 M/ n3 r
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。# T7 `1 |( V9 d- i3 T7 X8 F* b
原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932
' _" M& `2 G- s
- W4 W0 t# O4 A7 m* B. J2 t
0 [( X' ^" |7 j |
zan
|