没有合适的资源?快使用搜索试试~ 我知道了~
SoftwareX 11(2020)100400原始软件出版物Isula:一个蚁群算法的Java框架Carlos Gavidia-Calderona, César Beltrán Castañonba伦敦大学学院,计算机科学系,Gower Street,London,UKb秘鲁天主教大学工程系,Av. 秘鲁利马圣米格尔ar t i cl e i nf o文章历史记录:接收5三月2019收到修订版2019年11月25日接受2020年保留字:蚁群优化Java旅行推销员问题图像分割a b st ra ct蚁群优化(ACO)算法模拟蚂蚁的觅食行为来解决优化问题。它们在学术和工业环境中都被证明是有效的。ACO算法之间有许多共同的特点。Isula封装了这些共性,并以Java库的形式公开它们以供重用。在本文中,我们使用旅行推销员问题和图像分割展示的框架功能,使用三个最高性能的ACO算法实现在伊苏拉。这个框架是GitHub上的一个开源项目,GitHub是目前最流行的ACO Java存储库。©2020作者由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本v1.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/法律代码许可证MIT许可证使用git的代码版本控制系统使用Java的软件代码语言、工具和服务编译要求,操作环境依赖Apache Maven如果可用,链接到开发人员文档/手册http://cptanalatriste.github.io/isula/doc/问题支持电子邮件carlos. pucp.edu.pe1. 动机和意义蚁群优化(ACO)算法,由Dorigo等人提出。[1],通过模仿自然界中蚂蚁的行为来解决优化问题当蚂蚁穿过一片区域寻找食物时,它们会用信息素标记自己的路径。在它们找到食物后,它们会从食物源到巢穴进行几次旅行,增加它们路径的信息素踪迹的强度。如果几只蚂蚁已经找到了相同的食物来源,并且也在将食物运送到巢穴, 具有最短路径的蚂蚁更强烈。在相同的时间内,最短路径比需要更多时间遍历的较长路径有更多的双向行程。同伴蚂蚁对信息素很敏感,倾向于选择信息素最强烈的路径。这种行为也增加了最短路径的信息素强度。随着时间的推移,整个群体收敛到最优解。*通讯作者。电子邮件地址:ucl.ac.uk(C.Gavidia-Calderon),cbeltran@pucp.pe(C.Beltrán Castañon)。ACO算法非常适合于为计算量大的问题生成高质量的解决方案它们已成功地应用于广泛的领域。让我们以路径规划这一NP完全问题为例。ACO算法已被证明在产生短且无冲突的路线[2,3]方面是有效的,即使在动态环境中也是如此[4]。ACO算法并不局限于学术研究:从业者正在现实世界中使用它们蚁群算法是第一个提出的蚁群算法[1]。研究人员后来开发了新的算法--也是受蚂蚁行为的启发--通过改进、扩展或调整AS。虽然这些算法不同,但鉴于它们的共同灵感,它们有几个共同点。我们依靠这种再利用有可能提供一个软件框架蚁群算法的实现[6]。我们选择Java作为编程语言,因为它是本书出版时最流行的编程语言[7]。伊苏拉包括几个1.Paraponera clavata蚂蚁在秘鲁被称为https://doi.org/10.1016/j.softx.2020.1004002352-7110/©2020作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx2C. Gavidia-Calderon和C.Beltrán Castañon/SoftwareX 11(2020)100400表1守护进程的行动和政策包括在伊苏拉。#伊苏拉型总结1离线信息素更新(AS)在每只蚂蚁建立了一个解决方案后,它将相应的信息素增量存放到每个解决方案组件中。2执行蒸发(AS)降低蒸发率,从而减少信息素矩阵的所有元素中的信息素量3随机节点选择指示蚂蚁如何选择要添加到其当前解决方案中的组件。 蚂蚁随机选择组件,其中选择的概率是组件的信息素值及其启发式信息的函数。4在线信息素更新(ACS)当整个群体完成构建解决方案时,antsystem.OfflinePheromoneUpdate更新信息素值,而此蚂蚁策略在单个蚂蚁完成构建候选解决方案时立即更新值。5伪随机节点选择在向解决方案中添加组件时,蚂蚁面临两种可能的随机选择:采用antsystem.RandomNodeSelection或选择具有最佳信息素和启发式信息值的节点。6起始信息素基质(MMAS)MMAS保持信息素值在一个范围之间,限制信息素的蒸发和沉积。在算法开始时,这个守护进程操作将信息素值设置为最大值。7更新信息素矩阵(MMAS)MMAS实现只允许表现最好的蚂蚁在迭代结束时存放信息素ACO算法的构建块,可以开箱即用或适应的情况下的问题需要它。在框架中可用的构建块,我们可以提到节点选择策略,信息素更新策略,和蚁群初始化程序。表1包含了其中的一个子集。Isula目前支持三种性能最好的ACO算法:蚂蚁系统(AS),蚁群系统(ACS)和我们设想了Isula的两个用例:(1)使用ACO算法的Isula实现,以及(2)通过重用和调整框架中已有的组件来构建新的ACO算法第2节说明了第一个用例。旅行商问题(TSP)通常用于展示ACO算法[8]。我们通过使用AS解决TSP实例来说明框架内部。我们还展示了如何重新利用我们为AS构建的代码,以快速实现ACS的TSP。第3节展示了第二个用例。我们描述了如何开发一种医学图像分割方法组成和适应Isula组件。我们通过结合两种蚁群算法来分割大脑MRI(磁共振图像):图像阈值算法[9]和图像分割算法[10]。我们的贡献如下:介绍Isula,一个用于ACO算法的Java框架(第2.1节)。详细描述了如何使用Isula的组件开箱即用,使用两种成熟的ACO算法(第2.2节中的一个完整的例子,说明如何使用Isula通过组合和调整算法组件来开发新算法。我们实现了一种脑MRI分割方法(第3节)。2. 软件描述在本节中,我们首先对ACO元启发式算法的主要特征进行了高级概述,然后使用旅行推销员问题来说明如何使用Isula框架实现Java ACO算法。2.1. 用isulaDorigo等人提出了ACO元启发式算法作为ACO算法的算法框架,然后谁将是算法1ACO元启发式算法是伪代码一曰: 程序ACOMetaheuristic2:程序安排活动3:ConstructAntSolutions()4:UpdatePheromones()5:DaemonActions()函数可选这个框架[11]。属于Meta启发式的算法遵循算法1中描述的结构,该结构取自Dorigo的书[8]。ScheduleActivities函数协调算法执行。在迭代过程中,人工蚂蚁遍历问题图并构建每个候选解决方案。在遍历问题图时,蚂蚁随机选择哪个解决方案组件添加到正在构建的候选解决方案中。取决在算法上,解决方案组件可以对应于问题图的节点或边。 每个解决方案组件的转移概率指导这个随机选择过程。这个概率是解决方案组件上的 信 息 素 的 量 和 域 相 关 度 量 ( 也 称 为 启 发 式 信 息 ) 的 函 数 。ConstructAntSolutions函数表示算法1中的解决方案构建过程。解决方案构建过程影响每个解决方案组件中可用的信息素的量。蚂蚁将信息素沉积在它们的候选解决方案的组成部分上。此外,信息素蒸发可以是ACO算法的一部分,以避免快速收敛和有利于图形探索。UpdatePheromones函数控制信息素更新过程。最后,DaemonActions函数在全局范围内实现行为,而不是在蚂蚁级别。IsulaACO超启发式算法它是一个Java库,包含ACO算法最常见组件的工作实现。我们在图1中展示了如何使用Isula来解决优化问题。它包括四个步骤:环境定义通过扩展Environment类来定义问题上下文。扩展Ant类以提供构建解决方案所需的信息。算法配置根据要使用的算法配置AcoProblemSolver实例这包括···C. Gavidia-Calderon和C.Beltrán Castañon/SoftwareX 11(2020)1004003Fig. 1. 使用Isula解决优化问题。该过程分为环境定义、人工蚂蚁定义、算法配置和算法执行四个步骤。守护程序操作、节点选择策略和参数比如蚂蚁的数量或者蒸发率我们在表1中显示了Isula可用的类型的子集。算法执行调用AcoProblemSolver。solve- Problem()方法获得结果。在下一小节中,我们将深入研究Isula的内部结构,看看研究人员和实践者如何使用它来解决组合优化问题。2.2. 旅行商问题让我们通过解决旅行推销员问题(TSP)的一个实例来探索如何使用Isula来解决优化问题。给定一个销售员需要访问的城市列表,我们想知道访问它们的顺序环境和人工蚂蚁定义。Isula问题解决的前两步需要定义环境和人工蚂蚁。在TSP的情况下,环境将包含用于存储城市之间的距离的矩阵状数据结构,以及其对应的信息素矩阵。人工蚂蚁解决TSP将需要关于到目前为止旅行的距离的信息,如果它已经旅行了,遍布所有城市对于TSP,我们开发了AntForTsp和TspEn框架,扩展了框架中可用的抽象类Ant和Environ。这些类可以在GitHub上找到,网址是https://github.com/cptanalatriste/aco-tsp,本节中包含的所有代码。算法配置。清单1介绍了使用Ant System(AS)算法[1]解决TSPLIB库的berlin52问题[12]的算法验证步骤。清单1:使用基于Isula的Ant System实现解决旅行推销员问题。AcoTspWithIsula.javadouble[][]问题= getFromFile(fileName);int findDuplicate =new Duplicate();AntColony,TspEnvironment> colony =getAntColony(config);String str =new String(String);AcoProblemSolver =new AcoProblemSolver>();solver.initialize(env,colony,config);solver.addDaemonActions(newStartPheromoneMatrix);TspEnvironment>(),newPerformEvaporation函数,TspEnvironment>());solver.addDaemonActions(getPheromoneUpdatePolicy());solver.getAntColony().addAntPolicies(newrandomNodeSelection(),TspEnvironment>());solver.solveProblem();TspProblemConfiguration类实现来自Isula的PsychationProvider接口。Configura- tionProvider实例包含要执行的ACO算法的参数,如蚂蚁的数量、信息素转化率和迭代次数TspEnvironment类扩展了框架中的Environment类,后者表示蚂蚁在构建时遍历的环境解决方案它还存储信息素矩阵,其中包含每个解决方案组件的信息素值要使用AS,我们需要为AcoProblemSolver实例提供适当的守护进程操作和ant策略。AS是第一个提出的蚁群算法,其主要特点是所有在迭代后建立解的蚂蚁都有权进行信息素沉积。其他 ACO 算 法 更 喜 欢 限 制 这 种 行 为 。 我 们 依 靠 类 型antsystem.OfflinePheromoneUpdate(getPheromoneUpdatePolicy())返回一个例如本类 ) 、 antsystem 。 执 行 蒸 发和 antsystem 。StartPheromoneMatrix根据AS要求更新信息素值。表1包含了这些类的描述。蚁群中的蚂蚁负责制定备选方案.因此,Isula算法实现的一个关键组成部分是构造蚁群及其成员。4C. Gavidia-Calderon和C.Beltrán Castañon/SoftwareX 11(2020)100400在清单1中,getAntColony()方法生成框架的AntColony类的实例,但是覆盖了AntForTsp()方法以生成AntForTsp类的实例。本课程专为TSP解决方案构建而定制 我们还为蚁群中的所有蚂蚁添加了antsystem.RandomNodeSelection策略。这一政策指导了蚂蚁使用的标准将 组 件 添 加 到 候 选 解 决 方 案 中 清 单 2 ( 可 在Githubhttps://github.com/cptanalatriste/isula获得)是该类的一个片段。清单2:在Isula中使用随机节点选择策略获得转移概率。RandomNodeSelection.javaprivateDouble getHeuristicTimesPheromone(E env,ProblemProvider config,Ccomponent){Double boundary = getAnt().getHeuristicValue(component,getAnt().getCurrentIndex(),env); Double pheromoneTrailValue =getAnt().getPheromoneTrailValue(component,getAnt().getCurrentIndex(),env);if(numberValue == null ||returnnewSolutionConstructionException();}returnMath.pow(Maximum,config.getHeuristicImportance())*Math.pow(pheromoneTrailValue,config.getPheromoneImportance());}如2.1节所述,蚂蚁随机选择解决方案的组件,转移概率取决于信息素值和启发式信息。蚂蚁系统RandomNodeSelection为所有有效的解决方案组件获取此概率,并根据转移概率值。该类是Isula框架的一部分,在TSP的情况下无需修改即可使用AntForTsp类是为构建TSP的解决方案而定制的。因此,它的getHeuristicValue()方法返回潜在解决方案组件相对于蚂蚁当使用Isula解决一个新的优化问题时,框架用户应该扩展基本Ant类,并提供getHeuristicValue()的适当实现来指导解决方案的构建过程。算法执行。现在让我们解决算法执行步骤,详细了解Isula如何进行组合优化。图图2是AcoProblem- Solver.solveProblem()方法的序列图,该方法是Isula伊苏拉·迪斯-贡 献 了 AcoProblemSolver 类 和 AntColony 类 之 间 的 大 部 分ScheduleActivities职责。AcoProblemSolver类将解决方案构建响应委托给AntColony类,同时跟踪到目前为止生成的最佳解决方案。AcoProblemSolver类还负责触发DaemonActions,这可能发生在以下情况:在ConstructAntSolutions阶段之前或之后,由AntColony.buildSolutions()方法实现。框架的用户可以实例化AcoProblemSolver类而无需修改,因为它应该支持大多数ACO算法。如果不是这样,伊苏拉支持其扩展。总之,为了解决组合优化问题,Isula要求其用户实现三种类型:(1)用于表示问题上下文的Environment子类,(2)一个Ant子类,用于遍历环境并构建候选解决方案的蚂蚁;(3)一个包含算法参数的ApproximationProvider实现。Isula框架处理其余部分。代码重用机会。既然我们使用Isula实现解决了TSP问题,我们可以重用我们开发的代码来使用其他ACO算法解决TSP问题。我们将使用蚁群系统(ACS)和蚂蚁系统(AS)来展示ACO算法及其Isula实现之间的ACS改变了信息素更新的方式:它发生在蚂蚁构建解决方案时(称为局部信息素更新)和整个群体完成时(称为全局信息素更新)。此外,ACS算法中的蚂蚁使用伪随机节点选择 策 略, 与AS 中使 用 的 随 机节 点 选 择 策略 不 同 。 清 单3 在Githubhttps://github.com/cptanalatriste/aco-acs-tsp 中提供 , 展示了如何使用蚁群系统(ACS)[13]解决TSP,重用我们在应用AS时开发的类型清单3:使用基于Isula的蚁群系统实现解决旅行推销员问题。AcoAcsTspWithIsula.javadouble[][] problem = AcoTspWithIsula.getRepresentationFromFile(fileName);String String s =new String s(String s);AntColony = AcoTspWithIsula.getAntColony(config);String str =new String(String);AcoProblemSolver =new AcoProblemSolver>();solver.initialize(env,colony,config);solver.addDaemonActions(newStartPheromoneMatrix);System. out. println();sender.getAntColony().addAntPolicies(getLocalPheromoneUpdatePolicy());solver.getAntColony().addAntPolicies(newPseudoRandomNodeSelection对象,TspEnvironment>());sort. sort();我们可以使用AntForTsp和TspEnvironment类而无需修改。我 们 也 可 以 重 用 蚂 蚁 系 统 。 OfflinePheromoneUpdate 和antsystem. StartPheromoneMatrix在信息素更新过程中。由于ACS算法的性质,我们需要包括Isula框架中已经存在的两个附加策略:acs.PseudoRandom-NodeSelection和antsystem.OnlinePheromoneUpdate.我们在表1中详细描述了这些类的行为。3. 说明性示例在上一节中,我们将著名的蚁群算法应用于一个著名的问题。在这里,我们实现了蚁群算法的医学成像领域,我们在以前的工作中提出[14]。如图3,我们的方法将大脑的磁共振(MR)图像(如BrainWeb [15]的图5)作为输入,从中产生三个部分:灰质,白质和脑脊液(CF)。 图 4包含我们的方法从图1中的MR脑图像中提取的灰质段。五、该分割任务可用于计算机辅助手术、异常检测和硬化病变的量化[16]。我们的方法是两个ACO算法的组合。在图像预处理之后,ACO图像阈值算法提取大脑C. Gavidia-Calderon和C.Beltrán Castañon/SoftwareX 11(2020)1004005图二. AcoProblemSolver.solveProblem()方法的序列图。图3.第三章。基 于 AC O 算 法 的 MR脑图像分割方法[14]。对应头骨肌肉和脂肪的像素然后,通过ACO图像分割算法处理大脑像素,其产生对应于每个相关片段的图像。图像分割算法是资源密集型的,因此它大大受益于减少输入产生的图像阈值。我们的方法在Isula中的实现可在GitHub( https://github.com/cptanalatriste/aco-image-segmentation )上获得,包括图像预处理。在本节中,我们不涉及图像预处理,只关注两个ACO算法组件。ACO图像阈值。 Malisia和Tizhoosh提出了我们选择用于阈值处理的ACO算法[9]。他们的算法基于第2节讨论的蚂蚁系统。该算法将输入图像分为两个区域:感兴趣区域-大脑-和背景。为了实现这一点,他们为每个图像像素分配人工蚂蚁,使它们寻找低灰度像素值。在遍历图像时,它们在每个像素中沉积像素信息素被用作产生最终段的聚类算法的特征我们在清单4中显示了图像阈值算法的配置代码。此代码6C. Gavidia-Calderon和C.Beltrán Castañon/SoftwareX 11(2020)100400见图4。从图中提取的灰质段。5使用我们提出的ACO算法。图五、从 B r a i n W e b 数 据 库 获 得 的轴向MR脑图像[15]。也可以在GitHub上找到,网址是https://github.com/cptanalatriste/aco-image-thresholding:清单4:实现图像阈值化,使用基于Isula的蚂蚁系统实现.AcoImageThresholding.javaProblemConfiguration =new ProblemConfiguration();AcoProblemSolver ImagePixel> solver =newSystem. out. println();2016年05月05日@上午10时05分05秒@上午10时05分05秒@上午imageGraph,ProblemConfiguration.NUMBER_OF_STEPS);String getString =new String getString();consolid. consolid. consolid. consolidate();solver. solver. setEnvironment(env); solver.setAntColony(colony);addDaemonActions(newStartPheromoneMatrixImagePixel>(),newRandomizeHive(),newPerformEvaporation ImagePixel>());colony.addAntPolicies(newNodeSelectionForImagePixel holding(),publicvoid online();sort. sort();我 们 重 复 使 用 Isula 类 型 , 如 AcoProblemSolver 和AcoProblemProvider。此外,由于该算法是AS的扩展,因此我 们 还 可 以 依 赖 于 antsystem.PerformEvaporation 和antsystem.StartPheromoneMatrix守护进程操作。由于新域名,我们需要进一步定制。我们在设计Isula时就考虑到了这些场景,它支持扩展和修改.对于使用AS的图像阈值化,我们开发了一种专门的蚁群类型(Imagetorholding-AntColony ) 。 我 们 还 采 用 了 伪 随 机 节 点 选 择(NodeSelectionForImageMonitorholding)和Isula中可用的在线信息素更新策略(OnlinePheromone-UpdateForImageMonitorholding)。 由于我们基于这些扩展在现有的Isula实现中,只有相关的方法被重写。该算法需要在每次 迭 代 开 始 时 将 蚂 蚁 放 置 在 随 机 像 素 处 。 我 们 开 发 了RandomizeHive守护进程操作来完成这一任务。ACO图像分割一旦图像阈值算法提取大脑,图像分割算法就可以开始处理它。我们实现了Ouadfel和Batouche [ 10 ]提出的算法。在他们的方法中,每只人工蚂蚁负责建造一个分区。他们的算法基于在MMAS中,只有表现最好的蚂蚁可以在迭代结束时存放信息素此外,每个溶液组分的信息素值必须属于特定范围。清单5显示了如何配置求解器:清单5:使用基于Isula的Max-MinAnt System实现图像分割AcoImageSegmentation.java配置提供程序配置=问题配置.getInstance();intnumberOfCluster =ProblemConfiguration.getInstance().getNumberOfClusters()EnvironmentForImageSegmentation env =newSystem. out. println();2016年05月05日@上午11时05分05秒@上午11时05分05config.getNumberOfAnts(),env.getNumberOfClusters()); antColony.buildColony(env);int n =new int n>();solver. solver. setEnvironment(env); solver.setAntColony(antColony);C. Gavidia-Calderon和C.Beltrán Castañon/SoftwareX 11(2020)1004007表2GitHub上基于Isula的ACO算法实现#Problem and ACO Algorithm GitHub项目多目标优化。ACO元启发式(第2.1节)最初旨在支持单目标组合优化问题[24]。当前版本的Isula1蚂蚁系统的旅行推销员(Brownle)[22]2蚂蚁系统的旅行推销员(Brownlee)[22]3基于最大最小蚂蚁系统的流水车间调度4使用Ant系统进行图像存储(Malisia和Tizhoosh [9])5使用最大最小蚂蚁系统进行图像聚类cptanalatriste/aco-tspcptanalatriste/aco-acs-tspcptanalatriste/aco-flowshopcptanalatriste/aco-tsp cptanalatriste/aco-tsp同样的限制:它不提供多目标支持开箱即用。研究人员后来开发了蚂蚁启发的算法,可以为给定的多目标优化问题产生一组帕累托最优解[25]。这种算法的体系结构不同于原来的ACO元启发式算法,需要多个信息素矩阵,多个殖民地和多维启发式信息。López-Ibáñez和Stützle提出了MOACO作为多目标ACO算法的算法框架[24]。作为我们路线图的一部分,我们计划让Isula在未来支持MOACO算法。并行ACO。我们的路线图还包括将伊苏拉扩展到超级市场,solver.addDaemonActions(newStartPheromoneMatrixForMaxMiniteredPixel>(),newImageSegmentationUpdatePheromoneMatrix());.addAntPolicies(newImageSegmentationNodeSelection());sort. sort();已验证像素[]bestPartitionreturn. getString();完整的实现可以在GitHub的https://github.com/cptanalatriste/aco-image-segmentation网站。与阈值算法一样,分割算法也使用ACS的伪随机节点选择策略,因此图像-SegmentationNodeSelection扩展acs.PseudoRandom-NodeSelection。信息素更新过程遵循MMAS规则,因此我们使用 Isula 类 型 maxmin.StartPheromone- MatrixForMaxMin 和maxmin.UpdatePheromoneMatrix-ForMaxMin(由ImageSegmentationUpdatePhero- moneMatrix扩展)。我们在表1中描述了这些类型。与前面的例子一样,我们开发了环境、蚂蚁和蚁群的子类,以适应问题域。此自定义代码可以与Isula的内置类型一起使用4. 影响ACO算法并不局限于学术领域:它们被积极用于解决工业中的优化问题[5]。作为最流行的编程语言[7],需要一个健壮的Java库来快速实现ACO。Isula的开发始于2015年作者的硕士论文之一在出版时,Isula已用于实现图像分割[18]和道路提取[19]的 ACO算法Isula是GitHub上的一个开源项目,GitHub是世界上最大的编码平台。表2包含了我们迄今为止开发的ACO算法的Isula实现。我们构建这些开源项目是为了展示Isula的功能,因此代码遵循教程风格,并有完整的文档记录。在本书出版时,Isula是GitHub上最受欢迎的Java蚁群优化项目,在该地区的24个代码库中,包括fork和stars [20]。不考虑编程语言,是98个代码库中第三大最受欢迎的项目[21]。感谢多年来收到的反馈,我们极大地改进了Isula我们希望继续使从业者和研究社区能够实现ACO算法。如本文所示,该框架足够灵活,可以支持多个问题域和不同的ACO算法。4.1. 伊苏拉路线图在本小节中,我们将介绍我们计划的Isula框架的扩展。ACO算法的端口并行实现。当前的pro-technology需要在多个处理器上并行执行蚂蚁子群体,以及它们之间的信息交换策略[25]。这些信息可以是每个子群体找到的最佳解决方案,甚至是整个信息素矩阵[26]。当前版本的Isula不支持这些架构,但我们希望未来的版本能够解决这些问题。参数优化。ACO算法的性能高度依赖于其参数值[27]。当前版本的Isula,在文献中的大多数ACO算法,保持参数值恒定的算法执行过程中。新一代ACO算法能够在运行时调整参数值[28这些算法可以分为两类:在算法执行之前调度参数更新的算法,以及根据当前搜索状态更新参数的算法。我们计划扩展Isula以支持这些参数更新策略。5. 结论蚁群算法的元启发式算法已被证明是解决优化问题的有效方法。这个算法框架的实例共享许多功能:Isula依靠这个以健壮的Java库的形式提供现成的构建块这样,新的ACO算法的实现更快。Isula支持多个域和ACO算法,并且如本文所示易于扩展。它是目前最受欢迎的Java蚁群优化GitHub项目,我们希望更多的研究人员和实践者采用Isula并帮助其改进。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作引用[1]Dorigo M,Maniezzo V,Colorni A.蚂蚁系统:群体优化合作的探员。IEEETransSystManCybernB1996;26(1):29-41.http://dx.doi.org/10.1109/3477.484436网站。[2]García MAP,Montiel O,Castillo O,Sepúlveda R,Melin P.采用蚁群优化和模糊成本函数评估的自主移动机器人导航路径规划。Appl Soft Comput2009;9(3):1102-10. http://dx.doi.org/10.1016/j.asoc.2009.02.014网站。[3]Ross OM,Sepúlveda R,Castillo O,Melin P.规划自主移动机器人导航的蚁群 测 试 中 心 。 Comput Appl EngEduc 2013;21 ( 2 ) : 214-29.http://dx.doi.org/10.1002/cae.20463网站。[4]Brand M,Masuda M,Wehner N,Yu X-H.机器人路径规划的蚁群优化算法。2010年计算机设计与应用国际会议,卷。3.第三章。2010年。p. V3-436-V3-4408C. Gavidia-Calderon和C.Beltrán Castañon/SoftwareX 11(2020)100400[5]作者:Dorigo M,Birattari M,Stutzle T.蚁群算法IEEE Comput Intell Mag2006;1(4):28-39. http://dx.doi.org/10.1109/MCI.2006.329691网站。[6] Isula:AFrameworkforAntColonyAlgorithms.http://cptanalatriste.github。伊奥/伊苏拉/ [2019年2月17日[7] 2019年2月TIOBE指数。https://www.tiobe.com/tiobe-index/网站。[2019年2月24日访问]。[8]Dorigo M,de Recherches Du Fnrs Marco Dorigo D,Stützle T,Stützle T.蚁群算法A Bradford book,Bradford Book;2004.[9] 应用蚁群优化算法进行二进制阈值分割。图像处理国际会议论文集。IEEE;2006 年 , 第 2409-12 页 。 http://dx.doi.org/10.1109/ICIP.2006 的 网 站 。312948。[10]Ouadfel S, Batouche M.使 用合 作 蚁 群的 无 监 督图 像 分 割。 In : BülthoffHH,Lee S,Poggio TA,Wallraven C,editors.第二届生物学计算机视觉国际 研 讨 会 。 计 算 机 科 学 讲 义 , 第2525 卷 , Springer; 2002 年 , 第109-16 页http://dx.doi.org/10.1007/3-540-36181-2_11网站。[11]Dorigo M , Caro GD , Gambardella LM.离 散 优 化的 蚂 蚁 算 法 。ArtifLife1999;5(2):137-72. http://dx.doi.org/10.1162/106454699568728.[12]TSPLIB。https://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB 95/[2019年2月17日访问]。[13] Dorigo M,Gambardella LM.蚁群系统:旅行商问题的合作学习方法。IEEETransEvolComput1997;1(1):53-66.http://dx.doi.org/10.1109/4235.585892网站。[14]Gavidia-Calderon CG. Segmentación de Imgenes Médicas Mediante Algo-ritmos de Colonia de Hormigas [硕士论文],秘鲁天主教大学,Escuela dePosgrado。Mención Magíster en Informática;2014.[15]BrainWeb 模 拟 大 脑 数 据 库 。 http://brainweb.bic.mni.mcgill.ca/brainweb/.[2019年2月23日访问]。[16]徐荣,罗玲,Ohya J.脑MRI分割。见:乔杜里五世,编辑。脑成像的进展。Rijeka:Int
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功