数学建模社区-数学中国

标题: 目标规划模型的实例 [打印本页]

作者: 浅夏110    时间: 2020-6-1 15:24
标题: 目标规划模型的实例
例 6 三种型号电脑的生产计划安排问题

解  建立目标约束。

(1)装配线正常生产

(2)销售目标

(3)加班限制

写出目标规划的数学模型

写出相应的LINGO程序如下:

model: $ m. d: z& F' A! y' `
sets:
3 T/ w. t; {5 @/ B6 V1 c2 K1 Slevel/1..5/:p,z,goal;
' v2 \1 E7 r7 Z9 `# b( fvariable/1..3/:x;
) M% L. @5 l- |s_con_num/1..8/:g,dplus,dminus;
- `1 a) s! V1 M+ }* J7 d* Es_con(s_con_num,variable):c;
! d+ k2 J. s+ @& K: u; {9 b- n. Dobj(level,s_con_num)/1 1,2 2,2 3,2 4,3 8,4 5,4 6,4 7,5 1/:wplus,wminus;
# G, {) ]" S$ k+ E1 z; y! vendsets
7 G4 r/ b5 N0 Bdata: 8 X. ?* C) }. ?$ h5 I
ctr=?;
" v: `* \6 [3 f) g: E1 ^goal=? ? ? ? 0; : d" I3 \: S4 b9 I1 g
g=1700 50 50 80 100 120 100 1900;
& H/ j% @4 t- N" Sc=5 8 12 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 5 8 12;
- d/ c* f% j: C5 Y! lwplus=0 0 0 0 1 0 0 0 1; : Z( \- F, e; V5 \/ H+ m/ I
wminus=1 20 18 21 0 20 18 21 0;
3 Z9 ], t, O3 Denddata
! f9 b- ~' |% @min=@sum(level:p*z); , m4 G9 m. _5 \; A/ K- ~: ~1 n' Z/ m% f
p(ctr)=1; + {4 L3 u) m' \/ @
@for(level(i)|i#ne#ctr:p(i)=0);
4 W+ V% l  r4 J: I@for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)* dminus(j))); @for(s_con_num(i)sum(variable(j):c(i,j)*x(j))+dminus(i)-dplus(i)=g(i));
& @# q$ K  e& j( M/ d' B@for(level(i)|i #lt# @size(level)bnd(0,z(i),goal));
. {7 H- V4 e9 P9 OEnd / d& c2 i7 C- H! L) g$ `

: j- H) b% E( M) w0 K
4 z+ _$ L4 H, O: o) S" u
$ D# G9 Z/ G0 b) k8 d
( q1 X/ F* E4 ]) G例7  运费最小的调配方案
; ?' D3 A, l  C9 |+ G( z, u已知三个工厂生产的产品供应给四个客户,各工厂生产量、用户需求量及从 各工厂到用户的单位产品的运输费用如下表所示,其中总生产量小于总需求量。
/ L  V* D$ N. R
, S% J- Q6 S1 S3 C( e, P" w1 h) U  J5 _
) C4 |: b. s( o* M  }+ \" i% i
(1)求总运费最小的运输问题的调度方案。, f: R' r( O5 a. O

. E# \) Z8 {, G4 c8 n5 q9 O  ~(2)上级部门经研究后,制定了调配方案的8项指标,并规定了重要性的次序。( R* m8 B. w7 r" f. w- U
. y: h9 b8 m. w4 b0 x1 m) m
第一目标:用户4为重要部门,需求量必须全部满足;% {5 O& H1 `. B9 }  Z

* k6 R- O! Z2 C& L" d第二目标:供应用户1的产品中,工厂3的产品不少于100个单位;8 |( z  B/ Y! M9 r+ D( J
7 i) ^( T7 u# w2 ]. T+ h6 F
第三目标:每个用户的满足率不低于80%;
$ ]3 w' C. k3 m# G; _& s$ I, p$ y% e# K; {
第四目标:应尽量满足各用户的需求;. a4 p" [. [1 H) i

