- 在线时间
- 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.线性规划的局限性
7 I2 \; k7 P; h, T. ~只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。
8 ]9 t7 F5 O; p; J' s, [+ h/ P! I- b2 t$ L5 A
2.实际决策中,衡量方案优劣考虑多个目标8 T$ a. C7 F9 v0 `/ v; m
这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。
& j3 R' y( d4 n7 S3 @) R
2 \, K# z- D+ F: @3.目标规划(Goal Programming)
. S. r% P- [4 I! `美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。5 \* ]* K* l2 C" b; v: P9 `: a o
7 m: N; d5 o/ f# e9 R: l7 L" `4.求解思路7 X& ^8 Q( w& a% d/ S( {
(1)加权系数法
2 |; s+ }+ D' }为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。# n# K" g w) z$ L- J7 D
G, R6 B. A: t/ f& Z(2)优先等级法# p1 m4 d' S0 O* y2 D
将各目标按其重要程度不同的优先等级,转化为单目标模型。
4 C# a1 h& j7 W1 p' P6 h. S. k9 }# V7 d8 Z- Z) u
(3)有效解法
9 t* P) l4 r% e3 u3 u+ I, @寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。
3 a9 v; V$ H! T! B9 W% K4 a6 b. ]2 \+ c8 y
2 目标规划的数学模型9 K9 q+ S/ |: y. Z4 U
为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。
5 e X: F' H( a5 X5 q
( L& W* _3 J4 n5 i# X: M例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。
$ q8 w/ L" r1 i a& u/ C/ ~
+ R+ x& A0 w5 W3 L ?![]()
5 r9 x; ^( o' U/ { t7 R6 {- L: }: M. h- |' m3 M! z
解 这是一个单目标的规划问题,用线性规划模型表述为:
' {* C8 _) N3 Y" P, V
" Q8 [% B. v- d" u![]()
# B0 r8 X6 K# U
2 M/ O) G; j* g" F4 c但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如2 o4 E3 M2 L# a4 P5 b8 [$ s# C+ n
) D5 I. c* R' `8 R- N(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。
6 I3 b$ S% {& C
6 v8 \1 S" a% S% o(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。4 L9 E6 C6 l, l( Z& x# J- b- J
" g j: P2 \9 F/ |
(iii)应尽可能充分利用设备,但不希望加班。 ! Q8 n3 L W. a% ], i7 Y+ p8 r
: t4 P2 A8 e" d$ `
(iv)应尽可能达到并超过计划利润指标 56 元。
3 Y0 p+ f0 F( B: w
( ^" a( f9 ]; Z1 ?3 u2 L% k这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。
- J5 J3 E2 y2 \+ ?
' @" a/ k* k1 [6 m1. 正、负偏差变量
) N# h' q3 i6 v3 R5 i6 S( U8 f1 v/ _' A9 a& ?$ b' O
9 _% M! l- Y* B% G9 B
$ G9 f& t) r0 c" t' C4 G; Q2. 绝对(刚性)约束和目标约束 ) z0 B* I0 C$ q/ {: j o- ^) {5 ]9 \
" X: L$ T3 ?6 l. Q) b5 ? & X7 m0 ?1 Q9 g! \3 [8 F8 a( X4 Q
( @8 b) I s7 {( x7 Z8 D
3. 优先因子(优先等级)与权系数
1 w7 L4 B. v; M* b2 F% g6 {' Q$ Q7 u- i) R7 v" K! w3 p
8 _( S/ W0 L c8 |* U
) T( i$ S6 ^' h- O! ?1 ]) y
% u. f2 U K1 |) C' Y
4. 目标规划的目标函数
) n% T, O* I# b7 D- ?* ?4 a2 H- A) S; k; |, \! _5 N% V
![]()
, }$ P! U0 ~3 W9 A" Q3 Q, x, F
0 w( R' |5 n# k6 d% \9 `0 m, O对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。
l4 Z7 ]+ \6 N# S' s( q
1 d" T/ I% ~$ [ _6 x$ ]$ G例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是
" t& `% T( F0 _5 A$ g2 e* _1 q' `# J- c% s# F
* K3 y5 k Q% C& O/ `
/ q b% h4 T+ r- ?$ O8 ]6 [
5.目标规划的一般数学模型, U1 H9 ~/ S2 ]9 ]! H0 j- l# \" n4 |
5 ]; Q* ~2 y& ^! c) X6 v+ ?
![]()
6 f7 R5 c$ g% u; A3 G, w
: T+ ?+ Y) N+ D0 z' W5 [ F" ?8 w- ]& j: Q: l& s, {+ p: d4 \
建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
6 O3 Z% U7 n3 c7 ^- [$ B) h% z9 Z+ z8 I) G
3 求解目标规划的序贯式算法. v7 P: V7 L; {8 H S6 r4 Q! a
序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。 7 @4 R; L$ e% V
. ?2 M, `$ S- g$ l) x" ~& }8 X/ W![]()
5 I* r$ C' [5 B _( | a
" W& R# I! S: r8 H# y; u 5 J( o. I1 q/ O7 z3 b- @0 F
4 n6 D0 C: G* p/ j, q" [: u
注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。
3 I" \: u( I5 c+ e/ i0 d/ y2 d2 l
4 l$ g1 U" a6 V+ a% ~. w% N例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:0 }! w9 s# W' N0 l) a4 |# A2 z
& s( ~! k& \* H( |
( B) J: U' o$ `8 U; B; ~& c
. s) O: M0 M0 Q(1)力求使利润指标不低于 1500 元;
% w# l0 h9 m9 C" Y3 y6 E6 w" R0 {1 @$ j2 N7 M& U9 Y9 w
(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;
. V/ T* p2 M# }4 K
6 i( k+ @, r* Y2 E0 i2 G& s% Q' V(3)设备 A为贵重设备,严格禁止超时使用;0 ], b Q4 l0 [ Z: i( A$ @! d
+ j/ {/ A0 X9 F0 s, v(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。! \" p* x3 e/ R! b
5 F; ?* `( B* w6 \( }建立相应的目标规划模型并求解。
( A( @* \3 L# y K: l8 c8 i4 X" x3 c& h# E
解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。 1 T) r8 y2 i& l* \& s. X% ^
* P& m8 D6 J0 c7 E3 ~5 y+ Y! V : O) \4 n6 j* f1 R6 L5 t9 J0 U3 a- D
# |! E6 B4 z. J8 v8 e序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下: 8 |+ O8 x: _ v+ V2 k$ X4 _3 ]
7 [) v+ n; P. t' K0 h0 F8 E/ O' K+ ^ jmodel:
8 t3 X6 S3 e V5 a8 wsets:
4 p/ m) q, l) E1 Dvariable/1..2/:x; $ m7 U- L, P! F0 j
S_Con_Num/1..4/:g,dplus,dminus;
, v; x# Q# R6 |4 c% O1 Z; MS_con(S_Con_Num,Variable):c;
/ v8 ^' c$ H( w! x+ G. @1 gendsets
8 d' u- c: l! ^8 g( C/ L6 P$ Pdata:
/ l/ ~8 j7 H; ^, Vg=1500 0 16 15;
' t& A# D D2 ?( wc=200 300 2 -1 4 0 0 5; ; J( X3 D$ l) }1 w5 Q# G
enddata ) M; q0 z4 t! {
min=dminus(1); 3 k( c6 y5 a# ?1 ?( F0 }
2*x(1)+2*x(2)<12;
' H$ S4 J1 y& n) S! A4 Z@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
7 `3 p1 A2 E5 W% Qend
0 _: W! e' x( O2 U2 F
- V* r+ o5 b2 c; t% n! y' S6 ] }求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model:
+ K6 k4 L/ u5 B+ g: r5 F8 Esets: ( ^2 E _* o" w. e7 i
variable/1..2/:x;
2 G3 i8 [- @4 z$ u# jS_Con_Num/1..4/:g,dplus,dminus; 4 Z8 N3 V3 s8 I7 }1 e/ {
S_con(S_Con_Num,Variable):c;
) \; w7 ^ h2 L6 v. y1 W. {5 }% tendsets # M" t. e( ?+ B8 W( e; i+ h! [( \1 {2 b/ N
data: ' ~! d! [! t+ i' ^+ F
g=1500 0 16 15; + Z. T6 j" _, t# U& H- p; B1 a" i5 f
c=200 300 2 -1 4 0 0 5;
" G: X& b% R0 f" M! D. Benddata
4 E8 A2 F: K' Gmin=dplus(2)+dminus(2); !二级目标函数;
, o1 U0 T4 f! M! B; N2*x(1)+2*x(2)<12;
% @/ K+ \ q; ?( ^& Z6 M, P3 J3 H7 E@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); ) ?: C9 ~! k; j+ \( [
dminus(1)=0;!一级目标约束;
6 @' a: |8 Y( Z@for(variable gin(x));
* p5 N* O l6 F' g5 F Qend ! V* R2 P+ n, p
p J: T4 m( t4 D
求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下:
* J7 _' o6 W& [% A/ ?9 ~. V& Z6 G6 I$ @9 l( K9 D
model: " X( G! q; e5 H3 p
sets: / q/ h/ I- j7 d4 j7 i }* s' E
variable/1..2/:x;
0 T8 p& ]* N2 \2 a% \, S6 @S_Con_Num/1..4/:g,dplus,dminus; % t6 s/ r9 B; F5 {
S_con(S_Con_Num,Variable):c; 3 e: ~# j, t- r" f8 j
endsets
$ v# Z/ \/ r" u$ p1 v% Pdata: % k9 F8 K2 C# @& c1 O1 g6 Z
g=1500 0 16 15; 7 {7 B+ k' _0 n1 z8 z' X
c=200 300 2 -1 4 0 0 5;
* `7 d9 P1 ]+ ~! uenddata - m7 m5 e0 G& |( R6 z
min=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数;
0 T! a P! N% H2*x(1)+2*x(2)<12; a3 Q7 _1 J+ ?$ n, d7 R
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
. R0 o6 f* L; P# N1 fdminus(1)=0;!一级目标约束; . L5 T- P2 P) r/ n
dplus(2)+dminus(2)=0;!二级目标约束; 4 I& Y' B0 } f* \
end
; d# F' J. E$ B/ E' ?' |4 k* R
目标函数的最优值为29,即第三级偏差为29。
6 J) E! d- z) u/ }6 O
5 s4 x& q+ C* ~3 [ y8 m分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。
6 E0 W* e9 M: |, V# E
: v/ M( r% {, g上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。: Y) O8 ?9 U4 {+ s* g( S* _, K
: l9 r! _0 I6 O0 y9 X9 f1 W例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。" |6 [; p# |/ i) X3 ?" _6 ?8 g
2 c( ?7 v- }" {3 B+ M* K& ?4 |8 umodel:
/ ^* @! } t/ y$ y& e# ^; \sets:
u" j/ l7 R7 u s5 f2 z0 J5 olevel/1..3/:p,z,goal; 8 [$ v* |4 b4 f; ~; w. _5 e5 R
variable/1..2/:x;
2 k b- Q1 [0 ^- `2 Fh_con_num/1..1/:b;
' c* T7 l4 X. o% ~. @& C$ Z4 v) vs_con_num/1..4/:g,dplus,dminus;
# D+ G8 e0 W! |! U- f5 t7 }4 lh_con(h_con_num,variable):a; 2 U2 W8 c' `5 n/ M$ K8 m1 \% t* u" H, b
s_con(s_con_num,variable):c;
8 t3 o ~" ]. S8 c! sobj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus;
$ z& y# y: k T5 |! l+ B; ?endsets
5 G. _* T) B3 Fdata: / D; S2 b8 R" A B( I
ctr=?; ' |# O L1 X: E9 c( R5 g) l
goal=? ? 0;
, S# ~; d* M$ C c% E' Hb=12;
% K/ r1 s- I% Q9 W6 h2 V, q4 Cg=1500 0 16 15;
; W7 A7 t y. e1 b \a=2 2; 7 q! v% b y. E/ Q- ^! ~! `
c=200 300 2 -1 4 0 0 5;
0 W+ O/ ?1 n- Xwplus=0 1 3 1; ( u f/ g8 w6 n
wminus=1 1 3 0;
" i8 @8 d Z" i: o& a( l1 V" i& Renddata
, |) z5 l" I" U* _% cmin=@sum(level:p*z); - l% o# A4 z" T( p1 W( o) T
p(ctr)=1; 8 d7 v3 h4 c* j. z. V
@for(level(i)|i#ne#ctr:p(i)=0);
5 u4 r, ?# w7 r+ x& R5 y@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 q" ~+ A) _. i
end : O, N2 {( x! r% E
; Q ?! ^! X- m' Q; }+ N% C) Q& n% \2 Q# O0 ~! s' D2 X
6 W. }' S7 b! _! N3 i* k Z![]()
I. A6 B& k- r% @7 P/ d, F( G- a* ~2 P* t3 _
4 多标规划的 Matlab 解法 多目标规划可以归结为 " E/ W4 o8 _9 G2 `8 V- B+ m; ^
( G8 w. k' i6 S/ {
4 ^8 K( ^/ {+ z) q3 a[x,fval]= fgoalattain('fun',x0,goal,weight)
8 O" B5 ^2 j0 R' m5 Y) o- t[x,fval]= fgoalattain('fun',x0,goal,weight,A,b)
; ]4 L5 W6 b" i7 [; G6 C[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
7 W) `$ T- I9 K7 u* k+ ]% L[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
/ L5 A3 D. N" z3 E) V/ R0 e8 n
. B; a* u# u9 r* k) v' W! o# K要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。
/ D5 o+ G. C5 c" ]9 | 例 5 求解多目标线性规划问题 # J. W/ z' v8 _- Q& p
1 ~: I9 W7 T+ x7 n![]()
. @( z. O$ g( z: l% H- O1 `
# u, h" Q& s5 y0 }' x. ?解 (i)编写 M 函数 Fun.m:
0 S( }! Q8 K$ G9 @3 e! t% {6 F( J; ^* y
function F=Fun(x); & c) [4 S$ v$ f2 c! ?6 ^2 O0 f2 S; k' U
3 k( r( A' l7 j! V
F(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4);
5 {& E, z0 `& S
- j8 A& j8 B4 i/ \F(2)=3*x(2)+2*x(4);
" m, f4 s4 Y: z. `( E, P. ^/ g! s# D( ^
(ii)编写 M 文件
$ J4 ]9 u# Q6 S' c! C5 T I/ `, i5 O* W# x4 F7 I
a=[-1 -1 0 0
+ K7 J9 M. c3 [' u. u4 i 0 0 -1 -1
7 E5 o _5 q% n) U: s 3 0 2 0 " d0 Y/ R* l: v9 Y+ C; z
0 3 0 2]; + Q$ u. I9 K* G
b=[-30 -30 120 48]'; 9 f/ a6 A& A3 t
c1=[-100 -90 -80 -70]; ) V8 v' z* K* S+ T
c2=[0 3 0 2]; ( j7 X V% o% I6 Y5 E# v
[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值
& |4 E0 |* B7 j" t& W1 N% ][x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值
! B5 J2 [7 n2 B# f- zg3=[g1;g2] %目标goal的值
3 v) h( s! ^" y; [" c7 g% C[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1))
, ]% z- h/ u- A% B! g- j%这里权重weight=目标goal的绝对值 ( X0 z4 f8 a6 \& N0 U3 k
) {8 b3 a4 i) E7 |8 e* K& y7 j就可求得问题的解。 习题
6 J) w3 ]( b8 ~8 T 9 N& q1 K: s( R9 b* u
& Q1 L3 k) w! k! B% i3 O
————————————————7 b; d7 v* c3 h
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。% Q, ?/ ]) g" B3 M% ^& Z T
原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932
( r! A @& w8 ^- u: Q# K4 l5 L9 t
: ~4 `# A' k$ _8 Y |# C0 l x |
zan
|