航班调度方法和装置与流程

文档序号:18272467发布日期:2019-07-27 09:50阅读:752来源:国知局
航班调度方法和装置与流程

本发明涉及航空技术领域,特别涉及一种航班调度方法和装置。



背景技术:

航班调度属于排序问题的范畴,当问题的规模达到一定程度时它就是一个复杂问题。在解决航班调度问题时,最常用的调度方法是先到先服务(fcfs)算法,它依靠飞机预计的着陆时间(eta,estimatedtimeofarrival)的次序来决定飞机的着陆次序,没有经过任何优化,因此造成延误的可能性较大。



技术实现要素:

本发明实施例提供了一种航班调度方法和装置,用以减小航班的延误几率。所述技术方案如下:

一方面,提供了一种航班调度方法,所述方法包括:

基于各个航班在各个跑道上的预计着陆时间,随机生成多个航班调度序列,每个所述航班调度序列对应一条跑道,每个所述航班调度序列包括各个航班按照随机顺序在对应的跑道上的实际着陆时间;

根据所述多个航班调度序列生成初始调度序列,所述初始调度序列包括各个航班,且所述各个航班着陆的跑道和着陆时间是按照其在各个跑道上着陆的时间的先后排序,并选择最早着陆时间和其对应的跑道而产生;

以所述初始调度序列为基础进行迭代计算直到满足终止条件,在迭代计算中选出最优的调度序列,所述最优的调度序列为迭代计算出的调度序列中各个航班的延时之和最小的调度序列。

在本发明实施例的一种实现方式中,所述基于各个航班在各个跑道上的预计着陆时间,随机生成多个航班调度序列,包括:

为每个跑道随机生成一个航班着陆序列;

获取每个跑道上第一个着陆的航班的预计着陆时间;

根据相邻航班之间的着陆间隔,依次确定后续各个航班的实际着陆时间。

在本发明实施例的一种实现方式中,所述以所述初始调度序列为基础进行迭代计算直到满足终止条件,在迭代计算中选出最优的调度序列,包括:

第一步:从所述初始调度序列n中位置k任意选取长度为l的块将其移动到位置i,得到新的调度序列n1,每个块由l个连续地航班组成,k、l和i均为正整数;

第二步:计算按照所述新的调度序列n1时各个所述航班的实际着陆时间和延时时间,得到所述新的调度序列n1的解;

第三步:如果所述新的调度序列n1的解优于当前最好调度序列g的解,则将所述当前最好调度序列g更新为所述新的调度序列n1;

通过逐渐变化所述k、l和i的取值,重复步骤一至步骤三,直到满足终止条件。

在本发明实施例的一种实现方式中,1≤l≤0.15*n,0≤i≤n-1,i-l<k<i,n为航班数,n为大于2的正整数。

在本发明实施例的一种实现方式中,所述计算按照所述新的调度序列n1时各个所述航班的着陆时间和延时时间,得到所述新的调度序列n1的解,包括:

按照如下公式计算所述新的调度序列n1的解:

其中,f(n)为所述新的调度序列n1的解,sta(i)为所述航班的实际着陆时间,eta(i)为所述航班的预计着陆时间。

在本发明实施例的一种实现方式中,所述方法还包括:

比较所述新的调度序列n1的解与所述当前最好调度序列g的解的大小;

当所述新的调度序列n1的解小于所述当前最好调度序列g的解时,确定所述新的调度序列n1的解优于所述当前最好调度序列g的解。

在本发明实施例的一种实现方式中,所述终止条件为最大搜索时间。

在本发明实施例的一种实现方式中,所述方法还包括:

在连续迭代计算次数超过阈值且均未更新所述当前最好调度序列g时,以所述当前最好调度序列g或在所述连续迭代计算过程中得到的局部最好调度序列b作为扰动对象,随机选择k、l、i的值对扰动对象做块移动操作。

在本发明实施例的一种实现方式中,所述方法还包括:

生成一个随机数然后除以2取余;

当余数为0时选择所述局部最好调度序列b作为扰动对象;

当余数不为0时选择所述当前最好调度序列g作为扰动对象。

另一方面,本发明实施例还提供了一种航班调度装置,所述装置包括:

第一生成模块,用于基于各个航班在各个跑道上的预计着陆时间,随机生成多个航班调度序列,每个所述航班调度序列对应一条跑道,每个所述航班调度序列包括各个航班按照随机顺序在对应的跑道上的实际着陆时间;

