CN113487236A - 基于遗传算法的飞机排班调度方法 - Google Patents
基于遗传算法的飞机排班调度方法 Download PDFInfo
- Publication number
- CN113487236A CN113487236A CN202110874009.5A CN202110874009A CN113487236A CN 113487236 A CN113487236 A CN 113487236A CN 202110874009 A CN202110874009 A CN 202110874009A CN 113487236 A CN113487236 A CN 113487236A
- Authority
- CN
- China
- Prior art keywords
- flight
- airplane
- chromosome
- scheduling
- string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Strategic Management (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- Biomedical Technology (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Artificial Intelligence (AREA)
- General Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Traffic Control Systems (AREA)
Abstract
本发明公开的基于遗传算法的飞机排班调度方法,包括构建飞机排班染色体模型,获得初代种群并设置迭代次数g=0;构建用于评价飞机排班染色体适应度值的适应度函数,计算当代种群中每个飞机排班染色体的适应度值;根据个体选择策略对当代种群中的飞机排班染色体个体进行个体选择,获得锦标赛小组中中适应度值最优的飞机排班染色体c;将经过个体选择、染色体交叉、染色体变异操作的染色体加入到新一代种群中,作为新一代种群中的个体,最终经过多次迭代后,进化出适应度值最优的飞机排班染色体。本发明在保证航班合理执行的前提下,可以有效减小飞机延误对后续飞行任务的影响,充分利用航空公司现有资源,优化飞机排班调度方法性能。
Description
技术领域
本发明涉及飞机调度技术领域,具体涉及一种基于遗传算法的飞机排班调度方法。
背景技术
民用航空运输航空运输在我国的现代化运输体系中是一种重要的运输方式,占据着至关重要的地位。近年来民用航空运输产业一直保持高速、持久的发展态势,民用航空运输已经成为国民出行时必不可少的交通方式。正因为航空运输在我国运输体系中的重要地位和民用航空运输的特点,航空公司对民用航空运输的安全性、航班调度的合理性要求极为严格。
在民用航空运输发展初期,航班调度大多靠员工手动完成,工作量大,工作效率低。随着航空运输业的蒸蒸日上,航班数量与飞机数量越来越多,手工完成已无法满足需求,造成资源浪费,航班调度不合理,甚至产生危险。因此航空公司开始重视排班调度工作并开始研发自动化飞机排班调度方法。飞机排班调度方法就是在满足各项飞行约束的前提下,根据航班时刻表,合理规划飞机飞行航线,从而使每个航班都有一架飞机执行,但是,随着航班数量的增多,航班延误的问题凸显,现有的飞机排班调度方法已经无法满足需求,因此,研究考虑飞机延误的飞机排班调度方法,制定鲁棒性的飞机排班调度计划具有重要的意义。
发明内容
本发明针对以上问题提出了一种基于遗传算法的飞机排班调度方法。
本发明采用的技术手段如下:
一种基于遗传算法的飞机排班调度方法,包括以下步骤,
步骤1、构建飞机排班染色体模型,获得具有M个飞机排班染色体的初代种群,并设置所述飞机排班调度方法的迭代次数g=0;
步骤2、构建用于评价飞机排班染色体适应度值的适应度函数,根据所述适应度函数计算当代种群中每个飞机排班染色体的适应度值;
步骤3、判断迭代次数g是否达到最大迭代次数G,若是,执行步骤4,若否,执行步骤5;
步骤4、输出适应度值最优的飞机排班染色体;
步骤5、根据个体选择策略对当代种群中的飞机排班染色体个体进行个体选择,获得飞机排班染色体中适应度值最优的飞机排班染色体c;
步骤6、根据交叉概率公式计算所述飞机排班染色体c发生交叉的概率,并根据交叉的概率判断所述飞机排班染色体c是否发生交叉,若发生染色体交叉,则根据染色体交叉方法进行染色体交叉,获得交叉后的飞机排班染色体c′,并根据飞机排班染色体c′执行步骤7,若不发生交叉,则直接根据飞机排班染色体c执行步骤7;
步骤7、根据变异概率公式计算飞机排班染色体发生变异的概率,并根据变异的概率判断该飞机排班染色体个体是否发生变异,若是,则根据染色体变异方法进行染色体变异,得到变异后的飞机排班染色体c″,并执行步骤8;若否,则直接执行步骤8;
步骤8、将经过个体选择、染色体交叉、染色体变异操作的染色体加入到新一代种群中,作为新一代种群中的个体;
步骤9、步骤9、判断所述新一代种群中个体数目是否达到M,若是,执行步骤10,若否,执行步骤5
步骤10、则用新一代种群代替当代种群,并迭代次数g+1,并返回步骤2。
进一步地,所述步骤1包括以下步骤,
步骤100、获得飞机集合F={f1,f2,…,fN}和航班集合A={a1,a2,…,aP},构建包含用于存放首端航班的栈Stackh和用于存放尾端航班的栈Stackt的航班串;
步骤101、在航班集合A中随机选择一个航班加入栈Stackh中;
步骤102、根据栈Stackh.top航班的起飞机场,在航班集合A中选择一个降落机场与之相同的航班加入栈Stackt中;
步骤103、根据栈Stackh.top航班的降落机场,在航班集合A中选择一个起飞机场与之相同的航班加入栈Stackh中;
步骤104、根据栈Stackt.top航班的起飞机场,在航班集合A中选择一个降落机场与之相同的航班加入栈Stackt中;
步骤105、在生成航班串时计算航班串中的总航班时长,判断所述总航班时长是否大于飞机每日最大飞行时长限制,若否,重复步骤103和步骤104,若是,进行回溯操作,在栈中删除最近入栈中的航班,在航班集合A中重新选择一个未被选择过的其他航班,使航班串满足飞机每日最大飞行时长限制约束,若无法找到一个未被选择过的其他航班,则继续向前回溯;
步骤106、将栈Stackh与栈Stackt连接,并对连接后的航班串进行航班串约束检查,判断是否满足航班串约束,若否,则进行回溯操作,删除最近加入栈中的航班,在航班集合A中重新选择一个未被选择过的其他航班,直至航班串满足航班串约束,若是,则获得所述航班串,在飞机集合中选择一架空闲飞机执行该航班串任务,并执行步骤107;
步骤107、获取航班集合中剩余航班数量,并判断航班集合中剩余航班数量是否大于0,若是,返回步骤101,若否,飞机排班染色体数量加1并执行步骤108;
步骤108、判断所述飞机排班染色体数量是否小于M,若是,返回步骤101,若否,输出所述初代种群。
进一步地,所述航班串约束包括航班衔接地点约束、航班衔接时间约束、飞机基地约束、飞机最大飞行时间约束以及飞机过站时间约束。
进一步地,所述适应度函数构建如下:
H(C)=mini=[1,2,…,N]MinInter(fi,s) (1)
C*=argmaxCH(C) (2)
S.t
其中,fj.s表示给定飞机fj的航班串,MinInter(fj.s)表示航班串的最小间隔,即为任意相邻两个航班的飞行间隔时间的最小值,用公式(8)进行计算;
MinInter(fj.s)=mini=[1,2,…,l-1](fj.s[i+1].offtime-fj.s[i].landtime) (8)
fj.s[i+1].offtime-fj.s[i].landtime是给定飞机fj的航班串中第i+1个航班与第i个航班的飞行间隔;C表示给定飞机的排班调度,将C按飞机分类,整理成多个航班串的集合,即C={f1.s,f2.s,…,fN.s},F为给定飞机集合,F={f1,f2,…,fN}。
进一步地,所述步骤5中个体选择策略采用锦标赛选择和精英保留策略对飞机排班染色体个体进行个体选择。
进一步地,所述步骤6中染色体交叉包括以下步骤,
步骤60、在当代种群中选择两个发生交叉的飞机排班染色体ci、cj;
步骤61、在飞机排班染色体ci中随机选择一个航班串s,并获得航班串的第一个航班s[0];
步骤62、在机排班染色体cj中找到航班s[0]的位置l,并将航班串s连接到l后;
步骤63、将飞机排班染色体ci和飞机排班染色体cj中重复的航班加入候选集;
步骤64、根据候选集中航班执行飞机排班染色体cj航班串生成过程;
步骤65、输出交叉完成后的飞机排班染色体cj。
进一步地,所述步骤7中染色体变异包括以下步骤,
步骤70、在当代种群中选择发生变异的飞机排班染色体ck;
步骤71、在所述飞机排班染色体ck随机选择一个航班串;
步骤72、选择航班串中第一个航班或最后一个航班发生变异,且变异后的航班串满足航班起降约束;
步骤73、将变异前的航班加入候选集,并将原航班串中存在的变异后的航班所在航班串中其他航班加入候选集;
步骤74、对变异后的航班串进行航班串约束检查,若不满足所有航班串约束则进行回溯操作,并根据现有候选集中的航班进行航班串生成,若满足航班串约束,则根据现有候选集中航班进行染色体航班串生成。
进一步地,所述步骤6中采用公式(9)和公式(10)计算交叉概率,
其中,Pc为飞机排班染色体个体i发生染色体交叉的概率,g表示算法当前迭代次数,G表示算法最大迭代次数,hi表示当代种群中飞机排班染色体个体i的适应度函数值,表示当前种群中所有飞机排班染色体个体的平均适应度函数值,hmax表示当前种群中所有飞机排班染色体个体的最大适应度函数值。
进一步地,所述步骤7中采用公式(11)和公式(12)计算染色体变异概率,
其中,Pm为飞机排班染色体个体i发生染色体变异的概率,g表示算法当前迭代次数,G表示算法最大迭代次数,hi表示当前种群中飞机排班染色体个体i的适应度函数值,表示当前种群中所有飞机排班染色体个体的平均适应度函数值,hmax表示当前种群中所有飞机排班染色体个体的最大适应度函数值。
与现有技术比较,本发明提出的基于遗传算法的飞机排班调度方法具有以下有益效果,1、基于一维数组的染色体模型能够有效表达飞机排班调度问题,兼容性高,方便约束条件的修改增加,降低运算量、提高算法执行效率;2、根据染色体模型提出的种群初始化算法能够基于约束条件剪枝搜索空间,避免大量无效解的生成,从而大大加快算法的收敛速度,提高种群初始化的速度,保证了初代种群的质量;3、设计的适应度函数能够有效提高飞机排班调度计划鲁棒性;4、根据染色体模型设计的染色体交叉算法和染色体变异算法可以缩减求解空间、提高种群进化速度的;5、设计的自适应染色体交叉概率和染色体变异概率,可以提高种群的进化速度,加快收敛;6、基于遗传算法的飞机排班调度方法通过缩减解空间以更短的时间获得鲁棒性更高的飞机排班调度计划。
附图说明
图1为本发明公开的基于遗传算法的飞机排班调度方法的流程图。
具体实施方式
如图1所示本发明公开的基于遗传算法的飞机排班调度方法,包括以下步骤,
步骤1、构建飞机排班染色体模型,获得具有M个飞机排班染色体的初代种群,并设置所述初代种群的迭代次数g=0;
初始化初代种群:种群初始化的过程是生成M个飞机排班染色体的过程,每个飞机排班染色体中包含多个航班串,因此,生成飞机排班染色体首先要生成航班串;
生成航班串过程具体如下:将航班串分为两部分使用两个栈分别存放,栈Stackh用于存放首端航班,栈Stackt用于存放尾端航班,最后将两个栈连接形成一个航班串。航班串是由多个航班衔接形成的,在构建航班串时采用从两端向中间双向生成的方法,即首尾两端交替添加航班向中间生成,因此,在构建航班串时,建立两个栈,用于存放首端航班的栈Stackh和用于存放尾端航班的栈Stackt的航班串,最后将两个栈连接,形成一个航班串;
染色体中包含多个航班串,因此在生成染色体时多次生成航班串,直至航班集合中没有剩余航班,则完成一条染色体的生成。生成M个染色体即完成了种群初始化。
具体地,步骤1包括以下步骤,
步骤100、获得飞机集合F={f1,f2,…,fN}和航班集合A={a1,a2,…,aP},构建包含用于存放首端航班的栈Stackh和用于存放尾端航班的栈Stackt的航班串;
步骤101、在航班集合A中随机选择一个航班加入栈Stackh中;
步骤102、根据栈Stackh.top航班的起飞机场,在航班集合A中选择一个降落机场与之相同的航班加入栈Stackt中;
步骤103、根据栈Stackh.top航班的降落机场,在航班集合A中选择一个起飞机场与之相同的航班加入栈Stackh中;
步骤104、根据栈Stackt.top航班的起飞机场,在航班集合A中选择一个降落机场与之相同的航班加入栈Stackt中;
步骤105、在生成航班串时计算航班串中的总航班时长,判断所述总航班时长是否大于飞机每日最大飞行时长限制,若否,重复步骤103和步骤104,若是,进行回溯操作,在栈中删除最近入栈中的航班,在航班集合A中重新选择一个未被选择过的其他航班,使航班串满足飞机每日最大飞行时长限制约束,若无法找到一个未被选择过的其他航班(即现有航班都无法使航班串满足飞机每日最大飞行时长限制约束),则继续向前回溯;
回溯操作是删除最近入栈的航班,在航班集合中重新选择一个未选择过的其他航班,重新进行约束检查,若在航班集合中找不到其他航班,则继续向前回溯;
步骤106、将栈Stackh与栈Stackt连接,并对连接后的航班串进行航班串约束检查,判断是否满足航班串约束,若否,则进行回溯操作,删除最近加入栈中的航班,在航班集合A中重新选择一个未被选择过的其他航班,直至航班串满足航班串约束,若是,则获得所述航班串,在飞机集合中选择一架空闲飞机执行该航班串任务,并执行步骤107(则完成一个航班串的生成);
所述航班串约束包括航班衔接地点约束、航班衔接时间约束、飞机基地约束、飞机最大飞行时间约束以及飞机过站时间约束,各个航班串约束的含义如下:
(1)航班衔接地点约束:飞机执行多个航班时,执行完一个航班的降落地点,必须与即将执行的下一个航班的起飞地点相同。
(2)航班衔接时间约束:飞机在执行多个航班时,执行完一个航班的降落时间,必须小于即将执行航班的起飞时间。
(3)飞机基地约束:同一架飞机在执行完计划周期内的任务后,起飞机场与降落机场必须相同。
(4)飞机最大飞行时间约束:同一架飞机执行多个航班时,每天的累计飞行时间不能超过最大飞行约束。
(5)飞机过站时间约束:飞机在执行多个航班时,执行完一个航班的降落时间必须与即将执行航班的起飞时间之间需要留一段时间完成过站检查,这一段时间就是过站时间约束。
步骤107、获取航班集合中剩余航班数量,并判断航班集合中剩余航班数量是否大于0,若是,返回步骤101,若否,飞机排班染色体数量加1并执行步骤108;
步骤108、判断所述飞机排班染色体数量是否小于M,若是,返回步骤101,若否,输出所述初代种群;
步骤2、构建用于评价飞机排班染色体适应度值的适应度函数,根据所述适应度函数计算当代种群中每个飞机排班染色体的适应度值;
具体地,适应度函数构建如下:
H(C)=mini=[1,2,…,N]MinInter(fi,s) (1)
C*=argmaxCH(C) (2)
S.t.R(C)=true
其中,fj.s表示给定飞机fj的航班串,MinInter(fj.s)表示航班串的最小间隔,即为任意相邻两个航班的飞行间隔时间的最小值,用公式(8)进行计算;
MinInter(fj.s)=mini=[1,2,…,l-1](fj.s[i+1].offtime-fj.s[i].landtime)(8)
fj.s[i+1].offtime-fj.s[i].landtime是给定飞机fj的航班串中第i+1个航班与第i个航班的飞行间隔;C表示给定飞机的排班调度,将C按飞机分类,整理成多个航班串的集合,即C={f1.s,f2.s,…,fN.s},F为给定飞机集合,F={f1,f2,…,fN};
一个飞机的排班调度的鲁棒值指的是所有飞机中降落后再次飞行间隔时间的最小值,该鲁棒值反映了这个排班调度的整体容错性,这个值越大,意味着一次航班延误对后续航班任务的影响越小,该排班的整体容错性越好。基于此,下面给出了基于鲁棒性的飞机排班调度定义。
给定飞机集合F={f1,f2,…,fN},航班集合A={a1,a2,…,aP}以及约束集合R={r1,r2,r3,r4,r5},基于鲁棒性的飞机排班调度就是找到一个飞机排班C,使得C满足所有的约束关系R,同时C的鲁棒函数H(C)取得最大值,
其中,R(C)=true表示该排班调度满足r1到r5所有的映射。C*是该问题的全局最优解。因为该问题是一个典型的最优化问题,是一个NP问题,因此当问题规模较大时,本问题无法在P时间内取得精确解C*,所以,本发明基于遗传算法进行求解,旨在可接受的时间内找到一个鲁棒值尽可能大的飞机排班调度计划。
公式(1)用于获取飞机执行的航班串中的最小间隔时长;公式(2)为优化目标。公式(3)至(7)为公式(2)需满足的约束条件:约束条件(3)用于使飞机在执行航班串任务时降落机场与起飞机场相同,确保“串”的形成;约束条件(4)用于确保飞机在执行多个航班任务时,前一个航班的降落时间小于后一个航班的起飞时间;约束条件(5)用于两个相邻航班任务间的时间间隔满足最小过站时间约束;约束条件(6)用于确保飞机在执行完一个航班串任务后回到出发时所在基地;约束条件(7)用于确保飞机满足每天的最大飞行时间约束。
步骤3、判断迭代次数g是否达到最大迭代次数G,若是,执行步骤4,若否,执行步骤5;
步骤4、输出适应度值最优的飞机排班染色体;
步骤5、根据个体选择策略对当代种群中的飞机排班染色体个体进行个体选择,获得飞机排班染色体中适应度值最优的飞机排班染色体c;
步骤6、根据交叉概率公式计算所述飞机排班染色体c发生交叉的概率,并根据交叉的概率判断所述飞机排班染色体c是否发生交叉,若发生染色体交叉,则根据染色体交叉方法进行染色体交叉,获得交叉后的飞机排班染色体c′,并根据飞机排班染色体c′执行步骤7,若不发生交叉,则直接根据飞机排班染色体c执行步骤7;通过染色体交叉可以产生新的染色体个体,实现基于遗传算法的飞机排班调度方法的全局搜索能力,将优秀的基因通过交叉的方式有效进行整合,使下一代个体的适应度值比上一代更优,实现种群的进化、算法的收敛。
步骤7、根据变异概率公式计算飞机排班染色体发生变异的概率,并根据概率变异的判断该飞机排班染色体个体是否发生变异,若是,则根据染色体变异方法进行染色体变异,得到变异后的飞机排班染色体c″,并执行步骤8;若否,则直接执行步骤8;通过染色体变异,可以实现基于遗传算法的飞机排班调度方法局部的随机搜索能力,加快染色体在局部向最优解收敛的速度,同时,染色体变异可以维持种群多样性,防止局部最优解的出现。
步骤8、将经过个体选择、染色体交叉、染色体变异操作的染色体加入到新一代种群中,作为新一代种群中的个体;
步骤9、步骤9、判断所述新一代种群中个体数目是否达到M,若是,执行步骤10,若否,执行步骤5
步骤10、则用新一代种群代替当代种群,并迭代次数g+1,并返回步骤2。
本发明通过利用遗传算法进行飞机排班调度,具有如下意义:
(1)航班合理执行。航班是航空公司综合多种数据信息而分析预测出来的最优化结果,合理的执行所有航班对航空公司意义非凡。合理执行航班需要考虑航班衔接、航班间隔、航班起降地点等约束,因此,本发明可以保证在考虑各种航班约束的同时以最优的方式执行所有航班任务。
(2)飞机延误影响。目前,航空运输作为国内一种至关重要的交通运输方式,已经成为国民出行时必不可少的交通工具,但是由于天气、航空管制等原因会造成飞机延误,飞机延误一方面会导致安全风险的发生,另一方面一架飞机延误可能会造成波及延误,对后续排班计划造成很大影响,因此,本发明在进行飞机排班时考虑了飞机延误带来的影响,本发明通过增加飞机排班调度计划的鲁棒性、提高飞机排班调度结果的抗干扰能力获得的飞机排班结果,可以使一架飞机延误对后续飞机排班任务的影响尽可能的小。
(3)资源有效利用。飞机作为航空公司重要的资源,间接上影响着航空公司的利润,但是,航空公司的飞机数量有限,盲目的购进飞机与航空公司的利润并非正相关,由于飞机利用率的原因,甚至有可能降低航空公司的利润,因此,本发明在进行飞机排班调度时,充分考虑飞机利用率问题,通过合理规划飞机航班任务提高飞机利用率。
(4)优化飞机排班调度性能。传统数学方法在求解飞机排班调度问题时,随着数据量的增加,求解难度呈现指数级增长,求解效率变低,甚至无法求得结果。分步求解方法通过对后续任务的反馈调整前面任务的编排,这样的方法虽然可以简化问题的难度,但是求得问题整体最优解或者近似最优解的可能性也变得异常的小。另外一些启发式算法求解速度无法满足实际需要。本发明通过遗传算法的思想可以获得飞机排班调度问题整体的最优解或者近似最优解,并通过染色体模型、种群初始化方法、染色体交叉算法、染色体变异算法、自适应染色体交叉变异概率等提高飞机排班调度问题的求解速度。
在本实施例中,个体选择策略采用锦标赛选择和精英保留策略对飞机排班染色体个体进行个体选择,锦标赛选择过程是先根据锦标赛规模从种群中随机选择TSIZE数量的飞机排班染色体个体,分别计算其适应度,通过比较选择适应度函数值最优的飞机排班染色体;精英保留策略过程是种群经过多代的繁衍,会出现一个迄今为止适应度值最优的飞机排班染色体,称为精英个体,若下一代种群中不存在适应度值优于精英个体的飞机排班染色体,则将精英个体直接遗传到下一代种群中替换掉适应度值最差的个体,若下一代种群中存在适应度值优于精英个体的飞机排班染色体,则将下一代种群中适应度值最优的飞机排班染色体作为精英个体,在每一代保留精英个体的策略称为精英保留策略;通过锦标赛选择和精英保留策略对飞机排班染色体个体进行个体选择,锦标赛选择可以提高种群的进化速度,加快算法的收敛,提高解的精度,适用于最大化或最小化问题,精英保留策略可以避免最优个体因染色体交叉或变异而被破坏,加快算法的全局收敛能力。
进一步地,所述步骤6中染色体交叉包括以下步骤,
步骤60、在当代种群中选择两个发生交叉的飞机排班染色体ci、cj;
步骤61、在飞机排班染色体ci中随机选择一个航班串s,并获得航班串的第一个航班s[0];
步骤62、在机排班染色体cj中找到航班s[0]的位置l,并将航班串s连接到l后;
步骤63、将飞机排班染色体ci和飞机排班染色体cj中重复的航班加入候选集;
步骤64、根据候选集中航班执行飞机排班染色体cj航班串生成过程;
步骤65、输出交叉完成后的飞机排班染色体cj。
进一步地,所述步骤7中染色体变异包括以下步骤,
步骤70、在当代种群中选择发生变异的飞机排班染色体ck;
步骤71、在所述飞机排班染色体ck随机选择一个航班串;
步骤72、选择航班串中第一个航班或最后一个航班发生变异,且变异后的航班串满足航班起降约束;
步骤73、将变异前的航班加入候选集,并将原航班串中存在的变异后的航班所在航班串中其他航班加入候选集;
步骤74、对变异后的航班串进行航班串约束检查,若不满足所有航班串约束则进行回溯操作,并根据现有候选集中的航班进行航班串生成,若满足航班串约束,则根据现有候选集中航班进行染色体航班串生成。
进一步地,所述步骤6中采用公式(9)和公式(10)计算交叉概率,
其中,Pc为飞机排班染色体个体i发生染色体交叉的概率,g表示算法当前迭代次数,G表示算法最大迭代次数,hi表示当代种群中飞机排班染色体个体i的适应度函数值,表示当前种群中所有飞机排班染色体个体的平均适应度函数值,hmax表示当前种群中所有飞机排班染色体个体的最大适应度函数值。
进一步地,步骤7中采用公式(11)和公式(12)计算染色体变异概率,
其中,Pm为飞机排班染色体个体i发生染色体变异的概率,g表示算法当前迭代次数,G表示算法最大迭代次数,hi表示当前种群中飞机排班染色体个体i的适应度函数值,表示当前种群中所有飞机排班染色体个体的平均适应度函数值,hmax表示当前种群中所有飞机排班染色体个体的最大适应度函数值。
本发明通过根据飞机排班调度问题的特点,提出一种基于一维数组的染色体模型,能够有效表达飞机排班调度问题,兼容性高,方便约束条件的修改增加,降低运算量、提高算法执行效率;
(2)根据染色体模型提出了用于生成航班串的基于回溯的双向约束检查算法和种群初始化算法,能够基于约束条件剪枝搜索空间,避免大量无效解的生成,从而大大加快算法的收敛速度,提高种群初始化的速度,保证了初代种群的质量;
(3)以提高飞机排班调度计划鲁棒性为优化目标设计适应度函数;
(4)根据染色体模型设计了可以缩减求解空间、提高种群进化速度的染色体交叉算法和染色体变异算法;
(5)设计自适应染色体交叉概率和染色体变异概率,可以提高种群的进化速度,加快收敛。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (9)
1.一种基于遗传算法的飞机排班调度方法,其特征在于:包括以下步骤,
步骤1、构建飞机排班染色体模型,获得具有M个飞机排班染色体的初代种群,并设置所述飞机排班调度方法的迭代次数g=0;
步骤2、构建用于评价飞机排班染色体适应度值的适应度函数,根据所述适应度函数计算当代种群中每个飞机排班染色体的适应度值;
步骤3、判断迭代次数g是否达到最大迭代次数G,若是,执行步骤4,若否,执行步骤5;
步骤4、输出适应度值最优的飞机排班染色体;
步骤5、根据个体选择策略对当代种群中的飞机排班染色体个体进行个体选择,获得飞机排班染色体中适应度值最优的飞机排班染色体c;
步骤6、根据交叉概率公式计算所述飞机排班染色体c发生交叉的概率,并根据交叉的概率判断所述飞机排班染色体c是否发生交叉,若发生染色体交叉,则根据染色体交叉方法进行染色体交叉,获得交叉后的飞机排班染色体c′,并根据飞机排班染色体c′执行步骤7,若不发生交叉,则直接根据飞机排班染色体c执行步骤7;
步骤7、根据变异概率公式计算飞机排班染色体发生变异的概率,并根据变异的概率判断该飞机排班染色体个体是否发生变异,若是,则根据染色体变异方法进行染色体变异,得到变异后的飞机排班染色体c″,并执行步骤8;若否,则直接执行步骤8;
步骤8、将经过个体选择、染色体交叉、染色体变异操作的染色体加入到新一代种群中,作为新一代种群中的个体;
步骤9、判断所述新一代种群中个体数目是否达到M,若是,执行步骤10,若否,执行步骤5;
步骤10、则用新一代种群代替当代种群,并迭代次数g+1,并返回步骤2。
2.根据权利要求1所述的基于遗传算法的飞机排班调度方法,其特征在于:
所述步骤1包括以下步骤,
步骤100、获得飞机集合F={f1,f2,…,fN}和航班集合A={a1,a2,…,aP},构建包含用于存放首端航班的栈Stackh和用于存放尾端航班的栈Stackt的航班串;
步骤101、在航班集合A中随机选择一个航班加入栈Stackh中;
步骤102、根据栈Stackh.top航班的起飞机场,在航班集合A中选择一个降落机场与之相同的航班加入栈Stackt中;
步骤103、根据栈Stackh.top航班的降落机场,在航班集合A中选择一个起飞机场与之相同的航班加入栈Stackh中;
步骤104、根据栈Stackt.top航班的起飞机场,在航班集合A中选择一个降落机场与之相同的航班加入栈Stackt中;
步骤105、在生成航班串时计算航班串中的总航班时长,判断所述总航班时长是否大于飞机每日最大飞行时长限制,若否,重复步骤103和步骤104,若是,进行回溯操作,在栈中删除最近入栈中的航班,在航班集合A中重新选择一个未被选择过的其他航班,使航班串满足飞机每日最大飞行时长限制约束,若无法找到一个未被选择过的其他航班,则继续向前回溯;
步骤106、将栈Stackh与栈Stackt连接,并对连接后的航班串进行航班串约束检查,判断是否满足航班串约束,若否,则进行回溯操作,删除最近加入栈中的航班,在航班集合A中重新选择一个未被选择过的其他航班,直至航班串满足航班串约束,若是,则获得所述航班串,在飞机集合中选择一架空闲飞机执行该航班串任务,并执行步骤107;
步骤107、获取航班集合中剩余航班数量,并判断航班集合中剩余航班数量是否大于0,若是,返回步骤101,若否,飞机排班染色体数量加1并执行步骤108;
步骤108、判断所述飞机排班染色体数量是否小于M,若是,返回步骤101,若否,输出所述初代种群。
3.根据权利要求2所述的基于遗传算法的飞机排班调度方法,其特征在于:
所述航班串约束包括航班衔接地点约束、航班衔接时间约束、飞机基地约束、飞机最大飞行时间约束以及飞机过站时间约束。
4.根据权利要求3所述的基于遗传算法的飞机排班调度方法,其特征在于:
所述适应度函数构建如下:
H(C)=mini=[1,2,...,N]MinInter(fi.s) (1)
C*=argmaxCH(C) (2)
s.t.
其中,fj.s表示给定飞机fj的航班串,MinInter(fj.s)表示航班串的最小间隔,即为任意相邻两个航班的飞行间隔时间的最小值,用公式(8)进行计算;
MinInter(fj.s)=mini=[1,2,...,l-1](fj.s[i+1].offtime-fj.s[i].landtime) (8)
fj.s[i+1].offtime-fj.s[i].landtime是给定飞机fj的航班串中第i+1个航班与第i个航班的飞行间隔;C表示给定飞机的排班调度,将C按飞机分类,整理成多个航班串的集合,即C={f1.s,f2.s,…,fN.s},F为给定飞机集合,F={f1,f2,…,fN}。
5.根据权利要求1所述的基于遗传算法的飞机排班调度方法,其特征在于:
所述步骤5中个体选择策略采用锦标赛选择和精英保留策略对飞机排班染色体个体进行个体选择。
6.根据权利要求2所述的基于遗传算法的飞机排班调度方法,其特征在于:
所述步骤6中染色体交叉包括以下步骤,
步骤60、在当代种群中选择两个发生交叉的飞机排班染色体ci、cj;
步骤61、在飞机排班染色体ci中随机选择一个航班串s,并获得航班串的第一个航班s[0];
步骤62、在机排班染色体cj中找到航班s[0]的位置l,并将航班串s连接到l后;
步骤63、将飞机排班染色体ci和飞机排班染色体cj中重复的航班加入候选集;
步骤64、根据候选集中航班执行飞机排班染色体cj航班串生成过程;
步骤65、输出交叉完成后的飞机排班染色体cj。
7.根据权利要求2所述的基于遗传算法的飞机排班调度方法,其特征在于:
所述步骤7中染色体变异包括以下步骤,
步骤70、在当代种群中选择发生变异的飞机排班染色体ck;
步骤71、在所述飞机排班染色体ck随机选择一个航班串;
步骤72、选择航班串中第一个航班或最后一个航班发生变异,且变异后的航班串满足航班起降约束;
步骤73、将变异前的航班加入候选集,并将原航班串中存在的变异后的航班所在航班串中其他航班加入候选集;
步骤74、对变异后的航班串进行航班串约束检查,若不满足所有航班串约束则进行回溯操作,并根据现有候选集中的航班进行航班串生成,若满足航班串约束,则根据现有候选集中航班进行染色体航班串生成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110874009.5A CN113487236B (zh) | 2021-07-30 | 2021-07-30 | 基于遗传算法的飞机排班调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110874009.5A CN113487236B (zh) | 2021-07-30 | 2021-07-30 | 基于遗传算法的飞机排班调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113487236A true CN113487236A (zh) | 2021-10-08 |
CN113487236B CN113487236B (zh) | 2023-09-15 |
Family
ID=77944814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110874009.5A Active CN113487236B (zh) | 2021-07-30 | 2021-07-30 | 基于遗传算法的飞机排班调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113487236B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116894532A (zh) * | 2023-08-15 | 2023-10-17 | 中国南方航空股份有限公司 | 一种航路规划方法、装置、介质及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464966A (zh) * | 2008-12-31 | 2009-06-24 | 中山大学 | 基于遗传算法的飞机航班规划方法 |
CN109102203A (zh) * | 2018-08-28 | 2018-12-28 | 北京航空航天大学 | 一种基于多串染色体遗传算法的目标分配优化方法 |
CN111178582A (zh) * | 2019-11-29 | 2020-05-19 | 浙江工业大学 | 一种基于改进遗传算法的物流配送优化方法 |
CN111985647A (zh) * | 2020-07-21 | 2020-11-24 | 西安理工大学 | 基于遗传算法的印刷装订作业调度优化方法 |
-
2021
- 2021-07-30 CN CN202110874009.5A patent/CN113487236B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101464966A (zh) * | 2008-12-31 | 2009-06-24 | 中山大学 | 基于遗传算法的飞机航班规划方法 |
CN109102203A (zh) * | 2018-08-28 | 2018-12-28 | 北京航空航天大学 | 一种基于多串染色体遗传算法的目标分配优化方法 |
CN111178582A (zh) * | 2019-11-29 | 2020-05-19 | 浙江工业大学 | 一种基于改进遗传算法的物流配送优化方法 |
CN111985647A (zh) * | 2020-07-21 | 2020-11-24 | 西安理工大学 | 基于遗传算法的印刷装订作业调度优化方法 |
Non-Patent Citations (3)
Title |
---|
张之富;余静;凌镭;周恒;: "基于改进遗传算法的车辆优化调度研究", 中国水运(下半月), no. 04 * |
李耀华;王磊;: "基于改进遗传算法的飞机排班优化方法研究", 系统仿真学报, no. 03 * |
游晓明;刘升;帅典勋;: "基于自适应算子的混合进化算法及其应用", 计算机科学, no. 02 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116894532A (zh) * | 2023-08-15 | 2023-10-17 | 中国南方航空股份有限公司 | 一种航路规划方法、装置、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113487236B (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112766813B (zh) | 一种空天协同观测复杂任务调度方法 | |
CN109544998B (zh) | 一种基于分布估计算法的航班时隙分配多目标优化方法 | |
CN104751681B (zh) | 一种基于统计学习模型的停机位分配方法 | |
CN105117792B (zh) | 一种考虑跑道口等待时长的航班机场场面运行优化方法 | |
CN108038508A (zh) | 中转航班的推送方法、系统、存储介质和电子设备 | |
CN109726917B (zh) | 一种基于四维航迹的货运航班调度方法和装置 | |
CN109840610A (zh) | 不正常航班飞机路径与旅客行程自动恢复系统及方法 | |
CN101770616A (zh) | 一种多级协同项目计划管理方法 | |
CN109460900B (zh) | 一种机场新建卫星厅的转场航班分配方法 | |
CN109583627A (zh) | 飞机着陆排队优化方法及装置 | |
CN112330983A (zh) | 不正常航班一体化智能恢复方法 | |
CN109215400A (zh) | 基于复合分派规则的进场航班快速排序与优化调度方法 | |
CN104504198A (zh) | 一种基于双层协同进化的航路网络拓扑设计方法 | |
JP6607857B2 (ja) | 航空機の設計方法および設計システム | |
CN111007874A (zh) | 无人机与车辆协同的电力巡检方法和装置 | |
CN113487236A (zh) | 基于遗传算法的飞机排班调度方法 | |
CN110033111B (zh) | 机场场面运动规划方法和装置 | |
CN112862258B (zh) | 一种考虑旅客偏好的有限理性的航班恢复方法 | |
CN114969978B (zh) | 一种基于改进灰狼优化算法的飞机海上平台回收调度方法 | |
CN116009571A (zh) | 飞机机群起飞调度方法、装置、设备和存储介质 | |
CN114819622A (zh) | 舰载机出动作业调度方法、装置、设备和介质 | |
You et al. | Heuristic algorithm for aircraft arrival scheduling based on a point merge system | |
CN114757101A (zh) | 一种面向非时敏移动目标跟踪的单星自主任务调度方法及系统 | |
CN113837438A (zh) | 基于spfa算法的地铁乘务排班计划编制优化方法 | |
CN113283827A (zh) | 一种基于深度强化学习的两阶段无人机物流路径规划方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |