- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36311 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13854
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 616
- 主题
- 542
- 精华
- 12
- 分享
- 0
- 好友
- 225
TA的每日心情 | 开心 2020-11-14 17:15 |
|---|
签到天数: 74 天 [LV.6]常住居民II
 群组: 2019美赛冲刺课程 群组: 站长地区赛培训 群组: 2019考研数学 桃子老师 群组: 2018教师培训(呼伦贝 群组: 2019考研数学 站长系列 |
1.线性规划的局限性( \* }% j# _; u0 Y- p( M# Q" E
只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。
& {; B' o! r. V4 \# ~$ j( S9 W/ j8 r, ~6 Q1 p7 c
2.实际决策中,衡量方案优劣考虑多个目标( x) O- q& b' c% k+ h& {! j9 T
这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。
3 t4 m# r8 a* Q+ Z; X# @3 ^
" S$ y s9 E! m- M$ j7 L: q# j3.目标规划(Goal Programming); |% n6 {1 i& ?) Q
美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。
7 n8 m# A0 ]% k4 R; T% F
( w# G U4 C) \" P% t9 B9 @0 n4.求解思路
/ e( J1 _' n) L6 `5 e6 k: d(1)加权系数法8 E7 \/ y0 j! \- d u" f# f
为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。
8 g7 ?. @& ?$ g+ ~# ?% B; b ?. u
(2)优先等级法
$ a' z: M2 m3 h: R& K7 g& l) ]+ n5 F将各目标按其重要程度不同的优先等级,转化为单目标模型。( p9 Z# Z7 z( O2 v, |1 M8 q
6 m3 [3 G; a8 X/ P; m7 N8 v
(3)有效解法' e3 a; k5 }9 q8 \9 Q
寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。
/ w+ E% g. }5 G7 X" I7 }5 C& c* r, z( u; G1 R2 o
2 目标规划的数学模型0 [( L+ b) ?, W2 m* }6 e& R" {
为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。, d( N8 t3 b3 o4 v- m* }
' C; \+ _' h9 j7 l& g# O0 V例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。
, R2 `) U0 h7 O; o" H3 X' h
; }1 E/ b/ s' Z# `8 }# @# }4 F4 Y 1 J% V W, E- P* W" u2 H) k& e
& Q9 y+ K8 i% Z! B2 h5 y2 z
解 这是一个单目标的规划问题,用线性规划模型表述为:
) M0 _0 {& A% g. j0 |1 @+ |+ g
2 N3 f5 Z% X) g; U; _' K![]()
& D# N% @2 a1 X6 I" W" Y. L+ [2 `: e. E4 B* _# j$ m' \
但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如; \% ]; I9 G( v% i$ P$ c: }
+ T8 l4 k' S' U; q
(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。7 m$ @/ V g/ @5 Q
, r6 b+ M" U/ t0 Z(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。9 M% Y0 p4 \# v1 v4 u5 K* J* \4 t
- X( x+ W0 x8 n0 c(iii)应尽可能充分利用设备,但不希望加班。 # Y* @( B) a) L8 n# C' ~/ ?4 k
6 |8 f+ L5 K, t* i% w(iv)应尽可能达到并超过计划利润指标 56 元。
) g6 w, ~, K; M, C& z1 X) X2 F* D5 O, F! z3 F
这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。 ) g3 }' ?. A6 ^4 Y+ |
) a+ Z% a( Q" E
1. 正、负偏差变量 ( \( t. N" g% \# ~6 q6 n
2 x9 U" @3 o$ S - j) X6 u b9 P
" H* l" K+ \/ f/ h2. 绝对(刚性)约束和目标约束
' n' H8 P" e+ j+ {3 a9 ^
* `+ M! B" S$ f- \* K3 g5 M v( S![]()
+ w" n! P) q, J; x8 o- {0 j5 n: [) R5 G) N% z, f# F, q
3. 优先因子(优先等级)与权系数
M( o' q% `; z' U5 q$ o% P
4 N& u' ^% N" W2 z3 F$ `& r, I- Q![]()
. f; f& i5 A/ [ \4 v7 E$ O9 i& o
, h' t m4 w0 h% d# V; r) K6 @; b4 ]: I9 B/ q8 _3 @# |7 q
4. 目标规划的目标函数
" u, c8 x& T3 x0 I+ M0 Y4 u% l6 t) }) v3 U
# w8 U( o" v7 m0 v/ T
) U7 M Z1 E5 B+ `8 I2 N+ z. O
对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。
! v. y5 \6 G1 r( H: \
6 @1 }2 W, Z6 f. O- {2 F3 t例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是
% h# l$ D1 w [( _8 b. b ?6 N/ B5 I7 t
![]()
. r' }/ k& A; j* V, X- n3 h. k! k/ @+ Y2 B8 U7 @4 P& A% }, l
5.目标规划的一般数学模型( L) s6 L4 B- P' t
6 E4 r2 ^& P' G1 w( M4 U) _
![]()
% F( o1 E R0 `6 }4 ]9 X7 O$ y$ ~8 |' ^$ t; o
' J ^, i5 y$ g. g. O1 g" Z5 Z建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
$ ]7 C" ]" v* @$ {! q) ^! ?8 h r; P, u' j- x) j" j0 F
3 求解目标规划的序贯式算法+ L5 c. I/ I" Y/ A( J
序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。 1 h$ L& g, m+ W- t
0 t! ~3 ~% w" [ % G2 S/ ^$ C9 A. e& Z; Y A
1 l# s& R) z8 F6 D6 o
![]()
8 K. H" f6 S8 S. I+ h, {2 N) j6 k. P- w; s8 f9 H! ^
注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。
( y" g2 g- p' V1 j; [
" g+ {8 P/ L; S例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:
1 ~- c5 o D' s% S" K, @9 j0 w, w0 w/ n' a. g+ I
![]()
+ A9 p+ R' J5 I9 H5 S7 b" I8 T2 y4 _
(1)力求使利润指标不低于 1500 元;
, U; @- w' k% s5 M7 I$ L+ F& o% C S4 c- y, g
(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;* P/ Z5 P4 |* l* U
, {; [6 F4 _+ D+ k6 ]' ^(3)设备 A为贵重设备,严格禁止超时使用;; a F U6 \; X0 ?7 p' R8 E
0 J; c% j8 |, f8 P' O) y; M( a' _(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。* @7 b. w$ a3 U) s
' ^$ U% y/ t" ~: x+ F8 w
建立相应的目标规划模型并求解。& R6 z3 b, y e1 q
! q4 r! J/ s) M( ^9 U
解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。
. o! t1 D7 X/ E! n: D; v2 U" \: U @$ N9 I
![]()
, p: P: I3 Y4 K# A6 a/ E! U7 T& s: q. r
序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下: 4 l2 J7 `7 I# i# H8 V
+ q: v5 g+ d" W- h5 R- e& ^model: 6 n( V$ A+ Q$ _& n6 |3 o5 A
sets: * E) `& I6 ]' L) B9 D' d% }+ Y
variable/1..2/:x;
: c& G9 |9 _: M# ?$ a3 n% F* U6 y1 sS_Con_Num/1..4/:g,dplus,dminus;
* t4 r ?/ u0 O: \' D9 A* ES_con(S_Con_Num,Variable):c; ( W8 a$ l' e3 ^" v9 W) D
endsets 0 l: h; W( s; B6 C' R
data: 0 r- G3 ~! T5 d
g=1500 0 16 15;
: J A9 N% B5 qc=200 300 2 -1 4 0 0 5;
& ?" w! c6 C/ E! w7 _! ~enddata
- N- U' e$ Y1 h0 b! X% vmin=dminus(1);
$ G/ u% H0 A6 X9 ]* ?, J2*x(1)+2*x(2)<12;
1 d" B- N# v( x: e9 Q@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i));
9 W' h/ w- i* C3 i! hend
4 x2 T3 _+ q6 n3 i3 z8 d9 ?' w d6 T1 M) H+ n: t0 S
求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model:
$ x9 B; V7 q: i% Vsets:
. s5 I3 t. G- N7 Yvariable/1..2/:x;
$ ~. D1 W8 P# b* YS_Con_Num/1..4/:g,dplus,dminus; * V$ M0 r8 m& Z5 l
S_con(S_Con_Num,Variable):c;
$ A# S8 j- k4 h4 i% Nendsets
1 d/ g$ J6 p8 {& d2 qdata:
5 M: j6 ]( }, @g=1500 0 16 15;
% Y/ P9 n/ [. j+ o, C1 a4 Ic=200 300 2 -1 4 0 0 5; & K3 B! @ z5 e0 \4 c1 N q
enddata N/ W2 d) L ~- g
min=dplus(2)+dminus(2); !二级目标函数;
. m+ l& j: Y I) G( s2*x(1)+2*x(2)<12;
+ Y! a; x9 @ X" q/ r6 F@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); I9 f& V m8 O
dminus(1)=0;!一级目标约束; # D4 o6 ~! G- e( I3 }: F+ \
@for(variable gin(x)); 5 ^, }# \/ T" u
end
9 X- }$ U3 {( ?$ @/ G- t
* s8 S& f% F( @( N求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下:
# ?; S9 }( K, E1 a. |" D
+ z. u, `7 y1 m0 ~model: 4 s d ^& ?" \, Q
sets:
1 G* ~9 {; m' E$ r: Kvariable/1..2/:x; , {( T8 \* @+ @+ o1 Y# L
S_Con_Num/1..4/:g,dplus,dminus;
. W: Q+ c. J5 E9 c& eS_con(S_Con_Num,Variable):c; / L* M0 x+ e4 Z6 l4 b
endsets - {2 h, @) T. j8 P6 F. E! B
data:
+ u6 h- {/ q' |' C3 r5 \2 sg=1500 0 16 15;
5 _2 _1 A3 z* B4 e. ]c=200 300 2 -1 4 0 0 5; 4 j5 U- }4 @4 K/ S! p. F% i' H6 d$ s
enddata : M) H& I! U& A! B- M' O
min=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数;
# Z7 b! ]( ?8 c2*x(1)+2*x(2)<12;* X* H" E' N6 Q4 W$ U+ N
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); 1 i8 ?; x0 Q& t1 m$ k. Y2 Y
dminus(1)=0;!一级目标约束; g; n/ `5 D6 Y$ \- y; z( ?
dplus(2)+dminus(2)=0;!二级目标约束;
) \1 u6 |$ @* V5 ]) ?4 Q" zend9 D2 x( v7 w5 ^$ v4 o; r
) Q& f. o0 K, e; D目标函数的最优值为29,即第三级偏差为29。
3 g' Q3 N. K M1 e5 l
" m3 m$ r0 r9 i+ P' a分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。
5 B0 M3 n7 N: B$ y- y8 {# @6 O0 r1 q# \8 T
上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。
/ ?4 z5 c2 p+ [ A
* f4 c* z+ R% H例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。7 p7 ~1 C6 q# j! \ o) Z
0 W4 d6 f2 U9 M7 G
model:
+ q# B' C+ j9 t2 Zsets:
9 |+ Q; ]* o& \, e7 o, {& T# Slevel/1..3/:p,z,goal; 8 i5 M4 U3 O$ E# c
variable/1..2/:x;
1 U# E* r" H$ C1 s3 O# gh_con_num/1..1/:b; 2 z& z% @5 z1 s1 b+ |
s_con_num/1..4/:g,dplus,dminus;
- L ~' @ H4 g/ z9 C- Wh_con(h_con_num,variable):a;
+ k; g2 ?2 b4 o1 g* G9 F/ c2 \s_con(s_con_num,variable):c; ) P; _9 p! v9 P: {
obj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus; ; S; s P6 O+ B6 ^' j9 r4 u
endsets
) C4 W- f" H# O7 X4 ldata:
! E8 _$ I; [ _9 n! tctr=?; 6 H$ o2 a9 B, G D) a
goal=? ? 0; ' s0 u9 W! v( ^) p9 w
b=12;
2 V# ?5 ~: ^$ A K8 @* Ug=1500 0 16 15; 0 d7 l5 H5 v$ V2 |( v6 J
a=2 2;
! _/ N" p( c8 ^4 ^& T2 n1 D" fc=200 300 2 -1 4 0 0 5;
4 W: ]' X4 F1 owplus=0 1 3 1;
( A2 q D% e9 q( \wminus=1 1 3 0;
: c* ^) ^( G' m) [1 Fenddata
: `& ~% R+ w4 C3 g+ K# Hmin=@sum(level:p*z);
6 }. @& C- J, Ip(ctr)=1;
" ~( u" J# H( ?+ [5 H2 r) W) O@for(level(i)|i#ne#ctr:p(i)=0); 6 n* ?. k( G) _1 G' l+ O
@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))); 6 R; Y+ w6 h# l3 f5 x8 Y
end 6 B2 K4 u% C, n0 j1 M! @9 ?
9 |7 B3 h& }: f) S1 S
9 A- [$ n* c9 _9 I% Q
) q$ x6 J' G" a6 f3 x4 f" m6 b8 g
![]()
4 A" }' t, | q6 C8 r; [
# [% D p. ?0 p0 k* ^4 多标规划的 Matlab 解法 多目标规划可以归结为
! H# Z. e H8 o) ~8 ]8 ?* q- u7 R![]()
1 I# ~+ P; [% h+ @& V x5 J4 _! r
[x,fval]= fgoalattain('fun',x0,goal,weight) * @8 _. m& y) t1 V; U- s
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b) & y6 I+ ]1 p- g0 g
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq)
5 D2 J9 d) s9 G# {, O' m: `[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
9 g. X7 p/ X3 F5 T% P! [
4 Y+ d. O" _# g/ y- i" ^/ e9 F: h
要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。9 _: Y; }% m' |+ K+ m
例 5 求解多目标线性规划问题 ) c) R2 y1 @; v, W& h# N
7 n3 k, r" w7 i2 ?6 [ 4 z+ n# J; R; }* {* D) i
' X( B4 B( I* Y/ Y
解 (i)编写 M 函数 Fun.m: ( {' v1 G, O, k- A. G5 p6 `9 u# w
& ~' S4 L: p4 H0 Zfunction F=Fun(x);
, ]- n6 C1 @/ W9 W2 B0 ~
9 H: }4 G+ {2 h7 H1 _8 T; EF(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4); & e8 S. @( w2 ?* H( }; V
) d2 i- l+ `' k0 s- Z
F(2)=3*x(2)+2*x(4); 2 |: Q" j4 t# l" G
. m, v4 F) u4 ?, v(ii)编写 M 文件 & h, x3 m* X4 q. p0 m" W2 L
6 y# K7 Y+ Q5 p7 T4 |9 q" ^
a=[-1 -1 0 0 . y* M$ X1 {) e- C' g. H1 \7 q. y
0 0 -1 -1
/ Q- H. B. I; B5 l# ^( ^* ~" q 3 0 2 0 / k9 P. T( w: G) Z" Y4 Z
0 3 0 2];
9 S% y! l5 }) O( w6 @b=[-30 -30 120 48]';
6 p; ]7 i9 s X" |4 dc1=[-100 -90 -80 -70];
: B' ]/ h4 W) p4 z1 _! {c2=[0 3 0 2];
& @+ ?# v$ W, r4 ~/ `" B4 k( X1 f[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值 ' H; T0 ~) q: O! A' k/ M2 |
[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值 , ?8 d, `% h: R4 D! e0 _+ @. G X
g3=[g1;g2] %目标goal的值
1 O/ ^9 f- z6 c. c6 h[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1)) 5 Q+ \$ R! j/ ]8 j" x8 y
%这里权重weight=目标goal的绝对值
& G) i7 X( S% [9 f; |/ p
! ?6 B, H; e1 [: {5 u3 E就可求得问题的解。 习题, d# X; X' U; k' y6 |& F
W6 X4 b! L" @7 ~
7 e2 i: i* u% r————————————————
% k0 }8 a( f# |$ E9 `- G版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。& a' ^6 Y ?" y; S* F1 r0 V! i
原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932
% T) I' t1 _. C+ u5 Y' D8 V( W
F- h' l3 L9 c- x" Q& S. E
; F! V+ y$ ?& D: m4 U |
zan
|