第二生成模块,用于根据所述多个航班调度序列生成初始调度序列,所述初始调度序列包括各个航班,且所述各个航班着陆的跑道和着陆时间是按照其在各个跑道上着陆的时间的先后排序,并选择最早着陆时间和其对应的跑道而产生;

计算模块,用于以所述初始调度序列为基础进行迭代计算直到满足终止条件,在迭代计算中选出最优的调度序列,所述最优的调度序列为迭代计算出的调度序列中各个航班的延时之和最小的调度序列。

本发明实施例提供的技术方案带来的有益效果是:

在本发明实施例中,采用了新的方式生成初始调度序列,从初始调度序列开始进行迭代运算,并在运算过程中选出最优的调度序列,以使航班着陆过程中各个航班的延时之和最小,减小了航班的延误几率和延误时间。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种航班调度方法的流程图;

图2是本发明实施例提供的一种航班调度方法的流程图;

图3是本发明实施例提供的航班调度序列的示意图;

图4是本发明实施例提供的初始调度序列的示意图;

图5是本发明实施例提供的一种航班调度装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

图1是本发明实施例提供的一种航班调度方法的流程图。参见图1,该方法包括:

步骤101:基于各个航班在各个跑道上的预计着陆时间,随机生成多个航班调度序列,每个航班调度序列对应一条跑道,每个航班调度序列包括各个航班按照随机顺序在对应的跑道上的实际着陆时间。

这里,参与生成该着陆序列的航班为一段时间内有着陆需求的航班,将这些航班编号,然后随机排序。每个跑道的随机排序均是单独进行的。

步骤102:根据多个航班调度序列生成初始调度序列,初始调度序列包括各个航班,且所述各个航班着陆的跑道和着陆时间是按照其在各个跑道上着陆的时间的先后排序,并选择最早着陆时间和其对应的跑道而产生。

步骤103:以初始调度序列为基础进行迭代计算直到满足终止条件,在迭代计算中选出最优的调度序列,最优的调度序列为迭代计算出的调度序列中各个航班的延时之和最小的调度序列。

在该步骤中,通过选取各个航班的延时之和最小的调度序列来得到最优的调度序列,实现航班的延误率的减小,提高航班着陆的准点性能。

在本发明实施例中,采用了新的方式生成初始调度序列,从初始调度序列开始进行迭代运算,并在运算过程中选出最优的调度序列,以使航班着陆过程中各个航班的延时之和最小,减小了航班的延误几率和延误时间。

图2是本发明实施例提供的一种航班调度方法的流程图。参见图2,该方法包括:

步骤201:为每个跑道随机生成一个航班着陆序列。

这里,参与生成该着陆顺序的航班为一段时间内有着陆需求的航班,将这些航班编号,然后随机排序。每个跑道的随机排序均是单独进行的。

步骤202:获取每个跑道上第一个着陆的航班的预计着陆时间。

其中,机场控制室会计算出各个航班在各个跑道上以第一的顺序进行着陆的预计着陆时间。因此,在本发明实施例中,只需要获取到机场控制室计算出的各个航班在各个跑道上以第一的顺序进行着陆的着陆时间即可。

步骤203:根据相邻航班之间的着陆间隔,依次确定后续各个航班的实际着陆时间,随机生成多个航班调度序列,每个航班调度序列对应一条跑道,每个航班调度序列包括各个航班按照随机顺序在对应的跑道上的实际着陆时间。

该步骤具体可以包括:将相邻航班之间的着陆间隔c(i-1,i)加上航班n(i-1)的实际着陆时间sta(i-1),得到航班n(i)实际着陆时间sta(i);比较航班n(i)实际着陆时间sta(i)和航班n(i)预计着陆时间eta(i)的大小;若sta(i)>eta(i),则sta(i)=sta(i);若sta(i)<eta(i),则sta(i)=eta(i)。这样做,一方面能够保证飞机的安全着陆,不会在未达到间隔时间前着陆,另一方面,保证航班着陆的延时尽量小。这里的延时是指航班的预计着陆时间和实际着陆时间之间的时间差。

例如,在1号跑道上,第一个航班a的预计着陆时间为13点,第一个航班a和第二个航班b的着陆间隔时间为c(a,b)=20分钟,第二个航班的预计着陆时间eta(b)=13:40。sta(b)=sta(a)+c(a,b),sta(b)=13:00+20=13:20,因为sta(b)<eta(b),所以sta(b)=eta(b)=13:40。

