当前位置:
文档之家› 自适应遗传算法在飞机调度问题中的应用
自适应遗传算法在飞机调度问题中的应用
第"期
杨秋辉等: 自适应遗传算法在飞机调度问题中的应用
##"#
问题的最佳值 ! 因此, 目前很多学者采用自适应调整 !" 和 !# 的方法 ! 其基本思想是: 当群体各个体适应度 而当群体适应度比较分散时, 则减小 !" 和 !# 的值 ! 同 趋于一致或者趋于局部最优时, 加大 !" 和 !# 的值, 时, 对于适应度值低于平均适应度的个体, 应采用较大的 !" 和 !# , 使其在下一代中以较大地概率被淘汰; 尽量保护此个体不被破坏 ! 我们采用 而对于适应度值高于平均适应度值的个体, 应采用较小的 !" 和 !# ,
)
引言
随着航空运输业的快速发展, 空中交通流量管理的研究越来越受到人们的关注 + 由于航班安排、 气候、
机场设施等方面的影响, 在一些繁忙的机场, 经常发生航班拥堵, 给航空公司造成了极大的经济损失 + 对终 端区等待降落的飞机给出合理的调度是空中交通流量管理的一个主要方面 + 在目前的空管中, 飞机的调度 通常是按照先来先服务 /0/1 ( /2345 0678 /2345 18398:) 的原则进行的 + 这种方法的不足之处是不能综合考虑 关于飞机的多方面因素, 比如机型、 乘客数等 + 针对各种需要, 目前国际上已有一些用于飞机调度的系统和
收稿日期: (!!"$!’$(" 作者简介: 杨秋辉 ()#&! L ) , 女, 山东青岛人, 万方数据 (!!) 级博士研究生 +
第.期 最小安全间隔矩阵见图 ! "
杨秋辉等: 自适应遗传算法在飞机调度问题中的%)
问题的求解目标是:
* *} ( ’% ( ) % ) ( ) % ( ’% ) ( * +% " ! " )# #$%! { &% "
自适应遗传算法在飞机调度问题中的应用
杨秋辉), 游志胜), 冯子亮), 樊 鸿(
() + 四川大学计算机学院, 成都 %)!!%’;( + 四川省公路局, 成都 %)!!"))
摘要: 基于自适应遗传算法, 实现了单跑道降落飞机调度问题的求解 + 算法以所有飞机的排列 次序做为个体编码, 解码时用移动方法确定飞机的降落时间 + 适应度函数的构造综合考虑了飞 机的提前和延迟带来的损失, 选择算子采用期望值方法, 交叉算子用顺序交叉, 变异算子用倒 位变异 + 为提高算法的执行效率并避免早熟收敛, 对交叉和变异概率均采用自适应策略 + 仿真 结果表明了自适应遗传算法用于飞机调度问题的有效性 + 关键词: 自适应遗传算法; 空中交通流量管理; 飞机调度; 空闲时间 中图分类号: ,-’’ 文献标识码: .
各飞机依次放入集合 / 中 " 要确保 / 中各飞机之间都满足最小安全间隔, 互相没有冲突 " / 中的飞机按照 万 方数据 初始设置其 ) % + ’% , 此时新加入的飞机可能会与 / 中已有 其降落时间 ) % 升序排列 " 新的飞机加入 / 中时,
$$C9
四川大学学报 (自然科学版)
第 "$ 卷
+
假设当代群体规模为 + ; *% , ! %,$ *% ; *%
(#) 计算群体中每个个体在下一代生存的期望数 (% ’
则个体 % 被淘汰 ! 则将个体 % 复制 (% 个到下一代; 若 (% ’ 9, (&) 对 (% 四舍五入取整为 (% , 因此用常规的单点交叉或多点交叉, 都将可能产 & ! " ! # 交叉算子 由于染色体采用数字序号编码方法, 生无意义的个体 ! 因此使用由 :);<= 提出的顺序交叉 (>?3,? @?8==8;,?) 算子 ! 这种交叉操作的主要思想是: 先 进行常规的两点交叉, 然后根据两个个体交叉区域中的映射关系, 对原来两个个体中的相应基因位置上的 值进行调整和修改, 修改时, 要尽量维持各基因值原有的相对顺序 ! 之所以选择顺序交叉, 是因为这种交叉 算子保留了部分飞机的相对安排次序, 而这种相对次序如果能够产生较好的调度结果, 我们希望在下一代 中得以保留 ! 维持群体多样性的一个重要手段 ! 为了提 & ! " ! & 变异算子 变异算子是改善遗传算法的局部搜索能力, 高系统的运行效率, 我们采用一种简单的变异算子— — —倒位变异 ! 这种变异方法将个体编码串中随机选取 的两个基因座之间的基因逆序排列, 从而产生一种新的调度次序 ! 采用这种变异算子, 可以较大的改变原 个体中飞机调度的相对次序, 避免算法陷于局部最优 ! &!"!" 自适应的交叉概率和变异概率 交叉和变异操作是在一定的概率下进行的 ! 基本遗传算法中, 交 叉概率 )- 值一般取 9 ! A B $ ! 9, 变异概率 )+ 一般取较小的值, 在 9 ! 99$ B 9 ! A 范围内 ! 这些参数值的选取往 万 方数据 往与所求解的问题相关, 需根据经验或通过反复试验来确定, 这个过程通常很繁琐, 且很难找到适应不同
(!!" 年 )( 月 第 ") 卷第 % 期
四川大学学报 (自然科学版) F6M3?EA 6J 12@CME? N?2983425O(<E5M3EA 1@28?@8 H:2526?)
P8@ + (!!" ,6A + ") <6 + %
文章编号: ((!!") !"#!$%&’% !%$))’*$!’
(( ) ( !) 式 ( 用 (!) 式计算, (( ) 式中, ! ") ! ") ! ") #01 , #$%分别表示对当代群体中的所有个体得到的调度方案用 计算得到的最大、 最小目标函数值 " ,", 用移动方法确定降落时间
[/] 提出的 在检查到集合 / 中有某两架飞机之间的安全间隔不足最小安全间隔时, 我们采用 2033$%$ 等 设置集合 / , 初始为空, 将 通过移动消除冲突的方法, 同时在任务之间插入必要的空闲时间 " 具体步骤为:
())
式中, 与飞机的机型、 乘客数等有关; 括号 .% 是表示飞机重要程度的量, ! 的大小反映延迟开销增长快慢; 中的 * ! 可以保证飞机正点到达时 ( ()) 式中的 ) + ’ 时) 的延迟开销为 ’ " 由上可见, 该问题的目标函数较为复杂, 用传统的规划求解难以实现, 因此我们采用自适应遗传算法 实现对该问题的求解 "
的其它飞机之间有冲突 ! 设 "# 是当前要放入 $ 中的飞机, 即 "% 和 "# 之 "% 是 $ 中第一个与 "# 有冲突的飞机, 间的间隔小于最小安全间隔 ! 此时采用 " 种移动方式来消除冲突, 见图 # !
图#
" 种移动方式
移动 $: 移动 #: 移动 &: 移动后的 ’# ’ ()* "# 不动, "% 右移 &# % ’ % ; "% 不动, "# 右移 &% % ’ # ; "# 左移, "% 右移, {&% % $ ,(% ,’ # % )% } {&% % $ ,(# ,’ % % )# } ; 移动 ": 移动后的 ’ % ’ ()* "# 右移, "% 左移, ! 此处的 &% 、 (% 、 ’% 、 )% 分别 表示飞机 "% 完成降落的时间、 最早可以进行降落的时间、 实际降落时间、 完成降落所需时间 ! 注意 )% 与 "% ( "% ! ./-,, , 的后续飞机机型有关, 实际上, 若 "% 的后续飞机为 "# , 则 )% ’ +,"# ! ./-,) "% 的属性 ./-, 表示飞 机的机型 ! 分别计算适应度函数值的变化, 取适应度增加最大的一个移动做为最终采用的移动 ! " 种移动之后, 继续检查并解决集合 $ 中其它飞机之间的冲突 ! 最终可以将所有飞机加入集合 $ 中, 形成一个降落次序, 同时也确定了各飞机的降落时间 ! &!" 遗传算子 对生存环境适应程度较高的物种将有更多的机会遗 & ! " ! $ 选择算子 在生物的遗传和自然进化过程中, 传到下一代, 反之, 将有很大可能被淘汰 ! 模仿这个过程, 遗传算法使用选择算子对群体中的个体进行优胜 劣汰操作 ! 我们采用期望值方法 ( 0*-,12,3 4)56, 783,5) 完成选择操作 ! 这种选择算子可以保证较好适应度 的一些个体一定能够被保留在下一代群体中, 并且操作也较简单 ! 具体方法是: ($) 首先计算当代群体适应度的期望值 *% ’ $ +
,
,"!
自适应遗传算法求解
编码方法 基于飞机调度问题的特征, 用二进制编码方法不够直观, 因此采用数字序号编码方法, 每个染色体由
每个基因值 % 代表一架飞机 ,% , 即各飞机序号的一种排列构成 ! 个个体 " ! 个染色体代表一 $ 个整数组成, 种调度方 案, 表 示 优 先 安 排 飞 机 的 一 种 次 序, 即按照次序安排各飞机的降落时间" 比如染色体为 则表示优先为飞机 - 安排降落时间, 然后依次安排飞机 ,, 直观 " - , . ! / ), ., !, /, ) " 这种编码简练、 放入集合 / 中, 将 ,% 置于其 ’% 位置, 即使得 具体解码过程是: 按照次序取出各基因位代表的飞机 ,% , 则用移动方法重新确定相关飞机的降 ) % + ’% " 若此时 ,% 与 / 中的其它飞机之间的间隔不足最小安全间隔, 落时间 " ,") 适应度函数 适应度函数的设计通常要与问题的求解目标有一定关系 " 由于飞机调度问题的目标函数值越小越好, 而通常遗传算法中认为适应度大的个体其适应性较好, 因此我们设计适应度函数为 ( " )# 0 (( ) ! ") ! ") #01 ( ( (( ) ( ( ) ! ") ! ") ( #01 #$% (,)