- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36072 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13762
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 616
- 主题
- 542
- 精华
- 10
- 分享
- 0
- 好友
- 225
TA的每日心情 | 开心 2020-11-14 17:15 |
---|
签到天数: 74 天 [LV.6]常住居民II
 群组: 2019美赛冲刺课程 群组: 站长地区赛培训 群组: 2019考研数学 桃子老师 群组: 2018教师培训(呼伦贝 群组: 2019考研数学 站长系列 |
1.线性规划的局限性
- O* l7 ]9 `* p9 k8 s* }: _1 X- i只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。2 `: |" {. D5 Z. ]& B' Y
" u4 V: d& w; r8 D5 x9 G 2.实际决策中,衡量方案优劣考虑多个目标: t) i6 W I6 Z# m; {
这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。
3 j4 {: W) W) s8 X/ Q4 S+ B' E# {/ i1 N& r. g3 ~2 D) w- E3 ~
3.目标规划(Goal Programming)3 } S5 y' E5 c/ p4 u- `
美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。: E1 u* Q, g# ~4 p7 H
' g! v" S N D' C4 p6 d
4.求解思路
: c2 }' M7 H0 y; Y$ ^6 z; H(1)加权系数法) O; H; d* ?8 X9 Q) B
为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。
i% I2 j& O% |) W
A: J4 o; n5 }. y; ^1 Q(2)优先等级法
+ [* x4 m( u9 O* f将各目标按其重要程度不同的优先等级,转化为单目标模型。3 z1 e7 z7 o- }8 j" m' `% J9 W: }
7 X' a }4 L* b" p3 b$ A! R
(3)有效解法
2 ]7 W$ {8 w! ?" A% b. _9 o7 a* x9 @寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。 ' X( @. t3 h, t
" G$ u4 j! j K: G
2 目标规划的数学模型8 S: V& k3 U0 x8 y' h" z
为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。
. o" H2 L; n5 I: |0 }: T
: Q+ C" J8 c) O( \例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。
# S9 E8 z" L0 J* B) d: I& c% C
9 p K4 O2 S: p1 W9 ?0 o![]()
9 {8 e4 {: ~: S9 I8 x7 ~6 C: ~/ q% o
解 这是一个单目标的规划问题,用线性规划模型表述为:
* d+ e- V2 ^5 M" Z8 ~* q
$ X1 W; I' w9 g% B9 a8 L![]()
" o1 S1 |: @6 E) q. n9 j) L7 E) {7 S5 Q. z0 Y1 q
但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如9 r" b/ ~, D/ P+ V" d/ F d }
2 D4 _3 F: `# m% k) R
(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。1 K2 I, l; V1 ?9 Y- t% ~
$ \* \( t$ S* {: d
(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。' \4 s2 D" Y6 _' k8 v1 d- A9 x
! n9 ?% C- {' K$ F
(iii)应尽可能充分利用设备,但不希望加班。 5 d* X0 z+ W; B& m, V1 R
, O5 s0 p2 i* {" @3 O6 v1 Y- Q
(iv)应尽可能达到并超过计划利润指标 56 元。 Z, a, o$ `9 v3 `+ s, F- D
5 { B+ j5 y0 g2 E3 @/ b# r这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。
( o. U; f$ }1 i# |6 H6 }0 [
6 X; O" w" P; x3 W" E, k1. 正、负偏差变量 9 k4 f+ R6 C5 ` R
9 O$ F3 t( H# K$ o* G( B: I
![]()
# M/ }, Z, I7 M$ u- p& R8 N) D2 u
2. 绝对(刚性)约束和目标约束
* C! U1 N2 F" q" n3 J; g2 c# z) u* |: c( @# p1 V3 ?
5 W0 b6 `4 A9 g; Z9 O7 C% K6 ^
6 Z+ C! r: a) T: U4 N% o
3. 优先因子(优先等级)与权系数
/ A3 A/ t& ]+ g$ P! |- G" R; Q \# R" S/ V. u8 H4 o) w
![]()
7 p' e9 b4 @. P r
5 D8 n1 B/ k3 r& u/ D
8 L5 A5 b, {+ I/ I5 P4. 目标规划的目标函数 ( Q; X* p& ]4 h& P! s+ q
0 x4 o* F" F% X4 V5 }6 y" p , y2 G! c$ p6 }4 {+ X
8 Z& x4 {' T! z3 ~% F2 Z对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。 9 P2 z: ]" {- g- c1 I/ [; J$ g
1 b! J4 N4 p5 u$ o2 u) N例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是 ' ~6 n. Y$ t6 m3 ?
3 M. R/ q/ _: J' J1 ]9 \![]()
% _6 m q$ b5 l2 y; A* `0 d! H, _" B2 _& N/ K9 u/ k* a* d3 X) Y
5.目标规划的一般数学模型
# m) p+ X5 l2 O2 \+ J' F' N' O( K8 j2 Y+ `7 m- H
![]()
# L' s7 }9 E: p0 n0 O) G0 S! U, j& I& _: W1 D% m& b6 h) G
7 E7 H" }# k/ d; D3 V建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
K( V$ O% ~: n& X- S4 R& u8 z: c& G+ E) Y8 A. U0 a
3 求解目标规划的序贯式算法
1 c1 z2 L$ i- @. Q6 s序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。
]0 s: m) x" y9 P+ O: L& M @1 J# u9 b
$ a* C, b4 x5 r/ Q( ]
; v0 U8 A* T p5 G& K9 d1 E- W
* u: U, I" Q1 n7 j. U
2 [. A+ n- m1 ]$ z5 ]6 E
注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。
/ M- j1 w- M! c2 Y( f: ]- o
5 B% i- o0 T' b0 @- [% z) c例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:' R* g1 S- G6 @/ o! K/ k
( o7 G3 m0 T" o* x/ J
- J v1 ^# T" t1 l
D+ J! B1 M4 l* z# X(1)力求使利润指标不低于 1500 元;
2 Y+ o. x' [" }# Q4 m
5 }" l1 w' n% @) b* t- b+ ^. L(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;( S5 s2 A* J, t7 m! H6 d3 k; d
- Q- O! W W, q* @* W(3)设备 A为贵重设备,严格禁止超时使用;
! U, O, b e; K8 P- d3 W/ t. ]; d2 k
; s1 ~& |, q8 K: _+ R* z/ y(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。* ^; B* T* z+ v0 o1 G
6 k' b- \& c; P$ j" a0 d建立相应的目标规划模型并求解。
0 o) m" m# ?4 O6 t
: \; ?" U {& p6 M$ l0 Z7 R; ^解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。 , f% a3 m- _8 u
+ A+ R( N* K* u
![]()
0 D, `; ~( }# J. d5 q {' {5 c- ~. ]6 X, l; q' u+ R
序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下: % b5 ?% ~ F4 u' O1 I) v- Y
) J! w6 [! k+ ~: t: X7 v
model: 1 N# K- U" {1 S- O& ^
sets: ( B( [: h$ W( u3 \8 I6 Q
variable/1..2/:x; 9 v+ {# E' U" v# i8 T8 P8 {
S_Con_Num/1..4/:g,dplus,dminus; ' A+ r: d- l' N; `$ x; f8 B
S_con(S_Con_Num,Variable):c; , }$ e# }* n* |, P* U) T1 k. s+ f
endsets 2 i4 J! ^9 z& i# n6 S; g9 G6 Q
data: 4 }; m; t8 }- C4 K8 ]
g=1500 0 16 15;
: q3 S5 D6 b9 V _c=200 300 2 -1 4 0 0 5;
0 e+ b- D) U; W( oenddata ( l2 y7 C. a& N; A
min=dminus(1);
8 w3 U8 O+ T# U' }7 }5 a7 s' [9 Y2*x(1)+2*x(2)<12; ! b8 i: I5 A# y3 W
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
% x6 F; `: w/ C" X# S! q5 \# Yend
5 s6 \& f1 t% P' f" \6 o( t$ T
8 p8 {( x- O! N4 Y5 P3 `求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model:
4 U. S& T0 X9 p1 Xsets: 6 c* P4 U8 a) ]% u2 O- n
variable/1..2/:x; + }- @& L+ T' B8 k- }
S_Con_Num/1..4/:g,dplus,dminus;
9 h# W' s+ `$ E5 Z2 iS_con(S_Con_Num,Variable):c; 8 Z# o. X* `# T/ W+ j$ c9 W
endsets
0 B1 i! V3 |0 ~data: ( o7 g! }+ h! r3 G
g=1500 0 16 15; ( N* f( j2 b0 T. Z9 N- L" ?
c=200 300 2 -1 4 0 0 5; $ m7 g6 v' N9 D5 m0 A8 L! w* \
enddata 7 ~- q5 i) d3 U1 a
min=dplus(2)+dminus(2); !二级目标函数;
" e6 d1 k2 |# [! K2 x2 c5 e2*x(1)+2*x(2)<12;
1 Y, l1 r0 A" r( |1 R: h$ I@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); 5 ^+ I: c* I; N N# [+ o! l
dminus(1)=0;!一级目标约束;
8 h, }8 | c5 y) G; T@for(variable gin(x)); 2 ]( ]- H: c9 |
end 3 ^* T1 k! s( U8 M7 h) j' r
. t2 S/ J3 \( p% x
求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下: * d0 k9 U0 u, X# m! l
" T+ o% S# Y1 R
model: * E" T" q p) K$ _. h: K
sets: v6 m7 ~2 T; `. l5 x8 e
variable/1..2/:x; / K: g" a- N, d/ B, f# S, e
S_Con_Num/1..4/:g,dplus,dminus; # p$ R i; C$ n1 q2 ~& S& b
S_con(S_Con_Num,Variable):c;
0 H6 L3 \8 F& J0 O7 }. U- L. F( r. fendsets 5 [9 v/ O* k ?+ s/ V
data: * V6 F/ w5 V8 Y) _2 e: D, K
g=1500 0 16 15; ; I, @& J4 m0 c; b9 x
c=200 300 2 -1 4 0 0 5;
( l# W, F( J8 E+ Nenddata
0 ]1 d5 f7 n. A! Bmin=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数;
# A3 y, ~# Z/ b1 m' C* L2*x(1)+2*x(2)<12;! \3 Z9 ]! d) d0 i
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); ) [/ v5 q8 ?7 R6 z, e
dminus(1)=0;!一级目标约束;
: f/ d* B( M3 p: }dplus(2)+dminus(2)=0;!二级目标约束;
9 b! a$ D: p3 v& B0 t3 Y* [/ n) x( cend
3 r- b" K' B/ m2 Q
! _2 Q" J: ~6 \ ~" P目标函数的最优值为29,即第三级偏差为29。 4 B7 E0 F( I8 z
$ F2 D4 ~% v: r
分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。8 W+ d% ~% T$ w4 P
1 T! S0 _) [# u上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。3 A! f5 j" ^0 N
* y" ?9 K% }% O: J, i+ Y例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。5 S4 g( _9 V0 i7 f4 O, A( J: _" ?4 i
" N5 x/ L) [" u V9 ?
model: , P: h3 y% q' E6 ]% i3 p: C9 h
sets: ( B# _" t! n% W2 J/ m
level/1..3/:p,z,goal;
: j- A% m; r8 S8 s1 qvariable/1..2/:x; # f5 ? k7 o2 i( u! O% t
h_con_num/1..1/:b; # P2 ^9 l7 f% X9 S; ~
s_con_num/1..4/:g,dplus,dminus; - C* |+ R! O E, `7 r( u& t1 U
h_con(h_con_num,variable):a; - \+ _/ `* [* y! E/ |
s_con(s_con_num,variable):c;
8 m2 j5 I$ Y# Eobj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus;
+ K# J# ^7 @ f. Z0 O+ r0 cendsets % Z& [% b# U. {8 o! H# p' g9 s
data:
% k/ L% d4 f+ K2 }ctr=?;
. w+ T+ N8 P/ X b% o" |goal=? ? 0;
; \) x4 `+ T" O3 G, p+ K+ v Wb=12;
1 D7 i6 v: V5 G1 `+ Q. Q4 Ng=1500 0 16 15; 4 ~, ~( h- V0 W4 N% e: Z
a=2 2;
& E7 P8 s# a4 X$ ^9 Zc=200 300 2 -1 4 0 0 5; 5 d/ ^$ G* @- J$ Q; {6 T& ?
wplus=0 1 3 1;
2 [) W7 |3 r l$ i0 ?" t m, b2 Lwminus=1 1 3 0;
8 |0 |9 F, T. ~* s# ?$ E; g* l2 ~enddata ) i+ x2 v6 `9 |6 I
min=@sum(level:p*z);
# m- Y# ?, Q9 u4 h. V; K# W0 lp(ctr)=1; 8 D; W0 { O2 y2 e
@for(level(i)|i#ne#ctr:p(i)=0); : ?7 T8 p2 Y3 K8 y3 c5 j3 L
@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 ^- r& E$ R) ~! t% w+ _ ^
end 3 v: W+ R+ M4 m* f* C6 R! ?
! [: x6 j# ]2 g7 B+ e. F
5 g" r9 N+ U% k- S' P- h9 u+ Y" u
- [: ?- t2 l& T m1 w0 Z$ w* M" _
2 m3 K) V8 b! b
4 多标规划的 Matlab 解法 多目标规划可以归结为
8 a# |% @. n) i2 Z 7 [/ N1 d% G, B* M$ R. G
/ P! e2 w6 ^0 W# l0 n6 I) a
[x,fval]= fgoalattain('fun',x0,goal,weight) ( r9 @: E: z) l! Z
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b) 7 B3 s" H! C# a+ k3 Y
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
) X1 y; r8 @0 h6 ^[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
4 v9 p+ s- j# |. J( Q# P4 t7 @" \6 N; \( f
2 E" K" ?9 @ {" T' f2 q2 F& j7 d
要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。
/ H( H- c8 u/ t8 u k' A2 n 例 5 求解多目标线性规划问题
8 w4 d. N: F5 |; k3 o+ S
# U" y+ T! ^9 s, y5 J : o- s! R; j5 _7 a- c
7 y/ M4 D0 L/ n' D4 C
解 (i)编写 M 函数 Fun.m: . t! n6 ]3 E# c0 b# \3 o$ R
5 Q! M6 N; r* A( o- T. j
function F=Fun(x); 7 ` U0 f* H& H$ O
7 p- }: C1 }- s6 G z/ LF(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4);
# P U- ]9 B0 _! q: k+ Q$ Q# Y1 W w
F(2)=3*x(2)+2*x(4);
/ U$ e9 T2 {" E- E4 o" ~2 A* p3 Y' e2 _
(ii)编写 M 文件
t2 F5 i0 A, o, d0 u1 ^0 o6 {) [$ _: @# S" G S. n# I
a=[-1 -1 0 0
: o1 k. a% \: N$ E0 l 0 0 -1 -1
% W8 p# d3 D3 G 3 0 2 0 5 B" ~. n" ~9 s8 o5 V8 n: d
0 3 0 2]; 0 U% S# @% D1 ?/ K7 @0 g' h3 |8 W. P1 J; o
b=[-30 -30 120 48]';
, }% P5 J; K b1 g3 Yc1=[-100 -90 -80 -70]; 0 E5 [2 e8 T6 g# Q% w
c2=[0 3 0 2];
C! d. \6 @7 y5 y[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值 9 Y6 q7 ^9 o& U Z
[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值 & d- R9 E9 m/ g+ E+ V
g3=[g1;g2] %目标goal的值 , N3 Y6 ^$ {" y- G/ ?) M
[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1)) ' U' T- C8 V2 I; [7 b- J* {: P+ C
%这里权重weight=目标goal的绝对值 - Z8 N3 ~8 h: ^
- v' o+ U7 `2 e$ U4 ^$ f
就可求得问题的解。 习题! f+ g" r# T1 F- g% T
![]()
, R) l- L' _* c6 l' \5 E& f: @# w+ p+ c2 Q- A7 K9 x
————————————————
X& O# E1 E/ Q1 h版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
" p0 V$ Z, I. E7 Y1 M& i原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932+ r5 g9 H) X. G$ U( N. H
?0 p! h! r8 s' |( K6 G$ U. Q) ?9 p& ^- Z0 |: g: i
|
zan
|