这里,相邻航班之间的着陆间隔需要依据前后两个航班的机型确定。因此,该方法还可以包括:获取前后两个航班的机型与着陆间隔的对应关系;根据前后两个航班的机型以及该对应关系,确定着陆间隔。

图3是本发明实施例提供的航班调度序列的示意图,参见图3,跑道数量为k,航班数量为n,每个跑道对应一个航班调度序列,每个航班调度序列包括各个航班按照随机顺序在对应的跑道上的实际着陆时间sta(i),i为1~n中的任一个整数。

步骤204:根据多个航班调度序列生成初始调度序列,初始调度序列包括各个航班,且所述各个航班着陆的跑道和着陆时间是按照其在各个跑道上着陆的时间的先后排序,并选择最早着陆时间和其对应的跑道而产生。

具体地,该步骤可以包括:根据多个航班调度序列确定出每个航班在每个跑道上的实际着陆时间;确定出各个航班的最小着陆时间;按照各个航班的最小着陆时间对各个跑道进行选择,得到初始调度序列。

可选地,该方法还可以包括:确定出初始调度序列的解。这里,初始调度序列的解是指按照初始调度序列的顺序着陆时,各个航班的延时之和。该步骤具体可以包括:

第一步,获取各个航班在初始调度序列n中的延时。

第二步,根据各个航班在初始调度序列n中的延时确定初始调度序列n的解。

在本实施例中,每个航班都有一个预计着陆时间,则获取各个航班在初始调度序列n中的延时可以包括:

计算各个航班在初始调度序列n中的实际着陆时间,根据预计着陆时间和实际着陆时间确定各个航班在初始调度序列n中的延时。

具体地,可以根据以下公式(1)-(3)计算初始调度序列n的解:

sta(i)=max{eta(i),sta(i-1)+c(i-1,i)};(1)

d(i)=sta(i)-eta(i);(2)

其中,i表示初始调度序列n中的第i个航班,eta(i)表示第i个航班的预计着陆时间,sta(i)表示第i个航班的实际着陆时间,sta(i-1)表示第i-1个航班的实际着陆时间,c(i-1,i)表示第i个航班和第i-1个航班之间的间隔时间,d(i)表示第i个航班的延时,f(n)表示初始调度序列n的解。

需要说明的是,在本实施例中,每个航班的实际着陆时间等于上一航班的实际着陆时间加上间隔时间。

步骤205:从初始调度序列n中位置k任意选取长度为l的块将其移动到位置i,得到新的调度序列n1,每个块由l个连续地航班组成,k、l和i均为正整数。

在本发明实施例中,位置也即初始调度序列n中的顺序,例如第一个即为位置1,最后一个即为位置n。

在本发明实施例中,1≤l≤0.15*n,0≤i≤n-1,i-l<k<i,n为航班数,n为大于2的正整数。

需要说明的是,为了保证能够获得最优解,本申请中块的长度可以从1逐渐增大,k和i的位置也是在每个块长度l时遍历所有的位置。

步骤206:计算按照新的调度序列n1时各个航班的实际着陆时间和延时时间,得到新的调度序列n1的解。

在本发明实施例中,计算按照新的调度序列n1时各个航班的着陆时间和延时时间,得到新的调度序列n1的解,包括:

按照如下公式计算新的调度序列n1的解:

其中,f(n)为新的调度序列n1的解,sta(i)为航班的实际着陆时间,eta(i)为航班的预计着陆时间。

步骤207:如果新的调度序列n1的解优于当前最好调度序列g的解,则将当前最好调度序列g更新为新的调度序列n1。

通过逐渐变化k、l和i的取值,重复步骤205~207,直到满足终止条件。

进一步地,可以按照如下方法比较新的调度序列n1的解和当前最好调度序列g的解的优劣。也即,该方法还可以包括:比较新的调度序列n1的解与当前最好调度序列g的解的大小;当新的调度序列n1的解小于当前最好调度序列g的解时,确定新的调度序列n1的解优于当前最好调度序列g的解。

在本发明实施例中,终止条件中可以为最大搜索时间,例如10秒等。

步骤208:在连续迭代计算次数超过阈值且均未更新当前最好调度序列g时,以当前最好调度序列g或在连续迭代计算过程中得到的局部最好调度序列b作为扰动对象,随机选择k、l、i的值对扰动对象做块移动操作。

