【收益管理】单资源容量控制(3)两舱位模型(Two-class model)

Table of Contents

一、静态模型(static models)的基本假设

二、两舱位模型(Two-class model)

1)问题描述

2)目标函数及最优

3)边际分析


一、静态模型(static models)的基本假设

在介绍两舱位模型(Two-class model)之前,需要先了解一下在收益管理中关于静态模型(static models)的一些基本假设。首先,先回顾一下静态模型包括哪些模型。

在进行数学建模的时候,为了模型的可溯性和可分析性,一般都需要做一些假设,有一些假设似乎与现实世界不太相符,但很多时候模型只需要捕捉到最本质的东西,就不失为一个分析问题的好方法。而随着科学和技术的不断发展,很多看似“不合理”的假设也能逐渐被得到改进,使得我们的模型更加贴近现实。

我们对于静态模型的设置的基本假设包括:

1. 不同class的需求会在不交叉的时间段(nonoverlapping intervals)按价格由低到高的顺序依次到达。比如,休闲类的旅客会提前购买机票,而商旅类旅客会在临近起飞前购票。但这个假设明显过于严格,在现实生活中,不同class的需求是可能不按照某一顺序到达的,商旅类的旅客也可能提前就把票订好了。这一假设会在动态模型(dynamic model)中放开。

2. 每个class的需求是独立的(independent)随机变量。很大程度上,这一假设是为了便于分析,因为处理需求结构中的依赖关系将需要在观察到的需求历史上引入复杂的状态变量。

3. 对于每一特定class的需求独立于容量控制,不依赖于其他class的可用性。意思是每个个体的需求只能属于一个class,比如如果你是商旅类旅客,那么你不会想要去购买提供给休闲类旅客的低价票。很明显,这个假设也过于严格。

4. 静态模型没有考虑每个时期内的需求和控制过程的许多细节。

5. 假如有存在团购(group booking),我们可以只接受部分的预约

6. 假设决策者为风险中性

 

二、两舱位模型(Two-class model&#x

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我了解您的要求,以下是回答: 为了实现您的要求,我使用Python语言和Matplotlib库来可视化展示Titanic数据集的数据分布。 首先是舱位等级和存活的柱状图,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 统计每个舱位等级的存活人数 survived_by_pclass = titanic_data.groupby('Pclass')['Survived'].sum() # 绘制柱状图 plt.bar(survived_by_pclass.index, survived_by_pclass.values) plt.xticks([1, 2, 3]) plt.xlabel('Pclass') plt.ylabel('Survived') plt.title('Survived by Pclass') plt.show() ``` 接下来是登陆港口和存活的柱状图,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 统计每个登陆港口的存活人数 survived_by_embarked = titanic_data.groupby('Embarked')['Survived'].sum() # 绘制柱状图 plt.bar(survived_by_embarked.index, survived_by_embarked.values) plt.xlabel('Embarked') plt.ylabel('Survived') plt.title('Survived by Embarked') plt.show() ``` 然后是年龄和舱位等级的箱线图,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 绘制箱线图 plt.boxplot([titanic_data[titanic_data.Pclass == 1].Age.dropna(), titanic_data[titanic_data.Pclass == 2].Age.dropna(), titanic_data[titanic_data.Pclass == 3].Age.dropna()]) plt.xticks([1, 2, 3], ['1st', '2nd', '3rd']) plt.xlabel('Pclass') plt.ylabel('Age') plt.title('Age by Pclass') plt.show() ``` 最后是年龄和存活的直方图,代码如下: ```python import pandas as pd import matplotlib.pyplot as plt # 读取Titanic数据集 titanic_data = pd.read_csv('titanic.csv') # 绘制直方图 plt.hist([titanic_data[titanic_data.Survived == 0].Age.dropna(), titanic_data[titanic_data.Survived == 1].Age.dropna()], bins=20, label=['Not survived', 'Survived']) plt.xlabel('Age') plt.ylabel('Frequency') plt.title('Survival by Age') plt.legend() plt.show() ``` 以上是对Titanic数据集的数据分布可视化展示,希望能够满足您的需求。如有其他问题,请随时提出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值