5 U" A, W  p( Q$ X4 H% M# a$ t第五目标:新方案的总运费不超过原运输问题的调度方案的10%;
# l( ^( \) R5 u4 p, [! e% D- N
" c" p7 \7 s0 Q7 L; E1 I第六目标:因道路限制,工厂2到用户4的路线应尽量避免运输任务;
# `- K! a" j$ n2 w" M
: ^/ P' ~1 h4 L! _+ _第七目标:用户1和用户3的满足率应尽量保持平衡;/ [. V# \' O) Q1 h) e1 h8 a
5 a; L# M" ~; ]- g3 _4 ~6 h( L
第八目标:力求减少总运费。( u$ F7 v" `+ c+ T2 F6 ~0 J) W; c" X  C
" x  }- ~7 G, g' i) T+ J4 N
请列出相应的目标规划模型,并用LINGO程序求解。! I1 ]" f: s6 A* I! s; P. f7 W

2 F3 b! k: n) ~! H/ o3 ~解  (1)求解原运输问题 由于总生产量小于总需求量,虚设工厂4,生产量为100个单位,到各个用户间的运 费单价为0。用LINGO软件求解,得到总运费是2950元,运输方案如下表所示。 6 X& ]3 U) e( M4 _% X2 C  B! V2 F
) D$ }. t7 x: ]9 y' c( r

