竞 赛 论 文
竞赛分组: 2010JM036
竞赛题目: 酒店客房的最优分配
组 员: 姚华燕、李俊、王留凤
所在学院: 信息与计算科学学院
信息与计算科学学院 制版
北方民族大学第六届数学建模竞赛承诺书
为保证竞赛的公平、公正,维护竞赛的严肃性,在竞赛期间,我们承诺遵守以下竞赛规定:只在本参赛队的三人之间进行问题的讨论,绝不与本参赛队外的其他人讨论与竞赛题目相关的任何问题,不抄袭、剽窃他人的成果,引用的参考文献在答卷中进行标注。
承 诺 人 签 名:
承诺人所在分组:
承诺人所在学院:
年 月 日
摘要
根据酒店的商务间和标准间提供单,会务组提供的需求单以及酒店对房间的报价单,我们假设了多种策略,建立了相应的模型,通过相互的比较,从中寻求出最优异的方案,使得酒店的利润最大。
在常规策略中,我们完全按照客户提出的不同类型客房预订要求,建立了线性优化模型,采用lingo软件求的最终的利润是1419212元。
在免费升级策略中,通过分析会务所提供的标准间和商务间的需求单以及酒店客房的可提供量,我们知道,商务间能完全满足客户的需求,而标准间从周三到周六出现了明显的不足。我们采取的策略是将部分的商务间免费升级成标准间。类似于模型一,我们也建立了线性优化模型,采用lingo计算的利润是1352613元。与策略一比较可知,免费升级策略所采用的将商务间变成标准间来一味的去满足最大住宿量的方案反而使得从利润降低。可见简单的考虑将商务间变成标准间是有所欠缺的。
折扣优惠策略中,我们采用了对商务间进行打折促销来吸引顾客手段,比较发现,当折扣为9时,所获得的利润比较可观。此时我们建立线性优化模型求的利润为1486260元,比常规策略的目标值1419212元提高4.72%,比免费升级策略的目标值1352613元提高9,88%。可以看出,折扣策略较前面有所提升。
前三种策略虽说解决了部分问题,但仍有很大的欠缺,我想的是酒店的标准间和商务间有很多类型,比如,商务标间、行政单间、豪华套房等等,标准间也分为单人间 双床的(情侣的) 四人的套间的等等。那么我们可以依据不同房间提供的服务来给于不同的优惠
一、问题重述……………………………………………………………………
二、问题提出……………………………………………………………………
三、问题分析……………………………………………………………………
四、模型假设……………………………………………………………………
五、模型的符号说明………………………………………………………………
六、模型的建立于求解……………………………………………………………
6.1、常规策略……………………………………………………………
6.2、免费升级策略…………………………………………………………
6.3、折扣优惠策略…………………………………………………………
6.4、模型的推广……………………………………………………………
七、模型的优缺点………………………………………………………………
7.1优点……………………………………………………………………
7.2缺点……………………………………………………………………
八、参考文献……………………………………………………………………
一 问题重述
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 |
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期天 | |
星期一 | 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 |
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期天 | |
星期一 | 888 | 1690 | 2530 | 3198 | 3998 | 4798 | 5023 |
星期二 | 888 | 1690 | 2530 | 3198 | 3998 | 4562 | |
星期三 | 888 | 1690 | 2530 | 3374 | 4012 | ||
星期四 | 888 | 1776 | 26 | 3219 | |||
星期五 | 999 | 1998 | 2697 | ||||
星期六 | 999 | 1998 | |||||
星期天 | 999 |
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期天 | |
星期一 | 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 |
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期天 | |
标准间 | 110 | 140 | 160 | 1 | 149 | 150 | 150 |
商务间 | 80 | 120 | 120 | 120 | 118 | 118 | 118 |
请根据表1至表5的信息,以酒店收入最大为目标,针对一下3种不同情况,制定客房分配方案。
(1)在常规策略情况下,制定出了客房分配方案。
(2)在情况下免费升级策略,我们将一部分商务间客房按标准间的需求进行了分配并收费。
(3)在折扣优惠策略情况下,我们采用打折优惠的办法鼓励部分顾客改变原来的需求,选择其它价位客房。
(4)根据酒店所提供的更多类型的客房以及优惠策略,我们将以上模型进行了推广,提出了相对更好的客房分配方案。
三 问题分析
对于问题一,在两类客房的分配量都不超出各自的需求量的情况下,由于分配量越大收入越大,所以当以收入最大为目标时,分配会尽量满足需求;在连续若干天入住时,每天分配的房间数都不应该超过当天房间的提供量。采用LINGO软件求解整数线性规划模型,得出比较合理的客房分配房间。
对于问题二,本文认为免费升级,是在标准间不够分配,而商务间有剩余的情况下,将一部分商务间按对标准间的需求进行分配并收费,有问题一知,有条件实行这种策略,在建立这种分配时需考虑:分配为两类客房的总和不超出对标准间的需求;商务间的分配和需求的关系;标准间的房源问题;商务间的房源问题。同问题一,采用LINGO软件求解整数线性规划模型,得出比较合理的客房分配房间。
对于问题三,所谓的优惠,是在首选价位客房无法满足需求,而其他价位客房有剩余的情况下,采用打折优惠的办法鼓励部分顾客改变原来的需求,选择其他价位客房。通过对问题进一步分析,我们还是采用LINGO软件求解整数线性规划模型,得出比较合理的客房分配房间。
对于问题四,我们根据具体的房间类型,比如标准间里的单人间,双床(情侣的),四人套间等,商务间里的商务标间、行政单间、豪华套房等,制定出了相应的优惠策略,使得当某种类型的房间不够时,相应的策略能吸引客户,让他们改变初衷,选择我们其他类型的房间,从而实现利益的更大化。
四 模型假设
1假设已经预定住的房间资源不能变动,酒店管理者在任何时段都掌握所有的房源剩余情况。
2 假设周边环境没有变化。
3 在建立模型时,忽略客房人员的心理因素。
五 模型的符号说明
k=1:标准间价位客房;
k=2:商务间的价位客房;
d:类客房的需求单上从第天入住到第天的房间数;
R:类客房的报价单上从第天入住到第天的价格;
C:类房间第天的可提供量;
X:分配类客房从第天入住到第天的房间数。
六 模型的建立与求
6.1、常规策略
模型的建立:
记两类价位客房分别为(标准间)和(商务间),星期一到星期日为(或,)=1到(或,)=7,类客房的需求单上(表1和表2)从第天入住到第天的房间数为,类客房的报价单上(表3和表4)从第天入住到第天的价格为,类房间第天的可提供量(表5)为。设分配类客房从第天入住到第天的房间数为,这是问题的决策变量。以酒店收入最大为目标,可以建立如下的整数线性规划模型。
Max=X;
s.t.Xd,k=1,2;i,j=1,2..7,
C,S(k,l)={(k,I,j)/ilj},k=1,2;l=1,2..7,
X0,整数,k=1,2;i,j=1,2…7
对这个模型做几点解释:第一个约束表示两类客房的分配量都不应超出各自的需求量,当然,由于分配量越大收入越大,所以当以收入最大为目标时,分配会尽量满足需求;第2个约束要求在连续若干天入住时,每天分配的房间数都不应超过当天房间的提供量,其中表示这样一些从到的集合,如
;另外,按照符号下标的定义应有,但是考虑到编程计算简单起见,不做这样的规定,而只需当时令,按照约束条件自然就有。
模型求解
采用LINGO软件求解整数线性规划模型(1),程序见附录1。
输出前5行为
Global optimal solution found.
Objective value: 1419212.
Total solver iterations: 5
Variable Value Reduced Cost
DEMAND( 1, 1, 1) 2.000000 0.000000
这个结果告诉我们,计算最优解一共用了5次迭代,最优目标值为1419212,表示按计算结果分配客房将有1419212元的收入。输出中的VAR(1,i, j)是,即标准间的最优分配方案,将它整理成表6。VAR(2,i, j)是,将它整理成表7。
计算结果中标示行
Row Slack or Surplus Dual Price
之后的数据为模型(1)的每一个式子对应的结果。第1行对应目标函数值,第2行到第99行对应于第1个约束的98个不等式,其数值表示按最优方案分配后原需求单上的欠缺房间数,在表6和表7中列入分配数值后面的括号内(没有括号的表示不欠缺,商务间没有欠缺)。第100行到113行对应于第2个约束的14个不等式,表示每天客房的剩余数量,分别填在表6和表7的最后一行。
表6 旅行社标准间分配方案(单位:间)
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 | |
星期一 | 2 | 20 | 8 | 10 | 16 | 18 | 7 |
星期二 | 6 | 0 | 8 | 12 | 10 | 20 | |
星期三 | 12 | 17 | 0(14) | 0(10) | 27(3) | ||
星期四 | 0 | 3(3) | 0(15) | 20 | |||
星期五 | 0(30) | 0(26) | 21 | ||||
星期六 | 18 | 0 | |||||
星期日 | 22 | ||||||
当日空房 | 29 | 5 | 0 | 0 | 0 | 0 | 30 |
附:0(15):‘0’表示分配的标准间数目,‘15’表示所缺的标准间数目。
表7 旅行社商务间分配方案(单位:间)
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 | |
星期一 | 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 | 6 |
综合表6和表7看出,从星期五到星期日标准间房源紧张,不能满足需求,而商务间都有空置的客房,于是,应该采用一些灵活的策略,充分利用闲置的房间,提高酒店的收益。
6.2免费升级策略
所谓免费升级,是在标准间不够分配、而商务间有剩余的情况下,将一部分商务间按对标准间的需求进行分配并收费,上面的计算结果表明,有条件施行这种策略。
(标准间),(商务间),的意义同前。设需要标准间、分配也是标准间从第天入住到第天的房间数为,需要标准间、而分配商务间从第天入住到第天的房间数为,需要商务间、分配商务间从第天入住到第天的房间数为,模型(1)变为
Max=X+X+X,
S,t. X+Xd,i,j=1,2,..7,
Xd,I,j=1,2..7,
C,S(1,l)={(l,i,j)/ilj},l=1,2..7,
C,S(2,l)={(2,i,j)/ilj},l=1,2..7,u=1,2,
X,X0,整数,u=1,2,i,j=1,2...7。 (2)
对这个模型做几点解释:在目标函数中需要标准间、但分配商务间的客房价格是(标准间价格);第1个约束表示需要标准间、而分配为两类客房的总和不超出对标准间的需求;第2个约束是商务间分配和需求的关系;第3个约束为标准间的房源;第4个约束为商务间的房源。
采用LINGO软件求解整数线性规划模型(2),程序见附录2。
计算输出中最优目标值为1352613元,VAR(1, i,j)是,即需要标准间、分配也是标准间的分配方案,将结果整理在表8中。
表8 免费升级时标准间分配方案
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 | |
星期一 | 2 | 20 | 2 | 10 | 16 | 18 | 7 |
星期二 | 6 | 0 | 8 | 0 | 10 | 20 | |
星期三 | 12 | 17 | 0 | 10 | 30 | ||
星期四 | 0 | 0 | 15 | 10 | |||
星期五 | 0 | 0 | 13 | ||||
星期六 | 17 | 0 | |||||
星期日 | 0 |
表9 免费升级时需要标准间,而分配商务间的分配方案
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 | |
星期一 | 0 | 0 | 6 | 0 | 0 | 0 | 0 |
星期二 | 0 | 0 | 0 | 12 | 0 | 0 | |
星期三 | 0 | 0 | 0 | 0 | 0 | ||
星期四 | 0 | 6 | 0 | 10 | |||
星期五 | 0 | 0 | 8 | ||||
星期六 | 1 | 0 | |||||
星期日 | 22 |
表10 免费升级时需要标准间,而分配两类房间的分配方案
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 | |
星期一 | 2 | 20 | 8 | 10 | 16 | 18 | 7 |
星期二 | 6 | 0 | 8 | 12 | 10 | 20 | |
星期三 | 12 | 17 | 0 | 10/10 | 30/3 | ||
星期四 | 0 | 6/3 | 15/15 | 20 | |||
星期五 | 0 | 0 | 21 | ||||
星期六 | 18 | 0 | |||||
星期日 | 22 |
表11 免费升级时商务间分配方案
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 | |
星期一 | 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 | |||||
星期日 | 0 |
6.3折扣优惠策略
所谓的优惠,是在首选价位客房无法满足需求、而其他价位客房有剩余的情况下,采用打折优惠的办法鼓励部分顾客改变原来的需求,选择其他价位客房。
(标准间),(商务间),的意义同前,记需要第类房、而分配第类房从第天入住到第天的价格为,需要与分配的客房类型不同时折扣因子为()。设需要第类房、而分配第类房从第天入住到第天的房间数为,(标准间),(商务间)。模型(1)变为
Max=,
S.t. ,
,S(k,l)={(u,k,i,j)/i},k=1,2,l=1,2,..7,
X0,整数,u,k=1.2;i,j=1,2.·7, (3)
其中在前两个模型的基础上很容易解释这个模型,只需注意第1个约束是而不是对求和不超出对类房的需求。
取折扣因子,采用LINGO软件求解整数线性规划模型(3),程序见附录3.
输出的前5行为
Global optimal solution found.
Objective value: 1486260.
Total solver iterations: 92
Variable Value Reduced Cost
ALPHA 0.9000000 0.000000
即算法在迭代92次后收敛到全局最优解。目标值为1486260元,比常规策略的目标值1419212元提高4.72%,比免费升级策略的目标值1352613元提高9,88%。
采用折扣优惠策略与常规策略显然是不相容的,因为后者不能利用另一类空闲的房间。折扣优惠策略与免费升级策略有什么关系呢?在商务间房源紧张、不能满足需求时,折扣优惠策略可以安排需要商务间的客户入住标准间,但免费升级策略无法实现。而在标准间房源紧张、不能满足需求时,折扣优惠策略就等同于免费升级策略吗?即它们的最优解一样,只是将免费升级房间的价格用折扣价替代?让我们通过计算结果来回答这个问题。
表12中的数字形式是,其中a=(输出中),(输出中),。
表12 折扣优惠时对标准间需求的分配方案
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 | |
星期一 | 0/2/2 | 0/20/20 | 8/0/8 | 10/0/10 | 9/7/16 | 18/0/18 | 7/0/7 |
星期二 | 6/0/6 | 0/0/0 | 8/0/8 | 12/0/12 | 10/0/10 | 13/7/20 | |
星期三 | 12/0/12 | 17/0/17 | 0/14/14 | 6/4/10 | 30/0/30 | ||
星期四 | 0/8/8 | 0/7/7 | 0/5/5 | 0/1/1 | |||
星期五 | 0/30/30 | 0/26/26 | 13/8/21 | ||||
星期六 | 18/0/18 | 0/17/17 | |||||
星期日 | 0/0/0 |
表13类似于表12,其中(输出中),(输出中),。
表13 折扣优惠时对商务间需求的分配方案
星期一 | 星期二 | 星期三 | 星期四 | 星期五 | 星期六 | 星期日 | |
星期一 | 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/10 | 0/7/7 | 0/6/6 | 0/10/10 | 0/4/4 | ||
星期四 | 8/0/8 | 0/7/7 | 0/5/5 | 0/1/1 | |||
星期五 | 0/5/5 | 0/8/8 | 0/24/24 | ||||
星期六 | 4/21/25 | 0/18/18 | |||||
星期日 | 0/0/0 |
应该指出,由上面这些模型得到的分配方案只考虑了客户需求和房间的可供应量这两个约束,实际问题可能还有其他的条件,另外,当制订的分配方案不能完全满足客户需求时,客户会改变原来的需求,这就需要反复调整,并且采用各种策略与客户磋商,争取达到双方满意的结果。
6.4模型推广
通过网上查资料知,现在的商务间和标准间有很多类型,比如商务间有商务标间、行政单间、豪华套房等等,标准间也分为单人间 双床的(情侣的) 四人的套间的等等。那么我们可以依据不同房间提供的服务来给于不同的优惠。从而使酒店获得更大的利益。
比如某会务组来酒店订房间,如果碰到某种房间不足(比如单人标准间)我们可以采用优惠来吸引他们入住其它类型的标准间,采取的手段有打折,或者降价(如原来300元我们可以降到299元),还有超级团购价,延时促销等等一系列手段。
当然对于其他的(比如商务间),我们也可以依据商务间的不同类型,来制定出相应的优惠。从而使各种房间之间形成互补,当然,并不是将所有房间都租出去才实现利益最大化,我们只需要给出一定优惠来达到吸引顾客的目的。
七 模型的优缺点
1 采用折扣优惠策略, 能利用另一类空闲的房间.而常规策略显然是不相容的,因为后者不能利用另一类空闲的房间。
2在商务间房源紧张、不能满足需求时,折扣优惠策略可以安排需要商务间的客户入住标准间,但免费升级策略无法实现。
3在标准间房源紧张、不能满足需求时,折扣优惠策略就等同于免费升级策略,即它们的最优解一样,只是将免费升级房间的价格用折扣价替代
4本文章不足之处在于模型的选择上有一定的主观性,希望今后有更客观的选取评价指标以及权重的取值。
5 我们自身对数学软件的使用还不太熟悉,今后的学习中,还需要努力。
八 参考文献
[1] 刘仁云等. 数学建模方法与数学实验.北京:中国水利水电出版社.2011
[2] 赵东方.数学模型与计算.北京:科学出版社,2007.
附录1
model:
sets:
class/1..2/;
day/1..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 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 26 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 1 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) @sum(dayandday(i,j)|(i#le#l)#and#(j#ge#l): var(k,i,j)) 附录2 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 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 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 26 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 1 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) 附录3 model: sets: subclass/1..2/; class/1..2/; day/1..7/; dayandday(day,day); dayandtype(class,day,day):demand,price; dayandsubtype(subclass,class,day,day):var,subprice; available(class,day):capacity; endsets data: alpha=0.9; 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 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 26 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 1 149 150 150 80 120 120 120 118 118 118; enddata @for(dayandday(i,j):subprice(1,1,i,j)=price(1,i,j)); @for(dayandday(i,j):subprice(2,1,i,j)= alpha * price(1,i,j)); @for(dayandday(i,j):subprice(2,2,i,j)= price(2,i,j)); @for(dayandday(i,j):subprice(1,2,i,j)= alpha * price(2,i,j)); max=@sum (dayandsubtype (u,k,i,j):var (u,k,i,j)* subprice (u,k,i,j)); @for(dayandtype(k,i,j):@sum(subclass(u):var(k,u,i,j))