第十五届研究生数学建模F题(机场新增卫星厅对中转旅客影响的评估方法)——飞机登机口优化分配问题

简介:

2018年9月13日到2018年9月19日举行了第十五届全国研究生数学建模竞赛。在此次竞赛中,我们选择了第F题(优化分配问题)并最终获得了三等奖(其实提交的时候,我本以为我们可以获得二等奖的)。

题目大意:

在多种约束条件下,如何分配飞机登机口,使满足1.尽可能多的飞机被安排在登机口,2.尽可能短的旅客中转时间(尽可能少的旅客换乘紧张度)即第二和第三问题,3.尽可能少的登机口使用数量。以上的目标优先级为1》2》3。具体问题可从网上找到,这里不再赘述。此文主要记录我队对该题的求解方法。

题目分析:

相对于其他选题,该题是一个很明显的优化分配问题,并且,数学建模比赛重在考察参赛队员解决问题的思路,而不是耗尽所有时间去追求一个最优解。我们通过对问题的反复阅读,结合比赛时官方提供的论坛解答,确定了如下的求解策略:1.这是一个典型的NP问题,很难或者说基本不可能在短时间内求得最优的分配方案,因此,我们通过优化算法在一定范围内求解问题的较优值;2.对于多目标的优化分配方案,我们首先通过惩罚函数将其化为单目标的优化方案,并以此作为判断解决方案的优劣;3.我们重点关注模型构建的合理性与可行性,论文结构的完整性与严谨性,而不是过分苛求结果的准确性。

在数据预处理阶段:

1.我们根据题意只保留了20日到达航班或21日出发航班的数据,删除了所有无法匹配的数据,大大简化了后续的计算并提高了模型的合理性。

2.为方便计算和验证,我们将诸如2018年11月12日10:20:30的时间数据统一转换为整型数据,因此时间间隔即为两个整型时间相减;另外,我们统一采用0,1,2等数字表示登机口类型、宽窄机型、到达/出发类型等字符信息。

在模型构建阶段:

我们根据题目要求构建目标函数,约束条件等信息,并尽量采用统一的字符进行表示。总的来说,只要捋顺了题目的各目标函数和约束条件,模型构建并不难。

在算法求解阶段:

我们采用了最简单、最传统的遗传算法求解该飞机登机口分配的NP问题。其中适应度函数即为各子问题的目标函数,染色体表示具体的解决方案(其中染色体长度即为飞机数量,如果没记错应该是303架次飞机),每一个基因表示一架飞机的登机口安排情况,其中数字1-N表示对应飞机被安排在1-N的登机口,数字N+1表示飞机被安排在临时登机口。对于不合理的解决方案(即染色体不满足约束条件),我们将该染色体的适应度降为0。在遗传算法初始化阶段,我们采用了先到先随机分配登机口的策略(包括随机分配到临时登机口),保证初始化时得到的解决方案必定为可行解(这样可以保证算法到最后一定会有可行解,即使该可行解并不是最优解)。我们的目标是通过多次算法求解,尽可能地获得近似最优解。在最终确定解决方案前,我们多次实验调整合适的种群规模、变异率、杂交率等参数。选择遗传算法求解该题的优势在于:1.易于理解,方便编码和解码;2.能够求解较优解,并在一定程度上逼近最优解;3.对于该题不同的3个小问题,主体代码不变,只需改变计算适应度的公式,极大地提高了编码效率以及正确率。

在论文撰写阶段:

数学建模比赛的最终结果,需要以文档的形式呈现。因此,撰写一篇完整的严谨的论文是该比赛的关键。我们不仅根据题目画了对应的柱状图,还做了算法的灵敏度分析,甚至做了对比实验(以此说明增加了卫星厅的好处)。但是,我们毕竟只得到了三等奖而不是一等奖,因此一定有某些地方存在缺陷,等官方公布优秀论文后,再加以研习。

最后:

在研究生的最后一年,参加了数学建模竞赛,从另一个方面挑战了自己,证明了自己也可以在高强度的数学建模竞赛中获得一席之地。自此,我短短的两年半的研究生生涯获得了学术论文、科研项目、学科竞赛的大丰收。唯一遗憾的是,这是我研究生阶段最后的一次机会,没有获得更高的奖项荣誉(毕竟提交时我以为我们二等奖还是稳的,万一运气好,还能拿个一等奖)。如果有兴趣,欢迎大家在我的资源处下载我队此次的论文及对应代码(C#)。

 

没有更多推荐了,返回首页