/ I1 e# I3 g' c8 |6 b% i6 p; w
0 c# f' f5 }+ I  K(2)下面按照目标的重要性的等级列出目标规划的约束和目标函数。
1 w. ?( B7 b4 g( K' c* b
: G  M; |; t+ y# c6 S( T5 Q# D# ?% ?, k, A: Y6 I6 F. k4 D6 Y: t
6 e; ], E8 t( ]  m  L; t. j
- U6 W+ {& j( }6 ^3 d1 ?
编写LINGO程序如下:
! f# [/ ^6 p' a& k- w9 u+ ?' e) a+ p- x2 e+ Q
model: % _0 e0 h/ v, p+ L- J' t3 w" {& E  f+ ?
sets: 0 O( u8 p( `& m/ ^( X  Z5 |
level/1..8/:p,z,goal; ' [; b" y2 W+ Q. x$ A; j
s_con_num/1..13/:g,dplus,dminus;
( Y. J: [* k5 xplant/1..3/:a; $ l1 H1 G0 l3 D% i
customer/1..4/:b;
7 M0 t5 b, H1 `* b! h3 a* {4 kroutes(plant,customer):c,x; ( }. Y  q  `" a4 j+ M. v" M+ E
obj(level,s_con_num)/1 9,2 1,3 2,3 3,3 4,3 5,4 6,4 7,4 8,4 9,5 10,6 11,7 12,8 13/:wplus,wminus;
6 ~8 p8 A3 e; A* s2 gendsets 7 q0 b1 A$ t) z. X: j, F1 Z) v: s7 _
data:
% z  M. U. M" q6 gctr=?;
! W+ ~4 v" }) {) y1 qgoal=? ? ? ? ? ? ? 0;
. o& D6 o* W* p; G8 Ta=300 200 400; 2 b! F) W% h. L, @9 A
b=200 100 450 250; 2 a2 H& `  Q0 ?7 g* n6 r* B
c=5 2 6 7 3 5 4 6 4 5 2 3;
7 \9 {9 S8 W" d! N' q5 S* wwplus=0 0 0 0 0 0 0 0 0 0 1 1 1 1; # f0 V* ~9 v5 U
wminus=1 1 1 1 1 1 1 1 1 1 0 0 1 0; 6 A$ I# E0 b$ @
enddata : w# R- b: z+ s6 X' S, L  C! {! i
min=@sum(level:p*z); ) ]$ x. J: ^' L& ?4 E  p- A9 I
p(ctr)=1; 0 w' h8 z0 S6 S5 O4 j6 s
@for(level(i)|i#ne#ctr:p(i)=0);
+ P! e" ]& C, ]- Z# B* Z. i8 @5 s4 [@for(level(i):z(i)=@sum(obj(i,j):wplus(i,j)*dplus(j)+wminus(i,j)* dminus(j))); @for(plant(i)sum(customer(j):x(i,j))<a(i)); x(3,1)+dminus(1)-dplus(1)=100;
  D0 h# I7 e# w$ e) _@for(customer(j)sum(plant(i):x(i,j))+dminus(1+j)-dplus(1+j)=0.8 *b(j);
4 B& f! J7 B; o@sum(plant(i):x(i,j))+dminus(5+j)-dplus(5+j)=b(j)); ' J+ C6 L. }* y  w5 W
@sum(routes:c*x)+dminus(10)-dplus(10)=3245; x(2,4)+dminus(11)-dplus(11)=0; @sum(plant(i):x(i,1))-20/45*@sum(plant(i):x(i,3))+dminus(12)-dplu s(12)=0; @sum(routes:c*x)+dminus(13)-dplus(13)=2950;
& e3 ^6 Q, b4 Y9 o; w, R@for(level(i)|i #lt# @size(level)bnd(0,z(i),goal));
$ D0 Q& F; R9 w/ tEnd  x, j, q: @, r- _

) m: z% [3 Z7 O经8次运算,得到最终的计算结果,见下表。总运费为3360元,高于原运费410元,超 过原方案10%的上限115元。
- A/ i3 d' l0 [
: `% {$ E( f5 D0 @$ X: u# I$ a! G
; r/ a, _  g' D/ [& }0 Q5 `3 z3 u
1 l" z( `# \. y( B7 m* g例8 根据某产品在各地的供需量安排调运方案- E6 ~9 {0 v% F8 b: u* f
某公司从三个仓库向四个用户提供某种产品。仓库与用户所在地的供需量及单位运价见下表。
: }) d0 c' r* \1 n' m' d) k5 M" Z9 u# H- o% J2 q7 @" s
( V  f7 {/ l3 @% k

$ _: m/ D, J. A8 V5 U
3 o9 @2 m- g2 Y  o  m" j/ x" U  W% f
9 O4 W# W( V, ?' ?! |7 H. y
  \. a( H* w4 A& q8 g1 b. n3 i

. ]- e$ K4 @' ?. h. X; h; Y' D) F6 A# z) `
计算程序如下:+ i1 q6 I" E8 J  a7 ]

$ z/ {; G, P+ v0 y2 v+ rmodel: 3 G+ A$ \! j7 O8 F3 s5 y1 U1 H
sets: , Y* E+ Q, o9 |3 {! x
plant/A1..A3/:a; ! E0 u) J. G- c. l- ~# m, Y" S  l
customer/B1..B4/:b; " a. k0 y" E, q
routes(plant,customer):c,x;
$ C, }8 I$ j/ D0 C2 I* f4 Bdeviation/1..12/:d1,d2,p1,p2;
8 R7 o$ f1 o* M/ @4 Uendsets
8 ]1 [1 I$ \% H2 ?data: : d6 P1 n* T4 K  ^. r
a=300 200 400;
" o3 P1 c5 ~% h+ }3 f9 N8 D0 ab=200 100 450 250; 1 l: ?: `' B4 G2 a% }* [
c=5 2 6 7 3 5 4 6 4 5 2 3;
) l* o' ^+ o8 ?- up1=0,0,0,100000,10000,1000,1000,1000,1000,0,10,0;
. h* V6 `2 G; T8 _p2=0,0,0,0,0,0,0,0,0,100,10,1;  y* V/ ^, t5 w0 R
enddata 6 J1 e( |4 H/ F6 Q! V7 _5 j
@for(plant(i):[con1]@sum(customer(j):x(i,j))<a(i)); - W  {  u/ S: S2 _) K0 B) e1 A
@for(customer(j):[con2]@sum(plant(i):x(i,j))+d1(j)=b(j)); + ]( |; J) h) @8 ?- l6 D0 ?+ N4 A
[con3] x(3,1)+d1(5)-d2(5)=100; 3 X4 u9 I8 J1 g. `8 z: ^$ @, \
@for(customer(j):[con4]@sum(plant(i):x(i,j))+d1(5+j)-d2(5+j)=0.8* b(j)); - i- T3 O! ^, d9 ?
[con5] x(1,2)-d2(10)=0;
# K# r; j* G  d  s: F5 Q: ^[con6] @sum(plant(i):x(i,1))-4/9*@sum(plant(i):x(i,3))+d1(11)-d2(11)=0; 8 z# K) i$ t4 {9 V- x1 @0 v3 |
[con7] @sum(routes:c*x)-d2(12)=0; 0 ?7 \6 r% d! b, A
[obj] min=@sum(deviation:p1*d1+p2*d2); , t. }7 f# B8 x) o1 f; a2 b! m0 c
End
2 t/ X; l$ `0 D8 U  ^3 x5 `; Y1 P+ B
/ n# Y# b2 G. m$ Q  V. i
  W7 q- R* d7 P6 t5 }; t- [) T' c

  q- Z  @; @: h8 h9 M1 T( V4 o6 ?! P& n
数据包络分析 2 N& W* v% A6 |3 v- z7 b+ E4 b
1978年A. Charnes, W. W. Cooper和E. Rhodes给出了评价多个决策单元(Decision Making Units,简称DMU)相对有效性的数据包络分析方法(data envelopment analysis, DEA)。 目前,数据包络分析是评价具有多指标输入和多指标输出系统的较为有效的方法。; o6 \8 i2 ~$ X$ a% D, E
! {2 }* r) r6 w  E9 M

$ x! S5 M2 v/ ~: |. R4 _, e 2.1  数据包络分析的基本概念
' c8 Z# K' O- N7 p(1)相对有效评价问题 3 a5 j; H' S/ r- ~
例9  多指标评价问题
. S3 H7 A, z: z* h/ |5 D某市教委需要对六所重点中学进行评价,其相应的指标 如下表所示。表中的生均投入和非低收入家庭百分比是输入指标,生均写作得分和生均 科技得分是输出指标。请根据这些指标,评价哪些学校是相对有效的。 6 U+ t& e$ E# j# `4 ]1 q
& B. j/ Y; J  x0 ~
! ~9 T9 T( D8 m
) A4 ^8 l+ ~* p5 {- ]! ~; I6 v
为求解例9,先对上表作简单的分析。 学校C 的两项输出指标都是最高的,达到29.4和317,应该说,学校C 是最有效的。 但从另一方面说,对它的投入也是最高的,达到108.13和99.6,因此,它的效率也可能 是最低的。究竟如何评价这六所学校呢?这还需要仔细地分析。 这是一个多指标输入和多指标输出的问题,对于这类评价问题,A. Charnes, W. W. Cooper和E. Rhodes建立了评价决策单元相对有效性的  模型。
4 r6 E8 s( `% y7 \7 P
3 k* Y5 D7 A1 E2 l+ O5 O3 N(2)数据包络分析的  模型 6 {$ K- z; g. P6 b
, \1 X9 c3 e2 ?& T
$ U& z- o) q, q

- v0 q" V5 ]! f5 D4 H. X, O. X2 j0 v& z7 B, O8 ^" Z, v9 t0 y' f

: k9 {2 b5 I+ Z+ cCharnes-Cooper变换 :将模型变为线性规划问题4 I# E2 y0 a7 k' ]2 ^
$ d) m( |6 L; @* U

( x. j! U6 C; E% ?
7 H+ Z7 m' o( H% D* E什么是 DEA有效?
- p6 _0 I) Z2 j* t& H4 D$ Y: E& Q" a# W# ]  j
9 ^: o) Z, ^6 {! U9 h$ S
6 D9 `/ I1 s! I3 j) {
(3) 模型的求解 4 v8 I$ w! v, M; w) `9 |

% z* c! v, J2 lmodel:
2 s% |  p, p7 l# ?* J4 h, [3 \. ]sets: $ j# f, y2 U  O3 P# D: {% V
dmu/1..6/:s,t,p;    !决策单元; 9 H; c" z9 h: y4 [; C; n) ]
inw/1..2/:w;        !输入权重;  
7 b% i& O4 _* I" J3 }+ aoutw/1..2/:u;       !输出权重; ' O' Y& A0 _) {8 Q$ |9 w9 B
inv(inw,dmu):x;     !输入变量; % k5 f  ]0 f. T
outv(outw,dmu):y;
& n0 h9 V: [% d  Fendsets * t+ p0 x3 I9 D! p
data: ; `- E# O& Y8 s5 N
ctr=?;
1 ]; ~1 l# l* r/ p6 G- F3 Q6 dx=89.39      86.25        108.13    106.38      62.40      47.19   
/ p! R0 V9 x2 W! b2 W" Y  64.3       99           99.6      96          96.2       79.9; " h" q" q- a  t% _& N7 ^
y=25.2       28.2         29.4      26.4        27.2       25.2   2 ?* b2 C7 E0 z; O. a
  223        287          317       291         295        222; ; b9 _, ^$ n/ v$ m7 |6 y4 P