在本发明实施例中,可以按照如下方法选择扰动对象。也即,该方法还可以包括:

生成一个随机数然后除以2取余;

当余数为0时选择局部最好调度序列b作为扰动对象;

当余数不为0时选择当前最好调度序列g作为扰动对象。

在选定扰动对象后,对扰动对象做块移动操作,在该次移动操作中,块长取值为移动步长取值为扰动策略为随机选择符合取值范围的i、k、l的值进行块移动操作,实验停止条件为5秒的中央处理器(cpu)计算时间。

在进行扰动操作后,继续以扰动操作后的调度序列为基础,进行上述迭代计算。

该方法包括生成初始调度序列集合p;通过优化产生初始调度序列n;计算初始调度序列的解;假设初始调度序列为当前最优调度序列g;从初始调度序列中選任意位置k长度为l的块,将其换到位置i得到新的调度序列n1,计算序列n1的解;判断新的调度序列的解是否优于当前最优调度序列g的解,当新的调度序列n1的解优于当前最优调度序列g的解时,将新的调度序列n1作为当前最优调度序列g;判断是否满足终止条件,若不满足终止条件,则继续对当前最优调度序列g进行块移动操作,当在一定时间内g没有更新就对g进行扰动操作,若满足终止条件,则输出当前最优调度序列g。该航班调度方法,提供了新的初始序列生成方法,将优化加入到各个关键过程中,在搜索过程中选择了相对较大的邻域结构,扩大了搜索范围,从整体上提高了选出解最合适的调度序列的可能性。

图3是本发明实施例提供的一种航班调度装置的结构示意图。参见图3,该装置包括:

第一生成模块301,用于基于各个航班在各个跑道上的预计着陆时间,随机生成多个航班调度序列,每个航班调度序列对应一条跑道,每个所述航班调度序列包括各个航班按照随机顺序在对应的跑道上的实际着陆时间;

第二生成模块302,用于根据多个航班调度序列生成初始调度序列,初始调度序列包括各个航班,且所述各个航班着陆的跑道和着陆时间是按照其在各个跑道上着陆的时间的先后排序,并选择最早着陆时间和其对应的跑道而产生;

计算模块303,用于以初始调度序列为基础进行迭代计算直到满足终止条件,在迭代计算中选出最优的调度序列,最优的调度序列为迭代计算出的调度序列中各个航班的延时之和最小的调度序列。

可选地,第一生成模块301,用于为每个跑道随机生成一个航班着陆序列;获取每个跑道上第一个着陆的航班的预计着陆时间;根据相邻航班之间的着陆间隔,依次确定后续各个航班的实际着陆时间。

可选地,计算模块303,用于从初始调度序列n中位置k任意选取长度为l的块将其移动到位置i,得到新的调度序列n1,每个块由l个连续地航班组成,k、l和i均为正整数;计算按照新的调度序列n1时各个航班的实际着陆时间和延时时间,得到新的调度序列n1的解;如果新的调度序列n1的解优于当前最好调度序列g的解,则将当前最好调度序列g更新为新的调度序列n1;通过逐渐变化k、l和i的取值,重复上述步骤,直到满足终止条件。

可选地,1≤l≤0.15*n,0≤i≤n-1,i-l<k<i,n为航班数,n为大于2的正整数。

可选地,计算模块303,用于按照如下公式计算新的调度序列n1的解:

其中,f(n)为新的调度序列n1的解,sta(i)为航班的实际着陆时间,eta(i)为航班的预计着陆时间。

可选地,计算模块303,还用于比较新的调度序列n1的解与当前最好调度序列g的解的大小;当新的调度序列n1的解小于当前最好调度序列g的解时,确定新的调度序列n1的解优于当前最好调度序列g的解。

可选地,终止条件为最大搜索时间。

可选地,计算模块303,还用于在连续迭代计算次数超过阈值且均未更新当前最好调度序列g时,以当前最好调度序列g或在连续迭代计算过程中得到的局部最好调度序列b作为扰动对象,随机选择k、l、i的值对扰动对象做块移动操作。

可选地,计算模块303,还用于生成一个随机数然后除以2取余;当余数为0时选择局部最好调度序列b作为扰动对象;当余数不为0时选择当前最好调度序列g作为扰动对象。

需要说明的是:上述实施例提供的航班调度装置在进行航班调度时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的航班调度装置与航班调度方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1