发明名称 一种应用于仿真网格系统的生物智能调度方法
摘要 一种应用与仿真网格系统的生物智能调度方法,根据不同节点上仿真模型的特点、仿真应用任务量的大小、采用面向角色模型方式,将一个仿真应用分解为一组存在数据输入输出关系的计算子任务并形成相应的仿真作业资源组;并生成任务资源的配比权重,采用树状层次角色图表示一个仿真网格应用中各个任务之间的数据相关性,通过多路径混合蚁群智能调度方法使得选定的子任务调度路径消耗量最低,实现仿真高性能计算作业的高效调度。其优点是:保证仿真应用资源大部分时间处于适量负载的工作状态,从而为资源拥有者带来更多的经济利益;保证仿真任务能在尽量短的时间内完成,但又不致于花费太多的计算费用。
申请公布号 CN101944157B 申请公布日期 2014.09.03
申请号 CN201010259070.0 申请日期 2010.08.19
申请人 中国船舶重工集团公司第七0九研究所 发明人 吴沉寒;岳增坤;陈炜;赵文婷;余昀;冯天昊;熊志强;罗勤;罗玉臣;胡斌
分类号 G06F19/00(2011.01)I;G06N3/00(2006.01)I 主分类号 G06F19/00(2011.01)I
代理机构 武汉金堂专利事务所 42212 代理人 胡清堂
主权项 一种应用于仿真网格系统的生物智能调度方法,其特征在于:根据不同节点上仿真模型的特点、仿真应用任务的大小、采用面向角色模型方式,将一个仿真应用任务分解为一组存在数据输入输出关系的计算子任务并形成相应的仿真作业资源;并生成资源的配比权重,采用树状层次角色图表示一个仿真网格应用中各个任务之间的数据相关性,通过多路径混合蚁群智能调度方法使得选定的子任务调度路径消耗量最低,实现仿真高性能计算作业的高效调度;其步骤如下:(1)将仿真应用任务根据任务所需要的资源和任务的执行序列,生成仿真网络中的就绪资源,记Q={Q<sub>i</sub>:i=1,2,…,q}为资源类型集;记R={R<sub>i</sub>:i=1,2,…,r}为资源集,每个资源有且仅有唯一的资源类型,即<img file="FSB0000121595240000011.GIF" wi="188" he="70" />存在惟一的Q<sub>k</sub>∈Q与之对应;任务的执行时间μ<sub>ik</sub>,表示任务在资源类型为Q<sub>k</sub>的某一资源上的预计执行时间,记<img file="FSB0000121595240000012.GIF" wi="119" he="54" />表示任务i在资源类型为Q<sub>k</sub>的某一资源上执行;记P={P<sub>i</sub>:i=1,2,…,p}为仿真网格中不同地理位置的战术节点集合,i为战术节点位置编号,而每个资源就处于某个地理位置节点上,即<img file="FSB0000121595240000013.GIF" wi="189" he="70" />存在唯一的P<sub>m</sub>∈P与之对应,P<sub>m</sub>为m位置的战术节点;记B={B<sub>mn</sub>:P<sub>m</sub>,P<sub>n</sub>∈P}为不同节点间的传输带宽,B<sub>mn</sub>为m位置上的战术节点到n位置上的战术节点间的传输带宽,记D={D<sub>mn</sub>:P<sub>m</sub>,P<sub>n</sub>∈P}为不同节点间的传输延迟,P<sub>n</sub>为n位置的战术节点;当m=n时,B<sub>mn</sub>=0,D<sub>mn</sub>=0,D<sub>mn</sub>为m位置上的战术节点到n位置上的战术节点间的传输延迟;记T<sub>r</sub>为在资源R<sub>r</sub>∈R上执行的所有任务的集合,记<img file="FSB0000121595240000014.GIF" wi="229" he="54" />为在资源R<sub>r</sub>∈R上执行的所有任务的约束条件集合;若P<sub>m</sub>,P<sub>n</sub>∈P,<img file="FSB0000121595240000015.GIF" wi="337" he="74" />则从任务i到任务j的数据传输时间为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>d</mi><mi>ij</mi></msub><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><mi>if</mi><mo>&Exists;</mo><msub><mi>E</mi><mi>r</mi></msub><mo>,</mo><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>&Element;</mo><msub><mi>E</mi><mi>r</mi></msub><mo></mo></mtd></mtr><mtr><mtd><msub><mi>&lambda;</mi><mi>ij</mi></msub><mo>&times;</mo><msub><mi>B</mi><mi>mn</mi></msub><mo>+</mo><msub><mi>D</mi><mi>mn</mi></msub><mo>,</mo></mtd><mtd><mi>others</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000121595240000021.GIF" wi="696" he="153" /></maths>表示当任务i与任务j在同一地理位置节点执行时,没有传输延迟,即D<sub>mn</sub>=0;当任务i与任务j在同一地理位置节点的同一资源上执行时,不需要进行数据传输,即d<sub>ij</sub>=0;令<img file="FSB0000121595240000022.GIF" wi="36" he="61" />和<img file="FSB0000121595240000023.GIF" wi="39" he="61" />分别表示任务i的开始执行时刻和完成执行时刻,任务i的执行时间<img file="FSB0000121595240000024.GIF" wi="218" he="73" />通过选取执行最小时间损耗的任务来确定任务的执行序列,根据任务所需要的资源和任务的执行序列,生成仿真网格中的就绪资源;(2)通过仿真网络中资源的状态和相关属性;结合资源的权限向量生成资源配比矩阵,形成资源的配比方程,生成资源的配比权重,根据仿真网格中的就绪资源,定义向量R表示用户角色集;若系统中的用户角色个数为n,则有:R=[role<sub>1</sub>,role<sub>2</sub>,...,role<sub>n</sub>]<sup>T</sup>若系统中被操作的资源个数为m,则有:R(t)=[r<sub>1</sub>(t),r<sub>2</sub>(t),...,r<sub>m</sub>(t)]<sup>T</sup>系统的状态是由系统中所有资源的状态所决定的,记为:ST(t)=[st<sub>1</sub>(t),st<sub>2</sub>(t),...,st<sub>m</sub>(t)]<sup>T</sup>若将系统中某个确定的role<sub>i</sub>对某确定对象r<sub>i</sub>(t)的相关属性的授权约束条件记为c<sub>ij</sub>,r<sub>i</sub>(t)表示系统中t时刻操作的资源i,c<sub>ij</sub>表示t时刻第j个用户对第i资源的相关属性授权约束条件,则role<sub>i</sub>对r<sub>i</sub>(t)的操作可以表示为:pro<sub>ij</sub>,pro<sub>ij</sub>表示t时刻第j个用户对第i个资源的操作;其中,如果role<sub>i</sub>不具备对资源r<sub>i</sub>(t)的操作,则可记为pro<sub>ij</sub>=0称为空操作,如果role<sub>i</sub>对r<sub>i</sub>(t)的可能操作不只一个,则pro<sub>ij</sub>表示由这些操作构成的向量,这样,若定义pro<sub>ij</sub>所对应的角色role<sub>i</sub>对r<sub>i</sub>(t)的操作算子为η<sub>ij</sub>,η<sub>ij</sub>为t时刻第j个用户对第i个资源的操作算子,且k为某一确定的时间点,则有η<sub>ij</sub>·r<sub>j</sub>(k)=r<sub>j</sub>(k+1)这里,空操作对应的算子称为空操作算子,记为η<sub>0</sub>,η<sub>0</sub>作用到r<sub>i</sub>(t)或st<sub>j</sub>(t)后,其中st<sub>j</sub>(t)为t时刻系统状态,不改变相应的资源的属性和状态;由于在整个仿真网格系统中,资源在角色间的流转是由资源的状态驱动的,所以角色是否能够对资源执行操作,是由当前资源的状态所决定的,因此将资源状态约束下的角色对资源的操作算子记为η<sub>ij</sub>,则有η<sub>ij</sub>=f<sub>i</sub>(η<sub>ij</sub>,r<sub>ij</sub>,st<sub>j</sub>(t))式中,函数f<sub>i</sub>的功能为:根据某一确定时刻t的资源状态st<sub>j</sub>(t),利用角色对该资源操作的约束条件来判断角色role<sub>i</sub>是否可对r<sub>i</sub>(k)执行操作算子η<sub>ij</sub>,即<img file="FSB0000121595240000031.GIF" wi="880" he="149" />则可得到系统中资源状态约束下的资源配比矩阵为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>&eta;</mi><mn>11</mn></msub></mtd><mtd><msub><mi>&eta;</mi><mn>12</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>&eta;</mi><mrow><mn>1</mn><mi>m</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>&eta;</mi><mn>21</mn></msub></mtd><mtd><msub><mi>&eta;</mi><mn>22</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>&eta;</mi><mrow><mn>2</mn><mi>m</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>&eta;</mi><mrow><mi>n</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>&eta;</mi><mrow><mi>n</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>&eta;</mi><mi>nm</mi></msub></mtd></mtr></mtable></mfenced>]]></math><img file="FSB0000121595240000032.GIF" wi="391" he="246" /></maths>该矩阵的列向量记为:η<sub>j</sub>=[η<sub>1j</sub>,η<sub>2j</sub>,...,η<sub>nj</sub>]<sup>T</sup>表示系统中n个角色在st<sub>j</sub>(t)约束下的对资源r<sub>j</sub>(t)的操作算子向量,其中j=0,1,…,m,则可构造如下对角阵形式:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>G</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>&eta;</mi><mn>11</mn></msub></mtd><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>&eta;</mi><mn>22</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>&eta;</mi><mi>nn</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mi>a</mi><mo>)</mo></mrow></mrow>]]></math><img file="FSB0000121595240000033.GIF" wi="1222" he="324" /></maths>由于系统是动态系统,所以系统的状态是变化的,则可以得到系统的状态方程为:st(k+1)=G·st(k) (b)即<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>st</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>st</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>st</mi><mi>m</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>&eta;</mi><mn>11</mn></msub></mtd><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><msub><mi>&eta;</mi><mn>22</mn></msub></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd><mtd><msub><mi>&eta;</mi><mi>nn</mi></msub></mtd></mtr></mtable></mfenced><mo>&CenterDot;</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>st</mi><mn>1</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>st</mi><mn>2</mn></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>st</mi><mi>m</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mi>c</mi><mo>)</mo></mrow></mrow>]]></math><img file="FSB0000121595240000041.GIF" wi="1202" he="314" /></maths>其中,G称为控制矩阵,由公式(a),(b)和(c)可知,G是与系统状态st(t)相关的,所以系统是一个非线性系统;<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>st</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><msub><mi>&eta;</mi><mrow><mi>j</mi><mo>&CenterDot;</mo></mrow></msub><msub><mi>st</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>&eta;</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>&eta;</mi><mrow><mn>2</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>&eta;</mi><mi>nj</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>&CenterDot;</mo><msub><mi>st</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>&eta;</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><mi>st</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>&eta;</mi><mrow><mn>2</mn><mi>j</mi></mrow></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><mi>st</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo></mtd></mtr><mtr><mtd><msub><mi>&eta;</mi><mi>nj</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><mi>st</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mi>d</mi><mo>)</mo></mrow></mrow>]]></math><img file="FSB0000121595240000042.GIF" wi="1424" he="306" /></maths>相应的资源配比方程为:r(k+1)=G·r(k)从上式可知,由对角矩阵G可以求出k+1个资源的配比权重;(3)根据资源的配比权重,将资源的调度配比路径选择过程通过人工蚂蚁的搜索实现,其算法公式为(i),并分为三个阶段,即开始阶段、中间阶段和结束阶段;算法中搜索的开始阶段,路径上信息元素量根据相应路由的延时约束满足程度进行更新,蚂蚁主要选择延时约束和带宽约束较好的路径,其信息元素更新公式为(f);当信息量积累到一定程度进入中间阶段,其链路上的信息量已足以体现延时约束方面的优势,此时用延时抖动约束满足程度对对应路径上的信息元素量进行更新,这样在原来延时约束满足程度好、剩余带宽较大路由中,延时抖动约束满足程度高的路径上的信息量就越来越多,促使蚂蚁选择这些路径,其信息元素更新公式为(g);当搜索过程进入结束阶段时,用信息元素丢失率约束满足程度更新信息元素,搜索过程完成后,选择搜索成本高的个体进入下一次迭代,下一代更新信息量时,路径上的信息元素量则因为经过的蚂蚁比较多而获得增加的机会比较大,这样最终迭代结果是蚂蚁选择了各个约束条件满足程度都相对较高的路径中成本较低的路径,其信息元素更新公式为(h);算法(i)中整体更新信息元素量时路径(i,j)上第k个蚂蚁的信息量按如下公式更新:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>&tau;</mi><mi>ij</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&rho;</mi><mo>)</mo></mrow><msubsup><mi>&tau;</mi><mi>ij</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>&rho;</mi><mo>&CenterDot;</mo><mi>&Delta;</mi><msubsup><mi>&tau;</mi><mi>ij</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>c</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mi>e</mi><mo>)</mo></mrow></mrow>]]></math><img file="FSB0000121595240000051.GIF" wi="1178" he="88" /></maths>其中<img file="FSB0000121595240000052.GIF" wi="422" he="130" /><img file="FSB0000121595240000053.GIF" wi="161" he="66" />是t+1时刻蚂蚁k在路径(i,j)上留下的信息元素的量,ρ是蚂蚁信息元素更新权值,一般取值0~1,c为常数变量可随机取值,<img file="FSB0000121595240000054.GIF" wi="137" he="68" />是t时刻蚂蚁k在路径(i,j)上留下的信息元素的量,在蚂蚁搜索的开始阶段、中间阶段、结束阶段分别根据公式(f)、(g)、(h)确定:<img file="FSB0000121595240000055.GIF" wi="1146" he="118" /><img file="FSB0000121595240000056.GIF" wi="1128" he="214" /><img file="FSB0000121595240000057.GIF" wi="1226" he="129" />其中<img file="FSB0000121595240000058.GIF" wi="308" he="55" />是延时度量的惩罚函数,在为理想状态下没有延时,取其值均为0,即在不满足延时约束的路径上不增加信息元素量,从而减少下次迭代中蚂蚁选择该路径的机率;所述的多路径混合蚁群智能调度方法,在使算法具有较强搜索能力的同时,避免出现停滞现象,该算法使用自适应随机比率选择规则信息元素量,使得t时刻该蚂蚁在1状态下选择路径(i,j)的概率<img file="FSB0000121595240000059.GIF" wi="60" he="69" />按照公式(i)得出,即对位于节点i的蚂蚁k,按公式(i)选择随机规则:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>h</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close='' separators=' '><mtable><mtr><mtd><mi>arg</mi><mi>max</mi><mo>{</mo><mi>&tau;</mi><munder><mrow><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>u</mi><mo>)</mo></mrow><mo>&times;</mo><msup><mi>&eta;</mi><mi>&beta;</mi></msup></mrow><mrow><mi>u</mi><mo>&Element;</mo><msub><mi>J</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></munder><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>u</mi><mo>)</mo></mrow><mo>}</mo><mo>,</mo></mtd><mtd><mi>if</mi><mrow><mo>(</mo><mi>q</mi><mo>&le;</mo><mi>q</mi><mo>(</mo><mi>&lambda;</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>s</mi><mo>,</mo></mtd><mtd><mi>otherwise</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow>]]></math><img file="FSB00001215952400000510.GIF" wi="1585" he="209" /></maths>q(λ(t))=λ(t)/N其中λ(t)∈[2,N]表示算法在第t次迭代时的路径均衡量,N表示节点数,有q(λ(t))∈[2/N,1],其中q(λ(t))表示第t次迭代时N个节点平均路径均衡量,q为[0,1]上一致分布的随机数,τ(i,u)表示节点i与节点u之间的信息素量,η(i,u)表示节点i与节点u之间的启发式因子,β表示启发式因子的强弱;网格节点中的通信链路称为路径,在选择路径过程中,t时刻蚂蚁k在1状态下选择路径(i,j)的概率<img file="FSB0000121595240000061.GIF" wi="63" he="67" />表示如下:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msubsup><mi>p</mi><mi>ij</mi><mi>lk</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>&xi;</mi><mi>ij</mi><mi>k</mi></msubsup><mo>&times;</mo><mfrac><mrow><msup><mrow><mo>(</mo><msubsup><mi>&alpha;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>&PartialD;</mo></msup><mo>/</mo><msup><mrow><mo>(</mo><msubsup><mi>&beta;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow><mi>&alpha;</mi></msup></mrow><mrow><munder><mrow><mi>&Sigma;</mi></mrow><mrow><mi>i</mi><mo>&Element;</mo><msub><mi>v</mi><mi>i</mi></msub><mi>j</mi><mo>&Element;</mo><mi>v</mi><mo>-</mo><msub><mi>v</mi><mi>i</mi></msub></mrow></munder><msup><mrow><mo>(</mo><msubsup><mi>&alpha;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>&PartialD;</mo></msup><mo>/</mo><msup><mrow><mo>(</mo><msubsup><mi>&beta;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow><mo>&PartialD;</mo></msup></mrow></mfrac><mo>&times;</mo><mfrac><msup><mrow><mo>(</mo><msubsup><mi>&eta;</mi><mi>ij</mi><mi>lk</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow><mi>&alpha;</mi></msup><mrow><munder><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><msub><mi>v</mi><mi>i</mi></msub><mi>j</mi><mo>&Element;</mo><mi>v</mi><mo>-</mo><msub><mi>v</mi><mi>i</mi></msub></mrow></munder><msup><mrow><mo>(</mo><msubsup><mi>&eta;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>)</mo></mrow><mi>&alpha;</mi></msup></mrow></mfrac><mo>,</mo><mi>q</mi><mo>&lt;</mo><msub><mi>q</mi><mn>0</mn></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mi>h</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000121595240000062.GIF" wi="1595" he="276" /></maths>其中<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><msubsup><mi>&alpha;</mi><mi>ij</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msubsup><mi>&tau;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><munder><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><msub><mi>v</mi><mi>k</mi></msub><mi>j</mi><mo>&Element;</mo><mi>v</mi><mo>-</mo><msub><mi>v</mi><mi>k</mi></msub></mrow></munder><msubsup><mi>&tau;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></mfrac><mo>,</mo><msubsup><mi>&beta;</mi><mi>ij</mi><mi>k</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>p</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><msubsup><mi>&tau;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mi>p</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mrow><munderover><mi>&Sigma;</mi><mrow><mi>p</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></munderover><munder><mi>&Sigma;</mi><mrow><mi>i</mi><mo>&Element;</mo><msub><mi>v</mi><mi>k</mi></msub><mo>,</mo><mi>j</mi><mo>&Element;</mo><mi>v</mi><mo>-</mo><msub><mi>v</mi><mi>k</mi></msub></mrow></munder><msubsup><mi>&tau;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mi>p</mi></msubsup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FSB0000121595240000063.GIF" wi="946" he="265" /></maths>分别称为路径(i,j)对蚂蚁k的吸引力和排斥力,蚂蚁k选择路径(i,j)的概率p<sub>k</sub>(i,j)按照公式(k)可以得出<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><msub><mi>p</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mfrac><mrow><mo>[</mo><mi>&tau;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>]</mo><mo>&CenterDot;</mo><msup><mrow><mo>[</mo><mi>&eta;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>]</mo></mrow><mi>&beta;</mi></msup></mrow><mrow><munder><mi>&Sigma;</mi><mrow><mi>s</mi><mo>&Element;</mo><msub><mi>J</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mrow></munder><mo>[</mo><mi>&tau;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>s</mi><mo>)</mo></mrow><mo>]</mo><mo></mo><mo>&CenterDot;</mo><msup><mrow><mo>[</mo><mi>&eta;</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>s</mi><mo>)</mo></mrow><mi></mi><mo>]</mo></mrow><mi>&beta;</mi></msup></mrow></mfrac><mo>,</mo><mi>ifj</mi><mo>&Element;</mo><msub><mi>J</mi><mi>k</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo><mi>otherwise</mi></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow>]]></math><img file="FSB0000121595240000064.GIF" wi="1258" he="266" /></maths>同时蚂蚁k在路径(i,j)上的信息元素更新方程为:<maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><msubsup><mi>&alpha;</mi><mi>ij</mi><mi>k</mi></msubsup><mo>=</mo><msubsup><mi>t&alpha;</mi><mi>ij</mi><mi>old</mi></msubsup><mo>+</mo><mi>M</mi><mo>/</mo><mi>f</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mi>l</mi><mo>)</mo></mrow></mrow>]]></math><img file="FSB0000121595240000065.GIF" wi="943" he="86" /></maths>其中<img file="FSB0000121595240000066.GIF" wi="56" he="69" />为第i级第j个节点上人工蚂蚁k产生的信息元素强度;t表示信息元素强度的残留系数,取[0.5,0.9];M为路径常数;f为大于0的常数。
地址 430074 湖北省武汉市洪山区珞喻路718号