某航空公司每天有三个航班服务于 A ,B ,C, H四个城市,其中城市H 是可供转机使用的。三个航班的出发地-目的地分别为 AH ,HB, HC ,可搭乘旅客的大数量分别为120人,100人,110人,机票的价格分头等舱和经济舱两类。经过市场调 查,公司销售部得到了每天旅客的相关信息,见表10。该公司应该在每条航线上分别分配多少头等舱和经济舱的机票? y3 N, W+ d' }$ F/ M b
+ \+ u. S6 g) x$ O. @& J @) |- q# a2 L/ a 7 z5 f5 m% F8 M* P" ^8 k# i (1)问题分析( p; I5 `& ?' W, H: g. [* o. `& d0 ?. G
5 A. ~/ e; }) b: R9 b6 Z2 |
公司的目标应该是使销售收入最大化,由于头等舱的机票价格大于对应的经济舱的 机票价格,很容易让人想到先满足所有头等舱的顾客需求:这样 AH 上的头等舱数量 =33+24+12=69,HB上的头等舱数量=24+44=68,HC 上的头等舱数量=12+16=28, 等等,但这种贪婪算法是否一定得到好的销售计划? ! J: U, |: r; i7 G- u$ T x5 q8 d2 S/ @; w9 Q) b( P, ~
(2)模型建立7 k! O% E+ i& |! _
6 ?3 Z% b6 C" G d! SMODEL: 2 y% G0 f. K( ]6 u! A1 p
TITLE 机票销售计划; 2 l2 A3 a( Q- K. |& H: L6 s6 VSETS: 5 d$ N+ A' X6 |/ ^ route /AH,AB,AC,HB,HC/:a,b,p,q,x,y; . Z8 j. x4 ]- g+ i* g8 T( T
ENDSETS ! }! u6 r1 w a& E8 z: h- ?
DATA: $ c2 A9 b. Q. M( B7 Ga p b q= 2 X9 X+ i7 j$ E6 b& _& s; k 33 190 56 90 5 v* @0 _0 y4 j' X% w6 |- r 24 244 43 193 3 j2 n: ?% O2 W+ h7 r2 r" t
12 261 67 199 8 r1 M0 A& n* d1 n4 @- N 44 140 69 80 ) d0 U: R- o" p4 I7 {
16 186 17 103 ; 3 i; F/ R% v& T+ n; M3 Nc1 c2 c3 = 120 100 110; ' m1 }# s" [4 }* [ N2 b2 ?& @
ENDDATA - W% Y) E0 K. D6 j2 g
[obj] Max = @SUM(route: p*x+q*y ); $ u0 b: x% k% H! u1 Q" J/ q
[AH] @SUM(route(i)|i#ne#4#and#i#ne#5:x(i)+y(i)) < c1; 3 f- L/ p) S D% h! G# H0 D[HB] @SUM(route(i)|i#eq#2#or#i#eq#4:x(i)+y(i)) < c2; & _. h# j3 D0 a9 ?3 y h[HC] @SUM(route(i)|i#eq#3#or#i#eq#5:x(i)+y(i)) < c3; , _2 D" u/ A8 Q
@FOR(route: @bnd(0,x,a);@bnd(0,y,b) ); 9 r* c! M9 S7 f& v, S; DEND " H/ R; ?4 P' j2 c计算结果为,航线AH ,AB ,AC,HB,HC 上分别销售33,10,12,44,16张头等舱机票,分别销售0,0,65,46,17张经济舱机票,总销售收入为39344元。从三 个约束的松弛/剩余(slack or surplus)均为0可知,机上已经全部满员。 4 m7 Q" ~( P, O2 x9 v2 P9 u+ z2 J. T( F7 l9 C) K1 E T7 k( A$ b
(4)结果讨论2 y( l% } ~; O- L6 n' x8 ?) t: h
6 P8 k: t* D' W4 `# X 按道理,机票张数还应该有整数约束。这里直接按连续线性规划解,得到的解已经 都是整数,所以也就没有必要再加上整数约束了。 后我们指出:最优解中 AB 线路上头等舱的需求(24人)并没有全部得到满足, 所以本节开始时介绍的贪婪算法的思想是不能保证求到最优解的。事实上,读者不难求出贪婪算法得到的解对应的总销售额是38854元,小于这里的优值39344元。 2 q1 K$ s" A) l4 I, g. k( |8 o$ Q
: M, Y( }2 u" m$ z. W* e& G———————————————— - t7 H& q/ i& d |7 i$ v0 ]: x版权声明:本文为CSDN博主「wamg潇潇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。* {2 V) E/ u% f0 s/ ]0 n
原文链接:https://blog.csdn.net/qq_29831163/java/article/details/894134960 S. B" a6 p4 f- b; @6 E; R
! X: c# n; r* {# Q2 {$ E% w0 V, \+ M