优化设计案例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

优化设计案例

某航空公司每天有三个航班服务于A, B, C, H四个城市,其中城市H是可供转机使用的, 三个航班的出发地-目的地分别为AH, HB, HC,可搭乘旅客的最大数量分别为120人, 100人, 110人, 机票的价格分头等舱和经济舱两类. 经过市场调查,公司销售部得到了每天

旅客的相关信息, 见表1. 该公司应该在每条航线上分别分配多少头等舱和经济舱的机票?

问题分析:

公司的目标应该是使销售收入最大化, 由于头等舱的机票价格大于对应的经济舱的

机票价格, 于是想到先满足所有头等舱的顾客需求:

AH 上的头等舱数量为33+24+12=69;

HB上的头等舱数量为24+44=68;

HC上的头等舱数量为12+16=28;

模型建立:

设起终点航线i (i=1,2,…,5) 上销售的头等舱机票数为xi ,销售的经济舱机票数为yi , 这就是决策变量.

目标函数

Max Z=190x

1+90y

1

+244x

2

+193y

2

+261x

3

+199y

3

+140x

4

+80y

4

+186x

5

+103y

5

约束条件

(1) 三个航班上的容量限制:

例如, 航班AH上的乘客应当是购买AH, AB, AC机票的所有旅客, 所以x1+ x2+ x3+ y1+ y2+ y3≤ 120,

同理, 有x2+ x4+ y2+ y4≤ 100,

x3+ x5+ y3+ y5≤ 110.

(2) 每条航线上的需求限制:

0 ≤ x1≤ 33, 0 ≤ x2≤ 24, 0 ≤ x3≤12, 0 ≤ x4≤ 44, 0 ≤ x5≤16,

0 ≤ y1≤ 56, 0 ≤ y2≤ 43, 0 ≤ y3≤ 67, 0 ≤ y4≤ 69, 0 ≤ y5≤17.

线性规划模型

Max Z=190x

1+90y

1

+244x

2

+193y

2

+261x

3

+199y

3

+140x

4

+80y

4

+186x

5

+103y

5

x1+x2+x3+y1+y2+y3≤120

x2+x4+y2+y4≤100

x3+x5+y3+y5≤110

0≤x1≤33,0≤x2≤24,

0≤x3≤12, 0≤x4≤44, 0≤x5≤16 0≤y1≤56, 0≤y2≤43, 0≤y3≤67 0≤y4≤69, 0≤y5≤17

编写Lingo 程序:

max=190*x1+90*y1+244*x2+193*y2+261*x3+199*y3+140*x4+80*y4+186*x5+103*y5; x1+x2+x3+y1+y2+y3<=120;

x2+x4+y2+y4<=100;

x3+x5+y3+y5<=110;

x1<=33;x2<=24;

x3<=12;x4<=44;

x5<=16;

y1<=56;y2<=43;

y3<=67;y4<=69;

y5<=17;

求解结果为:

Global optimal solution found.

Objective value: 39334.00

Total solver iterations: 6

Variable Value Reduced Cost

X1 33.00000 0.000000

Y1 0.000000 74.00000

X2 10.00000 0.000000

Y2 0.000000 51.00000

X3 12.00000 0.000000

Y3 65.00000 0.000000

X4 44.00000 0.000000

Y4 46.00000 0.000000

X5 16.00000 0.000000

Y5 17.00000 0.000000

最优解为:

航线AH, AB, AC, HB, HC 上分别销售33, 10, 12, 44, 16张头等舱机票, 0,0,65,46,17 张经济舱机票, 总收入为39344元.

模型建立

设起终点航线 i (i=1,2,…,5) 上销售的头等舱机票数为 xi ,销售的经济舱机票数为 yi , 这就是决策变量.

考虑5个起终点航线 AH, AB, AC, HB, HC, 依次编号为i (i=1,2,…,5), 相应的头等舱需求记为 ai , 价格记为 pi ;相应的经济舱需求记为 bi , 价格记为 qi .三个航班 AH, HB, HC 的顾客容量分别是:c1=120, c2=100, c3=110.

目标函数 Max ∑=+5

1i i

i i i y q x p 约束条件

(1) 三个航班上的容量限制:

例如, 航班AH 上的乘客应当是购买AH, AB, AC 机票的所有旅客 , 所以

x 1 + x 2 + x 3 + y 1 + y 2 + y 3 ≤ c 1 ,

同理, 有 x 2 + x 4 + y 2 + y 4 ≤ c 2 ,

x 3 + x 5 + y 3 + y 5 ≤ c 3 .

(2) 每条航线上的需求限制:

0 ≤x i ≤a i , 0 ≤y i ≤b i ,

线性规划模型

Max ∑=+5

1i i

i i i y q x p x 1+x 2+x 3+y 1+y 2+y 3≤c 1

x 2+x 4+y 2+y 4≤c 2

x 3+x 5+y 3+y 5≤c 3

0≤x i ≤a i ,i = 1, 2,⋯ , 5,

0≤y i ≤b i ,i = 1, 2,⋯ , 5.

编写Lingo 程序: TITLE 机票销售计划;

SETS:

route/AH,AB,AC,HB,HC/:a,b,p,q,x,y;

ENDSETS

DATA:

a p

b q=

33 190 56 90

24 244 43 193

12 261 67 199

44 140 69 80

16 186 17 103;

c1 c2 c3=120 100 110;

ENDDATA

max=@SUM(route:p*x+q*y);

@SUM(route(i)|i#ne#4#and#i#ne#5:x(i)+y(i))<=c1;

@SUM(route(i)|i#eq#2#or#i#eq#4:x(i)+y(i))<=c2;

@SUM(route(i)|i#eq#3#or#i#eq#5:x(i)+y(i))<=c3;

@FOR(route(i):x(i)<=a(i));

@FOR(route(i):y(i)<=b(i));

求解结果为:

Global optimal solution found.

Objective value: 39334.00

Total solver iterations: 6

相关文档
最新文档