基于蚁群算法的多核系统实时任务调度的优化方法_2

文档序号:9727197阅读:来源:国知局

[0044] 公式的设计考虑几个因素:(1)?是任务j的截止期;优先选择较早截止的任务,尽 量不让任务错过截止期,从而提高实时系统的调度成功率;(2)Μ」是任务j的估计运算量;优 先选择运算量较小的任务,其运行时间较短,从而尽量降低系统的任务调度长度;(3)e 1;J是 任务i和j之间的估计通信量;
[0045] 在为任务选择处理器时,根据概率选择公式(1) (3)进行选择;
[0047]考虑几个因素:(1)邱是处理核p的处理速率;(2)〇,P是任务j的在处理核p上准备 就绪的时间;(3)tP是处理核p的最早可用时间;
[0048]然后生成一个随机数,选择与所生成的数相对应的作为下一个任务;显然,有较大 信息素值的任务,有更大的机会被选择;选定的任务被添加到禁忌表中,从允许被选择的列 表中删除,被选择任务的子任务,现在可以执行,增加到准备列表中;这些操作是重复的,直 到完成所有任务的调度;
[0049]在第三阶段中,根据k组可行解的情况,对路径上的信息素变量进行更新,调整策 略如公式(4)(5)(6)所示
[0053] Lk表示第k只蚂蚁求得的任务调度长度,Q在基本蚁群算法中是常数,但通过实验 发现,有时某条路径上的信息量在迭代次数还不多的情况下就已远远超过了其他路径上的 信息量,会导致搜索停滞,为避免这种情况的发生,本发明对Q作出两点改变来解决;一是限 定信息素变量的最大值和最小值,若超出这个设定范围,就取临近的边界值;二是根据迭代 次数对Q值进行调整;
[0054] 最后阶段,选择所有迭代结束后得到的调度时间最短的解作为最优的解决方案; [0055] η是给定的任务图的任务数,处理器的个数为m;T(i,j)是指有向边i,j上的信息素 变量,n( i,j)是指任务i后会选择任务j的期望程度。
[0056]为了便于更好的理解,下面结合附图对本发明的使用方法做详细说明如下:
[0057] 在Microsoft Visual C++6.0上使用C语言实现了本发明提出的优化的蚁群算法, 用有向无环图(DAG)对任务进行建模。图1表示了一个程序的任务图。
[0058] 在这个图中,节点是任务,边是指定任务之间的优先约束。边(i,j)表明,任务i必 须在任务j开始前完成。每个节点的权重是任务的必要的执行时间,边(i,j)的权重是任务i 向任务j传输数据所需的时间作为通信成本。如果两个任务在同一个处理器上执行,它们之 间的通信成本将是零。在程序编译阶段产生任务执行时间、通信成本和任务之间的优先级 约束。
[0059] 在实验中设置参数如下:蚂蚁个数为10,最大迭代次数为100,α为2,β为2,P为0.7, 该算法成功完成了异构多核系统中的实时任务调度,求出的最优解不仅是可行解,而且任 务调度长度较短,充分证明了本文混合算法的可行性。同时改进蚁群算法与基本蚁群算法 进行比较,改进蚁群算法的平均任务调度长度明显优于基本蚁群算法;将不同算法得到的 最优解进行对比,可知改进蚁群算法得到的最优解的任务调度长度更短并且较稳定,明显 优于基本蚁群算法得到的最优解。
[0060] 上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此技术的人能够 了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实 质所做的等效交换或修饰,都应涵盖在本发明的保护范围之内。
【主权项】
1. 一种基于蚁群算法的多核系统实时任务调度的优化方法,其特征在于:该方法在两 方面做出改进;一是在选择任务和为任务选择处理核的概率选择公式的设计上;二是信息 素变量的更新;最初所有元素有相同的较小值;然后执行迭代的蚁群算法: (1) 生成蚁群; (2) 设置初始化信息; (3) 每只蚂蚁循环(直到完成调度任务)一一根据信息素变量选择下一个就绪任务,为 该任务选择处理器; (4) 记录信息素变量; 信息素变量的更新。2. 根据权利要求1所述的基于蚁群算法的多核系统实时任务调度的优化方法,其特征 在于:在第一阶段,只是创建一个长度为η的列表;在第二阶段,每只蚂蚁从准备列表中选择 一个任务,并为该任务选择一个处理核,直到完成任务调度;在每次迭代中,N只蚂蚁就会得 至IjN组可行解;选择一组任务调度长度最短的解作为一次迭代的最优解;对于蚂蚁k,通过使 用概率选择公式(1) (2)为任务i选择下一个任务j ;丨: 公式的设计考虑几个因素:(1)?是任务j的截止期;优先选择较早截止的任务,尽量不 让任务错过截止期,从而提高实时系统的调度成功率;(2)Μ」是任务j的估计运算量;优先选 择运算量较小的任务,其运行时间较短,从而尽量降低系统的任务调度长度;(3)e^是任务 i和j之间的估计通信量; 在为任务选择处理器时,根据概率选择公式(1)(3)进行选择;) 考虑几个因素:(1)%是处理核p的处理速率;(2)〇,P是任务j的在处理核p上准备就绪的 时间;(3) tP是处理核p的最早可用时间; 然后生成一个随机数,选择与所生成的数相对应的作为下一个任务;显然,有较大信息 素值的任务,有更大的机会被选择;选定的任务被添加到禁忌表中,从允许被选择的列表中 删除,被选择任务的子任务,现在可以执行,增加到准备列表中;这些操作是重复的,直到完 成所有任务的调度; 在第三阶段中,根据k组可行解的情况,对路径上的信息素变量进行更新,调整策略如 公式(4)(5)(6)所示Lk表示第k只蚂蚁求得的任务调度长度,Q在基本蚁群算法中是常数,但通过实验发现, 有时某条路径上的信息量在迭代次数还不多的情况下就已远远超过了其他路径上的信息 量,会导致搜索停滞,为避免这种情况的发生,本发明对Q作出两点改变来解决;一是限定信 息素变量的最大值和最小值,若超出这个设定范围,就取临近的边界值;二是根据迭代次数 对Q值进行调整; 最后阶段,选择所有迭代结束后得到的调度时间最短的解作为最优的解决方案; η是给定的任务图的任务数,处理器的个数为m;T(i,j)是指有向边i,j上的信息素变 量,n( i,j)是指任务i后会选择任务j的期望程度。
【专利摘要】基于蚁群算法的多核系统实时任务调度的优化方法,其特征在于:该方法在两方面做出改进;一是在选择任务和为任务选择处理核的概率选择公式的设计上;二是信息素变量的更新;最初所有元素有相同的较小值;然后执行迭代的蚁群算法,本发明针对多核系统的实时性,考虑了任务的到达时间、就绪时间和截止期。再结合多核系统的复杂环境,研究的是异构多核系统,算法考虑了各内核不同的运行速率和内核间不同的通信带宽。实验结果表明,该算法与基本蚁群算法相比在收敛速度和计算最优解方面都有了改进。
【IPC分类】G06N3/00, G06F9/48
【公开号】CN105487920
【申请号】CN201510659021
【发明人】关沫, 佟彤
【申请人】沈阳工业大学
【公开日】2016年4月13日
【申请日】2015年10月12日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1