enddata ' C* d9 D0 A. {& @
max=@sum(dmu:p*t);
2 D* x1 z3 V* Z( p6 H5 M$ Yp(ctr)=1; - ^9 R3 E/ }2 F. A
@for(dmu(i)|i#ne#ctr:p(i)=0);
7 l- ~6 U% P# T! T@for(dmu(j):s(j)=@sum(inw(i):w(i)*x(i,j));
3 P' p8 F3 v  u' b9 D8 Y/ c/ k" gt(j)=@sum(outw(i):u(i)*y(i,j));s(j)>t(j)); + z6 T4 C8 Q6 \7 E8 t/ Z" b) N1 J
@sum(dmu:p*s)=1;
; t* v/ s  H; O" P0 Vend 0 S- x% o8 H1 B% v3 x$ u4 X

+ r$ L* S/ }3 f+ c6 V& T8 |3 X
2 u& A& ]! i4 v9 r: ]$ A  x" r9 [- f; w
目标规划模型习题" }& A( a3 P8 F/ N4 l* A* o
1.一个小型的无线电广播台考虑如何最好地安排音乐、新闻和商业节目时间。依 据法律,该台每天允许广播12小时,其中商业节目用以赢利,每分钟可收入250美元, 新闻节目每分钟需支出40美元,音乐节目每播一分钟费用为17.50美元。法律规定,正 常情况下商业节目只能占广播时间的20%,每小时至少安排5分钟新闻节目。问每天的 广播节目该如何安排?优先级如下:
4 F2 i" t& t! `9 m  e; m+ X. T& w! u$ B5 R/ A1 L3 H
:满足法律规定的要求;                    :每天的纯收入最大。
+ T- D" c7 ~- X( H) u
' ?( q) z- n1 y试建立该问题的目标规划模型。
0 j, n0 H& T; v1 h, f- D1 k" L+ `' i9 I: v
2. 某工厂生产两种产品,每件产品I可获利10元,每件产品II可获利8元。每生产一件 产品I,需要3小时;每生产一件产品II,需要2.5小时。每周总的有效时间为120小时。 若加班生产,则每件产品I的利润降低1.5元;每件产品II的利润降低1元。决策者希望在 允许的工作及加班时间内取最大利润,试建立该问题的目标规划模型,并求解。 . c2 F- X1 o& h# ?( E

( U6 v: e  w- K- W2 |* D* i* Z, r7 L1 p: U. c* e( ]
————————————————+ A0 v) l9 t+ D1 ^" a0 Y0 C, b
版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。) N6 S5 k; g( o' J+ c' ?
原文链接:https://blog.csdn.net/qq_29831163/article/details/89503090! ?% r( e4 s/ h0 t

2 M5 d' K1 Z/ J7 F, C& g5 N
, u" F5 f) C$ R( F3 `




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5