广东航空大数据创新大赛:机场停机位资源分配优化

本文介绍了广东航空大数据创新大赛中,针对机场停机位资源分配的问题,利用贪心算法和破坏与重建算法进行优化,结合线性规划模型,最终在比赛中获得优异成绩。文章详细阐述了算法思路、模型优化以及破坏方式,展示了算法的实施效果和收敛性。
摘要由CSDN通过智能技术生成

Another url:https://bulihanjie.github.io/2017/01/01/机场停机位资源分配优化/

题目描述

https://tianchi.shuju.aliyun.com/outsource/offer/projectdetails.htm?spm=5176.8199929.0.0.nPvIru&id=3092
机场每天都有大量的航班起降,每个航班降落以后都会分配到一个指定的机位进行保障,保障结束以后再离开进行下一航段。为了保障每个航班都有相应的机位,机场会提前安排好第二天的所有飞机机位资源。

成绩

复赛:得分14.40,排行榜第一名;
决赛:第一名

总体思路

1、 求解初始解:使用贪心算法快速得到一个可行解
2、 优化解:使用优化算法对初始解进行优化,我们采用的优化算法是破坏与重建算法

贪心算法

按时间顺序遍历每个航班,对每个航班执行下面操作:尝试安排到其可安排的机位中,若当前机位能安排(能安排代表满足各种约束)就直接安排,若没有机位能安排当前航班,则当前航班不安排。
只需不到1秒的时间,生成了13.28的初始可行解。

破坏与重建算法

步骤一、对一个已知的初始解,破坏掉一些已经被安排的航班,即一个破坏过程;
步骤二、对剩下已经安排的航班其机位保持不变,将当前所有未安排的航班使用线性规划模型求解当前情况下的最优解,即一个重建过程;
步骤三、重复此破坏与重建过程,持续对解进行优化,直到满足一个停止条件。

算法评价:此算法通过破坏可以打破局部约束,使其可以达到一个更优的解;通过线性规划模型进行重建,使其可以得到当前情况下的最优解,这个解不会比初始解差;由于已分配机位的航班在时间上是均匀分布,影响剩下航班的分配,因此未分配的航班虽多但重建效率很快。

线性规划模型

变量

二进制变量 g i j ∈ G g_{ij}∈G gijG表示航班分配机位的情况:
g i j = { 1 航班i分配到机位j 0 航班i没有分配到机位j g_{ij}=\begin{cases} 1& \text{航班i分配到机位j}\\ 0& \text{航班i没有分配到机位j} \end{cases} gij={ 10航班i分配到机位j航班i没有分配到机位j
滑道冲突的计算与机位的入滑道和出滑道有关,但和具体机位是无关的,具体不同滑道可以表示为 p k ∈ P p_k∈P pkP;
二进制变量 d i k ∈ D d_{ik}∈D dikD表示航班滑道冲突的情况:
d i k ∈ { 1 航班i的滑道为 p k ,且和其它航班滑道冲突 0 航班i的滑道非 p k ,或和其它航班没有滑道冲突 d_{ik}∈\begin{cases} 1&\text{航班i的滑道为$p_k$,且和其它航班滑道冲突}\\ 0&\text{航班i的滑道非$p_k$,或和其它航班没有滑道冲突} \end{cases} dik{ 10航班i的滑道为pk,且和其它航班滑道冲突航班i的滑道非pk,或和其它航班没有滑道冲突
每个航班的旅客人数用 h i ∈ H h_i∈H hiH来表示,总的旅客人数为 h s u m = ∑ i h i h_{sum}=\sum_i h_i hsum=ihi
定义总的航班数量为 n n n,总的机位数量为 m m m

目标函数

F ( G , P , D ) = m a x ∑ i , j 10 × g i j n + 3 × g i j × 1 机 位 j 是 近 机 位 n + 3 × g i j × 1 机 位 j 是 近 机 位 × h i h s u m − 1 × g i j × 1 机 位 j 是 临 时 机 位 n − ∑ i , k 1 × d i k n F(G,P,D)=max\sum_{i,j}10×\frac{g_{ij}}{n}+3×\frac{g_{ij}×1\\{机位j是近机位\\}}{n}+3×g_{ij}×1\\{机位j是近机位\\}×\frac{h_i}{h_{sum}} -1×\frac{g_{ij}×1\\{机位j是临时机位\\}}{n}-\sum_{i,k}1×\frac{d_{ik}}{n} F(G,P,D)=maxi

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 42
    评论
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值