基于匈牙利算法的航班延误模型

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

基于匈牙利算法的航班延误模型问题三:问题分析:我们从我国航空运控操作的实际出发,将延误成本分为三部分:飞机置换、飞机调运、航班取消,我们需要在这些成本之间寻找一个平衡,以延误成本最小化(或延误时间最小化)作为目标函数构造不正常航班调度问题的数学模型。此外,我们还提出了旅客失望溢出成本和旅客失望率的概念,以便于对模型作出合理的说明。其中旅客失望溢出成本和旅客失望率定义如下:旅客失望溢出成本:由于航班延误使旅客不能按原计划到达目的地,旅客对航空公司的信誉失望,导致在下一次的消费选择时放弃该公司的航班而选择其它公司的航班或选择其它交通方式时对该公司造成的损失。旅客失望率:由于航班延误使旅客对航空公司信誉失望,在下一次的消费选择时不选择该公司航班的概率,旅客失望率与延误时间有关。其中,旅客失望溢出成本函数与旅客人数、票价和旅客失望率有关。最大失望溢出成本为本航班上的所有旅客在下一次消费时都不选择该公司的航班,此时的旅客失望溢出成本为:乘客人数×平均票价,此时旅客极度失望,旅客失望率为1,下一次100%不选择该公司的航班。旅客失望溢出成本采用公式“P=vwu”计算,v是该航班上的乘客数,w是该航班上的平均票价,u是旅客失望率。通过查阅相关文献可得到旅客失望函数23u=(t/60)/29,u是延误时间t(min)的函数。时间对:每个时间对是一个航班在本地机场和目的地机场的两个时间点,一个时间对代表一个航班的起始时间点与终止时间点。我们把把所有处于最早延误航班之后到达或停驻该枢纽机场的飞机、备用飞机和当天可以恢复使用的飞机都作为调度对象,将这些飞机重新指派给航班,使延误成本最低(或延误时间最短)。模型建立与求解:1、模型建立我们根据将时间段用时间点代替,能够得到精确的延误时间,即时间对起止点之差。下面定义一些参数和集合:下标和指示:i是飞机指示;f是航班下标。集合:fa:执行航班f的飞机;'fa:替换航班f的飞机;iT:可用飞机的就绪时问集合;’iT:最早延误航班之后的航班原计划到达时间集合;F:最早延误航班之后的航班集合;A:最早延误航班之后可用飞机集合;iA:能够执行,航班任务的机型集合;imA:能够在m机场维修的机型为I的飞机集合;Z:当天备用飞机和修复飞机的集合;变量:fijx:时间对i到j的航班;fy:取消航班f的标志,为1取消,为0不取消;fP:航班上的旅客失望溢出成本,其中23’fii(t/60)P=vw,t=T-T29;ijP:i时刻就绪的飞机执行j时刻的航班及后续航班的延误成本;bjijffbb∈ZP=P+cx,第一项是旅客失望溢出成本,第二项是调运备用或修复飞机的成本;bfc:把航班f指派给备用飞机的成本;jbx:O,1变量,当天可用飞机b指派给航班,为1,否则为0;fn:航班在时间对i和j之间经过的机场数。目标函数表示如下:i,jijf∈Fi∈Tj∈TminP或者i,jff∈Fi∈Tj∈Tminnt(1)约束条件:fifi∈A∪Ux+y=1,∀f∈F(2)fif∈Fx≤1,∀i∈A(3)fIifImif∈Fxb=1,∀i∈A,I∈A(4)Ifffiy∈0,1,b∈0,1,x∈0,1(5)式(1)是目标函数,使总时间延误最小或总延误成本最小;约束条件(2)是保证每个时间对上都有航班覆盖;(3)是保证每个航班都有飞机执行,否则就取消航班;(4)飞机型号要求,保证用于替换的飞机型号满足替换要求;(5)是整数约束,保证每个时间对上的航班取0或1。2、模型求解我们对模型的求解采用启发式方法搜索置换矩阵,调用匈牙利算法解决指派问题。匈牙利算法是由匈牙利科学家柯尼格首先提出的,它是求解指派问题非常有效和简便的算法。指派问题的最优解具有这样的性质,若从系数矩阵ijP的一行(列)各元素中分别减去该行(列)的最小元素,得到新的ijP矩阵,那么以新的ijP为系数矩阵求得的最优解和用原系数矩阵求得的最优解相同。首先构造延误时间置换矩阵ijT:11121n21222nijm1m2mnttttttT=ttti1,2,,n;j1,2,,m其中表示i时刻航班的飞机执行第j时刻航班的任务所延误的时间,根据延误时间置换矩阵ijT计算延误成本置换矩阵ijP:11121n21222nijm1m2mnppppppP=ppp其中ijP表示i时刻航班的飞机执行第j时刻航班的任务所产生的延误成本.下面是航班调整算法具体步骤1、初始化:1)建立延误航班表YW(已延误和即将延误的航班,字段包括:航班号、飞机型号、后续旅客人数、平均票价、原计划进出港时间、延误结束时间),对YW表中按进港时间升序排列;2)建立备用飞机总表BY(在当天机场关闭之前可以恢复使用的延误飞机和空闲的备用飞机,字段包括:飞机型号、航班号(初始为空)、停驻机场、到达时间、成本(初始为空)、后续旅客数(为0));3)建立置换飞机表ZH(从航班信息表中检索在延误航班原计划到达时间之后的所有航班,字段包括:飞机型号、航班号、进、出港时间、票价及旅客数),将ZH表追加到YW表;4)建立机型表AS,表中内容是机型iAS(i是时间点出发航班的飞机机型)和它的可置换机型。2、计算调运(ferry)飞机的成本:打开YW表,fori=1,打开BY表,如果BW≠,forj=1,计算BY表中的调运成本fC,fC=调运距离×每公里成本;iffC=0,则使用该飞机执行航班i,从BY表中删除j记录,从YW表中删除i记录,跳出循环。将fC存入BY表中第j条记录中的成本字段。j++,直到BY表到底。3、建立置换矩阵:将运算后的BY表追加到ZH表中,对ZH表中的航班作置换操作,是为了建立置换矩阵ijP和ijT.打开ZH表,fork=1,1)比较ZH表中k的飞机型号与i记录中飞机型号是否属于可置换关系,若不是,则在矩阵ijP第i位置(按行排列)填入一相对极大数,表示此置换不可执行;若是,则按照成本函数的公式计算溢出成本。其中,延误时间=第k条记录的‘到达时间’一第i条记录的‘到达时间’,将结果存入矩阵ijP的位置i行第k列中,将延误时间ijT存入的位置i行第k列中。2)k++,直到备用表到底,如果k是备用航班,即后续旅客为0的航班,要将k的调运成本加入延误成本中,这样就生成了置换矩阵的第一行。3)i++,直到YW表到底.最终生成了i行k列的置换矩阵ijP4、调用匈牙利算法进行任务指派,得到优化方案.我们以南方航空公司某日的航班为例,以延误成本最小为目标函数,依据上述模型具体分析其航班延误后的调度方案。该航空公司有4个始发航班,8个到达航班,其基本数据如表1所示。【表(一)】构造延误时间置换矩阵Tij:4f7f9f11fR54ij7911f0160/60280/60390/60360/60f0140/60260/60370/60340/60T=finf0120/60230/60200/60finfinf0110/6080/60finfinfinf00矩阵第一行分别表示由5f的飞机执行工的任务时的延误时间为0小时,执行7f的任务延误时间为(160/60)小时,inf表示航班不能起飞,不能置换。利用ijT计算ijP可得:ij060064139050228580202720068826174190295710260480P=inf0193115124341551infinf01617810034infinfinf00对矩阵ijP采用匈牙利算法处理,得到的最优置换方案如下:其中,1表示可以置换,矩阵ijP表示5f的飞机由的7f飞机执行,4f不变,7f的由9f执行,9f的由恢复飞机R执行,11f的不变。4f7f9f11fR154ij7911f01000f0000P=f00100f00001f00010

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功