- 在线时间
- 791 小时
- 最后登录
- 2022-11-28
- 注册时间
- 2017-6-12
- 听众数
- 15
- 收听数
- 0
- 能力
- 120 分
- 体力
- 36352 点
- 威望
- 11 点
- 阅读权限
- 255
- 积分
- 13866
- 相册
- 0
- 日志
- 0
- 记录
- 1
- 帖子
- 616
- 主题
- 542
- 精华
- 12
- 分享
- 0
- 好友
- 225
TA的每日心情 | 开心 2020-11-14 17:15 |
|---|
签到天数: 74 天 [LV.6]常住居民II
 群组: 2019美赛冲刺课程 群组: 站长地区赛培训 群组: 2019考研数学 桃子老师 群组: 2018教师培训(呼伦贝 群组: 2019考研数学 站长系列 |
1.线性规划的局限性' F: \) z6 d6 h+ h3 Z% L
只能解决一组线性约束条件下,某一目标只能是一个目标的最大或最小值的问题。
* K: @/ V% K6 f0 p7 H5 m6 ~) \, w7 R3 N$ B m) I3 I
2.实际决策中,衡量方案优劣考虑多个目标4 E0 L1 Y3 b# H+ X- g* Q% g# G
这些目标中,有主要的,也有次要的;有最大值的,也有最小值的;有定量的, 也有定性的;有相互补充的,也有相互对立的,LP 则无能为力。! k4 A- j% N) g3 C0 u
% B; {" E/ m2 {1 a% o* s* S
3.目标规划(Goal Programming)
4 H, U+ s6 R3 {/ |) W0 c: f+ C美国经济学家查恩斯(A. Charnes)和库柏(W. W. Cooper)在 1961 年出版的《管理模型及线性规划的工业应用》一书中,首先提出的。
, S1 [$ R/ u8 {$ j
& \5 ], v* Q9 V9 G3 a4.求解思路: |; I7 N R- f+ W. c5 L
(1)加权系数法
; W: P+ H$ j7 d* \* R/ N5 C+ v9 n为每一目标赋一个权系数,把多目标模型转化成单一目标的模型。但困难是要确 定合理的权系数,以反映不同目标之间的重要程度。0 z2 `; O0 R$ ]
9 `: Y) b! l$ m5 u% G
(2)优先等级法7 n) [' V0 Q) }* p: u
将各目标按其重要程度不同的优先等级,转化为单目标模型。
, R" r4 s# j+ j& }$ F. l0 u4 o6 X5 {1 M, p
(3)有效解法* B- y- H0 E% f& v
寻求能够照顾到各个目标,并使决策者感到满意的解。由决策者来确定选取哪一个 解,即得到一个满意解。但有效解的数目太多而难以将其一一求出。 0 s4 K3 W3 o9 ~: i
$ F! ?/ i& G1 B x2 目标规划的数学模型" S# X/ N" M- B2 d: C6 l9 k
为了具体说明目标规划与线性规划在处理问题的方法上的区别,先通过例子来介绍 目标规划的有关概念及数学模型。7 `3 o0 O8 h) }3 M3 j y8 ~0 w
8 J" V$ u) k) t9 ]1 ~
例1 某工厂生产 I,II 两种产品,已知有关数据见下表 ,试求获利最大的生产方案。5 y- z7 R! n( P# K2 F" a
& s$ Q/ q1 Q( K* {+ G![]()
, y$ l2 q) c4 ~# t+ z) R! |8 j% ^/ _1 S+ k) K! |
解 这是一个单目标的规划问题,用线性规划模型表述为: ! D& s/ ^% C% T
p$ u6 |) g! q3 J
![]()
6 k2 g5 L5 X+ Q1 d6 s' {* C. \5 ^! x2 v/ b! I$ v
但实际上工厂在作决策方案时,要考虑市场等一系列其它条件。如, g0 \7 g3 f7 y* q
2 h, X* a$ g- M& g% S$ k(i)根据市场信息,产品 I 的销售量有下降的趋势,故考虑产品 I 的产量不大于 产品 II。9 g* R( h" S+ T; X; e
9 n- d( p* o# \: A7 X ^
(ii)超过计划供应的原材料,需要高价采购,这就使成本增加。
9 I! Q4 ?" Z4 S; _+ H: o
# `( p$ B' ~+ r( {(iii)应尽可能充分利用设备,但不希望加班。
' K- T" d b" k# G' K* f! n2 N& q) O5 `; u
(iv)应尽可能达到并超过计划利润指标 56 元。% U) u& ~ L4 i9 I3 K- j
* d; R( ^( i8 G
这样在考虑产品决策时,便为多目标决策问题。目标规划方法是解决这类决策问题 的方法之一。下面引入与建立目标规划数学模型有关的概念。
7 e% X0 Z. y; o8 E3 o$ T% I. I3 T) Q. Y/ W: `4 z2 k! f
1. 正、负偏差变量 - ?& q7 S8 v0 i0 g% o0 f* D( V! P
6 T7 I" C, o' g4 ` B1 ~) y
![]()
_9 m f% y# H) b0 M7 m5 L
# p" [6 X- [/ O9 ~0 C2. 绝对(刚性)约束和目标约束 ) w6 P+ q7 P- y
. {6 ~ A& s5 h2 j$ |1 x
3 }# R. Q8 u9 C" t0 B
6 b1 x* |1 i' `& e4 h6 S3. 优先因子(优先等级)与权系数 . c: `& m- v1 \- r- _" g
8 U E! C5 B6 W![]()
, L0 Y% `! e' }" w
/ o1 x4 U$ R5 L M; w5 z
9 F' R( _/ f, ~# b) z a4. 目标规划的目标函数 5 d) q$ y1 h1 b2 E0 Q* P
3 X) t" D- X/ n& ~9 M4 [ : j8 x$ ?9 ^+ z; e% u$ c$ i/ e
' H2 K( Q' g+ |. ^1 x( ?: b) G对每一个具体目标规划问题,可根据决策者的要求和赋于各目标的优先因子来构造目标 函数,以下用例子说明。
) \0 W2 N6 w6 y' X, {/ F/ F6 ?0 j& A/ Q* c- V7 W
例 2 : 例 1 的决策者在原材料供应受严格限制的基础上考虑:首先是产品 II 的产 量不低于产品 I 的产量;其次是充分利用设备有效台时,不加班;再次是利润额不小于 56 元。求决策方案。 解 按决策者所要求的,分别赋于这三个目标 优先因子。这问题的数学模型是 9 `2 k# j0 t4 [: G$ c
( r& d8 c8 P5 r8 N8 J![]()
0 r s! c2 ]* n2 P6 [3 D6 h; U$ L6 i
5.目标规划的一般数学模型* m p" E' C; a# g/ R, E% o
/ {2 ]5 z# x8 Y! p( u4 ]
; e6 w: a+ ^/ y4 G) h+ J4 E9 M. S
# F& K: G8 G, D. [
/ Q6 k: c' j8 _# P! G; a建立目标规划的数学模型时,需要确定目标值、优先等级、权系数等,它都具有一 定的主观性和模糊性,可以用专家评定法给以量化。
9 o; x. y0 y& q/ d+ x2 b: a) P& Y7 a% [- W
3 求解目标规划的序贯式算法5 e% a0 j! d- D% K
序贯式算法是求解目标规划的一种早期算法,其核心是根据优先级的先后次序, 将目标规划问题分解成一系列的单目标规划问题,然后再依次求解。 / @3 m+ ]; H) y* w' P% q2 E5 ]
" H7 l6 ]1 F3 Q
![]()
) V; N& {/ R1 r( A& C) B5 ]# e# ?4 J7 v; s x$ i! H, N
) F8 g3 h, ]/ q
8 k' m5 z7 `6 S* H* V$ ~注 此时最优解的概念与线性规划最优解的概念已有所不同,但为方便起见,仍 称为最优解。
0 q f% W C2 H
" J# B2 F" f+ J例 3 某企业生产甲、乙两种产品,需要用到 A ,B ,C 三种设备,关于产品的赢利 与使用设备的工时及限制如下表所示。问该企业应如何安排生产,才能达到下列目标:" I0 b5 W' J u, G
% H3 e+ b( V' @/ Q9 _ B, f! a8 r
7 u/ v9 N' w$ D: L( M, Q
' w a3 o; I& k, ^
(1)力求使利润指标不低于 1500 元;
. ]1 U5 t; r) B9 s' X" e! l! @: W# _ S8 t, `6 C8 n
(2)考虑到市场需求,甲、乙两种产品的产量比应尽量保持 1:2;
$ I' r2 H4 r6 M& s' g! m o, m1 C4 h. F6 N
(3)设备 A为贵重设备,严格禁止超时使用;
# U$ d+ J) z8 w; _( b' f5 ?9 u3 l( m; A
(4)设备 C 可以适当加班,但要控制;设备B 既要求充分利用,又尽可能不加班。 在重要性上,设备B 是设备C 的 3 倍。6 ]3 C$ G6 b0 R* V
' h& i) j4 `/ Z* t' ?( r/ I建立相应的目标规划模型并求解。3 ?; ? I [, @) ]9 Y
a8 [' L8 m R; a, X& j# g- q解 设备 A是刚性约束,其余是柔性约束。首先,最重要的指标是企业的利润, 因此,将它的优先级列为第一级;其次,甲、乙两种产品的产量保持 1:2 的比例,列为 第二级;再次,设备 B C, 的工作时间要有所控制,列为第三级。在第三级中,设备B 的 重要性是设备C 的三倍,因此,它们的权重不一样,设备B 前的系数是设备C 前系数 的 3 倍。由此得到相应的目标规划模型。 9 P& P. P$ {( U2 `$ b5 J$ E
{! `+ y* L6 Z7 j9 r) F% Q![]()
# h- `; Z i1 ?3 A+ {8 f1 p4 \6 p/ p! l- x% R+ R! h! C. j
序贯算法中每个单目标问题都是一个线性规划问题,可以使用 LINGO 软件进行求 解。 求第一级目标。LINGO 程序如下:
+ i/ Y5 s1 d, ], X/ c9 `
5 j1 v. K$ C) m( C2 x% Bmodel:
$ z& N4 k3 S4 W% X$ F# Ssets:
) P' ^% x9 u5 j( R' n, Z6 cvariable/1..2/:x;
" ]7 k' {, S/ C7 K- c4 RS_Con_Num/1..4/:g,dplus,dminus; ( W3 T4 D2 l9 Q) i
S_con(S_Con_Num,Variable):c;
" D9 D I0 l. V3 p7 F% g. @/ Fendsets Z, d% K5 S' z1 H0 U
data: . y! k8 q& m( }/ ?( h9 b- a7 R
g=1500 0 16 15; 8 D. u7 O. l# a! Y2 [
c=200 300 2 -1 4 0 0 5; F3 p; i1 W! ]& S1 D
enddata 8 H& \- L) c& B- ] J
min=dminus(1);
% \5 c( i+ h- u# T2*x(1)+2*x(2)<12;
* M. T) J1 V: C& @2 ]@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); " z( M7 H) B3 J" x
end
5 g+ v% t3 o8 x' Y
$ u) M' {# b# k$ ]1 O( m; U求得 dminus(1)=0,即目标函数的最优值为 0,第一级偏差为 0。 求第二级目标,LINGO 程序如下: model:
7 z' P& h9 O9 L; Csets:
1 a' `0 _% X* X Jvariable/1..2/:x;
+ M5 ~1 _: D) [- ~0 }6 i/ sS_Con_Num/1..4/:g,dplus,dminus; / P8 u" G" W4 ]# w5 F2 Y, r
S_con(S_Con_Num,Variable):c;
1 t+ {0 k5 S$ eendsets
$ W& o+ N# D* Z: m2 Z2 ndata:
' r5 A& z" {. d* I% X# cg=1500 0 16 15;
& |. h" Q1 N- s4 G; V8 _: [c=200 300 2 -1 4 0 0 5; ' }, j, K. P( F# V
enddata 2 H. _9 _4 F, z' f/ b( X! D! C5 V* n5 c
min=dplus(2)+dminus(2); !二级目标函数;
2 E8 B( z2 Q) B4 C- ]% T2 N2*x(1)+2*x(2)<12; ' R9 g7 M" [! F, r: ?+ K' X2 \
@for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); & i/ m2 `& u1 ^- p8 c
dminus(1)=0;!一级目标约束;
W( [8 u2 l# F1 {@for(variable gin(x));
# u, {' a/ ^: w7 M! Z! oend
/ D9 J$ |- I7 h! x! x- A9 t; ~1 h. m8 Q) o
求得目标函数的最优值为 0,即第二级的偏差仍为 0。 求第三级目标,LINGO 程序如下: ! J1 @ O1 ?: t3 ^! g, ]* @
- j. ~/ x. S/ `9 n. C
model: & X! y8 A5 y# @/ X
sets:
E5 e& u1 f5 J& Q( h9 g" uvariable/1..2/:x; " k9 z: p7 m; `% M
S_Con_Num/1..4/:g,dplus,dminus; 8 w4 B$ o2 E, S- t0 v1 u) T; ^
S_con(S_Con_Num,Variable):c; , d+ m2 o' t( q+ B
endsets & }0 @; O4 M2 {: F6 m) v
data: ! p6 v+ ~0 [% S
g=1500 0 16 15; 6 S1 |0 g" H, [- \! G
c=200 300 2 -1 4 0 0 5; 1 W0 ~. H! l# L0 u5 y" L5 c
enddata
; x1 Q4 X# C! c' pmin=3*dplus(3)+3*dminus(3)+dplus(4); !三级目标函数;
. q! C3 @: K5 @2*x(1)+2*x(2)<12;
2 e6 R4 P/ j6 \7 c/ P6 L! N @for(S_Con_Num(i) sum(Variable(j):c(i,j)*x(j))+dminus(i)-dplus(i )=g(i)); & ?# n3 b, l, P6 M
dminus(1)=0;!一级目标约束; 2 `# Q! M; _- Q" ]/ c6 b
dplus(2)+dminus(2)=0;!二级目标约束; a& W' w, ]6 l) Z5 r7 b+ }
end
4 D0 X' t! T* q3 D, L
3 E u8 m) j" @7 @: A目标函数的最优值为29,即第三级偏差为29。
; J: P, b; v; {( [: L
. r9 [; z* F3 E2 A; t8 A9 V: J分析计算结果, ,因此,目标规划的最优解为 , 最优利润为1600。 Z G3 g0 D6 ?" x4 B* l
5 i* _3 s% z0 J* i$ l
上述过程虽然给出了目标规划问题的最优解,但需要连续编几个程序,这样在使 用时不方便,下面用 LINGO 软件,编写一个通用的程序,在程序中用到数据段未知数 据的编程方法。
% @; _$ X) ~5 W5 _5 z
) b4 ?( V; [ i. c% ]8 h, M; i/ U2 W例 4(续例 3) 按照序贯式算法,编写求解例 3 的通用 LINGO 程序。, G5 I+ G+ b$ @: t" L5 @
/ K& J# L1 u0 T$ G/ U
model: $ D) F$ y+ b Q& ]
sets:
; P% _/ N2 D# f4 i: x# [6 G+ a: tlevel/1..3/:p,z,goal; 6 {" E. ?$ E2 h" q* ~9 e B
variable/1..2/:x; ' h, H1 ?3 x, y# q7 W0 k: q
h_con_num/1..1/:b; , Q- W F, r9 V$ \8 d
s_con_num/1..4/:g,dplus,dminus; & _5 Y; v! C* r. j4 I# t& M% D
h_con(h_con_num,variable):a; * A5 R2 {, [8 T! S" n9 f- i$ F
s_con(s_con_num,variable):c;
0 y' z( Z5 f/ h* I0 S3 eobj(level,s_con_num)/1 1,2 2,3 3,3 4/:wplus,wminus;
( x, u2 A# A$ G$ Z5 ]8 X: c5 vendsets 6 D4 b7 X7 e: r8 h C7 K& q& F
data: $ O) N! Q4 ?: e: |8 s; h( z
ctr=?;
; R3 G" f( i1 _9 Igoal=? ? 0; * u. F$ S7 h2 V$ V
b=12;
3 _# }: Z! |+ B! r* ?- L5 Rg=1500 0 16 15; 5 ]; ^% I+ K6 D+ Z1 \9 x
a=2 2; , K) u2 H [+ ?1 C9 \: j' I: u. \- [. C
c=200 300 2 -1 4 0 0 5;
! E' v5 j# t& L6 z! T1 Lwplus=0 1 3 1;
, k. ?' |. l3 ]4 _% T4 g: ^wminus=1 1 3 0; 5 y3 U- l6 q, S- |2 ?3 x
enddata 0 l7 c7 w0 f8 P* F" H7 W9 ?- J' x
min=@sum(level:p*z); % \0 U, N7 f/ k/ H2 H
p(ctr)=1; & ?" y( C- V; n; L/ d2 _& `8 E& m
@for(level(i)|i#ne#ctr:p(i)=0);
7 N/ ?+ L2 C1 A( z; `7 v0 t X@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)));
% E. Z" ~1 g) ]* J: W- s4 Iend ' P# }: I4 q( u) V: @
: p/ F/ K! T( [6 Q. |4 n4 E0 H8 ], ]8 N6 L/ z
) t- M! v+ B# v6 i4 g$ q! g
![]()
6 t2 m) s* [% d1 ^8 B* u( ^; l- y; m) w0 c1 h& l) E
4 多标规划的 Matlab 解法 多目标规划可以归结为
! T; t' j/ y T7 _7 b ) ~. K* h6 b/ v0 w: B3 f! N8 k
9 J$ H: G6 _. l8 f0 a6 e
[x,fval]= fgoalattain('fun',x0,goal,weight) # ]6 I7 F0 Y2 n, P7 J
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b)
2 i+ v2 \3 @% m" p" I# R( ~[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq) & F! Q1 ~7 v' t& J# d, Z, ~9 w
[x,fval]= fgoalattain('fun',x0,goal,weight,A,b,Aeq,beq,lb,ub,nonlcon)
, N: `) D" X: A7 S2 X
1 |: ^1 F* T$ r9 \, d( I5 l, Y
7 [! y& y/ t" K. @/ p' L要完整掌握其用法,请用 help fgoalattain 或 type fgoalattain 查询相关的帮助。
2 j6 L0 A4 f/ _ 例 5 求解多目标线性规划问题
' v! O! ~! x: ~/ o$ k! v, n5 T7 q% F
![]()
4 ?* `0 r. X. x+ a; @8 b* q! P# ]& D/ {7 v
解 (i)编写 M 函数 Fun.m:
- Y0 d1 t' b" D7 R) P! \" [$ n6 u8 `5 }, [* C+ K7 E) Q/ w
function F=Fun(x); 0 n+ j' ?$ E! s2 C- p6 ^' K
5 d2 F* T' {1 X! I1 d; bF(1)=-100*x(1)-90*x(2)-80*x(2)-70*x(4); ' B/ `: s q' N. S
. @- S: W5 e% t; `F(2)=3*x(2)+2*x(4); ; [5 p5 h \2 H) d6 T8 J1 X
' X2 j% m# c# j* t
(ii)编写 M 文件 6 o8 B" y9 S M9 m& L
0 m& D$ n$ O$ ~, } s' L1 Ba=[-1 -1 0 0 9 @7 G5 }- A' z) b2 T. [' O6 ]
0 0 -1 -1 $ q: x; d! b# R. U( Y o
3 0 2 0 7 {9 [# f& m, x' m; p k8 o
0 3 0 2]; 3 R8 g% O% N# Q% P4 _
b=[-30 -30 120 48]'; ! }7 l4 x7 [& m, U/ l
c1=[-100 -90 -80 -70];
& G/ \# Y4 A. t1 r/ z. ]6 ac2=[0 3 0 2];
3 g/ f$ u" r( F# \- s- T- H[x1,g1]=linprog(c1,a,b,[],[],zeros(4,1)) %求第一个目标函数的目标值 * `( \2 T. C/ X
[x2,g2]=linprog(c2,a,b,[],[],zeros(4,1)) %求第二个目标函数的目标值 ' x& x3 S5 F/ N9 \( g
g3=[g1;g2] %目标goal的值 % I/ ^2 M1 ^9 J5 ?' g! }
[x,fval]=fgoalattain('Fun',rand(4,1),g3,abs(g3),a,b,[],[],zeros(4 ,1))
0 i* U5 H# n( B0 h%这里权重weight=目标goal的绝对值
- R/ h+ l( ^8 a, W1 o* O% n" J" I4 g( K5 o( M4 Z c
就可求得问题的解。 习题
! C# x5 a2 q6 j3 f5 M( o5 r : ^$ V- ?4 J7 C3 T3 u" v8 k
% K8 n$ J& X& ?. H
———————————————— @1 Z% m4 ~" ]1 P
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
. J9 a4 t0 t, V/ L, z原文链接:https://blog.csdn.net/qq_29831163/article/details/89488932
. U! b2 P. a, J) P+ w! o, q
' K/ B v" e' g5 n. q2 L
+ v4 E6 Y, a3 a Q! Z |
zan
|