快速蚂蚁系统

2024-11-04

快速蚂蚁系统(共3篇)

快速蚂蚁系统 篇1

摘要:蚂蚁算法目前已得到广泛的运用。为克服基本蚂蚁算法容易出现停滞现象等缺陷, 许多学者提出了改进的蚂蚁算法。最大—最小蚂蚁系统是其中性能最优良的蚂蚁算法。在简述基本蚂蚁算法及最大—最小蚂蚁系统对其改进的基础上, 实现了用最大-最小蚂蚁系统求解K-TSP问题的算法, 列出了求解结果, 并与文献[7]中的结果进行了对比, 指出最大最小蚂蚁系统是求解K-TSP问题的有效算法。

关键词:最大—最小蚂蚁系统,K-TSP,智能计算

0 引 言

自1991年意大利学者Dorigo M等人提出蚂蚁算法[1,2,3]以来, 该算法求解TSP问题、二次分配问题、job2shop 调度问题等组合优化问题上得到了极大的成功, 但同时也存在一些缺陷, 其中最大问题是容易出现停滞现象, 即算法的迭代停滞于某局部最优解。十多年以来, 大批学者对蚂蚁算法进行了充分的研究, 提出了大量对基本蚂蚁算法进行改进的算法, 如蚁群系统[1]、最大最小蚂蚁系统[6]等。诸多算法中, 最大最小蚂蚁系统具有最优性能, 并可以证明该算法可以以任意接近1的概率收敛于最优解[6]。本文将在简要介绍基本蚁群系统和最大最小蚂蚁系统的基础上, 详细论述运用最大最小蚂蚁系统求解K-TSP问题的方法, 列出了部分求解结果, 对结果进行了分析。

1 基本蚂蚁算法与最大最小蚂蚁系统

1.1 基本蚂蚁算法的原理

基本蚂蚁算法利用了蚂蚁觅食总是能找到最短路径的原理。生物学家发现蚁群离开蚁窝外出觅食时, 经过一段时间的搜索, 最后蚁群总是能找到蚁窝与食物之间的最短路径, 即使其中有障碍物阻隔也是如此。原来, 蚂蚁在觅食过程中, 总是在所经路径上留下一种信息素, 该信息素随时间挥发, 所有蚂蚁均能感知到此种信息素, 并总是趋向于行走信息素最浓的路径。蚁群开始觅食时, 由于不知道食物的位置, 各蚂蚁寻食路径是随机的, 当它们搜寻到食物后, 一般沿原路返回。因为经过最短路径往返的时间最短, 因此在该路径上搜寻到食物的蚂蚁已经返回时, 其它蚂蚁还在路上, 因此离蚁窝近处, 最短路径上信息素比其它路径上信息素浓, 吸引了较多的蚂蚁走这条路外出觅食, 久而久之, 最短路径气味越来越浓, 而其它路径上由于信息素逐渐挥发, 信息素逐渐减弱直至消失, 因此, 最后所有蚂蚁都能根据信息素的指引找到最短路径。

Dorigo M等人正是依据上述原理发现了基本蚂蚁算法。基本蚂蚁算法与具体问题相关, 下面以TSP问题为例说明蚂蚁算法的基本思路。

TSP问题的全称是旅行商问题 (Traveling Salesman Problem) , 即某商人要在一系列城市售货, 所有城市之间都有道路连接, 要求解一条最短路径, 该路径除出发城市外只行经各城市一次, 并最后回到出发城市。用基本蚂蚁算法求解TSP问题的基本迭代流程是:

① 将所有城市对 (i, j) 间路径的信息素初始化为一个较小值τij (0) ;

② 将m只蚂蚁随机放到n座城市;

③ 某时刻t时, 各蚂蚁按下式决定的概率选择下一座城市:

