酒店客房的最优分配 数学建模论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
酒店客房的最优分配
摘要
本文从酒店的最大利益出发满足了会务组提出的对酒店客房的需求。
分别针对常规策略、免费升级策略和折扣优惠策略三种情况建立数学模型,充分运用LINGO软件求解模型,比较三个模型的收入状况,由此可以得出客房分配的最优模型是折扣优惠策略模型,由此而来,若酒店商务间按九折优惠来满足会务组提出的对客房的需求可获得的最大收益为1467906元。
关键词:最大收益、LINGO软件、折扣优惠策略。
1.问题的重述
7天连锁酒店利用网络系统为常客户开设标准间和商务间两类客房的预定服务,酒店以一周(从星期一到星期日)为一个时段处理这项业务。
现在收到一个会务组提出的一个一周的预定需求单,见表1和表2.在表1中标以“星期一”那一行数字表示;星期一入住,只预定当天的2间,预定到星期二的20间,预定到星期三的6间,……,一直预定到星期天的7间。
其它各行及表2都是类似的。
酒店对旅行社的报价见表3和表4. 表中数字的含义与表1和表2相对应,如对于表3,星期一入住,只住当天的每间888元,住到星期二的每间1680元,……,一直住到星期天的每间4973元。
从这些数字可以看出,酒店在制定客房的报价时,对居住时间越长的顾客,给予的优惠越大。
考虑到周末客房使用率高的统计规律,这两天的价格定位相对较高。
表1 会务组提出的标准间需求单(单位:间)
星期一星期二星期三星期四星期五星期六星期天
星期一 2 20 8 10 16 18 7
星期二 6 0 8 12 10 20
星期三12 17 14 10 30
星期四0 6 15 20
星期五30 26 21
星期六18 0
星期天22
表2 会务组提出的商务间需求单(单位:间)
星期一星期二星期三星期四星期五星期六星期天
星期一12 7 6 10 5 4 7
星期二9 10 9 12 5 2
星期三12 7 6 10 4
星期四8 7 5 1
星期五 5 8 24
星期六25 17
星期天0
表3 酒店的标准间报价单(单位:元/间)
星期一星期二星期三星期四星期五星期六星期天
星期一888 1690 2530 3198 3998 4798 5023
星期二888 1690 2530 3198 3998 4562
星期三888 1690 2530 3374 4012
星期四888 1776 2664 3219
星期五999 1998 2697
星期六999 1998
星期天999
表4 酒店的商务间报价单(单位:元/间)
星期一星期二星期三星期四星期五星期六星期天
星期一1100 2200 3000 4000 5000 5900 6200
星期二1100 2200 3000 4000 5000 5900
星期三1100 2200 3000 4000 5000
星期四1100 2200 3300 4000
星期五1200 2400 3300
星期六1200 2300
星期天1200
表5 酒店客房的可提供量(单位:间)
星期一星期二星期三星期四星期五星期六星期天
标准间110 140 160 189 149 150 150
商务间80 120 120 120 118 118 118
根据表1至表5的信息,以酒店收入最大为目标,针对一下3种不同情况,制定客房分配方案。
(1)常规策略:完全按照客户提出的不同类型客房预定要求制定分配方案。
(2)免费升级策略:在标准间(低价位客房)不够分配、而商务间(高价位客房)有剩余的情况下,将一部分商务间客房按标准间的需求进行分配并收费。
(3)折扣优惠策略:在首选价位客房无法满足需求、而其它价位客房有剩余的情况下,采用打折优惠的办法鼓励部分顾客改变原来的需求,选择其它价位客房。
(4)根据酒店所提供的更多类型的客房以及优惠政策,试推广你的模型。
根据表1至表5得到了会务组从星期一到星期日每天的客房需求总量,结果如下:
表6 会务组每天客房需求总量
星期一星期二星期三星期四星期五星期六星期日
标准间81 135 192 213 255 195 120
商务间51 86 109 102 105 112 55 将表5和表6进行对比可以看出会务组提出的标准间数量在星期三到星期六超出了酒店可提供的客房数,但是酒店商务间可以满足会务组提出的客房需求量。
经过分析第2,3种
策略既可解决房源紧张的状况,又有利于提高酒店的声誉,还可以预见,这两种策略能够为酒店带来比常规策略更多的收入,让我们建立并求解这样一些模型,看看究竟能为酒店创造多大的效益。
2.常规策略
2.1模型建立
记两类价位客房分别为1k =(标准间)和2k =(商务间),星期一到星期日为i (或j ,l )=1到i (或j ,l )=7,k 类客房的需求单上(表1和表2)从第i 天入住到第j 天的房间数为,,k i j d ,k 类客房的报价单上(表3和表4)从第i 天入住到第j 天的价格为,,k i j R ,k 类房间第l 天的可提供量(表5)为,k l C 。
设分配k 类客房从第i 天入住到第j 天的房间数为,,k i j X ,这是问题的决策变量。
以酒店收入最大为目标,可以建立如下的整数线性规划模型。
,,,,,,m ax
k i j k i j k i j
R X ∑
,
,,,,..,1,2;,1,2,,7,k i j k i j s t X d k i j ≤==
{},,,,:(,,)(,)
,(,)(,,)/,1,2;1,2,,7,k i j k l i j k i j S k l X C S k l k i j i l j k l ∈≤=≤≤==∑
,,0k i j X ≥,整数,1,2;,1,2,,7
(1)k i j ==
对这个模型做几点解释:第一个约束表示两类客房的分配量都不应超出各自的需求量,当然,由于分配量越大收入越大,所以当以收入最大为目标时,分配会尽量满足需求;第2个约束要求在连续若干天入住时,每天分配的房间数都不应超过当天房间的提供量,其中(,)S k l 表示这样一些从i 到j 的集合,另外,按照符号下标的定义应有i j ≤,但是考虑到编程计算简单起见,不做这样的规定,而只需当i j >时令,,0k i j d =,按照约束条件自然就有
,,0()k i j X i j =>。
2.2模型求解
采用LINGO 软件求解整数线性规划模型(1),程序见附录1。
输出结果的前7行为 Global optimal solution found.
Objective value: 1419212. Objective bound: 1419212. Infeasibilities: 0.000000
Extended solver steps: 0
Total solver iterations: 10
这个结果告诉我们,计算最优解一共用了10次迭代,最优目标值为1419212,表示按计算
结果分配客房将有1419212元的收入。
输出中的VAR(1,i, j)是
X,即标准间的最优
1,,i j
分配方案,将它整理成表7。
VAR(2,i, j)是
X,将它整理成表7。
2,,i j
计算结果中标示行
Variable Value Reduced Cost
之后的数据为模型(1)的每一个式子对应的结果。
第1行对应目标函数值,第2行到第99
行对应于第1个约束的98个不等式,其数值表示按最优方案分配后原需求单上的欠缺房间数,在表7和表8中列入分配数值后面的括号内(没有括号的表示不欠缺,商务间没有欠缺)。
第100行到113行对应于第2个约束的14个不等式,表示每天客房的剩余数量,分别填在
表7和表8的最后一行。
表7 会务组提出的标准间分配方案(单位:间)
星期一星期二星期三星期四星期五星期六星期天
星期一 2 20 8 10 16 18 7
星期二 6 0 8 1 10(11) 20
星期三12 17 0 3(14) 30(7)
星期四0 0 3(6) 20(12)
星期五0 0(30) 21(26)
星期六18 0
星期天22
房屋剩余29 16 0 26 0 0 30
表8 会务组提出的商务间分配方案(单位:间)
星期一星期二星期三星期四星期五星期六星期天
星期一12 7 6 10 5 4 7
星期二9 10 9 12 5 2
星期三12 7 6 10 4
星期四8 7 5 1
星期五 5 8 24
星期六25 17
星期天0
房屋剩余29 34 11 18 13 6 63 从表7和表8可以看出,从星期六到星期日标准间房源紧张,不能满足需求,而商务间都有空置的客房,于是,应该采用一些灵活的策略,充分利用闲置的房间,提高酒店的收益。
3.免费升级策略
3.1模型的建立
所谓免费升级,是在标准间不够分配、而商务间有剩余的情况下,将一部分商务间按对标准间的需求进行分配并收费,上面的计算结果表明,有条件施行这种策略。
,,,,,,,,1k i j k i j k l d R C k =(标准间),2k =(商务间),,,1,2,,7i j l = 的意义同前。
设
需要标准间、分配也是标准间从第i 天入住到第j 天的房间数为1,,i j X ,需要标准间、而分配商务间从第i 天入住到第j 天的房间数为1,2,,i j X ,需要商务间、分配商务间从第i 天入住到第j 天的房间数为2,2,,i j X ,模型(1)变为
1,,1,,1,,1,2,,2,,2,2,,,,,m ax ,i j i j i j
i j i j
i j i j
i j
i j
R X R
X R
X +
+
∑∑∑
1,,1,2,,1,,..,,1,2;,1,2,,7,i j i j i j s t X X d i j i j +≤==
2,2,,2,,,,1,2;,1,2,,7,i j i j X d i j i j ≤==
{}1,,1,,:(1,,)(1,)
,(1,)(1,,)/,1,2,,7,i j l i j i j S l X C S l i j i l j l ∈≤=≤≤=∑
{},2,,2,,,:(,2,,)(2,)
,(2,)(2,,)/,1,2,1,2,,7,u i j l u i j u i j S l X C S l i j i l j u l ∈≤=≤≤==∑
1,,,2,,,0i j u i j X X ≥,整数,1,2,u =,1,2,,7i j = 。
(2) 对这个模型做几点解释:在目标函数中需要标准间,但分配商务间(客房价格是标准间价格);第1个约束表示需要标准间、而分配为两类客房的总和不超出对标准间的需求;第2个约束是商务间分配和需求的关系;第3个约束为标准间的房源限制;第4个约束为商务间的房源限制。
3.2模型的求解
采用LINGO 软件求解整数线性规划模型(2),程序见附录2。
结果的前6行为: Global optimal solution found.
Objective value: 1352613. Objective bound: 1352613. Infeasibilities: 0.000000 Extended solver steps: 0 Total solver iterations: 55
输出中最优目标值为1352613元,VAR(1, i ,j)是1,,i j X ,即需要标准间、分配也是标准间的分配方案,将结果整理在表9中。
表9 免费升级时标准间分配方案
星期一 星期二 星期三 星期四 星期五 星期六 星期日 星期一 1 10 8 3 5 18 7 星期二 0 0 8 12 10 20 星期三 12 17 0 10 30 星期四 0 0 11 20 星期五 0 0 6 星期六 18 10 星期日
输出中var21(i,j)是1,2,,i j X ,即需要标准间,而分配商务间的分配方案,将结果整理在表10中。
表10 免费升级时需要标准间,而分配商务间的分配方案
星期一 星期二 星期三 星期四 星期五 星期六 星期日 星期一 1 10 0 7 11 0 0 星期二 6 0 0 0 0 0 星期三 0 0 0 0 0 星期四 0 6 4 0 星期五 0 0 15 星期六 0 0 星期日
22
将表9和表10的对应项求和,即1,,1,2,,i j i j X X +,得到为满足标准间需要的客
房实际分配数量,再与常规策略的表7比较,可以计算出免费升级与常规策略相比时实际分配的增减值,结果列入表11,其中数字/a b 的a 表示免费升级的分配总量,b 表示增减量(0b =时略去)。
表11 免费升级时需要标准间,而分配两类房间的分配方案
星期一 星期二 星期三 星期四 星期五 星期六 星期日 星期一 2 20 8 10 16 18 7 星期二 6 0 8 12/11 10 20 星期三 12 17 0 10/7 30 星期四 0 6/6 15/12 20 星期五 0 0 21 星期六 18 10/10 星期日
22
输出中22(,)VAR i j 是2,2,,i j X ,即需要商务间、分配商务间的分配方案,将结果整理在表11中。
与常规策略的表7比较,可以发现,仅有的区别是这里不再分配客房给星期五、星期六和星期日入住1天和2天的商务间客户,其原因是为了最大的经济收入,将这些客房分配给了星期三和星期四入住标准间的住宿时间比较长的顾客了。
表12 免费升级时商务间分配方案
星期一 星期二 星期三 星期四 星期五 星期六 星期日 星期一 12 7 6 10 5 4 7 星期二 9 10 9 12 5 2 星期三 12 7 4 5 4 星期四 8 4 5 1 星期五 0 0 24 星期六 25 17 星期日
4.折扣优惠策略 4.1模型的建立
所谓的优惠政策,是在首选价位客房无法满足需求、而其他价位客房有剩余的情况下,采用打折优惠的办法鼓励部分顾客改变原来的需求,选择其他价位客房。
,,,,,1k i j k l d C k =(标准间),2k =(商务间),,,1,2,,7i j l =⋅⋅⋅的意义同前,记需要第
u 类房、而分配第k 类房从第i 天入住到第j 天的价格为,,,u k i j R ,需要与分配的客房类型不
同时折扣因子为α(01α<≤)。
设需要第u 类房、而分配第k 类房从第i 天入住到第j 天的房间数为,,,u k i j X ,1u =(标准间),2u =(商务间)。
模型(1)变为
,,,,,,,,,,m ax
((1))k u u k i j u k i j i j k u
R X ααδ+-∑
,
,,,,,..,1,2,,1,2,,7,k u i j k i j u
s t X d k i j ≤==∑
{},,,,,,:(,,,)(,)
,(,)(,,,)/,1,2,1,2,,7,u k i j k l u i j u k i j S k l X C S k l u k i j i l j k l ∈≤=≤≤==⋅⋅⋅∑
,,,0u k i j X ≥,整数,,1,2;,1,2,,7u k i j ==⋅⋅⋅,
(3) 其中,1,,
0,.k u
k u k u δ=⎧=⎨≠⎩
在前两个模型的基础上很容易解释这个模型,只需注意第1个约束是,,,u k i j X 而不是,,,u k i j X 对u 求和不超出对k 类房的需求。
4.2模型的求解
取折扣因子0.9α=,采用LINGO 软件求解整数线性规划模型(3),程序见附录3. 输出的前4行为
Global optimal solution found.
Objective value: 1467906. Infeasibilities: 0.000000 Total solver iterations: 40
即算法在迭代40次后收敛到全局最优解。
目标值为1467906元,比常规策略的目标值1419212元提高3.43%,比免费升级策略的目标值1352613元提高8.52%。
表12中的数字形式是//a b c ,其中(
(1,1,,)VAR i j ),1
,2,,i j
b X =(输出中
(1,2,,)VAR i j )
,c a b =+。
表13 折扣优惠时对标准间需求的分配方案
星期一
星期二
星期三
星期四
星期五
星期六
星期日
星期一 0/2/2 0/20/20 8/0/8 10/0/10 9/7/16 18/0/18 7/0/7 星期二 3/3/6 0/0/0 8/0/8 8/4/12 10/0/10 20/0/20 星期三 10/0/10
17/0/17 0/1/1 5/0/5 30/6/36 星期四 0/0/0 0/1/1 15/0/15 14/6/20 星期五 0/0/0 0/0/0 0/8/8 星期六 18/0/18
0/5/5 星期日
0/0/0
表13的3个数字可以与表8、表9和表10对应的3个数字比较,可以发现有一些不同。
特别是表13的c (折扣优惠策略下对标准间需求的分配总数)与表11(免费升级策略下对标准间需求的分配总数)相比,有2处不同:星期三只入住一天及星期三入住到星期六的分配数量,在免费升级策略下分别是12间和30间,而在折扣优惠策略下分别是10间和36间。
这对提高酒店的收益有很大的好处。
表14类似于表13,其中2,1,,i j a X =(输出中(2,1,,)VAR i j ),2
,2,,i j
b X =(输出中
(2,2,,)VAR i j )
,c a b =+。
表14 折扣优惠时对商务间需求的分配方案
星期一 星期二 星期三 星期四 星期五 星期六 星期日 星期一 0/12/12
0/7/7 0/6/6 0/10/10 0/5/5 0/4/4 0/7/7 星期二 0/9/9 0/10/10 0/9/9 0/12/12 0/5/5 0/2/2 星期三 0/12/12
0/7/7 0/6/6 0/10/10 0/4/4 星期四 8/8/16 0/7/7 0/5/5 0/1/1 星期五 0/0/0 0/0/0 0/24/24 星期六 0/25/25
0/17/17 星期日
0/0/0
将表12和表14进行对比可以发现在折扣优惠策略中商务间的需求大大增加,这对酒店的收益也大大提升了。
5.模型的推广
应该指出,由上面这些模型得到的分配方案只考虑了客户需求和房间的可供应量这两个约束,而且只提供了两类客房,实际上酒店客房类型远远不止两种,问题可能还有其他的条件,另外,当制订的分配方案不能完全满足客户需求时,客户会改变原来的需求,这就需要
反复调整,并且采用各种策略与客户磋商,争取达到双方满意的结果。
采用折扣优惠策略与常规策略显然是不相容的,因为后者不能利用另一类空闲的房间。
折扣优惠策略与免费升级策略有什么关系呢?在一类房源紧张、不能满足需求时,折扣优惠策略可以安排需要这类房间的客户入住其他类房间,但免费升级策略无法实现。
而在一类房源紧张、不能满足需求时,折扣优惠策略就等同于免费升级策略,即它们的最优解一样,只是将免费升级房间的价格用折扣价替代。
参考文献:
[1] Sylvain D,Vialle G,Humphreys B K. Yield management:applications to air
transport and other service industries. Paris:Presses de l’ Institut du Transport aerien,1994.
[2] Bitran G R,Mondschein S V. An application of yield management to the hotel
industry considering multiple day stays.Operations Research,1995,43(3):427-443.
[3] /view/b86f6de80975f46527d3e1fb.html
附录1 常规策略下求解模型(1)的LINGO程序
model:
sets:
class/1..2/; !两类房间;
day/1..7/; ! 7天一个时段; dayandday (day,day);
dayandtype(class,day,day):demand,price,var;
available(class,day):capacity;
endsets
data:
demand= !两类房间的需求;
2 20 8 10 16 18 7
0 6 0 8 12 10 20
0 0 12 17 14 10 30
0 0 0 0 6 15 20
0 0 0 0 30 26 21
0 0 0 0 0 18 0
0 0 0 0 0 0 22
12 7 6 10 5 4 7
0 9 10 9 12 5 2
0 0 12 7 6 10 4
0 0 0 8 7 5 1
0 0 0 0 5 8 24
0 0 0 0 0 0 0;
price = !两类房间报价; 888 1690 2530 3198 3998 4798 5023
0 888 1690 2530 3198 3998 4562
0 0 888 1690 2530 3374 4012
0 0 0 888 1776 2664 3219
0 0 0 0 999 1998 2697
0 0 0 0 0 999 1998
0 0 0 0 0 0 999
1100 2200 3000 4000 5000 5900 6200
0 1100 2200 3000 4000 5000 5900
0 0 1100 2200 3000 4000 5000
0 0 0 1100 2200 3300 4000
0 0 0 0 1200 2400 3300
0 0 0 0 0 1200 2300
0 0 0 0 0 0 1200;
capacity= !两类房间可供数量; 110 140 160 189 149 150 150
80 120 120 120 118 118 118;
enddata
max=@sum(dayandtype(k,i,j):var(k,i,j)* price(k,i,j)); !目标函数;
@for(dayandtype(k,i,j):var(k,i,j)<demand(k,i,j)); !需求约束;
@for(available(k,l):
@sum(dayandday(i,j)|(i#le#l)#and#(j#ge#l):
var(k,i,j))<capacity(k,l)); !供应约束;
@for(dayandtype:@gin(var)); !整数约束;
end
附录2 免费升级策略下求解模型(2)的LINGO程序
model:
sets:
class/1..2/;
day/1..7/;
dayandday(day,day):var1,var21,var22;
dayandtype(class,day,day):demand,price;
available(class,day):capacity;
endsets
data:
demand=
2 20 8 10 16 18 7
0 6 0 8 12 10 20
0 0 12 17 14 10 30
0 0 0 0 6 15 20
0 0 0 0 30 26 21
0 0 0 0 0 0 22
12 7 6 10 5 4 7
0 9 10 9 12 5 2
0 0 12 7 6 10 4
0 0 0 8 7 5 1
0 0 0 0 5 8 24
0 0 0 0 0 25 17
0 0 0 0 0 0 0 ;
!两类房间的需求;
price =
888 1690 2530 3198 3998 4798 5023
0 888 1690 2530 3198 3998 4562
0 0 888 1690 2530 3374 4012
0 0 0 888 1776 2664 3219
0 0 0 0 999 1998 2697
0 0 0 0 0 999 1998
0 0 0 0 0 0 999
1100 2200 3000 4000 5000 5900 6200
0 1100 2200 3000 4000 5000 5900
0 0 1100 2200 3000 4000 5000
0 0 0 1100 2200 3300 4000
0 0 0 0 1200 2400 3300
0 0 0 0 0 1200 2300
0 0 0 0 0 0 1200 ;
capacity=
110 140 160 189 149 150 150
80 120 120 120 118 118 118 ;
enddata
max=@sum(dayandday(i,j):var1(i,j)*price(1,i,j)+var21(i,j)*price(1,i,j)+var22(i, j)
*price(1,i,j));
@for(dayandday(i,j):var1(i,j)+var21(i,j)<demand(1,i,j));
@for(dayandday(i,j):var22(i,j)<demand(2,i,j));
@for(day(l):
@sum(dayandday(i,j)|(i#le#l)#and#(j#ge#l):
Var1(i,j))<capacity(1,l));
@for(day(l):
@sum(dayandday(i,j)|(i#le#l)#and#(j#ge#l):
var21(i,j)+var22(i,j)) < capacity(2,l));
@for(dayandday:@gin(var1));
@for(dayandday:@gin(var21));
@for(dayandday:@gin(var22));
end
附录3 折扣优惠策略下求解模型(3)的LINGO程序model:
sets:
w/1..7/:a1,a2;
links(w,w):d1,d2,x1,x2,x3,p1,p2;
endsets
data:
d1=2 20 8 10 16 18 7
0 6 0 8 12 10 20
0 0 12 17 14 10 30
0 0 0 0 6 15 20
0 0 0 0 30 26 21
0 0 0 0 0 18 0
0 0 0 0 0 0 22;
d2=
12 7 6 10 5 4 7
0 9 10 9 12 5 2
0 0 12 7 6 10 4
0 0 0 8 7 5 1
0 0 0 0 5 8 24
0 0 0 0 0 25 17
0 0 0 0 0 0 0 ;
a1=
110 140 160 189 149 150 150;
a2=
80 120 120 120 118 118 118 ;
p1=
888 1690 2530 3198 3998 4798 5023
0 888 1690 2530 3198 3998 4562
0 0 888 1690 2530 3374 4012
0 0 0 888 1776 2664 3219
0 0 0 0 999 1998 2697
0 0 0 0 0 999 1998
0 0 0 0 0 0 999;
p2=
1100 2200 3000 4000 5000 5900 6200
0 1100 2200 3000 4000 5000 5900
0 0 1100 2200 3000 4000 5000
0 0 0 1100 2200 3300 4000
0 0 0 0 1200 2400 3300
0 0 0 0 0 1200 2300
0 0 0 0 0 0 1200 ;
enddata
@for(links(i,j):(x1(i,j)+x2(i,j))<=d1(i,j));
@for(links(i,j):x3(i,j)<=d2(i,j));
@for(w(i):@sum(links(n,j)|n#le#i#and#j#ge#i:x1(n,j))<=a1(i));
@for(w(i):@sum(links(n,j)|n#le#i#and#j#ge#i:x2(n,j)+x3(n,j))<=a2(i)); max=@sum(links(i,j):(p1(i,j)*(x1(i,j)+(x2(i,j)))+p2*(x3(i,j))));
end。