pijk (t) ={[τij (t) ]α[ηij]βkallowed[τik (t) ]α[ηik]βjallowed0otherwise (1)

其中, allowed为该蚂蚁未行经的城市集合;ηij是一个启发式因子, 表示蚂蚁从城市i转移到城市j的期望程度, 在基本蚂蚁算法中ηij取城市i和城市j间距离的倒数;α, β分别表示信息素和启发式因子的相对重要程度。

④ 当所有蚂蚁完成一次周游后, 各路径上的信息素根据下式更新:

τij (t+1) = (1-ρ) *τij (t) +Δτij (2)

Δτij=k=1mΔτijk (3)

其中, ρ (0<ρ<1) 表示路径上信息素的挥发系数;Δτij表示本次迭代城市间ij上的信息素增量, Δijk表示第k只蚂蚁在本次迭代中在城市间ij上留下的信息素量, 基本蚂蚁算法中取值为Q/Lk, Q为固定常值, Lk为该蚂蚁周游长度, 如果蚂蚁没有经过某两城市间, 则该值为零。

⑤ 返回②直到达到某一最短路径或迭代次数达到规定次数。

1.2 最大最小蚂蚁系统对基本蚂蚁算法的改进

基本蚂蚁算法的主要问题是在迭代到一定次数时出现停滞现象, 即最后所有蚂蚁都走同一条次优路径, 而再也不能发现新的解。最大最小蚂蚁系统是目前对基本蚂蚁系统所作改进的算法中性能最优良的系统, 其对基本蚂蚁算法的改进主要有如下三点:

(1) 每次迭代完成后, 只使用本次迭代中路径最短的蚂蚁或到本次迭代为止最短路径的蚂蚁更新各城市间信息素, 即:

τij (t+1) = (1-ρ) *τij (t) +Δτijbest (4)

其中, Δτijbest=1/Lbest, Lbest为本次迭代的最短路径或迄今为止的最短路径;

(2) 为了防止迭代中出现的停滞现象, 总是将城市间信息素限制在[τmin, τmax]的范围, 其中,

τmax=11-ρ1Lbest (5)

τmin=2τmax (1-pbestn) (n-2) pbestn1Lbest (6)

式中, Lbest使用迄今为止的最短路径, 并实时更新;Pbest为蚂蚁一次行走中找到最短路径的概率, 计算结果[5]表明, 最大最小蚂蚁算法效率对pbest的取值不敏感, 一般取值为0.05即可。式 (5) 、 (6) 的推导在此从略。

(3) 与基本蚂蚁算法及信息素初始化为一个最小值不同, 最大最小蚂蚁系统将信息素初始化为最大值τmax。

2 K-TSP问题

K-TSP (K-person traveling salesman problem) , 即k个商人从同一城市出发售货, 最后均返回出发城市, 除出发城市外, 所有城市只被一个商人经过, 求每个商人的售货路线, 使所有商人的售货路线最短。

K-TSP问题的数学描述为:设V= (v1, v2, …, vn) 是平面上n个点的集合, G= (V, E) 是V上的完全图, C:ER为权函数, 称H为图G= (V, E) 的k-周游路, 如果它是k条子周游路的集合H= (H1, H2, …, Hn) , 这里:

(1) Hi为至少包含3条边的简单图, i=1, 2, …, k;

(2) Hi经过定点v1, i=1, 2, …, k;

(3) 任给vV/{v1}, 存在唯一的子周游路Hi经过v

k-周游路H的长度记为L (H) , 即:

L (Η) =i=1kL (Ηi) =i=1klΗiL (l) (7)

其中lHi中任意边的长度。

由上可见, TSP问题仅是K-TSP问题的一个特例, 仅是当k=1时的情形。由于K-TSP问题要求多人共同遍历各城市且总路径最短, 因此与TSP问题相比, 其候选解更多, 是一个更难的组合优化问题。目前仅有少量文献涉及K-TSP问题, 其中文献[7]运用基本蚂蚁算法对其进行了求解, 本文将运用最大最小蚂蚁系统求解K-TSP问题。

3运用最大最小蚂蚁系统求解K-TSP问题 (MMAS-KTSP)

3.1 求解基本思想

可以将m·k个蚂蚁分成m个组, 每组k个蚂蚁, 每组各蚂蚁的访问的城市数随机生成, 设cji为除出发城市外各蚂蚁访问的城市数, 它应满足:

{cji2j=1kcji=n-1 (8)

其中, n为城市总数, i=1, 2, …, m

各组每个蚂蚁访问完指定城市数后回到出发城市, 每组蚂蚁对应生成一个已访问城市表, 禁止蚂蚁在访问过程中经过已访问城市表中的城市。因此当一组中各蚂蚁均回到出发城市后, 就构造了K-TSP问题的一个解。

蚂蚁在访问过程中, 按照 (1) 式确定的概率寻找下一城市, 但禁止访问的城市列表为本组所有蚂蚁已访问过的城市。当所有组的蚂蚁均完成访问后, 可求得最优组, 把它当成当前最优解。这样就可以运用最大最小蚂蚁系统求解K-TSP问题。

3.2 算法流程

依据上述思想, 可以得出运用最大最小蚂蚁系统求解K-TSP问题的算法流程如下:

① 指定K-TSP问题中的出发城市和k值大小, 将蚂蚁分成m个组, 每组k个蚂蚁;

② 各城市间的信息素初始化为τmax, τmax按 (5) 式确定, 其中Lbest为任意一组蚂蚁按贪婪法 (即蚂蚁总是访问下个离自己最近的城市) 生成的一个解;

③ 置迭代次数iteration=1;

④ 对第i (i=1, 2, …, m) 组的蚂蚁j (j=1, 2, …, k) , 随机生成其访问的城市数cji, cji应满足 (8) 式, 将已访问城市表清零, 将指定出发城市加入已访问城市表;

⑤ 若蚂蚁没有访问完指定城市数, 则蚂蚁按 (1) 式确定的概率选择访问下一个城市, 并将该城市加入已访问城市表, 否则回到出发城市;

⑥ 若本组所有蚂蚁均完成访问, 按 (7) 式求得本组的解, 否则返⑤;

⑦ 若所有组均完成访问, 本次迭代完成, 求取本次迭代最优解, 按 (5) (6) 式更新τmax、τmin, 否则返④;

⑧ iteration=iteration+1, 若解达到要求或迭代次数已满, 结束本次试验, 否则按 (4) 式更新城市间信息素τij, 判断信息素是否在范围[τmin, τmax]。若τij<τmin, 则τij=τmin, 若τij>τmax, 则τij=τmax, 其中i, j=1, 2, …, n。返③。

4 实验结果及分析

4.1 实验结果

为了与文献[7]的ACA-KTSP方法结果对比, 我们同样选取51城市的TSPeil51[8], 分别对不同人数 (k值) 的TSP进行了对比实验, 另外也选取了100城市的kroA100进行了实验。实验参数取α=1, β=2, ρ=0.8, eil51中迭代次数为2500次, 蚂蚁总数为40;kroA100中迭代次数为6000次, 蚂蚁总数为120, 结果列于表1~3。

同时给出k=2, 3, 5时eil51的最优路径。

4.2 实验结果分析

① 运用最大最小蚂蚁系统求解K-TSP问题是可行的, 其结果明显优于文献[7]中的求解结果, 即使是最差的解也比文献[7]中好, 各次实验结果也非常稳定。

② 求解结果中, 同组蚂蚁中各蚂蚁访问路径长度明显不相等, 即负载不均衡。实际问题中, 可能要求各蚂蚁访问的路径基本相等, 即负载均衡, 此时可对程序予以修改, 使各蚂蚁负载均衡, 即首先估计组中蚂蚁行径路径的平均值, 在蚂蚁构造解过程中控制蚂蚁的访问路径, 使得其在行经路径长度在平均值附近时返回出发城市, 这样可求得负载均衡下的最优解。

要求负载均衡时, 求解出来的最短总路径将比表3中的路径长, 但各蚂蚁访问的城市数不再是随机的, 而必须满足负载均衡条件, 所以算法需搜索各种路径组合数将下降, 因而求解效率将有所提高。

参考文献

[1]Dorigo M, Maniezzo V, Colorni A.Positive feedback as a search stratery.Technical Report 91-016, Diparttimento di Elettronica, Politecnico diMilano, IT, 1991.

[2]Dorigo M.Optimiztion, Learning and Natural Algoithkma (in Italian) .Ph D thesis, Dipartimento di Elettronica, Politecnico di Milano, IT, 1992.

[3]Colorni A, Dorigo M, Maniezzo V.Distributed optimization by ant colo-nies.In proceedings of the First European Conference on Articial Life.Elsevier, 1992:134-142.

[4]Dorigo M, Cambardella.Ant Colony System:A Cooperative LearningApproach to the Traveling Salesman Problem.IEEE Transactions onEvolutionary Computation, 1997, 1 (1) :53-66.

[5]Thomas St櫣tzle, Holger HHoos.MAX-MINAnt System.Future Genera-tion Computer Systems.2000, 16 (8) :889-914.

[6]Thomas St櫣tzle, Marco Dorigo.A short convergence proof for a class ofACO algorithms.IEEE Transactions on Evolutionary Computation, 2002, 6 (4) :358-365.

[7]黄席樾, 张著洪, 何传江, 等.现代智能算法理论及其应用[M].北京:科学出版社, 2005, 4:357-361.

[8]http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/index.html.

快速蚂蚁系统 篇2

一、Windows环境下

如果你的计算机还可以进入Windows环境中,那么恭喜你,这种情况下即使系统出现了问题,仍然不会是大问题。在这种情况通常会出现以下几种方法:

1.从安装光盘解压缺少的一些重要文件

如果WindowsXP已经进入,但却发现少了某些文件,其中最常见的是Rundll32.exe的丢失。下面就以恢复这个文件为例来说明:单击“开始”/“运行”,在该窗口中输入expand x:i386Rundll32..ex_ c:windowssystem32Rundll32.exe(x代表光驱盘符,rundll.ex_代表需要解压的文件,c:windowssystem32指的是目标文件夹,这些都要根据具体情况来定),即可将丢失的文件恢复至系统。当然也可以直接从其他正常运行的机器复制该文件至本机的相应目录下。

另外,对于丢失的dll链接文件,还可以通过Regsvr32这个程序文件来恢复,恢复的时候需要在运行窗口中输入Regsvr32 a.dll(a.dll代表丢失的链接文件),回车后即会在注册表中注册该文件,然后在弹出的对话框中点“确定”即可。

2.DLL文件的恢复

DLL文件的名称为动态链接库文件,一般存在于Windowssystem32文件夹下,该文件丢失或者被替换,一般也可进入Windows,但是执行应用程序时往往会出现系统报错。这种错误通常可以通过Sfc(系统文件检查器)。sfc是一个命令行程序,必须在WindowsXP的“命令提示符”窗口下才能运行,为了实现多种功能,sfc提供了多个参数,使用格式为:sfc/参数1 /参数2……,各个参数之间要用一个空格隔开。下面介绍一下其几个主要的参数,以方便大家使用:

/scannow:用来扫描所有受保护的系统文件,也是应用比较广的一个参数,它主要是通过正确的系统文件代替错误的系统文件。该参数还可以将最新版本的受保护系统文件放入DLLCache文件夹,而且在操作过程中可能需要WindowsXP的安装光盘,以及其补丁文件,如果你没有该光盘,而是在硬盘上备份了安装文件,可以通过修改注册表来完成该项功能。在运行窗口键入Regedit命令进入注册表编辑器窗口,找到HKey_Local_MachinesoftwareMicrosoftWindowsCurrentVersionsetup项,在右侧的窗口中修改Installation Sources、ServicePacksourcePath和SoutcePath三个键值为硬盘上的系统安装程序路径,这样在修复时就不用再插入WindowsXP安装光盘了。

/scanonce:下次启动时执行受保护系统文件的扫描,也需要读取安装光盘和补丁文件。这个命令常常在执行/scannow命令出现错误提示时才使用。

/scanboot:每次启动系统时扫描所受保护的系统文件,这可能大大降低启动速度,一般不用,使用情况同/scanonce参数。

/purgecache:用来清除文件缓存(该文件默认情况下是在%systemroot%system32dllcache下)并立即扫描所有受保护的系统文件,常在其后还要加上“/cachesize=x”这个参数,这个参数是用来设置文件缓存大小的,以MB为单位,该参数如果设置较小可以节省硬盘空间,如果设置大一些可以保护系统文件,则可能尽可能地恢复更多的系统文件。

一般情况下执行sfc/scannow就可以对系统文件进行恢复了,时间一般在10分钟左右。

3.系统还原显身手

如果用sfc/scannow还是出错的话,则可能想到用系统还原功能来恢复系统。特别是在增删某些软件后出现了系统故障的时候,这种方法就显得尤为方便。

依次单击“开始→所有程序→附件→系统工具→系统还原”,运行“系统还原”命令,打开“系统还原向导”,选择“恢复我的计算机到一个较早的时间”,点击“下一步”,选择好日期后再跟着向导还原即可。

上文所讲系统还原功能是Windows XP中操作的,如果不能进入Windows XP系统,可以通过如下方法解决:

⑴安全模式运行系统还原

如果Windows XP能进入安全模式的话,则可在安全模式下进行系统恢复,步骤同“恢复还原点”。

⑵DOS模式进行系统还原

如果系统无法进入安全模式,则在启动时按F8,选“Safe Mode with Command Prompt”,用管理员身份登录,进入%systemroot%windowssystem32estore目录,找到rstrui文件,直接运行rstrui文件,按照提示操作即可,

⑶在丢失还原点的情况下进行系统还原

在Windows XP预设了System Volume Information文件夹,通常是隐藏的,它保存了系统还原的备份信息。打开查看“显示所有文件和文件夹”属性,取消“隐藏受保护的系统文件”前有选择,会在每个盘中看到“System Volume Information”文件夹。利用这个文件夹可以进行数据恢复。鼠标右击“我的电脑”,选择“属性”/“系统还原”,取消“在所有驱动器上关闭系统还原”复选框,单击“应用”按钮。这样做是为了重建一个还原点。再打开“系统还原”命令,就可以找到丢失的还原点了。

上面的叙述是针对FAT32分区,如果系统分区为NTFS,那么在启动System Volume Information文件夹时会遇到一点麻烦。因为你可能并没有被加入到System Volume Information安全属性中,访问不到该文件。鼠标右击该文件夹,在弹出的菜单中选择“属性”,打开System Volume Information属性对话框,选中“安全”选项卡,单击“添加”按钮,打开“选择用户或组”窗口,点击该窗口右下角的“高级”按钮,然后单击“立即查找”按钮,这时会列出计算机上所有的用户和组,选中自己当前的账户或账户所在组的名称后“确定”。这样选中的账户被添加到System Volume Information安全属性中,就可以访问该文件夹了。

[1][2][3]下一页

上文所讲系统还原功能是Windows XP中操作的,如果不能进入Windows XP系统,可以通过如下方法解决:

⑴安全模式运行系统还原

如果Windows XP能进入安全模式的话,则可在安全模式下进行系统恢复,步骤同“恢复还原点”。

⑵DOS模式进行系统还原

如果系统无法进入安全模式,则在启动时按F8,选“Safe Mode with Command Prompt”,用管理员身份登录,进入%systemroot%windowssystem32estore目录,找到rstrui文件,直接运行rstrui文件,按照提示操作即可。

⑶在丢失还原点的情况下进行系统还原

在Windows XP预设了System Volume Information文件夹,通常是隐藏的,它保存了系统还原的备份信息。打开查看“显示所有文件和文件夹”属性,取消“隐藏受保护的系统文件”前有选择,会在每个盘中看到“System Volume Information”文件夹。利用这个文件夹可以进行数据恢复。鼠标右击“我的电脑”,选择“属性”/“系统还原”,取消“在所有驱动器上关闭系统还原”复选框,单击“应用”按钮。这样做是为了重建一个还原点。再打开“系统还原”命令,就可以找到丢失的还原点了。

上面的叙述是针对FAT32分区,如果系统分区为NTFS,那么在启动System Volume Information文件夹时会遇到一点麻烦。因为你可能并没有被加入到System Volume Information安全属性中,访问不到该文件。鼠标右击该文件夹,在弹出的菜单中选择“属性”,打开System Volume Information属性对话框,选中“安全”选项卡,单击“添加”按钮,打开“选择用户或组”窗口,点击该窗口右下角的“高级”按钮,然后单击“立即查找”按钮,这时会列出计算机上所有的用户和组,选中自己当前的账户或账户所在组的名称后“确定”。这样选中的账户被添加到System Volume Information安全属性中,就可以访问该文件夹了。

二、在DOS环境下

如果电脑已经进入不了WindowsXP,那么也不用太着急重装系统,因为这时还是有些方法的。

1.安全模式

在WindowsXP启动时按F8键,选择“安全模式”,如果能启动成功,则退出后再正常启动。

2.最后一次正确的配置

其基本操作同安全模式,但需要说明的是选择该项回车前要确保关闭了键盘上的NumLock指示灯。

上一页[1][2][3]下一页

3.故障恢复台

⑴控制台的安装

①控制台硬盘安装

插入WindowsXP安装光盘,单击“开始”/“运行”,输入i386winnt32.exe/cmdcons命令后回车,在出现的对话框中显示了“故障恢复控制台”安装选项,单击“是”后确认,重新启动计算机即会在启动菜单中看到“Microsoft Windows Recovery Console”菜单,选中后即可进入“故障恢复控制台”。

②控制台光盘安装

快速蚂蚁系统 篇3

问:偶然一次用品牌机自带的windowsme更换系统,发现第一次用 “休眠”来关机,第二次按下电源键进入windows me画面,只需5秒,以前的windows98进入画面需要1分多钟。请问windows98有没有这种功能,具体操作如何?答:在windows98下同样可以实现快速开关机,

windows98支持此项模式。在安装windows98时使用setup/p j参数进行安装,就可以让 windows98支持ACPI,实现STR功能。另外注意还需要硬件的支持,主板支持是关键,需要主板支持STR功能,也要注意有写宣称支持STR 功能的主板,由于设计上原因,很难顺利实现。此外,还需要机箱电源的配合,电源在提供5V电压给主板的同时,必须使电源稳定在720 ma以上才行。STR是suspend to RAM的缩写,即“悬起于内存”。其意思是指系统关机或进入省电模式后,将重新启动所需的文件数据都存储在内存里。使用STR功能以后,在彻底切断主机电源前千万不可随意继续插拔内存,否则很可能造成内存烧毁或系统毁坏。

上一篇:神经精神症状下一篇:解剖学常用记忆方法