复杂性 复杂性 1099 - 0526 1076 - 2787 Hindawi 10.1155 / 2020/1794947 1794947 研究文章 一个新的Metaheuristic-Based软件模块化的层次聚类算法 Aghdasifam Masoud https://orcid.org/0000 - 0001 - 7595 - 8350 Izadkhah 哈比卜 Isazadeh 阿亚兹 Kumarappan Narayanan 计算机科学部门 数学科学学院 大不里士大学 大不里士 伊朗 tabrizu.ac.ir 2020年 30. 9 2020年 2020年 07年 05年 2020年 10 07年 2020年 20. 07年 2020年 30. 9 2020年 2020年 版权©2020 Masoud Aghdasifam et al。 这是一个开放的文章在知识共享归属许可下发布的,它允许无限制的使用,分布和繁殖在任何媒介,提供最初的工作是正确的引用。

软件重构是一个软件维护行动改善软件内部质量而不改变其外部行为。在维修过程中,结构重构是由remodularizing源代码。软件集群是一个模块化技术remodularize构件源代码旨在提高可读性和可重用性。由于集群的NP困难问题,进化的方法,如遗传算法被用来解决这个问题。结构重构的文学,不存在基于搜索的算法,采用分层模块化的方法。利用全球和本地搜索策略,在这篇文章中,一个新的基于搜索的自顶向下的层次聚类方法,名叫TDHC,提出可用于模块化系统。算法的输出是一个树的每个节点是所有工件的工件由子树和候选人是一个软件模块(即。集群)。这棵树可以帮助软件维护人员有更好的视觉源代码结构决定适当的组成分(即工件的旨在创建模块。、文件、包和组件)。实验结果七个文件夹的Mozilla Firefox具有不同功能和五个其他的软件系统显示TDHC生产模块化接近人类专家的分解(即。,目录结构)比其他现有的算法。该算法将帮助软件维护人员更好的remodularization源代码。 The source codes and dataset related to this paper can be accessed at https://github.com/SoftwareMaintenanceLab

1。介绍</t我tle> <p>软件维护是修改软件产品发布后的过程中减少错误,提高性能,或改善设计。未来软件开发和软件维护任务是重要的消费大约90%的总成本(<xref ref-type="bibr" rid="B1"> 1</xref>]。</p><p>在软件维护,一些变化包括添加、删除或修改代码导致代码块的增长和未来困难的代码的可理解性。代码味道(或坏代码味道)是源代码的一部分不会引起错误的外部行为和没有内部行为的一个重要的问题在这个时刻,但是可能会导致问题在未来的发展过程中<xref ref-type="bibr" rid="B2"> 2</xref>]。软件重构是修改源代码来纠正代码味道没有任何系统的外部行为的变化。它可以提高软件源代码的质量通过减少潜在的错误发生,使代码更容易维护或扩展。</p><p>福勒等人报道一些可能的代码味道在他们的书中(<xref ref-type="bibr" rid="B3"> 3</xref>)面向对象programming-based系统重构,提出可能的场景。自那时以来,许多研究提出新的重构场景或验证应用各种场景的影响在源代码中实现更好的质量。</p><p>重构技术分为两个主要概念和结构组。例如,重命名方法重构是一个概念重构场景,改变方法的名字更好的解释的责任。一些结构重构场景方法或函数组成。例如,长时间的代码块通常有多个责任或复制块应该重构。其他一些结构重构场景来改善代码块的功能。作为一个例子,移动方法重构(MMR)是一个重构场景的行为被定义为从一个类的方法转移到另一个类最关系的方法。方法之间的关系可以结构关系或语义关系。也有一些组合重构被定义为一个原始序列的重构,反映复杂的转换。</p><p>说明结构重构任务,图<xref ref-type="fig" rid="fig1"> 1</xref>描述了一个小软件系统模块化的一个例子。在这个图中,每个节点是一个类和边表示类之间的协作。这些类是分为两个模块根据他们的合作。图<xref ref-type="fig" rid="fig2"> 2</xref>展示了几个变化对这个软件后维护操作。如图所示,节点之间的关系也改变了,一个“我”的新类添加到系统中。在图<xref ref-type="fig" rid="fig2"> 2</xref>节点的关系“G”剩下的节点模块多关系正确的模块。所以需要安置的位置这个节点(节点“我”)remodularization。remodularization图所示的结果<xref ref-type="fig" rid="fig3"> 3</xref>。</p><fig id="fig1"> <label>图1</label> <p>一个模块化的一个小软件系统。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.001"></graphic> </fig> <fig id="fig2"> <label>图2</label> <p>一些维护操作图<xref ref-type="fig" rid="fig1"> 1</xref>。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.002"></graphic> </fig> <fig id="fig3"> <label>图3</label> <p>Remodularization图<xref ref-type="fig" rid="fig2"> 2</xref>。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.003"></graphic> </fig> <p>手动分析源代码,重构是一个昂贵和耗时的过程。因此,许多研究已经完成自动重构。一种方法结构重构是remodularization,如图<xref ref-type="fig" rid="fig2"> 2</xref>,所以remodularization是由集群技术。根据(<xref ref-type="bibr" rid="B4"> 4</xref>),”软件聚类过程的目的是分区软件系统模块(子系统或包),在一个模块是由一组相互协作的软件构件来实现高级属性或提供高级服务的软件系统。“聚类算法的输入是工件依赖图(ADG),这张图显示工件的节点和边缘显示构件之间的关系。工件可以是一个实体如一个函数,一个文件,软件类,甚至所谓的集合类包或源代码文件夹中的文件。构件之间的关系可以从创建结构化特性,如电话或nonstructured等功能语义关系。图<xref ref-type="fig" rid="fig4"> 4</xref>显示了一个示例集群的工件的编译器(集群)划分为四个模块根据他们的关系。预计这些模块与其他模块最大凝聚力和最小耦合(<xref ref-type="bibr" rid="B6"> 6</xref>,<xref ref-type="bibr" rid="B7"> 7</xref>]。</p><fig id="fig4"> <label>图4</label> <p>集群的一个例子(<xref ref-type="bibr" rid="B5"> 5</xref>]。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.004"></graphic> </fig> <p>当前聚类策略获取适当的模块化是基于两个主要层次或无技术。在分层方法,构造树的关系从叶到根的工件。这些技术给开发人员一个层次视图决策树的数量和适当的割点构建模块。大多数呈现分层软件集群是烧结的方法(自底向上)。在这种算法中,每个构件开始在自己的集群;根据一定的标准,例如,Jaccard,所有集群之间的距离计算,和对集群接近最高的合并作为一个移动的层次结构(<xref ref-type="bibr" rid="B8"> 8</xref>]。分层算法的主要局限性如下(<xref ref-type="bibr" rid="B8"> 8</xref>]:<list> <list-item> <label>(1)</label> </list-item> </list></p> <p>由于锯齿形的存在,来识别模块,必须使整个树。</p><list-item> <label>(2)</label> <p>不存在明确的标准来决定聚类过程应该停止的地方。</p></list-item> <list-item> <label>(3)</label> <p>武断的决定是在层次聚类方法的一个主要问题。这些决策产生的影响最终的聚类。当面对任意决定和一个错误的选择,没有扭转的可能性和纠正错误的选择。</p></list-item> <list-item> <label>(4)</label> <p>这些算法都是贪婪的,因此不能探索问题空间。几位以前的研究<xref ref-type="bibr" rid="B9"> 9</xref>- - - - - -<xref ref-type="bibr" rid="B11"> 11</xref>]显示这些方法在软件集群中表现不佳。相反,毫无层次聚类算法,提出了减少分不同级别的系统树图。</p></list-item> <p></p> <p>有还无模块化方法基于搜索的方法探索解空间的全局搜索和局部搜索算法。但这些方法不给开发人员一个愿景上层模块之间的关系。</p><p>在文献中,由于集群的NP困难问题,基于搜索的方法(如遗传算法)一直被广泛使用<xref ref-type="bibr" rid="B8"> 8</xref>,<xref ref-type="bibr" rid="B12"> 12</xref>]。因为他们的勘探和开发的能力,他们是一个有效的方法来解决聚类问题(<xref ref-type="bibr" rid="B13"> 13</xref>]。目前,基于搜索的工作软件重构平坦模式(即remodularization方法。、无方法)和上级不提供适当的组合。</p><sec id="sec1.1"> <title>1.1。这个问题</t我tle> <p>在本文中,我们专注于一个特定的重组问题的背景下,面向对象和程序程序:给定一个ADG构造从现有代码,将它分解成较小的和有意义的高内聚和低耦合的模块。凝聚力被定义为“一个模块的内部内容的程度是相关的”(<xref ref-type="bibr" rid="B1"> 1</xref>]。我们的方法支持“大爆炸”remodularization;即。,一个ll the artifacts of the software system are considered for remodularization.</p><p>本文解决的主要问题是提出一个层次化的remodularization源代码,同时保持准确的距离(人类)专家分解。摘要自上而下分层聚类算法结构重构的源代码构件依赖图(ADG)分支界限法方法。目的是找到合适的组合树和推荐适当的最低水平合并构件作为一个模块。因此,它将开发人员更容易识别不同级别的位置,如文件包,或组件。在该方法中,遗传算法(GA)和邻近搜索算法的目的是在树上的组成构件。该算法评估七个文件夹的Mozilla Firefox和五个其他的开源系统。结果表明,该方法能够提出一个可接受的层次remodularization重构的工件,通过视觉对高层模块开发人员之间的关系。</p></sec> <sec id="sec1.2"> <title>1.2。贡献</t我tle> <p>本文的贡献总结如下:<list> <list-item> <label>(1)</label> </list-item> </list></p> <p>提出一个新的软件重构方法和自顶向下的层次模块化技术。生成树算法的输出从源代码帮助软件维护人员有更好的视力源代码结构决定适当的组成分的工件(即旨在创建模块。、文件、包和组件)。重要的是要注意,在文学,不存在基于搜索的算法,采用分层模块化的方法。</p><list-item> <label>(2)</label> <p>Prufer树是利用遗传算法的编码序列。是否现有编码方法用于软件模块化建(例如,群<xref ref-type="bibr" rid="B5"> 5</xref>],ECA [<xref ref-type="bibr" rid="B12"> 12</xref>],和SGA [<xref ref-type="bibr" rid="B14"> 14</xref>])或permutation-based(例如,DAGC [<xref ref-type="bibr" rid="B15"> 15</xref>]和E-CDGM [<xref ref-type="bibr" rid="B16"> 16</xref>),这些方法只显示一个平坦的模块化。</p></list-item> <list-item> <label>(3)</label> <p>提出了一种新的目标函数评价层次remodularization。</p></list-item> <p></p> <p>剩下的论文如下:部分<xref ref-type="sec" rid="sec2"> 2</xref>,一些研究在软件重构进行了讨论;<xref ref-type="sec" rid="sec3"> 第三节</xref>介绍了该算法,<xref ref-type="sec" rid="sec4"> 第四节</xref>,给出了实验结果。研究的结果和有效性进行威胁的部分<xref ref-type="sec" rid="sec4"> 4</xref>和<xref ref-type="sec" rid="sec5"> 5</xref>,分别。最后,<xref ref-type="sec" rid="sec6"> 第六节</xref>本研究的结论和未来的工作。</p></sec> </sec> <sec id="sec2"> <title>2。相关工作</t我tle> <p>Fowler的书出版后(<xref ref-type="bibr" rid="B3"> 3</xref>)在软件源代码重构,许多研究已经完成完善这个引用的概念,以及检测和修复代码味道的一个自动化的解决方案,例如,(<xref ref-type="bibr" rid="B17"> 17</xref>- - - - - -<xref ref-type="bibr" rid="B20"> 20.</xref>]。</p><p>Remodularization源代码构件是结构重构的方法。由于大空间为模块化解决方案的空间,许多基于搜索的研究已经完成。在一些算法<xref ref-type="bibr" rid="B5"> 5</xref>,<xref ref-type="bibr" rid="B7"> 7</xref>,<xref ref-type="bibr" rid="B21"> 21</xref>GA),即Bunch-GA、和两个爬山算法,即利用Bunch-NAHC Bunch-SAHC,在解空间搜索。在该算法中,解决方案的空间大小<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M1"> <mml:msup> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msup> </mml:math> </inline-formula>(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M2"> <mml:mi> n</米米l:mi> </mml:math> </inline-formula>是工件的数量),他们中的大多数代表相同的模块化。Parsa Bushehiran介绍DAGC编码(<xref ref-type="bibr" rid="B15"> 15</xref>为了解决这个问题,减少了空间的状态<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M3"> <mml:mi> n</米米l:mi> <mml:mo> !</米米l:mo> </mml:math> </inline-formula>。Tajgardan et al。<xref ref-type="bibr" rid="B22"> 22</xref>)提出了一个算法基于分布估计算法(EDA)没有指定参数的GA算法的挑战。Izadkhah et al。<xref ref-type="bibr" rid="B16"> 16</xref>]提出E-CDGM方法,首先将源代码转换成一种中间代码称为mCode从调用依赖图(CDG),然后提出了一种模块化的适应度函数(类方法,使用类属性和method-method关系)和self-automata算法和DAGC编码。Amarjeet et al。<xref ref-type="bibr" rid="B23"> 23</xref>]提出MaABC算法软件模块化,这是一个多目标优化方法利用蜜蜂人口算法。他们还提出了PSOMC [<xref ref-type="bibr" rid="B24"> 24</xref>],PSO-based模块聚类分区软件系统通过优化星团内依赖性,intercluster依赖性,集群,每个集群的模块数。</p><p>最近的研究在多目标搜索方法扩大了。Praditwong et al。<xref ref-type="bibr" rid="B12"> 12</xref>]提出了只有两个集群方法(ECA)和最大限度地提高集群软件模块化的方法(MCA)使用多目标遗传算法和帕累托最优。哈曼和Tratt<xref ref-type="bibr" rid="B25"> 25</xref>)也使用了帕累托最优结合两个指标:国会预算办公室(<xref ref-type="bibr" rid="B26"> 26</xref>)和一个名为SDMPC的新指标。生等。<xref ref-type="bibr" rid="B27"> 27</xref>]提出了一种基于遗传方法建议重构适应度函数构成的耦合,凝聚力,复杂性,和稳定性。Kebir et al。<xref ref-type="bibr" rid="B28"> 28</xref>)提出了一种遗传算法的方法,包括检测component-relevant代码味道和消除这些代码味道通过搜索使用遗传算法的最佳序列的重构。在[<xref ref-type="bibr" rid="B29"> 29日</xref>),库玛丽和斯提出MHypEA(多目标进化算法hyperheuristic)建议软件模块集群而凝聚力最大化和最小化耦合的软件模块。它是基于不同方法的选择、交叉和变异操作的进化算法,和,选择一个低级的启发式的选择机制是基于强化学习的自适应权重。</p><p>在[<xref ref-type="bibr" rid="B30"> 30.</xref>),黄女士和刘引入了一个新的目标函数称为自动引导优化算法来找到一个好的软件系统的分区,同时考虑全球模块和边缘的方向。三种模块化算法叫HC-SMCP, GA-SMCP,本文提出MAEA-SMCP女士采用优化软件系统。</p><p>Bavota等人有一些研究重构。在[<xref ref-type="bibr" rid="B31"> 31日</xref>),提出了一种新技术的自动remodularization包,使用结构和语义的措施,将一个包分解成更小、更有凝聚力的。结果表明,分解包有更好的凝聚力没有耦合,恶化和remodularization提出的工具从功能的角度来看也是有意义的。在[<xref ref-type="bibr" rid="B32"> 32</xref>),他们引入了一个工具叫R3自动分析底层的潜在主题的标识符,评论,和在源代码中字符串类以及结构这些类之间的依赖关系。他们提出了<xref ref-type="bibr" rid="B33"> 33</xref>)方法提取类重构基于三个SSM [<xref ref-type="bibr" rid="B34"> 34</xref>),清洁发展机制(<xref ref-type="bibr" rid="B35"> 35</xref>CSM [],<xref ref-type="bibr" rid="B36"> 36</xref>)结构和语义因素强烈的凝聚力提高重构类没有导致显著增加的耦合。在[<xref ref-type="bibr" rid="B37"> 37</xref>),他们提出了一个基于关系主题模型技术来确定MMR的机会。</p><p>米一个letic和马库斯[<xref ref-type="bibr" rid="B38"> 38</xref>)提出了一个算法使用语义和结构数据提出重构决策。在[<xref ref-type="bibr" rid="B39"> 39</xref>],Palomba等人提出了一个技术,称为TACO(文本分析代码气味检测),利用文本分析来检测一个家庭气味的不同性质和不同级别的粒度。</p><p>拉里说道et al。<xref ref-type="bibr" rid="B8"> 8</xref>)提出了一种新的多目标适应度函数模块化,命名为财政部,它使用结构和非结构化特性与爆炸品处理算法。在[<xref ref-type="bibr" rid="B40"> 40</xref>),一个名为社区的新确定的聚类算法树算法创建一个社区ADG树使用可用的知识。Mahouachi [<xref ref-type="bibr" rid="B41"> 41</xref>提出了一种方法使用NSGA-II [<xref ref-type="bibr" rid="B42"> 42</xref>]找到最好的序列重构的结构质量,最大化最大化语义凝聚力的包,和最小化的重构工作,能够产生一个连贯的和有用的推荐序列重构的质量指标和从开发人员的观点。苧et al。<xref ref-type="bibr" rid="B43"> 43</xref>)提出了一种新的重构的建议,要求更多,提高设计质量和修复代码味道使用NSGA-III [<xref ref-type="bibr" rid="B42"> 42</xref>]。宽干谷(<xref ref-type="bibr" rid="B44"> 44</xref>]介绍了衡量一个类包含的方法可以准确的预测是否需要MMR。我et al。<xref ref-type="bibr" rid="B45"> 45</xref>)提出了一个新的数学软件的编程模型remodularization问题小说度量基于复杂性平衡的原则和混合遗传算法(无)。</p><p>K一个rgar remodularization等有研究的多道程序设计语言软件系统。在[<xref ref-type="bibr" rid="B14"> 14</xref>),他们提出了两个依赖图称为语义依赖图(西班牙)和名义相似图(NSG)。这些图都是构建独立于编程语言的语法。西班牙是构建基于源代码的名词,和NSG构造基于工件名称之间的相似性。然后,在[<xref ref-type="bibr" rid="B46"> 46</xref>),他们提出了一种遗传算法模块化程序相结合构建依赖图(即。,叫依赖图、语义依赖图和名义相似图)。</p><p>总之,基于搜索算法中描述的三个方面。一个方面是搜索的范围(本地战略和全球战略)。一些算法是基于局部搜索策略,结果可能不是最优解。全球搜索技术总是旨在找到好的解决方案。单目标和多目标搜索算法的另一个分组。在多目标算法,有多个目标函数或指标来指导搜索过程。最后一个方面是使用语义特征和结构特征进行聚类。在语义搜索优化,词法分析或潜在语义分析(或两者)被认为是在搜索进展。在结构特点,两个构件之间的函数调用,继承等被认为是为集群。一些搜索聚类算法如表所示<xref ref-type="table" rid="tab1"> 1</xref>。</p><t一个ble-wrap id="tab1"> <label>表1</label> <p>一些搜索软件聚类算法。</p><t一个ble> <thead> <tr> <th align="left">的名字</th> <th align="center">类型的算法</th> <th align="center">类型的目标函数</th> <th align="center">结构/语义特征</th> </tr> </thead> <tbody> <tr> <td align="left">Bunch-NAHC和Bunch-SAHC<xref ref-type="bibr" rid="B7"> 7</xref>,<xref ref-type="bibr" rid="B21"> 21</xref>]</td><td一个lign="center">LS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">多个爬山的方法(<xref ref-type="bibr" rid="B47"> 47</xref>]</td><td一个lign="center">LS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">E-CDGM [<xref ref-type="bibr" rid="B16"> 16</xref>]</td><td一个lign="center">LS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">大型社区搜索(<xref ref-type="bibr" rid="B48"> 48</xref>]</td><td一个lign="center">LS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">HC-SMCP [<xref ref-type="bibr" rid="B30"> 30.</xref>]</td><td一个lign="center">LS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">人体自燃(<xref ref-type="bibr" rid="B49"> 49</xref>]</td><td一个lign="center">LS</td><td一个lign="center">所以</td><td一个lign="center">Se</td></tr> <tr> <td align="left">Bunch-GA [<xref ref-type="bibr" rid="B5"> 5</xref>]</td><td一个lign="center">GS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">DAGC [<xref ref-type="bibr" rid="B15"> 15</xref>]</td><td一个lign="center">GS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">可替换主体的进化算法(<xref ref-type="bibr" rid="B50"> 50</xref>]</td><td一个lign="center">GS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">和谐搜索(<xref ref-type="bibr" rid="B51"> 51</xref>]</td><td一个lign="center">GS</td><td一个lign="center">莫</td><td一个lign="center">年代</td></tr> <tr> <td align="left">GA-SMCP [<xref ref-type="bibr" rid="B30"> 30.</xref>]</td><td一个lign="center">GS</td><td一个lign="center">莫</td><td一个lign="center">年代</td></tr> <tr> <td align="left">Hyperheuristic方法(<xref ref-type="bibr" rid="B52"> 52</xref>]</td><td一个lign="center">GS</td><td一个lign="center">莫</td><td一个lign="center">年代</td></tr> <tr> <td align="left">ECA, MCA<xref ref-type="bibr" rid="B12"> 12</xref>]</td><td一个lign="center">GS</td><td一个lign="center">莫</td><td一个lign="center">年代</td></tr> <tr> <td align="left">分布估计方法(<xref ref-type="bibr" rid="B22"> 22</xref>]</td><td一个lign="center">GS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">爆炸品处理、CGH CGoH [<xref ref-type="bibr" rid="B8"> 8</xref>]</td><td一个lign="center">GS</td><td一个lign="center">莫</td><td一个lign="center">年代和Se</td></tr> <tr> <td align="left">基于搜索多目标软件remodularization [<xref ref-type="bibr" rid="B53"> 53</xref>]</td><td一个lign="center">GS</td><td一个lign="center">莫</td><td一个lign="center">年代</td></tr> <tr> <td align="left">多个因素的关系(<xref ref-type="bibr" rid="B54"> 54</xref>]</td><td一个lign="center">GS</td><td一个lign="center">莫</td><td一个lign="center">年代</td></tr> <tr> <td align="left">交互式进化优化(<xref ref-type="bibr" rid="B55"> 55</xref>]</td><td一个lign="center">GS</td><td一个lign="center">莫</td><td一个lign="center">年代</td></tr> <tr> <td align="left">GAKH [<xref ref-type="bibr" rid="B56"> 56</xref>]</td><td一个lign="center">GS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">MaABC [<xref ref-type="bibr" rid="B57"> 57</xref>]</td><td一个lign="center">GS</td><td一个lign="center">莫</td><td一个lign="center">年代</td></tr> <tr> <td align="left">无形体病(<xref ref-type="bibr" rid="B45"> 45</xref>]</td><td一个lign="center">GS</td><td一个lign="center">所以</td><td一个lign="center">年代</td></tr> <tr> <td align="left">ILOF [<xref ref-type="bibr" rid="B58"> 58</xref>]</td><td一个lign="center">GS</td><td一个lign="center">支持,莫</td><td一个lign="center">年代和Se</td></tr> </tbody> </table> <table-wrap-foot> <fn> <p>LS:本地搜索;g:全局搜索;所以:单目标;莫:多目标;S:结构;Se:语义。</p></fn> </table-wrap-foot> </table-wrap> <p>分层的方法,最初被认为是所有工件的模块化的单位,在一个重复的过程,更多类似的模块合并创建一个新模块。单键,全联,平均连锁算法是最常见的层次聚类算法Maqbool等人适应模块化源代码(<xref ref-type="bibr" rid="B59"> 59</xref>]。库恩等人提出了一种新的算法使用模块化的平均使用非结构化特性的联系(<xref ref-type="bibr" rid="B60"> 60</xref>]。本文的作者使用了程序代码的财产属性和变量的命名沟通识别,这使得算法的输出依赖于开发人员的知识水平插入描述和命名变量。Andritsos和Tzerpos引入了一个称为地狱的方法<xref ref-type="bibr" rid="B61"> 61年</xref>)作为一个层次算法结合结构和非结构化信息。该算法是一种分层抽样算法基于最小化损失的信息在一个软件系统的模块化。Rathee et al。<xref ref-type="bibr" rid="B62"> 62年</xref>]提出了一种新的分层技术的软件remodularization估计概念之间的相似度软件构件,使用结构和语义耦合在一起,得到更精确的测量耦合的措施。他们还提出了一种新的加权依赖测量方案的组合结构,概念,改变基于历史软件元素之间的关系在一起。</p><p>除了搜索和分层方法上面所讨论的,有许多基于和基于模式的方法。穆罕默迪和Izadkhah [<xref ref-type="bibr" rid="B40"> 40</xref>)使用邻近树产生的ADG集群软件系统。该算法获得的聚类质量比分级方法和不到进化方法。光谱方法(<xref ref-type="bibr" rid="B63"> 63年</xref>)用图的代数性质,如在相应的拉普拉斯算子矩阵特征值和特征向量进行聚类。comprehension-driven聚类算法(交直流)[<xref ref-type="bibr" rid="B64"> 64年</xref>)是一种基于模式的算法,介绍了Tzerpos和霍尔特。它使用多个集群模式代码工件。</p><sec id="sec2.1"> <title>2.1。差距在文献中</t我tle> <p>使用层次属性实际上并不是新的remodularization领域已经使用多年,但没有以前的研究使用层次属性remodularization进化方法。由于模块化的NP困难问题,大多数模块化方法利用基于搜索聚类方法和进化算法(<xref ref-type="bibr" rid="B8"> 8</xref>,<xref ref-type="bibr" rid="B12"> 12</xref>]。这些聚类算法只显示一个平坦的模块化的程序。因此,这些算法不能代表一个程序的层次属性,所以没有办法指定封装的水平,例如,模块,包,和组件,它的设计师。</p></sec> </sec> <sec id="sec3"> <title>3所示。提出的聚类算法</t我tle> <p>大部分工作remodularization基于集群技术(<xref ref-type="bibr" rid="B31"> 31日</xref>]。层次聚类算法提出了到目前为止是贪婪算法和武断的决定,可能会导致不希望的结果。相反,这些算法不建议一个适当的系统树图的割点或模块化分不同级别的。在本节中,一个新的聚类算法,提出了一个分层的方式源代码remodularization没有这些问题。为此,我们设计一个新编码和遗传算法的适应度函数。利用给出的编码构造从源代码树的工件和适应度函数与一个分支和绑定的方法应用于确定适当的水平在构造树中,这可以成为一个合格的模块化结果。改进的质量产生的模块化,我们还设计了一个爬山算法。这种本地搜索算法的结果将被应用在邻近搜索的遗传算法。算法的输入是一个ADG由源代码,和它的输出是一个模块化建议软件维护人员。我们的方法支持“大爆炸”remodularization; i.e., all the artifacts of the software system are considered to perform modularization, and the current structure (modularization) will not be considered.</p><p>我们考虑类和文件是最小的组成单元作为面向对象的构件进行模块化和结构化的软件系统,分别。这些部分组合包等更大的模块或组件的每个模块的成员贡献的其他部分模块的一个责任。因此,重要的是要有适当的上层成分。我们也考虑调用依赖创建两个构件之间的依赖关系,即。边,ADG。一些构件被称为实用工具类的其他工件或文件。因此,他们可以删除完成后开始和解决这些问题的算法。对于每一个人,如果所有调用从一个模块,这个工件也将被添加到模块。但如果是多个模块所使用的,它被认为是一个实用程序。</p><p>设计一个算法会,五个特征编码(染色体表示),适应度函数(评价),选择,交叉,变异必须被描述。</p><sec id="sec3.1"> <title>3.1。编码</t我tle> <p>遗传算法的染色体是一个参数集表示一个解决问题的办法。染色体遗传算法的目的是找到一个最优或算法的解决方案。这些参数可以是一个二进制字符串或任何其他数据结构。摘要Prufer序列(<xref ref-type="bibr" rid="B65"> 65年</xref>)被用来编码树的数字序列作为染色体。Prufer序列之间的一对一的映射序列的数字和一个标签树。树的步骤构建Prufer数字显示为算法<xref ref-type="other" rid="alg1"> 1</xref>。让<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M4"> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 3</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> </mml:math> </inline-formula>表示Prufer序列。相应的树Prufer序列构造的算法<xref ref-type="other" rid="alg2"> 2</xref>。</p><p我d="alg1"> <list list-content="algorithm"> <title><大胆>算法1:< /大胆>伪代码的编码标记树Prufer序列。</t我tle> <list-item> <label></label> </list-item> </list></p> <p> <bold> 输入</bold>:一个标签树<我t一个lic> T</我t一个lic>(<我t一个lic> V</我t一个lic>,<我t一个lic> E</我t一个lic>)</p><list-item> <label></label> <p> <bold> 输出</bold>:Prufer序列</p></list-item> <list-item> <label></label> <p> <bold> 评论</bold>的节点<我t一个lic> T</我t一个lic>标记从1到尺寸的吗<我t一个lic> V</我t一个lic>哪一个<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M5"> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>代表一个节点标签<我t一个lic> 我</我t一个lic>。</p></list-item> <list-item> <label></label> <p>PruferSequence←空列表</p></list-item> <list-item> <label></label> <p> <bold> 而</bold> <italic> V</我t一个lic>.size大于2<bold> 做</bold></p> </list-item> <list-item> <label></label> <p> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M6"> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>←的叶子<我t一个lic> V</我t一个lic>最小的数量</p></list-item> <list-item> <label></label> <p> <italic> j</我t一个lic>←标签的节点<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M7"> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>连接到。</p></list-item> <list-item> <label></label> <p>删除<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M8"> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>从<我t一个lic> V</我t一个lic>和(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M9"> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M10"> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>)<我t一个lic> E</我t一个lic></p> </list-item> <list-item> <label></label> <p>添加<我t一个lic> j</我t一个lic>对PruferSequence</p></list-item> <list-item> <label></label> <p> <bold> 结束时</bold></p> </list-item> <list-item> <label></label> <p> <bold> 返回</bold>PruferSequence</p></list-item> <p></p> <p id="alg2"> <list list-content="algorithm"> <title><大胆>算法2:< /大胆> Prufer序列转换为对应的伪代码树(解码过程)。</t我tle> <list-item> <label></label> </list-item> </list></p> <p> <bold> 输入</bold>:Prufer序列<我t一个lic> P</我t一个lic></p> <list-item> <label></label> <p> <bold> 输出</bold>:一个标签树</p></list-item> <list-item> <label></label> <p>度←大小的列表<我t一个lic> P</我t一个lic>.size + 2由1</p></list-item> <list-item> <label></label> <p> <bold> 为</bold> <italic> 我</我t一个lic>∈<我t一个lic> P</我t一个lic> <bold> 做</bold></p> </list-item> <list-item> <label></label> <p>度(<我t一个lic> 我</我t一个lic>)←度(<我t一个lic> 我</我t一个lic>)+ 1</p></list-item> <list-item> <label></label> <p> <bold> 结束了</bold></p> </list-item> <list-item> <label></label> <p>#<我t一个lic> 现在我们知道节点我在树上程度度[我]</我t一个lic></p> </list-item> <list-item> <label></label> <p> <italic> 我</我t一个lic>←1</p></list-item> <list-item> <label></label> <p> <italic> T</我t一个lic>←为树的边缘一个空列表</p></list-item> <list-item> <label></label> <p> <bold> 而</bold>至少三个项度是零<bold> 做</bold></p> </list-item> <list-item> <label></label> <p> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M11"> <mml:mi> v</米米l:mi> </mml:math> </inline-formula>←第一项度最小</p></list-item> <list-item> <label></label> <p>度(<我t一个lic> 我</我t一个lic>)←度(<我t一个lic> 我</我t一个lic>]−1</p></list-item> <list-item> <label></label> <p>Add (<我t一个lic> 一个</我t一个lic><sub> <italic> 我</我t一个lic></sub>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M12"> <mml:mi> v</米米l:mi> </mml:math> </inline-formula>)T</p></list-item> <list-item> <label></label> <p> <italic> 我</我t一个lic>←<我t一个lic> 我</我t一个lic>+ 1</p></list-item> <list-item> <label></label> <p> <bold> 结束时</bold></p> </list-item> <list-item> <label></label> <p> <italic> 一个</我t一个lic>,<我t一个lic> b</我t一个lic>←非零项度</p></list-item> <list-item> <label></label> <p>Add (<我t一个lic> 一个</我t一个lic>,<我t一个lic> b</我t一个lic>)<我t一个lic> T</我t一个lic></p> </list-item> <list-item> <label></label> <p>返回<我t一个lic> T</我t一个lic></p> </list-item> <list-item> <p>返回PruferSequence</p></list-item> <p></p> <p>例如,Prufer序列树图<xref ref-type="fig" rid="fig5"> 5</xref>是<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M13"> <mml:mn> 2,1,3,3,1</米米l:mn> </mml:math> </inline-formula>反之亦然。Prufer序列编码树,节点标签4(与最小的数作为叶子节点)被移除和2号添加到序列。然后,节点删除标记2和1号添加到序列。在两个步骤,节点5和6中,3号添加到序列的两倍。在最后一步,删除节点3和1号添加到序列的最后一个数字序列。</p><fig id="fig5"> <label>图5</label> <p>例子:Prufer序列解码树<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M14"> <mml:mn> 2,1,3,3,1</米米l:mn> </mml:math> </inline-formula>作为一个Prufer序列。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.005"></graphic> </fig> <p>在拟议的方法中,树是二叉树,和Prufer序列遵循以下规则:<list> <list-item> <label>(1)</label> </list-item> </list></p> <p>树总是<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M15"> <mml:mi> n</米米l:mi> </mml:math> </inline-formula>编号从1到叶子<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M16"> <mml:mi> n</米米l:mi> </mml:math> </inline-formula>对工件和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M17"> <mml:mi> n</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>内部节点编号从<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M18"> <mml:mi> n</米米l:mi> <mml:mo> +</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M19"> <mml:mn> 2</米米l:mn> <mml:mi> n</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>。</p><list-item> <label>(2)</label> <p>所有的工件都在树的叶子是一个程度。因此,数字1<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M20"> <mml:mi> n</米米l:mi> </mml:math> </inline-formula>没有出现在相应的Prufer序列。</p></list-item> <list-item> <label>(3)</label> <p>树的根(节点数<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M21"> <mml:mn> 2</米米l:mn> <mml:mi> n</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>)是第二学位,根据规则创建Prufer的序列,序列中似乎只有一次。</p></list-item> <list-item> <label>(4)</label> <p>所有内节点除了根在学位3(连接到他们的父节点和两个孩子节点),在序列中出现两次。</p></list-item> <p></p> <p>因此,每一个数字序列<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M22"> <mml:mi> n</米米l:mi> <mml:mo> +</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M23"> <mml:mn> 2</米米l:mn> <mml:mi> n</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>它包含<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M24"> <mml:mi> n</米米l:mi> <mml:mo> +</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>来<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M25"> <mml:mn> 2</米米l:mn> <mml:mi> n</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 2</米米l:mn> </mml:math> </inline-formula>和数量两倍<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M26"> <mml:mn> 2</米米l:mn> <mml:mi> n</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>出现一次,代表了一种分层模块化树算法。图<xref ref-type="fig" rid="fig6"> 6</xref>显示相应的层次模块化树<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M27"> <mml:mn> 8、6、6、8、7、9、7</米米l:mn> </mml:math> </inline-formula>Prufer序列。</p><fig id="fig6"> <label>图6</label> <p>对应层次模块化树<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M28"> <mml:mn> 8、6、6、8、7、9、7</米米l:mn> </mml:math> </inline-formula>Prufer序列。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.006"></graphic> </fig> </sec> <sec id="sec3.2"> <title>3.2。评价</t我tle> <p>人口中的每个染色体遗传算法应该评估来确定解决方案的质量。在下面,我们提出一个新的质量函数对染色体进行评估。提出质量函数,染色体的适应度计算通过使用模块之间的依赖关系提取相应的树的染色体。让<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M29"> <mml:msub> <mml:mrow> <mml:mi> μ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M30"> <mml:msub> <mml:mrow> <mml:mi> λ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M31"> <mml:msub> <mml:mrow> <mml:mi> ɛ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>代表节点内部的构件之间的连接数(模块),与工件的连接数量的兄弟节点,和与其他构件连接的数量,分别。健身的节点(即。,一个米odule) is calculated by exCF in the following equation:<d我sp-formula> <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M32"> <mml:mtable> <mml:mlabeledtr id="EEq1"> <mml:mtd> <mml:mtext> (1)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:msub> <mml:mrow> <mml:mtext> exCF</米米l:mtext> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> μ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> λ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> ɛ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="" separators="|"> <mml:mrow> <mml:mtable class="cases"> <mml:mtr columnalign="left"> <mml:mtd columnalign="left"> <mml:mrow> <mml:mn> 0</米米l:mn> <mml:mo> ,</米米l:mo> </mml:mrow> </mml:mtd> <mml:mtd columnalign="left"> <mml:mrow> <mml:mtext> 如果</米米l:mtext> <mml:msub> <mml:mrow> <mml:mi> μ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> +</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> λ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> +</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> ɛ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mn> 0</米米l:mn> <mml:mo> ,</米米l:mo> </mml:mrow> </mml:mtd> </mml:mtr> <mml:mtr columnalign="left"> <mml:mtd columnalign="left"> <mml:mrow> <mml:mo> −</米米l:mo> <mml:mn> 1</米米l:mn> <mml:mo> ,</米米l:mo> </mml:mrow> </mml:mtd> <mml:mtd columnalign="left"> <mml:mrow> <mml:mtext> 如果</米米l:mtext> <mml:msub> <mml:mrow> <mml:mi> λ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> <</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> ɛ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> </mml:mrow> </mml:mtd> </mml:mtr> <mml:mtr columnalign="left"> <mml:mtd columnalign="left"> <mml:mrow> <mml:mfrac> <mml:mrow> <mml:mn> 2</米米l:mn> <mml:msub> <mml:mrow> <mml:mi> μ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> <mml:msub> <mml:mrow> <mml:mi> μ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> +</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> λ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> +</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> ɛ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfrac> <mml:mo> ,</米米l:mo> </mml:mrow> </mml:mtd> <mml:mtd columnalign="left"> <mml:mrow> <mml:mtext> 否则</米米l:mtext> <mml:mo> 。</米米l:mo> </mml:mrow> </mml:mtd> </mml:mtr> </mml:mtable> </mml:mrow> </mml:mfenced> </mml:mtd> </mml:mlabeledtr> </mml:mtable> </mml:math> </disp-formula></p> <p>这个关系旨在增加凝聚力模块与其他模块和降低耦合。但耦合是分为两种类型的兄弟姐妹耦合(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M33"> <mml:msub> <mml:mrow> <mml:mi> λ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>)和外部耦合(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M34"> <mml:msub> <mml:mrow> <mml:mi> ɛ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>)。当外部关系不仅仅是关系到兄弟节点树,这个模块(无论凝聚力)不是在适当的位置,应该得分为负价值。当<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M35"> <mml:msub> <mml:mrow> <mml:mi> ɛ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>大于<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M36"> <mml:msub> <mml:mrow> <mml:mi> λ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>与工件的兄弟节点小于与其他构件连接这表明工件不在合适的位置和我们应该以分配给一个点球总分1这个节点。算法<xref ref-type="other" rid="alg3"> 3</xref>显示了评价的伪代码定制的遗传算法的一部分。评价树,提出模块化的结构,遍历树的广度优先搜索(BFS)算法从根。在遍历,如果exCF两个子节点的总和大于或等于exCF节点,他们将被添加到队列中。如果不是,这个节点是最低的适当位置组合构件在子树的叶子,像一个模块。当一个节点划分为两个子节点,如果<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M37"> <mml:msub> <mml:mrow> <mml:mi> λ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> <</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> ɛ</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>的子节点,该节点不能树的一部分,因为其外部关系不仅仅是内部关系的兄弟节点。在这种情况下,exCF等于1,子节点不会BFS过程被添加到队列中。的总健康树,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M38"> <mml:mtext> exTMQ</米米l:mtext> </mml:math> </inline-formula>计算(<xref ref-type="disp-formula" rid="EEq2"> 2</xref>),K是所有节点的集合,他们的孩子(如果存在)没有进行:<d我sp-formula> <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M39"> <mml:mtable> <mml:mlabeledtr id="EEq2"> <mml:mtd> <mml:mtext> (2)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:mtext> exTMQ</米米l:mtext> <mml:mo> =</米米l:mo> <mml:mstyle displaystyle="true"> <mml:munder> <mml:mo stretchy="true"> ∑</米米l:mo> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mo> ∈</米米l:mo> <mml:mi> K</米米l:mi> </mml:mrow> </mml:munder> <mml:mrow> <mml:msub> <mml:mrow> <mml:mtext> exCF</米米l:mtext> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mstyle> <mml:mo> 。</米米l:mo> </mml:mtd> </mml:mlabeledtr> </mml:mtable> </mml:math> </disp-formula></p> <p id="alg3"> <list list-content="algorithm"> <title><大胆>算法3:< /大胆>伪代码的染色体的评估。</t我tle> <list-item> <label></label> </list-item> </list></p> <p> <bold> 输入</bold>:一个染色体ch</p><list-item> <label></label> <p> <bold> 输出</bold>:更新ch.fitness</p></list-item> <list-item> <label></label> <p>ch.fitness = 0</p></list-item> <list-item> <label></label> <p>树←解码树的染色体ch</p></list-item> <list-item> <label></label> <p> <italic> 问</我t一个lic>←队列()</p></list-item> <list-item> <label></label> <p>tree.root.cf = 1</p></list-item> <list-item> <label></label> <p>q.push (tree.root)</p></list-item> <list-item> <label></label> <p> <bold> 而</bold> <italic> 问</我t一个lic>不是空的<bold> 做</bold></p> </list-item> <list-item> <label></label> <p>父母←q.pop ()</p></list-item> <list-item> <label></label> <p>孩子<sub>1</sub>,孩子<sub>2</sub>←t.children ()</p></list-item> <list-item> <label></label> <p>孩子<sub>1</sub>.cf←exCF(孩子<sub>1</sub>、家长)</p></list-item> <list-item> <label></label> <p>孩子<sub>2</sub>.cf←exCF(孩子<sub>2</sub>、家长)</p></list-item> <list-item> <label></label> <p> <bold> 如果</bold>child1.cf + child2.cf≥parent.cf<bold> 然后</bold></p> </list-item> <list-item> <label></label> <p>q.push(子<sub>1</sub>)</p></list-item> <list-item> <label></label> <p>q.push(子<sub>2</sub>)</p></list-item> <list-item> <label></label> <p> <bold> 其他的</bold></p> </list-item> <list-item> <label></label> <p>ch.fitness←ch.fitness + parent.cf</p></list-item> <list-item> <label></label> <p>如果</p></list-item> <list-item> <label></label> <p> <bold> 结束时</bold></p> </list-item> <p></p> <p>图<xref ref-type="fig" rid="fig7"> 7</xref>显示了一个示例的树评估算法。这棵树有55个节点(节点构件在叶子和27日28日内部节点编号从28到53)括号里的数字是每个节点exCF。评价开始时,节点数量37和42个过程被添加到队列中因为exCF的总和(即,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M40"> <mml:mn> 0.79</米米l:mn> <mml:mo> +</米米l:mo> <mml:mn> 0.62</米米l:mn> </mml:math> </inline-formula>)大于父节点的exCF 55(即。,1)。This tree is traversed until the nodes in the set<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M41"> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:mn> 29日,42岁,47岁,52岁</米米l:mn> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>灰色(彩色)。每个节点包含所有工件在子树的叶子和算法提出的第一个位置创建模块。孩子节点并未增加BFS队列因为exCF之和的同级节点不大于或等于父母exCF。</p><fig id="fig7"> <label>图7</label> <p>分支定界法应用的一个例子在模块化树(参见算法<xref ref-type="other" rid="alg2"> 2</xref>).3.3。遗传操作。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.007"></graphic> </fig> <p>这三个操作的GA算法描述如下:<list> <list-item> <label>(1)</label> </list-item> </list></p> <p>选择:选择下一代的人口GA代,经典的轮盘赌选择算子中使用该算法。</p><list-item> <label>(2)</label> <p>交叉:循环交叉操作(CX) [<xref ref-type="bibr" rid="B66"> 66年</xref>)选择算法,发现基因周期两个父母和其他基因互换。如果<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M42"> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mrow> <mml:mn> 3</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M43"> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> <mml:mrow> <mml:mn> 3</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>代表两个家长,首先,一个随机的位置<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M44"> <mml:mi> 我</米米l:mi> </mml:math> </inline-formula>被选中。如果<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M45"> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M46"> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>是不同的,一个位置的值<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M47"> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>在第一个父被选中时,这个新职位列表添加到选定的位置。这些选择持续到选择一个位置<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M48"> <mml:mi> j</米米l:mi> </mml:math> </inline-formula>在这<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M49"> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>是<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M50"> <mml:mi> C</米米l:mi> <mml:msub> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>。当完成时,选择的位置的值在第一父母是值的排列在同一位置的第二个父母。最后,所有其他位置的值(没有)之间交换两个父母。图<xref ref-type="fig" rid="fig8"> 8</xref>显示了一个示例的交叉操作。在这个例子中,第一个位置是随机选择的,然后第三和第四的位置添加到选择列表,分别创建一个循环。值6 9和8在第一个父是8的排列,6,9在第二。在最后一步中,其他职位的价值交换与其他染色体中相应的位置。</p></list-item> <list-item> <label></label> <p>残雪的输出是输入的排列。因此,它不破坏规则中提到<我t一个lic> 编码</我t一个lic>部分。然而树的结构(节点)之间的关系将被改变。</p></list-item> <list-item> <label>(3)</label> <p>突变:单交换操作用于突变染色体的两个随机序列中的位置的价值交换。图<xref ref-type="fig" rid="fig9"> 9</xref>显示了一个示例Prufer单交换操作的序列。这一变化将创建一个新的二叉树。</p></list-item> <p></p> <fig id="fig8"> <label>图8</label> <p>TDHC交叉操作的一个例子。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.008"></graphic> </fig> <fig id="fig9"> <label>图9</label> <p>TDHC变异操作的一个例子。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.009"></graphic> </fig> </sec> <sec id="sec3.3"> <title>3.3。周边搜索</t我tle> <p>遗传算法是一种全局搜索。改善结果模块化质量的最后一步,我们设计一个爬山局部搜索策略。设计了局部搜索算法试图产生一个邻近的模块化与更好的质量产生的模块化。这个操作直到没有可以找到更好的模块化。我们使用最大提升策略搜索邻近模块化。在这个策略中,所有相邻的模块化生成特定的模块化,然后其中,选择高质量的模块化的邻居当前模块化和替换它。为新的模块化一直持续到没有这个操作可以找到更好的模块化。如何定义一个社区爬山算法是非常重要的。根据问题的类型,必须定义适当的社区。</p></sec> <sec id="sec3.4"> <title>3.4。定义:模块化的邻居</t我tle> <p>让<我t一个lic> 米</我t一个lic>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M51"> <mml:msup> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mo> ′</米米l:mo> </mml:mrow> </mml:msup> </mml:math> </inline-formula>是两个从ADG模块化。模块化<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M52"> <mml:msup> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mo> ′</米米l:mo> </mml:mrow> </mml:msup> </mml:math> </inline-formula>被称为模块化的邻居吗<我t一个lic> 米</我t一个lic>如果工件到模块<我t一个lic> 我</我t一个lic>在模块化<我t一个lic> 米</我t一个lic>是搬到模块<我t一个lic> j</我t一个lic>。事实上,两个模块化称为邻居如果他们只在一个节点的位置不同。让<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M53"> <mml:mi> G</米米l:mi> <mml:mo> =</米米l:mo> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> V</米米l:mi> <mml:mo> ,</米米l:mo> <mml:mi> E</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>是一个依赖图,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M54"> <mml:mi> V</米米l:mi> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>代表工件和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M55"> <mml:mi> E</米米l:mi> <mml:mo> ⊆</米米l:mo> <mml:mi> V</米米l:mi> <mml:mo> ×</米米l:mo> <mml:mi> V</米米l:mi> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>表示构件之间的依赖关系。例如,图<xref ref-type="fig" rid="fig10"> 10</xref>模块化和图描绘了一个样本<xref ref-type="fig" rid="fig11"> 11</xref>显示了一个邻居的模块化。这个概念的正式定义如下。</p><fig id="fig10"> <label>图10</label> <p>一个模块化。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.0010"></graphic> </fig> <fig id="fig11"> <label>图11</label> <p>一个邻居模块化图<xref ref-type="fig" rid="fig10"> 10</xref>。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.0011"></graphic> </fig> <p>让<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M56"> <mml:mi> 米</米米l:mi> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> k</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>代表了<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M57"> <mml:mi> k</米米l:mi> </mml:math> </inline-formula>模块获得图<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M58"> <mml:mi> G</米米l:mi> </mml:math> </inline-formula>这样<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M59"> <mml:mo> ∀</米米l:mo> <mml:mi> 我</米米l:mi> <mml:mo> ,</米米l:mo> <mml:mi> j</米米l:mi> <mml:mo> ∈</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:mn> 1</米米l:mn> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:mi> k</米米l:mi> </mml:mrow> </mml:mfenced> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ⊆</米米l:mo> <mml:mi> V</米米l:mi> <mml:mo> ,</米米l:mo> <mml:mo> ∪</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mi> V</米米l:mi> <mml:mo> ,</米米l:mo> <mml:mo> ∀</米米l:mo> <mml:mi> 我</米米l:mi> <mml:mo> ≠</米米l:mo> <mml:mi> j</米米l:mi> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ∩</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mo> ∅</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ≠</米米l:mo> <mml:mo> ∅</米米l:mo> </mml:math> </inline-formula>。在<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M60"> <mml:mi> 米</米米l:mi> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> k</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>,让我们把一个节点<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M61"> <mml:mi> v</米米l:mi> </mml:math> </inline-formula>这样<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M62"> <mml:mi> v</米米l:mi> <mml:mo> ∈</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>。你的邻居<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M63"> <mml:msup> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mo> ′</米米l:mo> </mml:mrow> </mml:msup> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msubsup> <mml:mi> 米</米米l:mi> <mml:mi> 我</米米l:mi> <mml:mo> ′</米米l:mo> </mml:msubsup> <mml:mo> ,</米米l:mo> <mml:msubsup> <mml:mi> 米</米米l:mi> <mml:mi> j</米米l:mi> <mml:mo> ′</米米l:mo> </mml:msubsup> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> k</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>创建,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M64"> <mml:msubsup> <mml:mi> 米</米米l:mi> <mml:mi> 我</米米l:mi> <mml:mo> ′</米米l:mo> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> \</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M65"> <mml:msubsup> <mml:mi> 米</米米l:mi> <mml:mi> j</米米l:mi> <mml:mo> ′</米米l:mo> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ∪</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:mi> v</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>,在那里<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M66"> <mml:msub> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M67"> <mml:mi> 我</米米l:mi> <mml:mo> ≠</米米l:mo> <mml:mi> j</米米l:mi> </mml:math> </inline-formula>)是一个模块和至少一个关系<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M68"> <mml:mi> v</米米l:mi> </mml:math> </inline-formula>。现在,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M69"> <mml:msup> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mo> ′</米米l:mo> </mml:mrow> </mml:msup> </mml:math> </inline-formula>比<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M70"> <mml:mi> 米</米米l:mi> </mml:math> </inline-formula>如果exTMQ (<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M71"> <mml:msup> <mml:mrow> <mml:mi> 米</米米l:mi> </mml:mrow> <mml:mrow> <mml:mo> ′</米米l:mo> </mml:mrow> </mml:msup> </mml:math> </inline-formula>)<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M72"> <mml:mo> ></米米l:mo> </mml:math> </inline-formula>exTMQ (<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M73"> <mml:mi> 米</米米l:mi> </mml:math> </inline-formula>)。</p><p>在下面,我们计算算法的时间复杂度。让<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M74"> <mml:mi> N</米米l:mi> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M75"> <mml:mi> P</米米l:mi> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M76"> <mml:mi> G</米米l:mi> </mml:math> </inline-formula>代表的工件数量,人口规模,分别和后代的数量。我们有以下:<list> <list-item> <label>(1)</label> </list-item> </list></p> <p>初始化人口,与长度的染色体<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M77"> <mml:mn> 2</米米l:mn> <mml:mi> N</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>生成的所有数字1到吗<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M78"> <mml:mi> N</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 1</米米l:mn> </mml:math> </inline-formula>重复两次,一个<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M79"> <mml:mi> N</米米l:mi> </mml:math> </inline-formula>。然后,对于每一个染色体,洗牌(替换每个基因组与一个随机的一个)是应用于随机生成一个新的染色体。所以,这个步骤的顺序<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M80"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mn> 2</米米l:mn> <mml:mi> N</米米l:mi> <mml:mo> −</米米l:mo> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:mfenced> <mml:mo> ×</米米l:mo> <mml:mi> P</米米l:mi> </mml:mrow> </mml:mfenced> <mml:mo> =</米米l:mo> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> <mml:mi> P</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。</p><list-item> <label>(2)</label> <p>对染色体,数据被转换成一个树<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M81"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi mathvariant="normal"> 日志</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi> N</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>,然后,树中探索<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M82"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。因此,评价的顺序<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M83"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi mathvariant="normal"> 日志</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi> N</米米l:mi> <mml:mo> +</米米l:mo> <mml:mi> N</米米l:mi> </mml:mrow> </mml:mfenced> <mml:mo> =</米米l:mo> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi mathvariant="normal"> 日志</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi> N</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。</p></list-item> <list-item> <label>(3)</label> <p>选择与轮盘赌<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M84"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。</p></list-item> <list-item> <label>(4)</label> <p>每一对的交叉<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M85"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>,突变是一个简单的交换<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M86"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。所以,这一步全部人口将秩序<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M87"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> P</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> <mml:mo> +</米米l:mo> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mfenced> <mml:mo> =</米米l:mo> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> P</米米l:mi> <mml:mi> N</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。</p></list-item> <p></p> <p>会重复步骤2 - 4<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M88"> <mml:mi> G</米米l:mi> </mml:math> </inline-formula>次了。因此,总订单<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M89"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> <mml:mi> P</米米l:mi> <mml:mo> +</米米l:mo> <mml:mi> G</米米l:mi> <mml:mi> N</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi mathvariant="normal"> 日志</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi> N</米米l:mi> <mml:mo> +</米米l:mo> <mml:mi> G</米米l:mi> <mml:mi> N</米米l:mi> <mml:mo> +</米米l:mo> <mml:mi> G</米米l:mi> <mml:mi> P</米米l:mi> <mml:mi> N</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。在这篇文章中,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M90"> <mml:mi> P</米米l:mi> </mml:math> </inline-formula>是<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M91"> <mml:mn> 300年</米米l:mn> <mml:mi> N</米米l:mi> </mml:math> </inline-formula>。所以,订单<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M92"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msup> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> <mml:mo> +</米米l:mo> <mml:mi> G</米米l:mi> <mml:mi> N</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi mathvariant="normal"> 日志</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi> N</米米l:mi> <mml:mo> +</米米l:mo> <mml:mi> G</米米l:mi> <mml:mi> N</米米l:mi> <mml:mo> +</米米l:mo> <mml:mi> G</米米l:mi> <mml:msup> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> </mml:mrow> </mml:mfenced> <mml:mo> =</米米l:mo> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> G</米米l:mi> <mml:msup> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。</p><p>在最后一步中,NAHC算法应用于在邻居寻找更好的解决方案。每个解决方案将有最多<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M93"> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> <mml:mo> /</米米l:mo> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>集群,每个迭代NAHC将成本<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M94"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> N</米米l:mi> <mml:mo> ×</米米l:mo> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mo> /</米米l:mo> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mfenced> <mml:mo> =</米米l:mo> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msup> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。因此,对于<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M95"> <mml:mi> 米</米米l:mi> </mml:math> </inline-formula>迭代,这将是<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M96"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> 米</米米l:mi> <mml:msup> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。</p><p>根据上面的段落中,总订单<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M97"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> G</米米l:mi> <mml:msup> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> <mml:mo> +</米米l:mo> <mml:mi> 米</米米l:mi> <mml:msup> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>,但在实践中,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M98"> <mml:mi> 米</米米l:mi> </mml:math> </inline-formula>是一个小数量和订单总额可以解释<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M99"> <mml:mi> O</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> G</米米l:mi> <mml:msup> <mml:mrow> <mml:mi> N</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>。</p></sec> </sec> <sec id="sec4"> <title>4所示。实验装置</t我tle> <p>在本节中,我们概述了详细的实验装置进行了实证评估提出的聚类算法。</p><sec id="sec4.1"> <title>4.1。案例研究</t我tle> <p>Mozilla Firefox web浏览器,是一个大规模的和开源应用程序开发的Mozilla基金会Mozilla公司和它的子公司。基于开放中心(<ext-link ext-link-type="uri" xlink:href="http://www.openhub.net"> http://www.openhub.net</ext-link>)报告,这个应用程序是最受欢迎的项目以及其他开源应用程序,这个应用程序有世界上最大的开发团队,13000多名开发人员。我们选择Mozilla Firefox 3.7,一个开发者预览版本,实验(<ext-link ext-link-type="uri" xlink:href="https://ftp.mozilla.org/pub/"> https://ftp.mozilla.org/pub/</ext-link>)。这个版本是稳定的,大约五百万行代码。七个文件夹有不同的大小和功能选择从这个软件系统。这些文件夹中列出的表的详细信息<xref ref-type="table" rid="tab2"> 2</xref>。此外,五个中型开源软件选择的细节表<xref ref-type="table" rid="tab3"> 3</xref>。在所有的实验中,该文件被认为是一个工件。</p><t一个ble-wrap id="tab2"> <label>表2</label> <p>所选文件夹的属性。</p><t一个ble> <thead> <tr> <th align="left">文件夹名称</th> <th align="center">文件数量</th> <th align="center">的链接数</th> <th align="center">模块数量</th> <th align="center">文件夹功能</th> </tr> </thead> <tbody> <tr> <td align="left">可访问的</td><td一个lign="center">179年</td><td一个lign="center">293年</td><td一个lign="center">8</td><td一个lign="center">使尽可能多的人能够使用web站点,即使这些人在某些方面的能力是有限的;文件可访问性(即。,米年代一个一个(米我crosoft Active Accessibility) and ATK (accessibility toolkit, used by GTK + 2) support files)</td></tr> <tr> <td align="left" colspan="5"> <hr></td> </tr> <tr> <td align="left">浏览器</td><td一个lign="center">45</td><td一个lign="center">45</td><td一个lign="center">4</td><td一个lign="center">包含前端代码(在XUL, Javascript, XBL, c++)的火狐浏览器的前端代码包含DevTools(便条簿和样式编辑器);包含图片和CSS文件浏览器皮肤为每一个操作系统(Linux、Mac和Windows)</td></tr> <tr> <td align="left" colspan="5"> <hr></td> </tr> <tr> <td align="left">DOM</td><td一个lign="center">163年</td><td一个lign="center">324年</td><td一个lign="center">5</td><td一个lign="center">IDL定义的接口的定义DOM规范的部分之间的连接的JavaScript和DOM对象的实现实现的一些核心“DOM level 0”对象,如窗口、窗口。导航器,window.location</td></tr> <tr> <td align="left" colspan="5"> <hr></td> </tr> <tr> <td align="left">扩展</td><td一个lign="center">179年</td><td一个lign="center">206年</td><td一个lign="center">13</td><td一个lign="center">包含几个Mozilla扩展,可以在编译时执行谈判上启用HTTP身份验证方法和其他协议;有代码SSPI GSSAPI;内容——和locale-pack切换用户界面后台权限饼干,图片,等等,这些权限的用户界面以及其他cookie特性;支持datetime协议;对手指协议的支持;双向之间的桥梁CLR /.NET/Mono/C # / etc。世界和XPCOM实现W3C的隐私偏好标准平台;支持在python实现XPCOM组件;支持从XUL应用程序访问SQL数据库;对web服务的支持</td></tr> <tr> <td align="left" colspan="5"> <hr></td> </tr> <tr> <td align="left">GFX</td><td一个lign="center">342年</td><td一个lign="center">644年</td><td一个lign="center">7</td><td一个lign="center">包含接口,抽象的特定于平台的图形工具包的功能,以及实现这些接口在各种平台上提供的方法绘制图像,文本,和基本形状;它还包含点等基本数据结构和矩形这里使用Mozilla和其他地方</td></tr> <tr> <td align="left" colspan="5"> <hr></td> </tr> <tr> <td align="left">INTL</td><td一个lign="center">573年</td><td一个lign="center">957年</td><td一个lign="center">7</td><td一个lign="center">国际化和本地化支持;代码“嗅探”网页代码的字符编码来处理复杂的文本布局,塑造南亚语言代码的相关测定相关的语言环境信息操作环境的代码转换(utf - 16之间两方面:编码器和译码器)和许多其他字符编码代码与实现各种算法对unicode文本,如大小写转换</td></tr> <tr> <td align="left" colspan="5"> <hr></td> </tr> <tr> <td align="left">IPC</td><td一个lign="center">391年</td><td一个lign="center">59</td><td一个lign="center">4</td><td一个lign="center">容器的实现IPC(进程间通信)</td></tr> </tbody> </table> </table-wrap> <table-wrap id="tab3"> <label>表3</label> <p>系统中使用的案例研究。</p><t一个ble> <thead> <tr> <th align="left">系统</th> <th align="center">描述</th> <th align="center">工件类型</th> <th align="center">#的工件</th> <th align="center">#的边缘</th> </tr> </thead> <tbody> <tr> <td align="left">Mini-Tunis</td><td一个lign="center">学习操作系统</td><td一个lign="center">C文件</td><td一个lign="center">20.</td><td一个lign="center">28</td></tr> <tr> <td align="left">JUnit 4</td><td一个lign="center">单元测试框架</td><td一个lign="center">Java类</td><td一个lign="center">23</td><td一个lign="center">32</td></tr> <tr> <td align="left">servlet api</td><td一个lign="center">Java服务器API</td><td一个lign="center">Java类</td><td一个lign="center">32</td><td一个lign="center">24</td></tr> <tr> <td align="left">简单的模拟</td><td一个lign="center">动态模拟对象发电机</td><td一个lign="center">Java类</td><td一个lign="center">84年</td><td一个lign="center">118年</td></tr> <tr> <td align="left">计算器</td><td一个lign="center">微软的计算器</td><td一个lign="center">c++文件</td><td一个lign="center">210年</td><td一个lign="center">343年</td></tr> </tbody> </table> </table-wrap> <p>权威的分解(分解领域专家或真实结构)是用来评估remodularization算法的可靠性(<xref ref-type="bibr" rid="B67"> 67年</xref>]。邻近remodularization由算法生成的分解由领域专家展示了可以接受的成就remodularization算法(<xref ref-type="bibr" rid="B67"> 67年</xref>]。就像在<xref ref-type="bibr" rid="B14"> 14</xref>,<xref ref-type="bibr" rid="B67"> 67年</xref>),我们使用专家准备的目录结构分解从源代码。在本文中,我们使用Mozilla Firefox和五个其他的软件系统,其权威的分解(即。,目录结构)来评估该算法。例如,“扩展”文件夹分配了179个文件,Mozilla Firefox开发人员13子文件夹(包)。使用设计工具,我们合并不同的文件夹中的文件在一个文件夹中<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M100"> <mml:mover accent="true"> <mml:mi> F</米米l:mi> <mml:mo> ^</米米l:mo> </mml:mover> </mml:math> </inline-formula>179年,旨在考虑这些平的。在模块化平台式文件<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M101"> <mml:mover accent="true"> <mml:mi> F</米米l:mi> <mml:mo> ^</米米l:mo> </mml:mover> </mml:math> </inline-formula>,旨在衡量模块化通过该算法将类似于目录结构由Mozilla Firefox开发人员实现。换句话说,该算法应用于<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M102"> <mml:mover accent="true"> <mml:mi> F</米米l:mi> <mml:mo> ^</米米l:mo> </mml:mover> </mml:math> </inline-formula>为了重建(或提高)的原始结构。</p></sec> <sec id="sec4.2"> <title>4.2。研究问题</t我tle> <p>评估TDHC的有效性,我们回答以下研究问题:<list> <list-item> <label></label> </list-item> </list></p> <p>RQ1。提出的聚类方法生产模块化有更好的精度,还记得,F-measure,运气,和MoJoFM现有方法相比呢?</p><list-item> <label></label> <p>RQ2。TDHC是稳定的算法吗?</p></list-item> <list-item> <label></label> <p>RQ3。通过使用TDHC,我们可以给更好的视图层次模块化吗?</p></list-item> <p></p> <p>为了回答这些研究问题,五个软件系统和Mozilla Firefox的七个文件夹remodularized提出的聚类算法和其他一些可用的聚类算法。</p></sec> <sec id="sec4.3"> <title>4.3。算法参数</t我tle> <p>对基于搜索算法参数的设置是必要的。我们获得了实现五所选的集群techniques-ACDC (<ext-link ext-link-type="uri" xlink:href="https://wiki.eecs.yorku.ca/project/cluster/protected:acdc"> https://wiki.eecs.yorku.ca/project/cluster/protected:交直流</ext-link>),群(<ext-link ext-link-type="uri" xlink:href="https://www.cs.drexel.edu/"> https://www.cs.drexel.edu/</ext-link>斯皮罗/一些/)(SAHC和GA), SGA和SNDGA (<ext-link ext-link-type="uri" xlink:href="https://github.com/Masoud-Kargar-QIAU"> https://github.com/Masoud-Kargar-QIAU</ext-link>),EoD-from原来作者或官方网站。相反,我们得到的工作实现DAGC, ECA, MCA<ext-link ext-link-type="uri" xlink:href="https://github.com/Masoud-Kargar-QIAU"> https://github.com/Masoud-Kargar-QIAU</ext-link>。</p><p>交叉和变异率的值影响勘探开发的解决方案空间在进化过程中。添加一个额外的输入工件这个问题将增加两个基因染色体。因此,问题空间就会成倍增长。交叉和变异率是根据人口动态设置覆盖解决方案空间更好。交叉率通常被选中作为一个数量超过0.7,和突变率通常是很低的。在这个研究中,0.7和0.9的数字被选为边界交叉与线性步骤。因为突变步骤与日志,它应该增加不多。表<xref ref-type="table" rid="tab4"> 4</xref>显示了TDHC的参数设置,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M103"> <mml:mi> N</米米l:mi> </mml:math> </inline-formula>是工件的数量后预处理操作。TDHC,我们跟着中使用的算法参数设置(<xref ref-type="bibr" rid="B12"> 12</xref>,<xref ref-type="bibr" rid="B30"> 30.</xref>]。算法参数是依赖于工件(N)的数量。</p><t一个ble-wrap id="tab4"> <label>表4</label> <p>遗传算法参数。</p><t一个ble> <thead> <tr> <th align="left">人口规模(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M104"> <mml:mo> #</米米l:mo> <mml:mtext> 人口</米米l:mtext> </mml:math> </inline-formula>)</th> <th align="center"> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M105"> <mml:mn> 300年</米米l:mn> <mml:mi> N</米米l:mi> </mml:math> </inline-formula></th> </tr> </thead> <tbody> <tr> <td align="left">最大代计数</td><td一个lign="center"> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M106"> <mml:mn> 50</米米l:mn> <mml:mi> N</米米l:mi> </mml:math> </inline-formula></td> </tr> <tr> <td align="left">交叉率</td><td一个lign="center"> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M107"> <mml:mfenced open="{" close="" separators="|"> <mml:mrow> <mml:mtable class="cases"> <mml:mtr columnalign="left"> <mml:mtd columnalign="left"> <mml:mrow> <mml:mn> 0.7</米米l:mn> </mml:mrow> </mml:mtd> <mml:mtd columnalign="left"> <mml:mrow> <mml:mtext> 如果</米米l:mtext> <mml:mo> #</米米l:mo> <mml:mtext> 人口</米米l:mtext> <mml:mo> ≤</米米l:mo> <mml:mn> 1000年</米米l:mn> </mml:mrow> </mml:mtd> </mml:mtr> <mml:mtr columnalign="left"> <mml:mtd columnalign="left"> <mml:mrow> <mml:mn> 0.9</米米l:mn> </mml:mrow> </mml:mtd> <mml:mtd columnalign="left"> <mml:mrow> <mml:mtext> 如果</米米l:mtext> <mml:mo> #</米米l:mo> <mml:mtext> 人口</米米l:mtext> <mml:mo> ≥</米米l:mo> <mml:mn> 10000年</米米l:mn> </mml:mrow> </mml:mtd> </mml:mtr> <mml:mtr columnalign="left"> <mml:mtd columnalign="left"> <mml:mrow> <mml:mn> 0.7</米米l:mn> <mml:mo> +</米米l:mo> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mo> #</米米l:mo> <mml:mtext> 人口</米米l:mtext> <mml:mo> −</米米l:mo> <mml:mn> 1000年</米米l:mn> <mml:mo> /</米米l:mo> <mml:mrow> <mml:mn> 9000年</米米l:mn> </mml:mrow> </mml:mrow> </mml:mfenced> <mml:mo> ×</米米l:mo> <mml:mn> 0.2</米米l:mn> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mtd> <mml:mtd columnalign="left"> <mml:mrow> <mml:mtext> 否则</米米l:mtext> </mml:mrow> </mml:mtd> </mml:mtr> </mml:mtable> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula></td> </tr> <tr> <td align="left">突变率</td><td一个lign="center"> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M108"> <mml:mn> 0.04</米米l:mn> <mml:mtext> </mml:mtext> <mml:msub> <mml:mrow> <mml:mi mathvariant="normal"> 日志</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> <mml:mtext> </mml:mtext> <mml:mi> N</米米l:mi> </mml:math> </inline-formula></td> </tr> <tr> <td align="left">交叉操作</td><td一个lign="center">循环交叉</td></tr> <tr> <td align="left">变异操作</td><td一个lign="center">一个交换</td></tr> </tbody> </table> </table-wrap> <p>在[<xref ref-type="bibr" rid="B8"> 8</xref>,<xref ref-type="bibr" rid="B12"> 12</xref>,<xref ref-type="bibr" rid="B14"> 14</xref>),减少随机性在我们实验的结果,我们收集30的平均和最佳独立运行。进行公平的比较,运行使用的平均值,并确定一个算法的性能,运行的最佳价值利用。</p></sec> <sec id="sec4.4"> <title>4.4。评估的结果</t我tle> <p>比较比较模块已经完成的模块解决方案树的叶子的源代码(这是由专家团队开发)使用精度/回忆(<xref ref-type="bibr" rid="B4"> 4</xref>]和MoJoFM [<xref ref-type="bibr" rid="B68"> 68年</xref>]和F-measure [<xref ref-type="bibr" rid="B4"> 4</xref>)指标。精密/召回指标是用来比较该算法获得的模块化对模块化专家(<xref ref-type="disp-formula" rid="EEq3"> 3</xref>),TP(真阳性)的数量comodules相关(出现在原始的模块化),正确的检索算法,FP(假阳性)的comodules数量无关,但检索,和FN(假阴性)的数量comodules相关但未检索到。F-Measure被定义为调和平均数的精度和召回(<xref ref-type="disp-formula" rid="EEq4"> 4</xref>)。值精度高/召回和F-measure节目更模块化相似性:<d我sp-formula> <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M109"> <mml:mtable> <mml:mlabeledtr id="EEq3"> <mml:mtd rowspan="2"> <mml:mtext> (3)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:mtext> 精度</米米l:mtext> <mml:mo> =</米米l:mo> <mml:mfrac> <mml:mrow> <mml:mtext> TP</米米l:mtext> </mml:mrow> <mml:mrow> <mml:mtext> TP</米米l:mtext> <mml:mo> +</米米l:mo> <mml:mtext> 《外交政策》</米米l:mtext> </mml:mrow> </mml:mfrac> <mml:mo> ,</米米l:mo> </mml:mtd> </mml:mlabeledtr> <mml:mtr> <mml:mtd> <mml:mtext> 回忆</米米l:mtext> <mml:mo> =</米米l:mo> <mml:mfrac> <mml:mrow> <mml:mtext> TP</米米l:mtext> </mml:mrow> <mml:mrow> <mml:mtext> TP</米米l:mtext> <mml:mo> +</米米l:mo> <mml:mtext> FN</米米l:mtext> </mml:mrow> </mml:mfrac> <mml:mo> ,</米米l:mo> </mml:mtd> </mml:mtr> <mml:mlabeledtr id="EEq4"> <mml:mtd> <mml:mtext> (4)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:mtext> F</米米l:mtext> <mml:mo> −</米米l:mo> <mml:mtext> 测量</米米l:mtext> <mml:mo> =</米米l:mo> <mml:mfrac> <mml:mn> 2</米米l:mn> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mn> 1</米米l:mn> <mml:mo> /</米米l:mo> <mml:mrow> <mml:mtext> 精度</米米l:mtext> </mml:mrow> </mml:mrow> </mml:mfenced> <mml:mo> +</米米l:mo> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mn> 1</米米l:mn> <mml:mo> /</米米l:mo> <mml:mrow> <mml:mtext> 回忆</米米l:mtext> </mml:mrow> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mfrac> <mml:mo> =</米米l:mo> <mml:mfrac> <mml:mrow> <mml:mn> 2</米米l:mn> <mml:mo> ×</米米l:mo> <mml:mtext> 精度</米米l:mtext> <mml:mo> ×</米米l:mo> <mml:mtext> 回忆</米米l:mtext> </mml:mrow> <mml:mrow> <mml:mtext> 精度</米米l:mtext> <mml:mo> +</米米l:mo> <mml:mtext> 回忆</米米l:mtext> </mml:mrow> </mml:mfrac> <mml:mo> 。</米米l:mo> </mml:mtd> </mml:mlabeledtr> </mml:mtable> </mml:math> </disp-formula></p> <p>让<我t一个lic> mno</我t一个lic>表示哪一个模块化的移动或连接操作可以转换到另一个地方。提取之间的MoJoFM模块化<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M110"> <mml:mover accent="true"> <mml:mi> F</米米l:mi> <mml:mo> ^</米米l:mo> </mml:mover> </mml:math> </inline-formula>和原来的模块化F计算中所示的关系(<xref ref-type="disp-formula" rid="EEq5"> 5</xref>)。一个高价值MoJoFM显示更多的模块化相似性:<d我sp-formula> <mml:math display="block" xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M111"> <mml:mtable> <mml:mlabeledtr id="EEq5"> <mml:mtd> <mml:mtext> (5)</米米l:mtext> </mml:mtd> <mml:mtd> <mml:mtext> MoJoFM</米米l:mtext> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mover accent="true"> <mml:mi> F</米米l:mi> <mml:mo> ^</米米l:mo> </mml:mover> <mml:mo> ,</米米l:mo> <mml:mi> F</米米l:mi> </mml:mrow> </mml:mfenced> <mml:mo> =</米米l:mo> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mn> 1</米米l:mn> <mml:mo> −</米米l:mo> <mml:mfrac> <mml:mrow> <mml:mtext> mno</米米l:mtext> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mover accent="true"> <mml:mi> F</米米l:mi> <mml:mo> ^</米米l:mo> </mml:mover> <mml:mo> ,</米米l:mo> <mml:mi> F</米米l:mi> </mml:mrow> </mml:mfenced> </mml:mrow> <mml:mrow> <mml:mi mathvariant="normal"> 马克斯</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mtext> mno</米米l:mtext> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mo> ∀</米米l:mo> <mml:mrow> <mml:mover accent="true"> <mml:mi> F</米米l:mi> <mml:mo> ^</米米l:mo> </mml:mover> </mml:mrow> <mml:mo> ,</米米l:mo> <mml:mi> F</米米l:mi> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mfrac> </mml:mrow> </mml:mfenced> <mml:mo> ×</米米l:mo> <mml:mn> One hundred.</米米l:mn> <mml:mo> %</米米l:mo> <mml:mo> 。</米米l:mo> </mml:mtd> </mml:mlabeledtr> </mml:mtable> </mml:math> </disp-formula></p> <p>比较的总体结果TDHC对其他测试算法的精度/召回,F-measure, MoJoFM,我们利用非参数影响大小统计,即悬崖的<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M112"> <mml:mi> δ</米米l:mi> </mml:math> </inline-formula>这是用来量化两种算法之间的差异。</p><p>在不同的标准有不同的结果的算法,并考虑所有标准,决定哪些算法表现良好并不是一件容易的事。在这种情况下,可以利用多准则决策(指标)(<xref ref-type="bibr" rid="B69"> 69年</xref>]。这种技术措施不同算法的性能和分配算法0和1之间的值,0表示最弱的性能和一个表示的最佳性能。为此,我们<我t一个lic> n</我t一个lic>和<我t一个lic> 米</我t一个lic>表示数量的算法和标准的数量,分别。一个矩阵,称为<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M113"> <mml:msub> <mml:mrow> <mml:mi> X</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> n</米米l:mi> <mml:mo> ×</米米l:mo> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:math> </inline-formula>创建,然后基于熵,计算每个算法的效率。算法<xref ref-type="other" rid="alg4"> 4</xref>显示了这些步骤。</p><p我d="alg4"> <list list-content="algorithm"> <title><大胆>算法4:< /大胆>指标的步骤。</t我tle> <list-item></list-item> </list></p> <p> <bold> 输入</bold>:<我t一个lic> n</我t一个lic>:数量的算法</p><list-item> <p> <italic> 米</我t一个lic>:数量的标准</p></list-item> <list-item> <p> <italic> X</我t一个lic>:一个矩阵<我t一个lic> n</我t一个lic>×<我t一个lic> 米</我t一个lic>维度和<我t一个lic> x</我t一个lic><sub> <italic> ij</我t一个lic></sub>量的算法<我t一个lic> 我</我t一个lic>为标准<我t一个lic> j</我t一个lic></p> </list-item> <list-item> <p>步骤1:<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M114"> <mml:msub> <mml:mrow> <mml:mi mathvariant="bold"> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> x</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> /</米米l:mo> <mml:mrow> <mml:mstyle displaystyle="true"> <mml:msubsup> <mml:mo stretchy="false"> ∑</米米l:mo> <mml:mrow> <mml:mi> p</米米l:mi> <mml:mo> =</米米l:mo> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mi> n</米米l:mi> </mml:msubsup> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> x</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> p</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mstyle> </mml:mrow> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula></p> </list-item> <list-item> <p>步骤2:计算熵值,<我t一个lic> H</我t一个lic><sub> <italic> j</我t一个lic></sub>为标准<我t一个lic> j</我t一个lic> <inline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M115"> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mo> −</米米l:mo> <mml:mi> k</米米l:mi> <mml:mstyle displaystyle="true"> <mml:msubsup> <mml:mo stretchy="false"> ∑</米米l:mo> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mo> =</米米l:mo> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mi> n</米米l:mi> </mml:msubsup> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mi mathvariant="normal"> ln</米米l:mi> <mml:mtext> </mml:mtext> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mstyle> </mml:math> </inline-formula>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M116"> <mml:mi> k</米米l:mi> <mml:mo> =</米米l:mo> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mo> /</米米l:mo> <mml:mrow> <mml:mi mathvariant="normal"> 日志</米米l:mi> <mml:mtext> </mml:mtext> <mml:mi> n</米米l:mi> </mml:mrow> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula></p> </list-item> <list-item> <p>步骤3:计算每个标准的重要性和重量<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M117"> <mml:msub> <mml:mrow> <mml:mi> d</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mn> 1</米米l:mn> <mml:mo> −</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> H</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> W</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> d</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> /</米米l:mo> <mml:mrow> <mml:mstyle displaystyle="true"> <mml:msubsup> <mml:mo stretchy="false"> ∑</米米l:mo> <mml:mrow> <mml:mi> j</米米l:mi> <mml:mo> =</米米l:mo> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mi> n</米米l:mi> </mml:msubsup> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> d</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mstyle> </mml:mrow> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula></p> </list-item> <list-item> <p>第四步:计算每个标准的最大和最小向量<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M118"> <mml:msup> <mml:mrow> <mml:mi> 一个</米米l:mi> </mml:mrow> <mml:mrow> <mml:mo> +</米米l:mo> </mml:mrow> </mml:msup> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:mi mathvariant="normal"> 马克斯</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mo> ,</米米l:mo> <mml:mi mathvariant="normal"> 马克斯</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:mi mathvariant="normal"> 马克斯</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mo> ,</米米l:mo> <mml:mtext> 为</米米l:mtext> <mml:mn> 1</米米l:mn> <mml:mo> ≤</米米l:mo> <mml:mi> 我</米米l:mi> <mml:mo> ≤</米米l:mo> <mml:mi> n</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M119"> <mml:msub> <mml:mrow> <mml:mi> 一个</米米l:mi> </mml:mrow> <mml:mrow> <mml:mo> +</米米l:mo> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:msubsup> <mml:mi> p</米米l:mi> <mml:mn> 1</米米l:mn> <mml:mo> +</米米l:mo> </mml:msubsup> <mml:mo> ,</米米l:mo> <mml:msubsup> <mml:mi> p</米米l:mi> <mml:mn> 2</米米l:mn> <mml:mo> +</米米l:mo> </mml:msubsup> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msubsup> <mml:mi> p</米米l:mi> <mml:mi> 米</米米l:mi> <mml:mo> +</米米l:mo> </mml:msubsup> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M120"> <mml:msup> <mml:mrow> <mml:mi> 一个</米米l:mi> </mml:mrow> <mml:mrow> <mml:mo> −</米米l:mo> </mml:mrow> </mml:msup> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:mi mathvariant="normal"> 最小值</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mn> 1</米米l:mn> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mo> ,</米米l:mo> <mml:mi mathvariant="normal"> 最小值</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:mi mathvariant="normal"> 最小值</米米l:mi> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> 米</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> <mml:mo> ,</米米l:mo> <mml:mtext> 为</米米l:mtext> <mml:mn> 1</米米l:mn> <mml:mo> ≤</米米l:mo> <mml:mi> 我</米米l:mi> <mml:mo> ≤</米米l:mo> <mml:mi> n</米米l:mi> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M121"> <mml:msup> <mml:mrow> <mml:mi> 一个</米米l:mi> </mml:mrow> <mml:mrow> <mml:mo> −</米米l:mo> </mml:mrow> </mml:msup> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:msubsup> <mml:mi> p</米米l:mi> <mml:mn> 1</米米l:mn> <mml:mo> −</米米l:mo> </mml:msubsup> <mml:mo> ,</米米l:mo> <mml:msubsup> <mml:mi> p</米米l:mi> <mml:mn> 2</米米l:mn> <mml:mo> −</米米l:mo> </mml:msubsup> <mml:mo> ,</米米l:mo> <mml:mo> …</米米l:mo> <mml:mo> ,</米米l:mo> <mml:msubsup> <mml:mi> p</米米l:mi> <mml:mi> 米</米米l:mi> <mml:mo> −</米米l:mo> </mml:msubsup> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula></p> </list-item> <list-item> <p>第五步:计算一个积极的和消极的理想距离现实<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M122"> <mml:msubsup> <mml:mi> d</米米l:mi> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> <mml:mo> +</米米l:mo> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:msubsup> <mml:mi> p</米米l:mi> <mml:mi> j</米米l:mi> <mml:mo> +</米米l:mo> </mml:msubsup> <mml:mo> −</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> ,</米米l:mo> <mml:msubsup> <mml:mi> d</米米l:mi> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> <mml:mo> −</米米l:mo> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:msub> <mml:mrow> <mml:mi> p</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> −</米米l:mo> <mml:msubsup> <mml:mi> p</米米l:mi> <mml:mi> j</米米l:mi> <mml:mo> −</米米l:mo> </mml:msubsup> </mml:math> </inline-formula></p> </list-item> <list-item> <p>第六步:计算一个积极的和消极的理想距离算法<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M123"> <mml:msubsup> <mml:mi> d</米米l:mi> <mml:mi> 我</米米l:mi> <mml:mo> +</米米l:mo> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:msup> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mstyle displaystyle="true"> <mml:msubsup> <mml:mo stretchy="false"> ∑</米米l:mo> <mml:mrow> <mml:mi> j</米米l:mi> <mml:mo> =</米米l:mo> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mi> 米</米米l:mi> </mml:msubsup> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> W</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:msup> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msubsup> <mml:mi> d</米米l:mi> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> <mml:mo> +</米米l:mo> </mml:msubsup> </mml:mrow> </mml:mfenced> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> </mml:mrow> </mml:mstyle> </mml:mrow> </mml:mfenced> </mml:mrow> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mn> 1</米米l:mn> <mml:mo> /</米米l:mo> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:msup> </mml:math> </inline-formula>,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M124"> <mml:msubsup> <mml:mi> d</米米l:mi> <mml:mi> 我</米米l:mi> <mml:mo> −</米米l:mo> </mml:msubsup> <mml:mo> =</米米l:mo> <mml:msup> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mstyle displaystyle="true"> <mml:msubsup> <mml:mo stretchy="false"> ∑</米米l:mo> <mml:mrow> <mml:mi> j</米米l:mi> <mml:mo> =</米米l:mo> <mml:mn> 1</米米l:mn> </mml:mrow> <mml:mi> 米</米米l:mi> </mml:msubsup> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> W</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:msup> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msubsup> <mml:mi> d</米米l:mi> <mml:mrow> <mml:mi> 我</米米l:mi> <mml:mi> j</米米l:mi> </mml:mrow> <mml:mo> −</米米l:mo> </mml:msubsup> </mml:mrow> </mml:mfenced> </mml:mrow> <mml:mrow> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:msup> </mml:mrow> </mml:mstyle> </mml:mrow> </mml:mfenced> </mml:mrow> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:mn> 1</米米l:mn> <mml:mo> /</米米l:mo> <mml:mn> 2</米米l:mn> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:msup> </mml:math> </inline-formula></p> </list-item> <list-item> <p>第七步:计算每个算法的效率<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M125"> <mml:msub> <mml:mrow> <mml:mi> E</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> 我</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msubsup> <mml:mi> d</米米l:mi> <mml:mi> 我</米米l:mi> <mml:mo> +</米米l:mo> </mml:msubsup> <mml:mo> /</米米l:mo> <mml:mrow> <mml:mfenced open="(" close=")" separators="|"> <mml:mrow> <mml:msubsup> <mml:mi> d</米米l:mi> <mml:mi> 我</米米l:mi> <mml:mo> −</米米l:mo> </mml:msubsup> <mml:mo> +</米米l:mo> <mml:msubsup> <mml:mi> d</米米l:mi> <mml:mi> 我</米米l:mi> <mml:mo> −</米米l:mo> </mml:msubsup> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula></p> </list-item> <list-item> <p>第八步:选择最好的算法<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M126"> <mml:mi> k</米米l:mi> <mml:mo> =</米米l:mo> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:mfenced open close="|" separators="|"> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:mfenced> <mml:msub> <mml:mrow> <mml:mi> E</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> <mml:mo> =</米米l:mo> <mml:munder> <mml:mrow> <mml:mi mathvariant="normal"> 马克斯</米米l:mi> </mml:mrow> <mml:mrow> <mml:mn> 1</米米l:mn> <mml:mo> ≤</米米l:mo> <mml:mi> 我</米米l:mi> <mml:mo> ≤</米米l:mo> <mml:mi> n</米米l:mi> </mml:mrow> </mml:munder> <mml:mfenced open="{" close="}" separators="|"> <mml:mrow> <mml:msub> <mml:mrow> <mml:mi> E</米米l:mi> </mml:mrow> <mml:mrow> <mml:mi> j</米米l:mi> </mml:mrow> </mml:msub> </mml:mrow> </mml:mfenced> </mml:mrow> </mml:mfenced> </mml:math> </inline-formula></p> </list-item> <p></p> </sec> </sec> <sec id="sec5"> <title>5。实证研究结果</t我tle> <p>比较和评估算法、5软件系统与不同的领域和尺寸已经被选中了。同时,七个文件夹有不同的功能已经从Mozilla Firefox中选择应用程序。</p><p>RQ1回答研究问题,相比之下,在这篇文章中,九个搜索算法具有不同特点包括单目标、多目标、全局搜索、局部搜索,structured-based方法和基于语义的方法选择。算法选择Bunch-GA, DAGC ECA, MCA, Bunch-SAHC, SGA, GA-SMCP,爆炸品处理,SNDGA。表中描述了这些算法的特点<xref ref-type="table" rid="tab5"> 5</xref>。我们也选择交直流作为一个基于模式的算法进行比较。几位以前的研究<xref ref-type="bibr" rid="B9"> 9</xref>- - - - - -<xref ref-type="bibr" rid="B11"> 11</xref>)表明,交直流经常超过别人。因为交直流是一个基于模式的方法,它产生相同的集群每次重复,所以最好的和平均结果总是相同的。</p><t一个ble-wrap id="tab5"> <label>表5</label> <p>特征选择算法搜索算法和该算法进行比较。</p><t一个ble> <thead> <tr> <th align="left">算法</th> <th align="center">#使用的目的</th> <th align="center">搜索类型</th> <th align="center">示例/基于语义</th> <th align="center">编码类型</th> <th align="center">参考</th> </tr> </thead> <tbody> <tr> <td align="left">Bunch-GA</td><td一个lign="center">单目标</td><td一个lign="center">全球(GA)</td><td一个lign="center">结构</td><td一个lign="center">价值</td><td一个lign="center">(<xref ref-type="bibr" rid="B5"> 5</xref>]</td></tr> <tr> <td align="left">DAGC</td><td一个lign="center">单目标</td><td一个lign="center">全球(GA)</td><td一个lign="center">结构</td><td一个lign="center">Permutation-based</td><td一个lign="center">(<xref ref-type="bibr" rid="B15"> 15</xref>]</td></tr> <tr> <td align="left">ECA</td><td一个lign="center">多目标</td><td一个lign="center">全球(two-archive GA)</td><td一个lign="center">结构</td><td一个lign="center">价值</td><td一个lign="center">(<xref ref-type="bibr" rid="B12"> 12</xref>]</td></tr> <tr> <td align="left">MCA</td><td一个lign="center">多目标</td><td一个lign="center">全球(two-archive GA)</td><td一个lign="center">结构</td><td一个lign="center">价值</td><td一个lign="center">(<xref ref-type="bibr" rid="B12"> 12</xref>]</td></tr> <tr> <td align="left">Bunch-SAHC</td><td一个lign="center">单目标</td><td一个lign="center">本地(山爬)</td><td一个lign="center">结构</td><td一个lign="center">价值</td><td一个lign="center">(<xref ref-type="bibr" rid="B7"> 7</xref>,<xref ref-type="bibr" rid="B21"> 21</xref>]</td></tr> <tr> <td align="left">SGA</td><td一个lign="center">单目标</td><td一个lign="center">全球(GA)</td><td一个lign="center">语义</td><td一个lign="center">价值</td><td一个lign="center">(<xref ref-type="bibr" rid="B14"> 14</xref>]</td></tr> <tr> <td align="left">GA-SMCP</td><td一个lign="center">单目标</td><td一个lign="center">全球(GA)</td><td一个lign="center">结构</td><td一个lign="center">价值</td><td一个lign="center">(<xref ref-type="bibr" rid="B30"> 30.</xref>]</td></tr> <tr> <td align="left">爆炸品处理</td><td一个lign="center">多目标</td><td一个lign="center">全球分销(估计)</td><td一个lign="center">语义和结构</td><td一个lign="center">价值</td><td一个lign="center">(<xref ref-type="bibr" rid="B8"> 8</xref>]</td></tr> <tr> <td align="left">SNDGA</td><td一个lign="center">单目标</td><td一个lign="center">全球(GA)</td><td一个lign="center">语义、名义和结构性的</td><td一个lign="center">价值</td><td一个lign="center">(<xref ref-type="bibr" rid="B46"> 46</xref>]</td></tr> </tbody> </table> </table-wrap> <p>最好的和平均结果TDHC Firefox的七个文件夹文件夹和五个其他软件系统相比,选择先进的算法具有不同特性的结果在精度方面,记得,F-measure, MoJoFM。报告的细节表<xref ref-type="table" rid="tab6"> 6</xref>- - - - - -<xref ref-type="table" rid="tab9"> 9</xref>。</p><t一个ble-wrap id="tab6"> <label>表6</label> <p>算法比较MoJoFM。</p><t一个ble> <thead> <tr> <th align="left" rowspan="2">文件夹名称</th> <th align="center" colspan="2">Bunch-GA</th> <th align="center" colspan="2">ECA</th> <th align="center" colspan="2">MCA</th> <th align="center" colspan="2">DAGC</th> <th align="center" colspan="2">Bunch-SAHC</th> <th align="center" colspan="2">SGA</th> <th align="center" colspan="2">GA-SMCP</th> <th align="center" colspan="2">爆炸品处理</th> <th align="center" colspan="2">交直流</th> <th align="center" colspan="2">SNDGA</th> <th align="center" colspan="2">TDHC</th> </tr> <tr> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> </tr> </thead> <tbody> <tr> <td align="left">浏览器</td><td一个lign="center">70年</td><td一个lign="center">65年</td><td一个lign="center">60</td><td一个lign="center">52</td><td一个lign="center">72年</td><td一个lign="center">68年</td><td一个lign="center">45</td><td一个lign="center">36</td><td一个lign="center">52</td><td一个lign="center">48</td><td一个lign="center">55</td><td一个lign="center">50</td><td一个lign="center">70年</td><td一个lign="center">65年</td><td一个lign="center">52</td><td一个lign="center">49</td><td一个lign="center">66年</td><td一个lign="center">66年</td><td一个lign="center">68年</td><td一个lign="center">64年</td><td一个lign="center"> <bold> 80年</bold></td> <td align="center"> <bold> 78年</bold></td> </tr> <tr> <td align="left">Dom</td><td一个lign="center">58</td><td一个lign="center">55</td><td一个lign="center">53</td><td一个lign="center">48</td><td一个lign="center">54</td><td一个lign="center">46</td><td一个lign="center">26</td><td一个lign="center">25</td><td一个lign="center">39</td><td一个lign="center">36</td><td一个lign="center">45</td><td一个lign="center">42</td><td一个lign="center">58</td><td一个lign="center">55</td><td一个lign="center">58</td><td一个lign="center">55</td><td一个lign="center"> <bold> 83年</bold></td> <td align="center"> <bold> 83年</bold></td> <td align="center">77年</td><td一个lign="center">75年</td><td一个lign="center">74年</td><td一个lign="center">75年</td></tr> <tr> <td align="left">可访问的</td><td一个lign="center">42</td><td一个lign="center">39</td><td一个lign="center">37</td><td一个lign="center">36</td><td一个lign="center">40</td><td一个lign="center">36</td><td一个lign="center">27</td><td一个lign="center">24</td><td一个lign="center">27</td><td一个lign="center">26</td><td一个lign="center">55</td><td一个lign="center">53</td><td一个lign="center">38</td><td一个lign="center">36</td><td一个lign="center">42</td><td一个lign="center">39</td><td一个lign="center">42</td><td一个lign="center">42</td><td一个lign="center">65年</td><td一个lign="center"> <bold> 61年</bold></td> <td align="center"> <bold> 78年</bold></td> <td align="center">54</td></tr> <tr> <td align="left">扩展</td><td一个lign="center">50</td><td一个lign="center">46</td><td一个lign="center">59</td><td一个lign="center">46</td><td一个lign="center">53</td><td一个lign="center">44</td><td一个lign="center">22</td><td一个lign="center">21</td><td一个lign="center">28</td><td一个lign="center">25</td><td一个lign="center">35</td><td一个lign="center">33</td><td一个lign="center">48</td><td一个lign="center">46</td><td一个lign="center">51</td><td一个lign="center">46</td><td一个lign="center">77年</td><td一个lign="center">77年</td><td一个lign="center">65年</td><td一个lign="center">62年</td><td一个lign="center"> <bold> 84年</bold></td> <td align="center"> <bold> 71年</bold></td> </tr> <tr> <td align="left">Gfx</td><td一个lign="center">54</td><td一个lign="center">50</td><td一个lign="center">61年</td><td一个lign="center">54</td><td一个lign="center">67年</td><td一个lign="center">57</td><td一个lign="center">29日</td><td一个lign="center">29日</td><td一个lign="center">42</td><td一个lign="center">41</td><td一个lign="center">57</td><td一个lign="center">55</td><td一个lign="center">54</td><td一个lign="center">50</td><td一个lign="center">60</td><td一个lign="center">57</td><td一个lign="center">73年</td><td一个lign="center">73年</td><td一个lign="center">84年</td><td一个lign="center"> <bold> 81年</bold></td> <td align="center"> <bold> 86年</bold></td> <td align="center">75年</td></tr> <tr> <td align="left">Ipc</td><td一个lign="center">81年</td><td一个lign="center">81年</td><td一个lign="center">81年</td><td一个lign="center">81年</td><td一个lign="center">81年</td><td一个lign="center">81年</td><td一个lign="center">40</td><td一个lign="center">38</td><td一个lign="center">81年</td><td一个lign="center">81年</td><td一个lign="center">81年</td><td一个lign="center">80年</td><td一个lign="center">80年</td><td一个lign="center">79年</td><td一个lign="center">80年</td><td一个lign="center">79年</td><td一个lign="center">61年</td><td一个lign="center">61年</td><td一个lign="center"> <bold> 91年</bold></td> <td align="center"> <bold> 90年</bold></td> <td align="center">67年</td><td一个lign="center">70年</td></tr> <tr> <td align="left">Intl</td><td一个lign="center">80年</td><td一个lign="center">76年</td><td一个lign="center">75年</td><td一个lign="center">75年</td><td一个lign="center">84年</td><td一个lign="center">81年</td><td一个lign="center">41</td><td一个lign="center">39</td><td一个lign="center">75年</td><td一个lign="center">75年</td><td一个lign="center">78年</td><td一个lign="center">76年</td><td一个lign="center">71年</td><td一个lign="center">68年</td><td一个lign="center">75年</td><td一个lign="center">71年</td><td一个lign="center"> <bold> 92年</bold></td> <td align="center"> <bold> 92年</bold></td> <td align="center">86年</td><td一个lign="center">80年</td><td一个lign="center">89年</td><td一个lign="center">79年</td></tr> <tr> <td align="left" colspan="23"> <hr></td> </tr> <tr> <td align="left">Mini-Tunis</td><td一个lign="center">80年</td><td一个lign="center">78年</td><td一个lign="center">80年</td><td一个lign="center">76年</td><td一个lign="center">80年</td><td一个lign="center">73年</td><td一个lign="center">71年</td><td一个lign="center">69年</td><td一个lign="center">80年</td><td一个lign="center">71年</td><td一个lign="center">80年</td><td一个lign="center">78年</td><td一个lign="center">59</td><td一个lign="center">51</td><td一个lign="center">80年</td><td一个lign="center">73年</td><td一个lign="center">46</td><td一个lign="center">46</td><td一个lign="center">80年</td><td一个lign="center"> <bold> 75年</bold></td> <td align="center"> <bold> 84年</bold></td> <td align="center">67年</td></tr> <tr> <td align="left">JUnit 4</td><td一个lign="center">60</td><td一个lign="center">58</td><td一个lign="center">60</td><td一个lign="center">58</td><td一个lign="center">60</td><td一个lign="center">56</td><td一个lign="center">59</td><td一个lign="center">51</td><td一个lign="center">60</td><td一个lign="center">58</td><td一个lign="center">60</td><td一个lign="center">59</td><td一个lign="center">60</td><td一个lign="center">57</td><td一个lign="center"> <bold> 67年</bold></td> <td align="center"> <bold> 65年</bold></td> <td align="center">63年</td><td一个lign="center">63年</td><td一个lign="center">65年</td><td一个lign="center">60</td><td一个lign="center">60</td><td一个lign="center">51</td></tr> <tr> <td align="left">servlet api</td><td一个lign="center">90年</td><td一个lign="center">88年</td><td一个lign="center">91年</td><td一个lign="center">90年</td><td一个lign="center">88年</td><td一个lign="center">85年</td><td一个lign="center">73年</td><td一个lign="center">68年</td><td一个lign="center">78年</td><td一个lign="center">75年</td><td一个lign="center">71年</td><td一个lign="center">61年</td><td一个lign="center">83年</td><td一个lign="center">80年</td><td一个lign="center">90年</td><td一个lign="center">84年</td><td一个lign="center">89年</td><td一个lign="center">89年</td><td一个lign="center">80年</td><td一个lign="center">71年</td><td一个lign="center"> <bold> 93年</bold></td> <td align="center"> <bold> 90年</bold></td> </tr> <tr> <td align="left">简单的模拟</td><td一个lign="center">78年</td><td一个lign="center">73年</td><td一个lign="center">75年</td><td一个lign="center">69年</td><td一个lign="center">71年</td><td一个lign="center">60</td><td一个lign="center">61年</td><td一个lign="center">53</td><td一个lign="center">63年</td><td一个lign="center">51</td><td一个lign="center">65年</td><td一个lign="center">54</td><td一个lign="center">78年</td><td一个lign="center">69年</td><td一个lign="center">78年</td><td一个lign="center">73年</td><td一个lign="center">67年</td><td一个lign="center">67年</td><td一个lign="center">60</td><td一个lign="center">49</td><td一个lign="center"> <bold> 87年</bold></td> <td align="center"> <bold> 91年</bold></td> </tr> <tr> <td align="left">计算器</td><td一个lign="center">40</td><td一个lign="center">37</td><td一个lign="center">41</td><td一个lign="center">38</td><td一个lign="center">41</td><td一个lign="center">35</td><td一个lign="center">33</td><td一个lign="center">31日</td><td一个lign="center">38</td><td一个lign="center">31日</td><td一个lign="center">41</td><td一个lign="center">38</td><td一个lign="center">40</td><td一个lign="center">37</td><td一个lign="center">41</td><td一个lign="center">39</td><td一个lign="center">44</td><td一个lign="center">44</td><td一个lign="center">62年</td><td一个lign="center">54</td><td一个lign="center"> <bold> 85年</bold></td> <td align="center"> <bold> 79年</bold></td> </tr> </tbody> </table> </table-wrap> <table-wrap id="tab7"> <label>表7</label> <p>算法比较的精度。</p><t一个ble> <thead> <tr> <th align="left" rowspan="2">文件夹名称</th> <th align="center" colspan="2">Bunch-GA</th> <th align="center" colspan="2">ECA</th> <th align="center" colspan="2">MCA</th> <th align="center" colspan="2">DAGC</th> <th align="center" colspan="2">Bunch-SAHC</th> <th align="center" colspan="2">SGA</th> <th align="center" colspan="2">GA-SMCP</th> <th align="center" colspan="2">爆炸品处理</th> <th align="center" colspan="2">交直流</th> <th align="center" colspan="2">SNDGA</th> <th align="center" colspan="2">TDHC</th> </tr> <tr> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">Verage (%)</th> </tr> </thead> <tbody> <tr> <td align="left">浏览器</td><td一个lign="center">83年</td><td一个lign="center">62年</td><td一个lign="center">33</td><td一个lign="center">321年</td><td一个lign="center"> <bold> One hundred.</bold></td> <td align="center"> <bold> 96年</bold></td> <td align="center">7</td><td一个lign="center">5</td><td一个lign="center">49</td><td一个lign="center">28</td><td一个lign="center">55</td><td一个lign="center">48</td><td一个lign="center">79年</td><td一个lign="center">71年</td><td一个lign="center">84年</td><td一个lign="center">76年</td><td一个lign="center">95年</td><td一个lign="center">95年</td><td一个lign="center">56</td><td一个lign="center">41</td><td一个lign="center">73年</td><td一个lign="center">58</td></tr> <tr> <td align="left">Dom</td><td一个lign="center">53</td><td一个lign="center">41</td><td一个lign="center">27</td><td一个lign="center">24</td><td一个lign="center">44</td><td一个lign="center">43</td><td一个lign="center">2</td><td一个lign="center">2</td><td一个lign="center">33</td><td一个lign="center">21</td><td一个lign="center">38</td><td一个lign="center">33</td><td一个lign="center">49</td><td一个lign="center">39</td><td一个lign="center">51</td><td一个lign="center">44</td><td一个lign="center"> <bold> 82年</bold></td> <td align="center"> <bold> 82年</bold></td> <td align="center">75年</td><td一个lign="center">56</td><td一个lign="center">56</td><td一个lign="center">45</td></tr> <tr> <td align="left">可访问的</td><td一个lign="center">27</td><td一个lign="center">2</td><td一个lign="center">23</td><td一个lign="center">14</td><td一个lign="center"> <bold> 85年</bold></td> <td align="center"> <bold> 62年</bold></td> <td align="center">3</td><td一个lign="center">2</td><td一个lign="center">17</td><td一个lign="center">13</td><td一个lign="center">45</td><td一个lign="center">45</td><td一个lign="center">32</td><td一个lign="center">20.</td><td一个lign="center">26</td><td一个lign="center">22</td><td一个lign="center">23</td><td一个lign="center">23</td><td一个lign="center">44</td><td一个lign="center">36</td><td一个lign="center">42</td><td一个lign="center">32</td></tr> <tr> <td align="left">扩展</td><td一个lign="center">26</td><td一个lign="center">26</td><td一个lign="center">26</td><td一个lign="center">19</td><td一个lign="center">35</td><td一个lign="center">28</td><td一个lign="center">3</td><td一个lign="center">2</td><td一个lign="center">12</td><td一个lign="center">10</td><td一个lign="center">36</td><td一个lign="center">36</td><td一个lign="center">19</td><td一个lign="center">16</td><td一个lign="center"> <bold> 75年</bold></td> <td align="center"> <bold> 72年</bold></td> <td align="center">69年</td><td一个lign="center">69年</td><td一个lign="center">39</td><td一个lign="center">33</td><td一个lign="center">43</td><td一个lign="center">30.</td></tr> <tr> <td align="left">Gfx</td><td一个lign="center">25</td><td一个lign="center">23</td><td一个lign="center">26</td><td一个lign="center">21</td><td一个lign="center"> <bold> 65年</bold></td> <td align="center"> <bold> 61年</bold></td> <td align="center">0.95</td><td一个lign="center">0.88</td><td一个lign="center">20.</td><td一个lign="center">15</td><td一个lign="center">33</td><td一个lign="center">25</td><td一个lign="center">21</td><td一个lign="center">19</td><td一个lign="center">26</td><td一个lign="center">20.</td><td一个lign="center">60</td><td一个lign="center">60</td><td一个lign="center">51</td><td一个lign="center">40</td><td一个lign="center">53</td><td一个lign="center">50</td></tr> <tr> <td align="left">Ipc</td><td一个lign="center">50</td><td一个lign="center">29日</td><td一个lign="center">25</td><td一个lign="center">25</td><td一个lign="center">26</td><td一个lign="center">26</td><td一个lign="center">0.43</td><td一个lign="center">0.42</td><td一个lign="center">50</td><td一个lign="center">28</td><td一个lign="center">57</td><td一个lign="center">34</td><td一个lign="center">45</td><td一个lign="center">38</td><td一个lign="center">55</td><td一个lign="center">48</td><td一个lign="center"> <bold> 95年</bold></td> <td align="center"> <bold> 95年</bold></td> <td align="center">52</td><td一个lign="center">41</td><td一个lign="center">58</td><td一个lign="center">50</td></tr> <tr> <td align="left">Intl</td><td一个lign="center">45</td><td一个lign="center">32</td><td一个lign="center">15</td><td一个lign="center">15</td><td一个lign="center">49</td><td一个lign="center">47</td><td一个lign="center">0.51</td><td一个lign="center">0.44</td><td一个lign="center">17</td><td一个lign="center">15</td><td一个lign="center">72年</td><td一个lign="center">65年</td><td一个lign="center">45</td><td一个lign="center">42</td><td一个lign="center">40</td><td一个lign="center">32</td><td一个lign="center"> <bold> 94年</bold></td> <td align="center"> <bold> 94年</bold></td> <td align="center">26</td><td一个lign="center">21</td><td一个lign="center">71年</td><td一个lign="center">69年</td></tr> <tr> <td align="left" colspan="23"> <hr></td> </tr> <tr> <td align="left">Mini-Tunis</td><td一个lign="center">81年</td><td一个lign="center">78年</td><td一个lign="center">81年</td><td一个lign="center">79年</td><td一个lign="center">81年</td><td一个lign="center">78年</td><td一个lign="center">69年</td><td一个lign="center">63年</td><td一个lign="center">81年</td><td一个lign="center">72年</td><td一个lign="center">68年</td><td一个lign="center">65年</td><td一个lign="center">81年</td><td一个lign="center">78年</td><td一个lign="center">81年</td><td一个lign="center">80年</td><td一个lign="center">35</td><td一个lign="center">35</td><td一个lign="center">71年</td><td一个lign="center">54</td><td一个lign="center"> <bold> 84年</bold></td> <td align="center"> <bold> 55</bold></td> </tr> <tr> <td align="left">JUnit 4</td><td一个lign="center">63年</td><td一个lign="center"> <bold> 61年</bold></td> <td align="center">61年</td><td一个lign="center">60</td><td一个lign="center">61年</td><td一个lign="center">60</td><td一个lign="center">57</td><td一个lign="center">51</td><td一个lign="center">59</td><td一个lign="center">53</td><td一个lign="center">48</td><td一个lign="center">41</td><td一个lign="center">61年</td><td一个lign="center">59</td><td一个lign="center">61年</td><td一个lign="center">60</td><td一个lign="center">54</td><td一个lign="center">54</td><td一个lign="center"> <bold> 68年</bold></td> <td align="center"> <bold> 61年</bold></td> <td align="center">46</td><td一个lign="center">43</td></tr> <tr> <td align="left">servlet api</td><td一个lign="center">50</td><td一个lign="center">47</td><td一个lign="center">51</td><td一个lign="center">49</td><td一个lign="center">83年</td><td一个lign="center">80年</td><td一个lign="center">48</td><td一个lign="center">45</td><td一个lign="center">48</td><td一个lign="center">41</td><td一个lign="center">48</td><td一个lign="center">42</td><td一个lign="center">50</td><td一个lign="center">47</td><td一个lign="center">50</td><td一个lign="center">49</td><td一个lign="center"> <bold> One hundred.</bold></td> <td align="center"> <bold> One hundred.</bold></td> <td align="center">48</td><td一个lign="center">43</td><td一个lign="center">55</td><td一个lign="center">72年</td></tr> <tr> <td align="left">简单的模拟</td><td一个lign="center">41</td><td一个lign="center">36</td><td一个lign="center"> <bold> 65年</bold></td> <td align="center"> <bold> 61年</bold></td> <td align="center">60</td><td一个lign="center">53</td><td一个lign="center">38</td><td一个lign="center">30.</td><td一个lign="center">35</td><td一个lign="center">28</td><td一个lign="center">41</td><td一个lign="center">35</td><td一个lign="center">41</td><td一个lign="center">33</td><td一个lign="center">45</td><td一个lign="center">38</td><td一个lign="center">57</td><td一个lign="center">57</td><td一个lign="center">45</td><td一个lign="center">40</td><td一个lign="center">41</td><td一个lign="center">38</td></tr> <tr> <td align="left">计算器</td><td一个lign="center">35</td><td一个lign="center">31日</td><td一个lign="center">37</td><td一个lign="center"> <bold> 35</bold></td> <td align="center">37</td><td一个lign="center">32</td><td一个lign="center">14</td><td一个lign="center">10</td><td一个lign="center">12</td><td一个lign="center">8</td><td一个lign="center">29日</td><td一个lign="center">25</td><td一个lign="center">20.</td><td一个lign="center">17</td><td一个lign="center"> <bold> 40</bold></td> <td align="center">33</td><td一个lign="center">20.</td><td一个lign="center">20.</td><td一个lign="center"> <bold> 40</bold></td> <td align="center">34</td><td一个lign="center">14</td><td一个lign="center">12</td></tr> </tbody> </table> </table-wrap> <table-wrap id="tab8"> <label>表8</label> <p>算法比较的回忆。</p><t一个ble> <thead> <tr> <th align="left" rowspan="2">文件夹名称</th> <th align="center" colspan="2">Bunch-GA</th> <th align="center" colspan="2">ECA</th> <th align="center" colspan="2">MCA</th> <th align="center" colspan="2">DAGC</th> <th align="center" colspan="2">Bunch-SAHC</th> <th align="center" colspan="2">SGA</th> <th align="center" colspan="2">GA-SMCP</th> <th align="center" colspan="2">爆炸品处理</th> <th align="center" colspan="2">交直流</th> <th align="center" colspan="2">SNDGA</th> <th align="center" colspan="2">TDHC</th> </tr> <tr> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> </tr> </thead> <tbody> <tr> <td align="left">浏览器</td><td一个lign="center">65年</td><td一个lign="center">55</td><td一个lign="center">51</td><td一个lign="center">46</td><td一个lign="center">56</td><td一个lign="center">51</td><td一个lign="center"> <bold> 70年</bold></td> <td align="center">54</td><td一个lign="center">42</td><td一个lign="center">36</td><td一个lign="center">35</td><td一个lign="center">32</td><td一个lign="center">55</td><td一个lign="center">51</td><td一个lign="center">61年</td><td一个lign="center"> <bold> 57</bold></td> <td align="center">10</td><td一个lign="center">10</td><td一个lign="center">56</td><td一个lign="center">52</td><td一个lign="center">60</td><td一个lign="center">49</td></tr> <tr> <td align="left">Dom</td><td一个lign="center">43</td><td一个lign="center">40</td><td一个lign="center">40</td><td一个lign="center">37</td><td一个lign="center">38</td><td一个lign="center">35</td><td一个lign="center">48</td><td一个lign="center">44</td><td一个lign="center">29日</td><td一个lign="center">29日</td><td一个lign="center">31日</td><td一个lign="center">30.</td><td一个lign="center">41</td><td一个lign="center">33</td><td一个lign="center">46</td><td一个lign="center">39</td><td一个lign="center">42</td><td一个lign="center">42</td><td一个lign="center"> <bold> 71年</bold></td> <td align="center">67年</td><td一个lign="center">52</td><td一个lign="center"> <bold> 71年</bold></td> </tr> <tr> <td align="left">可访问的</td><td一个lign="center">31日</td><td一个lign="center">23</td><td一个lign="center">27</td><td一个lign="center">25</td><td一个lign="center">29日</td><td一个lign="center">24</td><td一个lign="center">50</td><td一个lign="center">37</td><td一个lign="center">21</td><td一个lign="center">19</td><td一个lign="center">26</td><td一个lign="center">26</td><td一个lign="center">31日</td><td一个lign="center">25</td><td一个lign="center">44</td><td一个lign="center">40</td><td一个lign="center">30.</td><td一个lign="center">30.</td><td一个lign="center">56</td><td一个lign="center">51</td><td一个lign="center"> <bold> 63年</bold></td> <td align="center"> <bold> 52</bold></td> </tr> <tr> <td align="left">扩展</td><td一个lign="center">35</td><td一个lign="center">30.</td><td一个lign="center">51</td><td一个lign="center">37</td><td一个lign="center">39</td><td一个lign="center">27</td><td一个lign="center">36</td><td一个lign="center">31日</td><td一个lign="center">20.</td><td一个lign="center">17</td><td一个lign="center">18</td><td一个lign="center">17</td><td一个lign="center">30.</td><td一个lign="center">24</td><td一个lign="center">28</td><td一个lign="center">22</td><td一个lign="center"> <bold> 98年</bold></td> <td align="center"> <bold> 98年</bold></td> <td align="center">48</td><td一个lign="center">45</td><td一个lign="center">50</td><td一个lign="center">49</td></tr> <tr> <td align="left">Gfx</td><td一个lign="center">48</td><td一个lign="center">39</td><td一个lign="center">68年</td><td一个lign="center">48</td><td一个lign="center">62年</td><td一个lign="center">43</td><td一个lign="center">42</td><td一个lign="center">40</td><td一个lign="center">31日</td><td一个lign="center">30.</td><td一个lign="center">42</td><td一个lign="center">39</td><td一个lign="center">33</td><td一个lign="center">28</td><td一个lign="center">46</td><td一个lign="center">42</td><td一个lign="center">25</td><td一个lign="center">25</td><td一个lign="center"> <bold> 80年</bold></td> <td align="center"> <bold> 72年</bold></td> <td align="center">75年</td><td一个lign="center">58</td></tr> <tr> <td align="left">Ipc</td><td一个lign="center">70年</td><td一个lign="center">69年</td><td一个lign="center">70年</td><td一个lign="center">69年</td><td一个lign="center">69年</td><td一个lign="center">68年</td><td一个lign="center">63年</td><td一个lign="center">62年</td><td一个lign="center">68年</td><td一个lign="center">68年</td><td一个lign="center">72年</td><td一个lign="center">72年</td><td一个lign="center">70年</td><td一个lign="center">65年</td><td一个lign="center">69年</td><td一个lign="center">63年</td><td一个lign="center">6</td><td一个lign="center">6</td><td一个lign="center"> <bold> 84年</bold></td> <td align="center">81年</td><td一个lign="center">73年</td><td一个lign="center"> <bold> 85年</bold></td> </tr> <tr> <td align="left">Intl</td><td一个lign="center">74年</td><td一个lign="center">72年</td><td一个lign="center">62年</td><td一个lign="center">61年</td><td一个lign="center">75年</td><td一个lign="center">72年</td><td一个lign="center">60</td><td一个lign="center">60</td><td一个lign="center">60</td><td一个lign="center">59</td><td一个lign="center">71年</td><td一个lign="center">70年</td><td一个lign="center">58</td><td一个lign="center">44</td><td一个lign="center">76年</td><td一个lign="center">71年</td><td一个lign="center"> <bold> 94年</bold></td> <td align="center"> <bold> 94年</bold></td> <td align="center">82年</td><td一个lign="center">74年</td><td一个lign="center">84年</td><td一个lign="center">63年</td></tr> <tr> <td align="left" colspan="23"> <hr></td> </tr> <tr> <td align="left">Mini-Tunis</td><td一个lign="center">71年</td><td一个lign="center">63年</td><td一个lign="center">73年</td><td一个lign="center">70年</td><td一个lign="center">71年</td><td一个lign="center">70年</td><td一个lign="center">48</td><td一个lign="center">39</td><td一个lign="center">68年</td><td一个lign="center">61年</td><td一个lign="center">60</td><td一个lign="center">51</td><td一个lign="center">60</td><td一个lign="center">52</td><td一个lign="center">71年</td><td一个lign="center">69年</td><td一个lign="center"> <bold> 92年</bold></td> <td align="center"> <bold> 92年</bold></td> <td align="center">69年</td><td一个lign="center">52</td><td一个lign="center">78年</td><td一个lign="center">67年</td></tr> <tr> <td align="left">JUnit 4</td><td一个lign="center">48</td><td一个lign="center">41</td><td一个lign="center">48</td><td一个lign="center">45</td><td一个lign="center">48</td><td一个lign="center">41</td><td一个lign="center">28</td><td一个lign="center">25</td><td一个lign="center">31日</td><td一个lign="center">22</td><td一个lign="center">45</td><td一个lign="center">39</td><td一个lign="center">38</td><td一个lign="center">32</td><td一个lign="center"> <bold> 53</bold></td> <td align="center"> <bold> 50</bold></td> <td align="center">49</td><td一个lign="center">49</td><td一个lign="center">50</td><td一个lign="center">43</td><td一个lign="center">34</td><td一个lign="center">31日</td></tr> <tr> <td align="left">servlet api</td><td一个lign="center">73年</td><td一个lign="center">65年</td><td一个lign="center">78年</td><td一个lign="center">74年</td><td一个lign="center">75年</td><td一个lign="center">68年</td><td一个lign="center">51</td><td一个lign="center">42</td><td一个lign="center">41</td><td一个lign="center">30.</td><td一个lign="center">59</td><td一个lign="center">48</td><td一个lign="center">48</td><td一个lign="center">41</td><td一个lign="center">78年</td><td一个lign="center">72年</td><td一个lign="center">41</td><td一个lign="center">41</td><td一个lign="center">75年</td><td一个lign="center">69年</td><td一个lign="center"> <bold> One hundred.</bold></td> <td align="center"> <bold> 98年</bold></td> </tr> <tr> <td align="left">简单的模拟</td><td一个lign="center">79年</td><td一个lign="center">72年</td><td一个lign="center">81年</td><td一个lign="center">74年</td><td一个lign="center">81年</td><td一个lign="center">76年</td><td一个lign="center">52</td><td一个lign="center">45</td><td一个lign="center">38</td><td一个lign="center">31日</td><td一个lign="center">80年</td><td一个lign="center">73年</td><td一个lign="center">68年</td><td一个lign="center">61年</td><td一个lign="center">83年</td><td一个lign="center">78年</td><td一个lign="center">32</td><td一个lign="center">32</td><td一个lign="center">78年</td><td一个lign="center">70年</td><td一个lign="center"> <bold> 90年</bold></td> <td align="center"> <bold> 90年</bold></td> </tr> <tr> <td align="left">计算器</td><td一个lign="center">48</td><td一个lign="center">40</td><td一个lign="center">55</td><td一个lign="center">43</td><td一个lign="center">61年</td><td一个lign="center">50</td><td一个lign="center">28</td><td一个lign="center">19</td><td一个lign="center">21</td><td一个lign="center">12</td><td一个lign="center">50</td><td一个lign="center">42</td><td一个lign="center">39</td><td一个lign="center">35</td><td一个lign="center">55</td><td一个lign="center">44</td><td一个lign="center">52</td><td一个lign="center">52</td><td一个lign="center">55</td><td一个lign="center">49</td><td一个lign="center"> <bold> 89年</bold></td> <td align="center"> <bold> 80年</bold></td> </tr> </tbody> </table> </table-wrap> <table-wrap id="tab9"> <label>表9</label> <p>算法的比较<我t一个lic> F</我t一个lic>测量。</p><t一个ble> <thead> <tr> <th align="left" rowspan="2">文件夹名称</th> <th align="center" colspan="2">Bunch-GA</th> <th align="center" colspan="2">ECA</th> <th align="center" colspan="2">MCA</th> <th align="center" colspan="2">DAGC</th> <th align="center" colspan="2">Bunch-SAHC</th> <th align="center" colspan="2">SGA</th> <th align="center" colspan="2">GA-SMCP</th> <th align="center" colspan="2">爆炸品处理</th> <th align="center" colspan="2">交直流</th> <th align="center" colspan="2">SNDGA</th> <th align="center" colspan="2">TDHC</th> </tr> <tr> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> <th align="center">最好(%)</th> <th align="center">平均(%)</th> </tr> </thead> <tbody> <tr> <td align="left">浏览器</td><td一个lign="center"> <bold> 73年</bold></td> <td align="center">57</td><td一个lign="center">40</td><td一个lign="center">37</td><td一个lign="center">71年</td><td一个lign="center"> <bold> 67年</bold></td> <td align="center">13</td><td一个lign="center">9</td><td一个lign="center">41</td><td一个lign="center">30.</td><td一个lign="center">41</td><td一个lign="center">39</td><td一个lign="center">65年</td><td一个lign="center">59</td><td一个lign="center">71年</td><td一个lign="center">65年</td><td一个lign="center">18</td><td一个lign="center">18</td><td一个lign="center">55</td><td一个lign="center">44</td><td一个lign="center">66年</td><td一个lign="center">52</td></tr> <tr> <td align="left">Dom</td><td一个lign="center">45</td><td一个lign="center">40</td><td一个lign="center">32</td><td一个lign="center">30.</td><td一个lign="center">40</td><td一个lign="center">38</td><td一个lign="center">3</td><td一个lign="center">3</td><td一个lign="center">31日</td><td一个lign="center">24</td><td一个lign="center">34</td><td一个lign="center">31日</td><td一个lign="center">45</td><td一个lign="center">36</td><td一个lign="center">48</td><td一个lign="center">41</td><td一个lign="center">56</td><td一个lign="center">56</td><td一个lign="center"> <bold> 69年</bold></td> <td align="center"> <bold> 65年</bold></td> <td align="center">54</td><td一个lign="center">38</td></tr> <tr> <td align="left">可访问的</td><td一个lign="center">27</td><td一个lign="center">21</td><td一个lign="center">24</td><td一个lign="center">20.</td><td一个lign="center">36</td><td一个lign="center">32</td><td一个lign="center">6</td><td一个lign="center">4</td><td一个lign="center">18</td><td一个lign="center">15</td><td一个lign="center">41</td><td一个lign="center">39</td><td一个lign="center">32</td><td一个lign="center">22</td><td一个lign="center">32</td><td一个lign="center">28</td><td一个lign="center">26</td><td一个lign="center">26</td><td一个lign="center">45</td><td一个lign="center">40</td><td一个lign="center"> <bold> 51</bold></td> <td align="center"> <bold> 41</bold></td> </tr> <tr> <td align="left">扩展</td><td一个lign="center">30.</td><td一个lign="center">28</td><td一个lign="center">34</td><td一个lign="center">25</td><td一个lign="center">35</td><td一个lign="center">28</td><td一个lign="center">5</td><td一个lign="center">4</td><td一个lign="center">15</td><td一个lign="center">12</td><td一个lign="center">24</td><td一个lign="center">23</td><td一个lign="center">23</td><td一个lign="center">19</td><td一个lign="center">28</td><td一个lign="center">24</td><td一个lign="center"> <bold> 81年</bold></td> <td align="center"> <bold> 81年</bold></td> <td align="center">41</td><td一个lign="center">38</td><td一个lign="center">46</td><td一个lign="center">35</td></tr> <tr> <td align="left">Gfx</td><td一个lign="center">33</td><td一个lign="center">29日</td><td一个lign="center">37</td><td一个lign="center">29日</td><td一个lign="center"> <bold> 63年</bold></td> <td align="center">41</td><td一个lign="center">18</td><td一个lign="center">2</td><td一个lign="center">24</td><td一个lign="center">20.</td><td一个lign="center">35</td><td一个lign="center">30.</td><td一个lign="center">26</td><td一个lign="center">23</td><td一个lign="center">33</td><td一个lign="center">27</td><td一个lign="center">35</td><td一个lign="center">35</td><td一个lign="center">60</td><td一个lign="center"> <bold> 51</bold></td> <td align="center">62年</td><td一个lign="center"> <bold> 51</bold></td> </tr> <tr> <td align="left">Ipc</td><td一个lign="center">51</td><td一个lign="center">39</td><td一个lign="center">37</td><td一个lign="center">37</td><td一个lign="center">37</td><td一个lign="center">37</td><td一个lign="center">0.83</td><td一个lign="center">0.84</td><td一个lign="center">58</td><td一个lign="center">39</td><td一个lign="center">60</td><td一个lign="center">45</td><td一个lign="center">55</td><td一个lign="center">48</td><td一个lign="center">61年</td><td一个lign="center">55</td><td一个lign="center">12</td><td一个lign="center">12</td><td一个lign="center">64年</td><td一个lign="center">54</td><td一个lign="center"> <bold> 65年</bold></td> <td align="center"> <bold> 61年</bold></td> </tr> <tr> <td align="left">Intl</td><td一个lign="center">56</td><td一个lign="center">44</td><td一个lign="center">24</td><td一个lign="center">24</td><td一个lign="center">59</td><td一个lign="center">57</td><td一个lign="center">1</td><td一个lign="center">0.87</td><td一个lign="center">30.</td><td一个lign="center">24</td><td一个lign="center">73年</td><td一个lign="center">66年</td><td一个lign="center">51</td><td一个lign="center">43</td><td一个lign="center">52</td><td一个lign="center">44</td><td一个lign="center"> <bold> 96年</bold></td> <td align="center"> <bold> 96年</bold></td> <td align="center">37</td><td一个lign="center">33</td><td一个lign="center">77年</td><td一个lign="center">59</td></tr> <tr> <td align="left" colspan="23"> <hr></td> </tr> <tr> <td align="left">Mini-Tunis</td><td一个lign="center">76年</td><td一个lign="center">70年</td><td一个lign="center">77年</td><td一个lign="center">74年</td><td一个lign="center">76年</td><td一个lign="center"> <bold> 75年</bold></td> <td align="center">57</td><td一个lign="center">48</td><td一个lign="center">74年</td><td一个lign="center">66年</td><td一个lign="center">64年</td><td一个lign="center">57</td><td一个lign="center">69年</td><td一个lign="center">62年</td><td一个lign="center">76年</td><td一个lign="center">74年</td><td一个lign="center">51</td><td一个lign="center">51</td><td一个lign="center">70年</td><td一个lign="center">53</td><td一个lign="center"> <bold> 81年</bold></td> <td align="center">60</td></tr> <tr> <td align="left">JUnit 4</td><td一个lign="center">54</td><td一个lign="center">49</td><td一个lign="center">54</td><td一个lign="center">51</td><td一个lign="center">54</td><td一个lign="center">49</td><td一个lign="center">38</td><td一个lign="center">34</td><td一个lign="center">41</td><td一个lign="center">31日</td><td一个lign="center">46</td><td一个lign="center">40</td><td一个lign="center">47</td><td一个lign="center">41</td><td一个lign="center">57</td><td一个lign="center"> <bold> 55</bold></td> <td align="center">51</td><td一个lign="center">51</td><td一个lign="center"> <bold> 58</bold></td> <td align="center">50</td><td一个lign="center">39</td><td一个lign="center">36</td></tr> <tr> <td align="left">servlet api</td><td一个lign="center">59</td><td一个lign="center">55</td><td一个lign="center">62年</td><td一个lign="center">59</td><td一个lign="center"> <bold> 79年</bold></td> <td align="center">74年</td><td一个lign="center">49</td><td一个lign="center">43</td><td一个lign="center">44</td><td一个lign="center">35</td><td一个lign="center">53</td><td一个lign="center">45</td><td一个lign="center">49</td><td一个lign="center">44</td><td一个lign="center">61年</td><td一个lign="center">58</td><td一个lign="center">58</td><td一个lign="center">58</td><td一个lign="center">59</td><td一个lign="center">54</td><td一个lign="center">71年</td><td一个lign="center"> <bold> 83年</bold></td> </tr> <tr> <td align="left">简单的模拟</td><td一个lign="center">54</td><td一个lign="center">48</td><td一个lign="center"> <bold> 72年</bold></td> <td align="center"> <bold> 67年</bold></td> <td align="center">69年</td><td一个lign="center">62年</td><td一个lign="center">44</td><td一个lign="center">36</td><td一个lign="center">36</td><td一个lign="center">29日</td><td一个lign="center">54</td><td一个lign="center">47</td><td一个lign="center">51</td><td一个lign="center">43</td><td一个lign="center">58</td><td一个lign="center">51</td><td一个lign="center">41</td><td一个lign="center">41</td><td一个lign="center">51</td><td一个lign="center">51</td><td一个lign="center">56</td><td一个lign="center">53</td></tr> <tr> <td align="left">计算器</td><td一个lign="center">40</td><td一个lign="center">35</td><td一个lign="center">44</td><td一个lign="center">39</td><td一个lign="center">46</td><td一个lign="center"> <bold> 40</bold></td> <td align="center">19</td><td一个lign="center">13</td><td一个lign="center">15</td><td一个lign="center">10</td><td一个lign="center">37</td><td一个lign="center">31日</td><td一个lign="center">26</td><td一个lign="center">23</td><td一个lign="center"> <bold> 47</bold></td> <td align="center">38</td><td一个lign="center">29日</td><td一个lign="center">29日</td><td一个lign="center">46</td><td一个lign="center"> <bold> 40</bold></td> <td align="center">24</td><td一个lign="center">21</td></tr> </tbody> </table> </table-wrap> <p>在表<xref ref-type="table" rid="tab6"> 6</xref>,TDHC更好的性能在大多数情况下,“dom”和“Intl”文件夹交直流算法具有更好的效果最好,平均,分别。表<xref ref-type="table" rid="tab7"> 7</xref>表明,在精度方面,MCA和交直流最佳性能与其他算法。在表<xref ref-type="table" rid="tab8"> 8</xref>,比较了算法召回TDHC已经在大多数情况下更好的性能。在表<xref ref-type="table" rid="tab9"> 9</xref>,F-measure TDHC和SNDGA执行几乎相同。</p><p>从表<xref ref-type="table" rid="tab6"> 6</xref>- - - - - -<xref ref-type="table" rid="tab9"> 9</xref>,我们得出这样的结论:DAGC ECA, Bunch-SAHC GHA, GA-SMCP,与其他算法相比,系统提供了一种极低精度/召回,F-measure, MoJoFM。相反,如果我们忽略的精度标准,显然TDHC似乎是最好的算法,总是在顶部。爆炸品处理,它常常与交直流竞争和SNDGA有时明显优于TDHC。</p><p>具体和直接比较的结果TDHC对其他算法的悬崖,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M127"> <mml:mi> δ</米米l:mi> </mml:math> </inline-formula>计算的结果表示在表吗<xref ref-type="table" rid="tab10"> 10</xref>。悬崖上的<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M128"> <mml:mi> δ</米米l:mi> </mml:math> </inline-formula>是一种非参数影响大小的量化指标观察两组之间的差异(这里TDHC对其他测试算法)。这个度量的结果是在范围−1比1,和更高的价值表明第一组的结果(在这里,TDHC)通常比第二组(其他算法)。解释,如(<xref ref-type="bibr" rid="B10"> 10</xref>),使用下面的大小:可以忽略不计(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M129"> <mml:mi> δ</米米l:mi> <mml:mo> <</米米l:mo> <mml:mn> 0.147</米米l:mn> </mml:math> </inline-formula>)、小(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M130"> <mml:mi> δ</米米l:mi> <mml:mo> <</米米l:mo> <mml:mn> 0.33</米米l:mn> </mml:math> </inline-formula>)、中(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M131"> <mml:mi> δ</米米l:mi> <mml:mo> <</米米l:mo> <mml:mn> 0.474</米米l:mn> </mml:math> </inline-formula>),大(<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M132"> <mml:mn> 0.474</米米l:mn> <mml:mo> ≥</米米l:mo> <mml:mi> δ</米米l:mi> </mml:math> </inline-formula>)。MoJoFM的结果表明,该值,精度,召回,F-measure TDHC输出比其他算法。</p><t一个ble-wrap id="tab10"> <label>表10</label> <p>悬崖上的<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M133"> <mml:mi> δ</米米l:mi> </mml:math> </inline-formula>。</p><t一个ble> <thead> <tr> <th align="left" rowspan="2">指标名称</th> <th align="center" colspan="2">群</th> <th align="center" colspan="2">ECA</th> <th align="center" colspan="2">MCA</th> <th align="center" colspan="2">DAGC</th> <th align="center" colspan="2">Bunch-SAHC</th> <th align="center" colspan="2">SGA</th> <th align="center" colspan="2">GA-SMCP</th> <th align="center" colspan="2">爆炸品处理</th> <th align="center" colspan="2">交直流</th> <th align="center" colspan="2">SNDGA</th> </tr> <tr> <th align="center">最好的</th> <th align="center">平均</th> <th align="center">最好的</th> <th align="center">平均</th> <th align="center">最好的</th> <th align="center">平均</th> <th align="center">最好的</th> <th align="center">平均</th> <th align="center">最好的</th> <th align="center">平均</th> <th align="center">最好的</th> <th align="center">平均</th> <th align="center">最好的</th> <th align="center">平均</th> <th align="center">最好的</th> <th align="center">平均</th> <th align="center">最好的</th> <th align="center">平均</th> <th align="center">最好的</th> <th align="center">平均</th> </tr> </thead> <tbody> <tr> <td align="left">MoJoFM</td><td一个lign="center">0.57</td><td一个lign="center">0.37</td><td一个lign="center">0.60</td><td一个lign="center">0.43</td><td一个lign="center">0.56</td><td一个lign="center">0.39</td><td一个lign="center">0.93</td><td一个lign="center">0.90</td><td一个lign="center">0.76</td><td一个lign="center">0.60</td><td一个lign="center">0.78</td><td一个lign="center">0.60</td><td一个lign="center">0.76</td><td一个lign="center">0.56</td><td一个lign="center">0.60</td><td一个lign="center">0.45</td><td一个lign="center">0.50</td><td一个lign="center">0.27</td><td一个lign="center">0.39</td><td一个lign="center">0.22</td></tr> <tr> <td align="left">精度</td><td一个lign="center">0.22</td><td一个lign="center">0.26</td><td一个lign="center">0.42</td><td一个lign="center">0.31</td><td一个lign="center">−0.01</td><td一个lign="center">−0.24</td><td一个lign="center">0.51</td><td一个lign="center">0.53</td><td一个lign="center">0.44</td><td一个lign="center">0.41</td><td一个lign="center">0.51</td><td一个lign="center">0.29</td><td一个lign="center">0.24</td><td一个lign="center">0.20</td><td一个lign="center">0.07</td><td一个lign="center">−0.02</td><td一个lign="center">−0.14</td><td一个lign="center">−0.26</td><td一个lign="center">0.19</td><td一个lign="center">0.12</td></tr> <tr> <td align="left">回忆</td><td一个lign="center">0.28</td><td一个lign="center">0.41</td><td一个lign="center">0.22</td><td一个lign="center">0.43</td><td一个lign="center">0.21</td><td一个lign="center">0.36</td><td一个lign="center">0.51</td><td一个lign="center">0.72</td><td一个lign="center">0.60</td><td一个lign="center">0.74</td><td一个lign="center">0.49</td><td一个lign="center">0.69</td><td一个lign="center">0.51</td><td一个lign="center">0.69</td><td一个lign="center">0.20</td><td一个lign="center">0.35</td><td一个lign="center">0.27</td><td一个lign="center">0.35</td><td一个lign="center">0.17</td><td一个lign="center">0.17</td></tr> <tr> <td align="left"> <italic> F</我t一个lic>测量</td><td一个lign="center">0.29</td><td一个lign="center">0.25</td><td一个lign="center">0.44</td><td一个lign="center">0.31</td><td一个lign="center">0.10</td><td一个lign="center">−0.03</td><td一个lign="center">0.69</td><td一个lign="center">0.52</td><td一个lign="center">0.65</td><td一个lign="center">0.70</td><td一个lign="center">0.67</td><td一个lign="center">0.42</td><td一个lign="center">0.45</td><td一个lign="center">0.31</td><td一个lign="center">0.22</td><td一个lign="center">0.06</td><td一个lign="center">0.35</td><td一个lign="center">0.19</td><td一个lign="center">0.18</td><td一个lign="center">0.05</td></tr> </tbody> </table> </table-wrap> <p>除了上面的实验中,我们使用指标比较测试算法的性能考虑所有标准用于实验。表<xref ref-type="table" rid="tab11"> 11</xref>展示了模块化质量TDHC比其他测试算法在大多数情况下与一个可接受的区别。这些数字在表<xref ref-type="table" rid="tab11"> 11</xref>显示算法的优越性。邻近的生产数据表明该算法,在这种情况下,表现比其他大多数实验和标准。</p><t一个ble-wrap id="tab11"> <label>表11</label> <p>多准则决策比较算法。</p><t一个ble> <thead> <tr> <th align="left"></th> <th align="center">浏览器</th> <th align="center">Dom</th> <th align="center">可访问的</th> <th align="center">扩展</th> <th align="center">Gfx</th> <th align="center">Ipc</th> <th align="center">Intl</th> <th align="center">Mini-Tunis</th> <th align="center">JUnit 4</th> <th align="center">servlet api</th> <th align="center">简单的模拟</th> <th align="center">计算器</th> </tr> </thead> <tbody> <tr> <td align="left">Bunch-GA</td><td一个lign="center">0.0334</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0.2521</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0.438</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td></tr> <tr> <td align="left">ECA</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0.723</td><td一个lign="center">0.01</td></tr> <tr> <td align="left">MCA</td><td一个lign="center">0.8641</td><td一个lign="center">0</td><td一个lign="center">0.1953</td><td一个lign="center">0</td><td一个lign="center">0.294</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0.03</td><td一个lign="center">0</td><td一个lign="center">0.0113</td><td一个lign="center">0</td><td一个lign="center">0.01</td></tr> <tr> <td align="left">DAGC</td><td一个lign="center">0.0481</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td></tr> <tr> <td align="left">Bunch-SAHC</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td></tr> <tr> <td align="left">SGA</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td></tr> <tr> <td align="left">GA-SMCP</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td></tr> <tr> <td align="left">爆炸品处理</td><td一个lign="center">0.0334</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0.331</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0.50</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0.1</td></tr> <tr> <td align="left">交直流</td><td一个lign="center">0</td><td一个lign="center">0.826</td><td一个lign="center">0</td><td一个lign="center">0.661</td><td一个lign="center">0</td><td一个lign="center">0.010</td><td一个lign="center">1</td><td一个lign="center">0.327</td><td一个lign="center">0</td><td一个lign="center">0.190</td><td一个lign="center">0</td><td一个lign="center">0</td></tr> <tr> <td align="left">SNDGA</td><td一个lign="center">0</td><td一个lign="center">0.731</td><td一个lign="center">0.15</td><td一个lign="center">0</td><td一个lign="center">0.498</td><td一个lign="center">0.81</td><td一个lign="center">0</td><td一个lign="center">0.041</td><td一个lign="center">0.552</td><td一个lign="center">0</td><td一个lign="center">0</td><td一个lign="center">0.127</td></tr> <tr> <td align="left">TDHC</td><td一个lign="center">0.5210</td><td一个lign="center">0.125</td><td一个lign="center">1</td><td一个lign="center">0.431</td><td一个lign="center">0.391</td><td一个lign="center">0.81</td><td一个lign="center">0</td><td一个lign="center">0.985</td><td一个lign="center">0</td><td一个lign="center">0.691</td><td一个lign="center">0.821</td><td一个lign="center">0.802</td></tr> </tbody> </table> </table-wrap> <p>RQ2回答研究问题,遗传算法是一种随机优化器,每次运行的成果可能不同。通过几个独立的算法运行结果预计将接近对方。因此,回答RQ2,该算法执行30倍为每种情况和分析结果的稳定性<我t一个lic> t</我t一个lic>以及统计技术。应用<我t一个lic> t</我t一个lic>以及,结果分为两组相同的大小,G1和G2,然后从中提取一些描述性和推论统计。根据(<xref ref-type="bibr" rid="B70"> 70年</xref>),拥有30行数据是足够假设分布是正常的。这是一个关键的条件下使用<我t一个lic> t</我t一个lic>以及分析。但我们也利用魏克森讯号等级测试(<xref ref-type="bibr" rid="B71"> 71年</xref>)作为一种非参数统计假设检验检查结果的稳定性没有考虑在正态分布。</p><p>结果在表表示<xref ref-type="table" rid="tab12"> 12</xref>。一分之三列显示的平均值,标准差,以及两组均值之间的标准误差,分别为描述性统计。这两个表的最后一列显示推论统计的输出。列文的测试是评估差异的平等的推论统计为一个变量计算两组。如果<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M134"> <mml:mi> p</米米l:mi> </mml:math> </inline-formula>值(sig,表中的列)大于一些显著性水平在我们的测试(0.05),平等的方差的零假设不能被拒绝。这也适用于魏克森讯号等级测试。两列的表<xref ref-type="table" rid="tab12"> 12</xref>指的是独立的两个示例的结果<我t一个lic> t</我t一个lic>以及以同样的样本大小和等于方差(根据列文的测试结果)在两个随机分离组TDHC结果,和最后两行魏克森讯号等级测试的结果如果数据不是正态分布。所有的<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M135"> <mml:mi> p</米米l:mi> </mml:math> </inline-formula>值大于0.05,这表明我们不能拒绝零假设的意思。因此,不同测试的结果收敛于一个可接受的范围内。</p><t一个ble-wrap id="tab12"> <label>表12</label> <p> <italic> t</我t一个lic>以及实验。</p><t一个ble> <thead> <tr> <th align="left" rowspan="3">案例研究</th> <th align="center" colspan="6">描述性统计</th> <th align="center" colspan="6">推论统计</th> </tr> <tr> <th align="center" colspan="2">的意思是</th> <th align="center" colspan="2">标准偏差</th> <th align="center" colspan="2">均值之间的标准误差</th> <th align="center" colspan="2">列文的测试</th> <th align="center" colspan="2"> <italic> t</我t一个lic>以及</th> <th align="center" colspan="2">魏克森讯号等级测试</th> </tr> <tr> <th align="center">G1</th> <th align="center">G2</th> <th align="center">G1</th> <th align="center">G2</th> <th align="center">G1</th> <th align="center">G2</th> <th align="center">F</th> <th align="center">团体。</th> <th align="center">T</th> <th align="center">团体。</th> <th align="center">Z</th> <th align="center">团体。</th> </tr> </thead> <tbody> <tr> <td align="left">火狐浏览器</td><td一个lign="center">1.4714</td><td一个lign="center">1.5572</td><td一个lign="center">0.337</td><td一个lign="center">0.246</td><td一个lign="center">0.1472</td><td一个lign="center">0.1003</td><td一个lign="center">1.5044</td><td一个lign="center">0.2550</td><td一个lign="center">0.4702</td><td一个lign="center">0.651</td><td一个lign="center">−0.73</td><td一个lign="center">0.465</td></tr> <tr> <td align="left">Firefox-dom</td><td一个lign="center">0.573</td><td一个lign="center">0.614</td><td一个lign="center">0.247</td><td一个lign="center">0.306</td><td一个lign="center">0.1175</td><td一个lign="center">0.1370</td><td一个lign="center">0.035</td><td一个lign="center">0.8571</td><td一个lign="center">0.281</td><td一个lign="center">0.8135</td><td一个lign="center">−1.753</td><td一个lign="center">0.08</td></tr> <tr> <td align="left">Firefox-accessible</td><td一个lign="center">0.5228</td><td一个lign="center">0.5942</td><td一个lign="center">0.1275</td><td一个lign="center">0.1285</td><td一个lign="center">0.5702</td><td一个lign="center">0.0574</td><td一个lign="center">0.013</td><td一个lign="center">0.9670</td><td一个lign="center">0.882</td><td一个lign="center">0.4036</td><td一个lign="center">−1.483</td><td一个lign="center">0.138</td></tr> <tr> <td align="left">firefox扩展</td><td一个lign="center">0.553</td><td一个lign="center">0.636</td><td一个lign="center">0.212</td><td一个lign="center">0.2391</td><td一个lign="center">0.0.096</td><td一个lign="center">0.103</td><td一个lign="center">0.268</td><td一个lign="center">0.6109</td><td一个lign="center">0.527</td><td一个lign="center">0.530</td><td一个lign="center">−0.674</td><td一个lign="center">0.5</td></tr> <tr> <td align="left">Firefox-gfx</td><td一个lign="center">0.3344</td><td一个lign="center">0.2688</td><td一个lign="center">0.1468</td><td一个lign="center">0.1254</td><td一个lign="center">0.06456</td><td一个lign="center">0.05611</td><td一个lign="center">0.054</td><td一个lign="center">0.823</td><td一个lign="center">0.760</td><td一个lign="center">0.469</td><td一个lign="center">−1.461</td><td一个lign="center">0.144</td></tr> <tr> <td align="left">Firefox-ipc</td><td一个lign="center">1.306</td><td一个lign="center">1.462</td><td一个lign="center">0.4081</td><td一个lign="center">0.436</td><td一个lign="center">0.179</td><td一个lign="center">0.195</td><td一个lign="center">0.348</td><td一个lign="center">0.572</td><td一个lign="center">0.521</td><td一个lign="center">0.5617</td><td一个lign="center">−0.135</td><td一个lign="center">0.893</td></tr> <tr> <td align="left">Firefox-intl</td><td一个lign="center">0.347</td><td一个lign="center">0.319</td><td一个lign="center">0.364</td><td一个lign="center">0.1272</td><td一个lign="center">0.1628</td><td一个lign="center">0.0422</td><td一个lign="center">3.847</td><td一个lign="center">0.085</td><td一个lign="center">0.465</td><td一个lign="center">0.654</td><td一个lign="center">−1.084</td><td一个lign="center">0.279</td></tr> <tr> <td align="left">Mini-Tunis</td><td一个lign="center">0.9726</td><td一个lign="center">1.0157</td><td一个lign="center">0.14256</td><td一个lign="center">0.14043</td><td一个lign="center">0.06376</td><td一个lign="center">0.06280</td><td一个lign="center">0.0181</td><td一个lign="center">0.014</td><td一个lign="center">0.674</td><td一个lign="center">0.643</td><td一个lign="center">−0.135</td><td一个lign="center">0.893</td></tr> <tr> <td align="left">JUnit 4</td><td一个lign="center">0.7950</td><td一个lign="center">0.7923</td><td一个lign="center">0.00759</td><td一个lign="center">0.01831</td><td一个lign="center">0.00339</td><td一个lign="center">0.00819</td><td一个lign="center">0.4701</td><td一个lign="center">0.2481</td><td一个lign="center">0.496</td><td一个lign="center">0.770</td><td一个lign="center">−1.069</td><td一个lign="center">0.285</td></tr> <tr> <td align="left">servlet api</td><td一个lign="center">2.5234</td><td一个lign="center">2.5134</td><td一个lign="center">0.05345</td><td一个lign="center">0.5871</td><td一个lign="center">0.02390</td><td一个lign="center">0.02626</td><td一个lign="center">1.007</td><td一个lign="center">0.3277</td><td一个lign="center">0.690</td><td一个lign="center">0.785</td><td一个lign="center">−0.73</td><td一个lign="center">0.465</td></tr> <tr> <td align="left">简单的模拟</td><td一个lign="center">1.9572</td><td一个lign="center">2.0360</td><td一个lign="center">0.29716</td><td一个lign="center">0.24379</td><td一个lign="center">0.13289</td><td一个lign="center">0.10903</td><td一个lign="center">0.745</td><td一个lign="center">0.127</td><td一个lign="center">0.953</td><td一个lign="center">0.659</td><td一个lign="center">−0.405</td><td一个lign="center">0.686</td></tr> <tr> <td align="left">计算器</td><td一个lign="center">2.3094</td><td一个lign="center">2.3210</td><td一个lign="center">0.16658</td><td一个lign="center">0.29373</td><td一个lign="center">0.07449</td><td一个lign="center">0.13136</td><td一个lign="center">0.814</td><td一个lign="center">0.378</td><td一个lign="center">0.182</td><td一个lign="center">0.941</td><td一个lign="center">−0.405</td><td一个lign="center">0.686</td></tr> </tbody> </table> </table-wrap> <table-wrap id="tab13"> <label>表13</label> <p>Mini-Tunis细节。</p><t一个ble> <thead> <tr> <th align="left">代码</th> <th align="center">的名字</th> <th align="center">模块</th> <th align="center">代码</th> <th align="center">的名字</th> <th align="center">模块</th> </tr> </thead> <tbody> <tr> <td align="left">20.</td><td一个lign="center">主要</td><td一个lign="center">5</td><td一个lign="center">7</td><td一个lign="center">文件</td><td一个lign="center">6</td></tr> <tr> <td align="left">19</td><td一个lign="center">用户</td><td一个lign="center">5</td><td一个lign="center">9</td><td一个lign="center">文件表</td><td一个lign="center">6</td></tr> <tr> <td align="left">16</td><td一个lign="center">状态</td><td一个lign="center">5</td><td一个lign="center">4</td><td一个lign="center">目录</td><td一个lign="center">6</td></tr> <tr> <td align="left">2</td><td一个lign="center">控制</td><td一个lign="center">5</td><td一个lign="center">1</td><td一个lign="center">电脑</td><td一个lign="center">3</td></tr> <tr> <td align="left">6</td><td一个lign="center">家庭</td><td一个lign="center">5</td><td一个lign="center">14</td><td一个lign="center">内存</td><td一个lign="center">3</td></tr> <tr> <td align="left">8</td><td一个lign="center">FileIO</td><td一个lign="center">4</td><td一个lign="center">17</td><td一个lign="center">系统</td><td一个lign="center">1</td></tr> <tr> <td align="left">11</td><td一个lign="center">索引节点</td><td一个lign="center">4</td><td一个lign="center">15</td><td一个lign="center">恐慌</td><td一个lign="center">1</td></tr> <tr> <td align="left">12</td><td一个lign="center">INodeGlobals</td><td一个lign="center">4</td><td一个lign="center">5</td><td一个lign="center">磁盘</td><td一个lign="center">2</td></tr> <tr> <td align="left">13</td><td一个lign="center">INodeTable</td><td一个lign="center">4</td><td一个lign="center">18</td><td一个lign="center">Tty</td><td一个lign="center">2</td></tr> <tr> <td align="left">10</td><td一个lign="center">FreeINode</td><td一个lign="center">4</td><td一个lign="center">3</td><td一个lign="center">设备</td><td一个lign="center">2</td></tr> </tbody> </table> </table-wrap> <p>回答的研究问题RQ3,输出的TDHC Mini-Tunis调查。Mini-Tunis (mtunis)是一种学术操作系统与图20工件编号从1到20<xref ref-type="fig" rid="fig12"> 12</xref>。每个工件是一个文件,所有的工件相同数量的括号在同一个模块(<xref ref-type="bibr" rid="B5"> 5</xref>]。根据图,构件数量15和17只被称为预处理的其他构件,可以丢弃。图<xref ref-type="fig" rid="fig13"> 13</xref>显示了18岁的树算法产生的剩余工件,和图<xref ref-type="fig" rid="fig14"> 14</xref>在平面视图代表其相应的层次模块化。括号中为每个工件之间的数字模块数量的模块化专家。显示在这个图,提出了一种新的安排模块的构件模块化数字3和5的专家,但他们在上层。工件数量15和17与这些模块的几个关系。所以他们被确定为一个新模块的工件工具库。这两个构件是在模块化专家在一个单独的模块。</p><fig id="fig12"> <label>图12</label> <p>调用依赖图Mini-Tunis基于其设计文档(<xref ref-type="bibr" rid="B5"> 5</xref>]。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.0012"></graphic> </fig> <fig id="fig13"> <label>图13</label> <p>树视图。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.0013"></graphic> </fig> <fig id="fig14"> <label>图14</label> <p>平的观点。</p><graphic xlink:href="//www.newsama.com/downloads/journals/complexity/2020/1794947.fig.0014"></graphic> </fig> <p>这种方法的最重要的优势是,它可以执行指定封装水平很好,例如,模块,包,由设计师和组件。</p></sec> <sec id="sec6"> <title>6。威胁的有效性</t我tle> <p>在本节中,澄清TDHC的有效性,算法的限制,这些限制会影响结果进行了讨论。有几个因素可能偏见的有效性研究。这些通常分为两类:内部和外部有效性。外部效度的结果推广到其他的能力比使用案例研究或漠不关心的设置:<list> <list-item> <label>(1)</label> </list-item> </list></p> <p>算法的输入是一个ADG提取源代码,和内聚和耦合被认为是作为重构的一个指标。烛光等人在<xref ref-type="bibr" rid="B1"> 1</xref>]讨论了内聚和耦合不足以remodularization源代码,和更多的指标可能是必要的。然而,他们在工作中没有讨论其他指标可以提高模块化的质量。</p><list-item> <label>(2)</label> <p>在源代码remodularization搜索技术,推广技术,任何软件结果的有效性是一个重要的威胁。摘要,Mozilla Firefox作为一个大型软件系统选择与五个中型其他开源系统。重要的是要注意,只有一些软件系统超过Mozilla Firefox工件(文件)在一个文件夹。</p></list-item> <p></p> <p>内部效度关心的是实验治疗影响算法的结果,导致糟糕的结果:<list> <list-item> <label>(1)</label> </list-item> </list></p> <p>本文精确,记得,F-measure, MoJoFM指标用于比较研究结果与当前模块化算法。这些指标并不一定符合开发人员专家的意见。同时,这些指标并不评估树的结构,并没有人考虑边缘构件之间在计算相似度。</p><list-item> <label>(2)</label> <p>TDHC的预处理步骤,一些工件可能被选中设置除了输入树的生成步骤。最后,重要的是要建议一个适当的位置在模块或聚合作为一个新的模块。</p></list-item> <list-item> <label>(3)</label> <p>相关的交叉和变异算子中使用遗传算法实现从几个实验Mini-Tunis, JUnit和servlet api软件系统,并应用于其他案例研究。然而,这些数字可能不适合其他软件系统。</p></list-item> <list-item> <label>(4)</label> <p>在该算法中,标签的内部节点不重要和Prufer序列生成相同的模块化为不同的代码。例如,<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M136"> <mml:mn> 5、5、6、6、7</米米l:mn> </mml:math> </inline-formula>和<我nline-formula> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML" id="M137"> <mml:mn> 6、6、5、5、7</米米l:mn> </mml:math> </inline-formula>都表示相同的模块化。相反,社区的概念在这个编码是不透明的,和小数量的变化位置做一个伟大的改变输出树的结构。</p></list-item> <p></p> </sec> <sec id="sec7"> <title>7所示。结论和未来的工作</t我tle> <p>在软件维护和演化,软件的结构偏离原来的结构。因此,代码重构软件维护过程中是一个重要的角色。在本文中,一种新的聚类算法基础上提出了凝聚力和工件之间的耦合。在这种方法中,自上而下分层的方法被用于metaheuristic算法结合遗传算法和爬山。在该算法中,一个合适的点开始模块化的构件为开发人员建议。算法的输入是ADG,它独立于编程语言的源代码。然而,它给人好感的操作可能取决于源代码的编程语言或输入工件的类型(类、文件、函数或底层模块)。因为该重构方法是自动的,它应该作为助理给开发人员。设计决策往往是更为复杂和微妙的不仅仅是试图最大化凝聚力和最小化耦合模块化过程中。结果,推导分析了模块化的软件开发人员可以接受或者改变它的提议remodularization把工件从一个模块(包)到另一个。 The following is suggested for future works:<list> <list-item> <label>(1)</label> </list-item> </list></p> <p>越来越多的工件质量的影响提出的最优解的算法。这是因为指数增长的通过增加输入搜索空间的大小。所以重要的是要提高算法的因素。</p><list-item> <label>(2)</label> <p>根据搜索空间的大小在软件源代码,可以提供一种新的预处理方法来减少搜索空间。例如,在软件源代码的重构中,有一个模块化作为当前开发人员建议,和工件在一个模块通常该模块上相互紧密接触,只有些是在与其他模块的关系。因此,他们可以忽略在计算模块之间的关系。</p></list-item> <list-item> <label>(3)</label> <p>许多研究使用结构化或nonstructured功能重构的源代码,可以使用自顶向下的搜索算法。</p></list-item> <list-item> <label>(4)</label> <p>其他启发式或metaheuristic代替GA算法可以使用。</p></list-item> <p></p> </sec> <back> <sec sec-type="data-availability"> <title>数据可用性</t我tle> <p>使用的数据来支持本研究的发现是可用的<ext-link ext-link-type="uri" xlink:href="https://github.com/SoftwareMaintenanceLab"> https://github.com/SoftwareMaintenanceLab</ext-link>。</p></sec> <sec sec-type="COI-statement"> <title>的利益冲突</t我tle> <p>作者宣称没有利益冲突。</p></sec> <ref-list> <ref id="B1" content-type="article"> <label>1</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 烛光</surname> <given-names> 我。</given-names> </name> <name> <surname> Bavota</surname> <given-names> G。</given-names> </name> <name> <surname> Russo</surname> <given-names> B。</given-names> </name> <name> <surname> Oliveto</surname> <given-names> R。</given-names> </name> </person-group> <article-title> 使用软件remodularization内聚和耦合</一个rticle-title> <source> <italic> ACM交易软件工程和方法论</我t一个lic> <year> 2016年</year> <volume> 25</volume> <issue> 3</我ssue> <fpage> 1</fpage> <pub-id pub-id-type="doi"> 10.1145 / 2928268</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84978101496</pub-id> </element-citation> </ref> <ref id="B2" content-type="article"> <label>2</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 德保罗Sobrinho</surname> <given-names> e . V。</given-names> </name> <name> <surname> 德卢西亚</surname> <given-names> 一个。</given-names> </name> <name> <surname> de Almeida玛雅</surname> <given-names> M。</given-names> </name> </person-group> <article-title> 系统文献综述坏smells-5 w:,,,,,</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2018年</year> <volume> 2</volume> </element-citation> </ref> <ref id="B3" content-type="misc"> <label>3</label> <element-citation publication-type="other"> <person-group person-group-type="author"> <name> <surname> 福勒</surname> <given-names> M。</given-names> </name> <name> <surname> 贝克</surname> <given-names> K。</given-names> </name> <name> <surname> 黑雁</surname> <given-names> J。</given-names> </name> <name> <surname> Opdyke</surname> <given-names> W。</given-names> </name> <name> <surname> 罗伯茨</surname> <given-names> D。</given-names> </name> </person-group> <article-title> 重构:改善现有程序的设计</一个rticle-title> <year> 1999年</year> </element-citation> </ref> <ref id="B4" content-type="book"> <label>4</label> <element-citation publication-type="book"> <person-group person-group-type="author"> <name> <surname> Isazadeh</surname> <given-names> 一个。</given-names> </name> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> <name> <surname> Elgedawy</surname> <given-names> 我。</given-names> </name> </person-group> <source> <italic> 源代码模块化:理论和技术</我t一个lic> <year> 2017年</year> <publisher-loc> 柏林,德国</publisher-loc> <publisher-name> 施普林格</publisher-name> </element-citation> </ref> <ref id="B5" content-type="book"> <label>5</label> <element-citation publication-type="book"> <person-group person-group-type="author"> <name> <surname> 布莱恩</surname> <given-names> s M。</given-names> </name> </person-group> <source> <italic> 启发式搜索的方法来解决聚类问题的软件</我t一个lic> <year> 2002年</year> <publisher-loc> 纽约,纽约,美国</publisher-loc> <publisher-name> 德雷塞尔大学</publisher-name> </element-citation> </ref> <ref id="B6" content-type="book"> <label>6</label> <element-citation publication-type="book"> <person-group person-group-type="author"> <name> <surname> Pressman</surname> <given-names> r S。</given-names> </name> </person-group> <source> <italic> 软件工程:实践者的方法</我t一个lic> <year> 2005年</year> <publisher-loc> 柏林,德国</publisher-loc> <publisher-name> 帕尔格雷夫麦克米伦</publisher-name> </element-citation> </ref> <ref id="B7" content-type="article"> <label>7</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 米切尔</surname> <given-names> b S。</given-names> </name> <name> <surname> Mancoridis</surname> <given-names> 年代。</given-names> </name> </person-group> <article-title> 自动模块化的软件系统使用一些工具</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2006年</year> <volume> 32</volume> <issue> 3</我ssue> <fpage> 193年</fpage> <lpage> 208年</lpage> <pub-id pub-id-type="doi"> 10.1109 / tse.2006.31</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 33645833890</pub-id> </element-citation> </ref> <ref id="B8" content-type="article"> <label>8</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 拉里说道</surname> <given-names> n S。</given-names> </name> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> <name> <surname> Lotfi</surname> <given-names> 年代。</given-names> </name> </person-group> <article-title> 多目标搜索软件模块化:结构性和非结构性特征</一个rticle-title> <source> <italic> 软计算</我t一个lic> <year> 2019年</year> <volume> 23</volume> <issue> 21</我ssue> <fpage> 11141年</fpage> <lpage> 11165年</lpage> </element-citation> </ref> <ref id="B9" content-type="inproceedings"> <label>9</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> Lutellier</surname> <given-names> T。</given-names> </name> <name> <surname> Chollak</surname> <given-names> D。</given-names> </name> <name> <surname> 加西亚</surname> <given-names> J。</given-names> </name> <etal></etal> </person-group> <article-title> 使用准确的依赖性比较软件架构恢复技术</一个rticle-title> <conf-name> 学报2015年IEEE / ACM第37 IEEE软件工程国际会议</conf-name> <conf-date> 2015年</conf-date> <conf-loc> 柏林,德国</conf-loc> <publisher-name> IEEE</publisher-name> <fpage> 69年</fpage> <lpage> 78年</lpage> </element-citation> </ref> <ref id="B10" content-type="article"> <label>10</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Lutellier</surname> <given-names> T。</given-names> </name> <name> <surname> Chollak</surname> <given-names> D。</given-names> </name> <name> <surname> 加西亚</surname> <given-names> J。</given-names> </name> <etal></etal> </person-group> <article-title> 测量代码依赖于软件架构复苏技术的影响</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2017年</year> <volume> 44</volume> <issue> 2</我ssue> <fpage> 159年</fpage> <lpage> 181年</lpage> </element-citation> </ref> <ref id="B11" content-type="inproceedings"> <label>11</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 加西亚</surname> <given-names> J。</given-names> </name> <name> <surname> Ivkovic</surname> <given-names> 我。</given-names> </name> <name> <surname> Medvidovic</surname> <given-names> N。</given-names> </name> </person-group> <article-title> 软件架构恢复技术的比较分析</一个rticle-title> <conf-name> 学报2013年28日IEEE / ACM自动化软件工程国际会议(ASE)</conf-name> <conf-date> 2013年</conf-date> <conf-loc> 纽约,纽约,美国</conf-loc> <publisher-name> IEEE</publisher-name> <fpage> 486年</fpage> <lpage> 496年</lpage> </element-citation> </ref> <ref id="B12" content-type="article"> <label>12</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Praditwong</surname> <given-names> K。</given-names> </name> <name> <surname> 哈曼</surname> <given-names> M。</given-names> </name> <name> <surname> 姚</surname> <given-names> X。</given-names> </name> </person-group> <article-title> 软件模块集群作为多目标搜索问题</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2011年</year> <volume> 37</volume> <issue> 2</我ssue> <fpage> 264年</fpage> <lpage> 282年</lpage> <pub-id pub-id-type="doi"> 10.1109 / tse.2010.26</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 79953183586</pub-id> </element-citation> </ref> <ref id="B13" content-type="article"> <label>13</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Kohmoto</surname> <given-names> K。</given-names> </name> <name> <surname> 片山</surname> <given-names> K。</given-names> </name> <name> <surname> Narihisa</surname> <given-names> H。</given-names> </name> </person-group> <article-title> 遗传算法的性能图划分问题</一个rticle-title> <source> <italic> 数学和计算机模拟</我t一个lic> <year> 2003年</year> <volume> 38</volume> <issue> 11 - 13</我ssue> <fpage> 1325年</fpage> <lpage> 1332年</lpage> <pub-id pub-id-type="doi"> 10.1016 / s0895 - 7177 (03) 90134 - 8</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 0345166079</pub-id> </element-citation> </ref> <ref id="B14" content-type="article"> <label>14</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Kargar</surname> <given-names> M。</given-names> </name> <name> <surname> Isazadeh</surname> <given-names> 一个。</given-names> </name> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> </person-group> <article-title> Multi-programming语言软件系统的模块化</一个rticle-title> <source> <italic> 计算机与电气工程</我t一个lic> <year> 2019年</year> <volume> 80年</volume> <fpage> 106500年</fpage> <pub-id pub-id-type="doi"> 10.1016 / j.compeleceng.2019.106500</pub-id> </element-citation> </ref> <ref id="B15" content-type="article"> <label>15</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 帕尔萨</surname> <given-names> 年代。</given-names> </name> <name> <surname> Bushehrian</surname> <given-names> O。</given-names> </name> </person-group> <article-title> 新的编码方案和框架来研究遗传聚类算法</一个rticle-title> <source> <italic> 信息技术的研究和实践》杂志上</我t一个lic> <year> 2005年</year> <volume> 37</volume> <issue> 1</我ssue> <fpage> 127年</fpage> </element-citation> </ref> <ref id="B16" content-type="article"> <label>16</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> <name> <surname> Elgedawy</surname> <given-names> 我。</given-names> </name> <name> <surname> Isazadeh</surname> <given-names> 一个。</given-names> </name> </person-group> <article-title> E-cdgm:进化call-dependency图形软件系统的模块化方法</一个rticle-title> <source> <italic> 控制论和信息技术</我t一个lic> <year> 2016年</year> <volume> 16</volume> <issue> 3</我ssue> <fpage> 70年</fpage> <lpage> 90年</lpage> <pub-id pub-id-type="doi"> 10.1515 / cait - 2016 - 0035</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84983543047</pub-id> </element-citation> </ref> <ref id="B17" content-type="article"> <label>17</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 犯罪</surname> <given-names> T。</given-names> </name> <name> <surname> Tourwe</surname> <given-names> T。</given-names> </name> </person-group> <article-title> 一项调查的软件重构</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2004年</year> <volume> 30.</volume> <issue> 2</我ssue> <fpage> 126年</fpage> <lpage> 139年</lpage> <pub-id pub-id-type="doi"> 10.1109 / tse.2004.1265817</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 1842431668</pub-id> </element-citation> </ref> <ref id="B18" content-type="article"> <label>18</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 杜卡斯</surname> <given-names> 年代。</given-names> </name> <name> <surname> Pollet</surname> <given-names> D。</given-names> </name> </person-group> <article-title> 软件架构重建:面向流程的分类</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2009年</year> <volume> 35</volume> <issue> 4</我ssue> <fpage> 573年</fpage> <lpage> 591年</lpage> <pub-id pub-id-type="doi"> 10.1109 / tse.2009.19</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 68949213770</pub-id> </element-citation> </ref> <ref id="B19" content-type="incollection"> <label>19</label> <element-citation publication-type="book"> <person-group person-group-type="author"> <name> <surname> Palomba</surname> <given-names> F。</given-names> </name> <name> <surname> 德卢西亚</surname> <given-names> 一个。</given-names> </name> <name> <surname> Bavota</surname> <given-names> G。</given-names> </name> <name> <surname> Oliveto</surname> <given-names> R。</given-names> </name> </person-group> <article-title> 反模式检测方法:方法,挑战,和开放的问题</一个rticle-title> <source> <italic> 电脑的发展</我t一个lic> <year> 2014年</year> <publisher-loc> 柏林,德国</publisher-loc> <publisher-name> 爱思唯尔</publisher-name> <fpage> 201年</fpage> <lpage> 238年</lpage> </element-citation> </ref> <ref id="B20" content-type="article"> <label>20.</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 艾尔宽干谷</surname> <given-names> J。</given-names> </name> <name> <surname> Abdin</surname> <given-names> 一个。</given-names> </name> </person-group> <article-title> 面向对象的代码重构的影响的经验评估质量属性:一个系统的文献回顾</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2018年</year> <volume> 44</volume> <issue> 1</我ssue> <fpage> 44</fpage> <lpage> 69年</lpage> <pub-id pub-id-type="doi"> 10.1109 / tse.2017.2658573</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85040724898</pub-id> </element-citation> </ref> <ref id="B21" content-type="article"> <label>21</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 米切尔</surname> <given-names> b S。</given-names> </name> <name> <surname> Mancoridis</surname> <given-names> 年代。</given-names> </name> </person-group> <article-title> 评估的一些搜索软件模块化算法</一个rticle-title> <source> <italic> 软计算</我t一个lic> <year> 2008年</year> <volume> 12</volume> <issue> 1</我ssue> <fpage> 77年</fpage> <lpage> 93年</lpage> </element-citation> </ref> <ref id="B22" content-type="article"> <label>22</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Tajgardan</surname> <given-names> M。</given-names> </name> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> <name> <surname> Lotfi</surname> <given-names> 年代。</given-names> </name> </person-group> <article-title> 软件系统集群使用分布估计方法</一个rticle-title> <source> <italic> 应用计算机科学杂志的方法</我t一个lic> <year> 2016年</year> <volume> 8</volume> <issue> 2</我ssue> <fpage> 99年</fpage> <lpage> 113年</lpage> <pub-id pub-id-type="doi"> 10.1515 / jacsm - 2016 - 0007</pub-id> </element-citation> </ref> <ref id="B23" content-type="article"> <label>23</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Amarjeet</surname> </name> <name> <surname> Chhabra</surname> <given-names> j·K。</given-names> </name> </person-group> <article-title> 许多客观人工蜂群算法对大规模软件模块聚类问题</一个rticle-title> <source> <italic> 软计算</我t一个lic> <year> 2018年</year> <volume> 22</volume> <issue> 19</我ssue> <fpage> 6341年</fpage> <lpage> 6361年</lpage> <pub-id pub-id-type="doi"> 10.1007 / s00500 - 017 - 2687 - 3</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85022026505</pub-id> </element-citation> </ref> <ref id="B24" content-type="article"> <label>24</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 生</surname> <given-names> 一个。</given-names> </name> <name> <surname> Chhabra</surname> <given-names> j·K。</given-names> </name> </person-group> <article-title> 软件模块的粒子群文中针对启发式聚类问题</一个rticle-title> <source> <italic> 阿拉伯科学与工程》杂志上</我t一个lic> <year> 2018年</year> <volume> 43</volume> <issue> 12</我ssue> <fpage> 7083年</fpage> <lpage> 7094年</lpage> <pub-id pub-id-type="doi"> 10.1007 / s13369 - 017 - 2989 - x</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85056280437</pub-id> </element-citation> </ref> <ref id="B25" content-type="inproceedings"> <label>25</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 哈曼</surname> <given-names> M。</given-names> </name> <name> <surname> Tratt</surname> <given-names> l</given-names> </name> </person-group> <article-title> 帕累托最优搜索基于重构的设计水平</一个rticle-title> <conf-name> 学报》第九届年会在遗传与进化计算</conf-name> <conf-date> 2007年</conf-date> <conf-loc> 英国伦敦</conf-loc> <publisher-name> ACM</publisher-name> <fpage> 1106年</fpage> <lpage> 1113年</lpage> </element-citation> </ref> <ref id="B26" content-type="article"> <label>26</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Briand</surname> <given-names> l . C。</given-names> </name> <name> <surname> 戴利</surname> <given-names> j·W。</given-names> </name> <name> <surname> 香肠</surname> <given-names> j·K。</given-names> </name> </person-group> <article-title> 在面向对象的系统耦合测量一个统一的框架</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 1999年</year> <volume> 25</volume> <issue> 1</我ssue> <fpage> 91年</fpage> <lpage> 121年</lpage> <pub-id pub-id-type="doi"> 10.1109/32.748920</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 0032627862</pub-id> </element-citation> </ref> <ref id="B27" content-type="inproceedings"> <label>27</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 生</surname> <given-names> O。</given-names> </name> <name> <surname> 斯坦默尔粗毛呢</surname> <given-names> J。</given-names> </name> <name> <surname> Burkhart</surname> <given-names> D。</given-names> </name> </person-group> <article-title> 基于搜索的决心提高面向对象的类结构系统的重构</一个rticle-title> <conf-name> 学报》第八届年会在遗传与进化计算</conf-name> <conf-date> 2006年</conf-date> <conf-loc> 英国伦敦</conf-loc> <publisher-name> ACM</publisher-name> <fpage> 1909年</fpage> <lpage> 1916年</lpage> </element-citation> </ref> <ref id="B28" content-type="article"> <label>28</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Kebir</surname> <given-names> 年代。</given-names> </name> <name> <surname> 承担</surname> <given-names> 我。</given-names> </name> <name> <surname> Meslati</surname> <given-names> D。</given-names> </name> </person-group> <article-title> 遗传算法方法基于组件软件的自动重构</一个rticle-title> <source> <italic> 信息与软件技术</我t一个lic> <year> 2017年</year> <volume> 88年</volume> <fpage> 17</fpage> <lpage> 36</lpage> <pub-id pub-id-type="doi"> 10.1016 / j.infsof.2017.03.009</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85015986827</pub-id> </element-citation> </ref> <ref id="B29" content-type="inproceedings"> <label>29日</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> Kumari</surname> <given-names> a . C。</given-names> </name> <name> <surname> 斯</surname> <given-names> K。</given-names> </name> <name> <surname> 古普塔</surname> <given-names> M。</given-names> </name> </person-group> <article-title> 软件模块集群使用一个基于hyper-heuristic多目标遗传算法</一个rticle-title> <conf-name> 学报》2013年第3 IEEE国际预先计算会议(IACC)的</conf-name> <conf-date> 2013年</conf-date> <conf-loc> 纽约,纽约,美国</conf-loc> <publisher-name> IEEE</publisher-name> <fpage> 813年</fpage> <lpage> 818年</lpage> </element-citation> </ref> <ref id="B30" content-type="article"> <label>30.</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 黄</surname> <given-names> J。</given-names> </name> <name> <surname> 刘</surname> <given-names> J。</given-names> </name> </person-group> <article-title> 软件模块的相似性模块化质量衡量聚类问题</一个rticle-title> <source> <italic> 信息科学</我t一个lic> <year> 2016年</year> <volume> 342年</volume> <fpage> 96年</fpage> <lpage> 110年</lpage> <pub-id pub-id-type="doi"> 10.1016 / j.ins.2016.01.030</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84961901435</pub-id> </element-citation> </ref> <ref id="B31" content-type="article"> <label>31日</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Bavota</surname> <given-names> G。</given-names> </name> <name> <surname> 德卢西亚</surname> <given-names> 一个。</given-names> </name> <name> <surname> 马库斯</surname> <given-names> 一个。</given-names> </name> <name> <surname> Oliveto</surname> <given-names> R。</given-names> </name> </person-group> <article-title> 使用软件模块化结构和语义措施改善</一个rticle-title> <source> <italic> 经验软件工程</我t一个lic> <year> 2013年</year> <volume> 18</volume> <issue> 5</我ssue> <fpage> 901年</fpage> <lpage> 932年</lpage> <pub-id pub-id-type="doi"> 10.1007 / s10664 - 012 - 9226 - 8</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84881187471</pub-id> </element-citation> </ref> <ref id="B32" content-type="article"> <label>32</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Bavota</surname> <given-names> G。</given-names> </name> <name> <surname> 尽可能多</surname> <given-names> M。</given-names> </name> <name> <surname> Oliveto</surname> <given-names> R。</given-names> </name> <name> <surname> Poshyvanyk</surname> <given-names> D。</given-names> </name> <name> <surname> 露西娅</surname> <given-names> 答:d。</given-names> </name> </person-group> <article-title> 通过自动化提高软件模块化的分析潜在的主题和依赖关系</一个rticle-title> <source> <italic> ACM交易软件工程和方法论</我t一个lic> <year> 2014年</year> <volume> 23</volume> <issue> 1</我ssue> <fpage> 1</fpage> <pub-id pub-id-type="doi"> 10.1145 / 2559935</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84894384748</pub-id> </element-citation> </ref> <ref id="B33" content-type="article"> <label>33</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Bavota</surname> <given-names> G。</given-names> </name> <name> <surname> 德卢西亚</surname> <given-names> 一个。</given-names> </name> <name> <surname> 马库斯</surname> <given-names> 一个。</given-names> </name> <name> <surname> Oliveto</surname> <given-names> R。</given-names> </name> </person-group> <article-title> 自动化提取类重构:一种改进方法及其评价</一个rticle-title> <source> <italic> 经验软件工程</我t一个lic> <year> 2014年</year> <volume> 19</volume> <issue> 6</我ssue> <fpage> 1617年</fpage> <lpage> 1664年</lpage> <pub-id pub-id-type="doi"> 10.1007 / s10664 - 013 - 9256 - x</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84909999876</pub-id> </element-citation> </ref> <ref id="B34" content-type="inproceedings"> <label>34</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> Gui</surname> <given-names> G。</given-names> </name> <name> <surname> 斯科特</surname> <given-names> p D。</given-names> </name> </person-group> <article-title> 耦合和内聚的评价办法,组件的可重用性</一个rticle-title> <conf-name> 《2006年国际研讨会上挖掘软件存储库</conf-name> <conf-date> 2006年</conf-date> <conf-loc> 柏林,德国</conf-loc> <publisher-name> ACM</publisher-name> <fpage> 18</fpage> <lpage> 21</lpage> </element-citation> </ref> <ref id="B35" content-type="article"> <label>35</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Bavota</surname> <given-names> G。</given-names> </name> <name> <surname> 德卢西亚</surname> <given-names> 一个。</given-names> </name> <name> <surname> Oliveto</surname> <given-names> R。</given-names> </name> </person-group> <article-title> 识别提取类重构的机会使用结构和语义衔接措施</一个rticle-title> <source> <italic> 系统和软件杂志》上</我t一个lic> <year> 2011年</year> <volume> 84年</volume> <issue> 3</我ssue> <fpage> 397年</fpage> <lpage> 414年</lpage> <pub-id pub-id-type="doi"> 10.1016 / j.jss.2010.11.918</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 78951485846</pub-id> </element-citation> </ref> <ref id="B36" content-type="article"> <label>36</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Poshyvanyk</surname> <given-names> D。</given-names> </name> <name> <surname> 马库斯</surname> <given-names> 一个。</given-names> </name> <name> <surname> 费伦茨</surname> <given-names> R。</given-names> </name> <name> <surname> Gyimothy</surname> <given-names> T。</given-names> </name> </person-group> <article-title> 使用基于信息检索的耦合影响分析办法</一个rticle-title> <source> <italic> 经验软件工程</我t一个lic> <year> 2009年</year> <volume> 14</volume> <issue> 1</我ssue> <fpage> 5</fpage> <lpage> 32</lpage> </element-citation> </ref> <ref id="B37" content-type="article"> <label>37</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Bavota</surname> <given-names> G。</given-names> </name> <name> <surname> Oliveto</surname> <given-names> R。</given-names> </name> <name> <surname> 尽可能多</surname> <given-names> M。</given-names> </name> <name> <surname> Poshyvanyk</surname> <given-names> D。</given-names> </name> <name> <surname> 德卢西亚</surname> <given-names> 一个。</given-names> </name> </person-group> <article-title> Methodbook:推荐移动方法通过关系话题模型重构</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2014年</year> <volume> 40</volume> <issue> 7</我ssue> <fpage> 671年</fpage> <lpage> 694年</lpage> <pub-id pub-id-type="doi"> 10.1109 / tse.2013.60</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84904326575</pub-id> </element-citation> </ref> <ref id="B38" content-type="inproceedings"> <label>38</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> Maletic</surname> <given-names> j . I。</given-names> </name> <name> <surname> 马库斯</surname> <given-names> 一个。</given-names> </name> </person-group> <article-title> 支持程序理解使用语义和结构信息</一个rticle-title> <conf-name> 软件工程学报》第23届国际会议上</conf-name> <conf-date> 2001年</conf-date> <conf-loc> 柏林,德国</conf-loc> <publisher-name> IEEE计算机协会</publisher-name> <fpage> 103年</fpage> <lpage> 112年</lpage> </element-citation> </ref> <ref id="B39" content-type="inproceedings"> <label>39</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> Palomba</surname> <given-names> F。</given-names> </name> <name> <surname> Panichella</surname> <given-names> 一个。</given-names> </name> <name> <surname> 德卢西亚</surname> <given-names> 一个。</given-names> </name> <name> <surname> Oliveto</surname> <given-names> R。</given-names> </name> <name> <surname> 米纳</surname> <given-names> 一个。</given-names> </name> </person-group> <article-title> textual-based技术嗅觉检测</一个rticle-title> <conf-name> 学报2016年IEEE 24日国际会议程序理解(ICPC)</conf-name> <conf-date> 2016年</conf-date> <conf-loc> 柏林,德国</conf-loc> <publisher-name> IEEE</publisher-name> <fpage> 1</fpage> <lpage> 10</lpage> </element-citation> </ref> <ref id="B40" content-type="article"> <label>40</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 穆罕默</surname> <given-names> 年代。</given-names> </name> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> </person-group> <article-title> 软件聚类新算法考虑到知识在源代码中构件之间的依赖关系</一个rticle-title> <source> <italic> 信息与软件技术</我t一个lic> <year> 2019年</year> <volume> 105年</volume> <fpage> 252年</fpage> <lpage> 256年</lpage> <pub-id pub-id-type="doi"> 10.1016 / j.infsof.2018.09.001</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85053159718</pub-id> </element-citation> </ref> <ref id="B41" content-type="article"> <label>41</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Mahouachi</surname> <given-names> R。</given-names> </name> </person-group> <article-title> 基于搜索软件remodularization划算</一个rticle-title> <source> <italic> 计算机科学与技术杂志》上</我t一个lic> <year> 2018年</year> <volume> 33</volume> <issue> 6</我ssue> <fpage> 1320年</fpage> <lpage> 1336年</lpage> <pub-id pub-id-type="doi"> 10.1007 / s11390 - 018 - 1892 - 6</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85056854272</pub-id> </element-citation> </ref> <ref id="B42" content-type="article"> <label>42</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 黛比</surname> <given-names> K。</given-names> </name> <name> <surname> 普拉塔普</surname> <given-names> 一个。</given-names> </name> <name> <surname> 阿加瓦尔</surname> <given-names> 年代。</given-names> </name> <name> <surname> Meyarivan</surname> <given-names> T。</given-names> </name> </person-group> <article-title> 一个快速和精英多目标遗传算法:nsga-ii</一个rticle-title> <source> <italic> IEEE进化计算</我t一个lic> <year> 2002年</year> <volume> 6</volume> <issue> 2</我ssue> <fpage> 182年</fpage> <lpage> 197年</lpage> <pub-id pub-id-type="doi"> 10.1109/4235.996017</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 0036530772</pub-id> </element-citation> </ref> <ref id="B43" content-type="article"> <label>43</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 苧</surname> <given-names> 一个。</given-names> </name> <name> <surname> Kessentini</surname> <given-names> M。</given-names> </name> <name> <surname> O Cinneide</surname> <given-names> M。</given-names> </name> <name> <surname> Sahraoui</surname> <given-names> H。</given-names> </name> <name> <surname> 黛比</surname> <given-names> K。</given-names> </name> <name> <surname> 井上</surname> <given-names> K。</given-names> </name> </person-group> <article-title> :多目标重构的建议方法引入设计模式和修复代码味道的</一个rticle-title> <source> <italic> 软件学报:进化和过程</我t一个lic> <year> 2017年</year> <volume> 29日</volume> <issue> 5</我ssue> <fpage> e1843</fpage> <pub-id pub-id-type="doi"> 10.1002 / smr.1843</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85014656546</pub-id> </element-citation> </ref> <ref id="B44" content-type="article"> <label>44</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 艾尔宽干谷</surname> <given-names> J。</given-names> </name> </person-group> <article-title> 预测方法在面向对象的代码重构的机会</一个rticle-title> <source> <italic> 信息与软件技术</我t一个lic> <year> 2017年</year> <volume> 92年</volume> <fpage> 105年</fpage> <lpage> 120年</lpage> <pub-id pub-id-type="doi"> 10.1016 / j.infsof.2017.07.013</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85026779685</pub-id> </element-citation> </ref> <ref id="B45" content-type="article"> <label>45</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> μ</surname> <given-names> l</given-names> </name> <name> <surname> Sugumaran</surname> <given-names> V。</given-names> </name> <name> <surname> 王</surname> <given-names> F。</given-names> </name> </person-group> <article-title> 软件架构re-modularization的混合遗传算法</一个rticle-title> <source> <italic> 信息系统领域</我t一个lic> <year> 2019年</year> <volume> 92年</volume> <fpage> 1</fpage> <lpage> 29日</lpage> </element-citation> </ref> <ref id="B46" content-type="article"> <label>46</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Kargar</surname> <given-names> M。</given-names> </name> <name> <surname> Isazadeh</surname> <given-names> 一个。</given-names> </name> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> </person-group> <article-title> 提高模块化质量统一的结构和语义异构multi-programming软件系统的概念</一个rticle-title> <source> <italic> 《华尔街日报》的超级计算</我t一个lic> <year> 2020年</year> <volume> 76年</volume> <issue> 1</我ssue> <fpage> 87年</fpage> <lpage> 121年</lpage> <pub-id pub-id-type="doi"> 10.1007 / s11227 - 019 - 02995 - 3</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85073998059</pub-id> </element-citation> </ref> <ref id="B47" content-type="book"> <label>47</label> <element-citation publication-type="book"> <person-group person-group-type="author"> <name> <surname> 马达维</surname> <given-names> K。</given-names> </name> </person-group> <source> <italic> 与多个集群遗传算法软件模块化爬山的方法</我t一个lic> <year> 2005年</year> <publisher-loc> 柏林,德国</publisher-loc> <publisher-name> 布鲁内尔大学</publisher-name> </element-citation> </ref> <ref id="B48" content-type="article"> <label>48</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Moncores</surname> <given-names> m . C。</given-names> </name> <name> <surname> Alvim</surname> <given-names> a·c·F。</given-names> </name> <name> <surname> 巴罗斯</surname> <given-names> m . O。</given-names> </name> </person-group> <article-title> 大型社区搜索应用软件模块聚类问题</一个rticle-title> <source> <italic> 电脑与行动研究</我t一个lic> <year> 2018年</year> <volume> 91年</volume> <fpage> 92年</fpage> <lpage> 111年</lpage> <pub-id pub-id-type="doi"> 10.1016 / j.cor.2017.10.004</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85033564168</pub-id> </element-citation> </ref> <ref id="B49" content-type="inproceedings"> <label>49</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> Kargar</surname> <given-names> M。</given-names> </name> <name> <surname> Isazadeh</surname> <given-names> 一个。</given-names> </name> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> </person-group> <article-title> 基于语义聚类软件使用希尔攀登</一个rticle-title> <conf-name> 《2017年计算机科学和软件工程国际研讨会会议(CSSE)</conf-name> <conf-date> 2017年</conf-date> <conf-loc> 英国伦敦</conf-loc> <publisher-name> IEEE</publisher-name> <fpage> 55</fpage> <lpage> 60</lpage> </element-citation> </ref> <ref id="B50" content-type="article"> <label>50</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 黄</surname> <given-names> J。</given-names> </name> <name> <surname> 刘</surname> <given-names> J。</given-names> </name> <name> <surname> 姚</surname> <given-names> X。</given-names> </name> </person-group> <article-title> 多智能进化算法软件模块聚类问题</一个rticle-title> <source> <italic> 软计算</我t一个lic> <year> 2017年</year> <volume> 21</volume> <issue> 12</我ssue> <fpage> 3415年</fpage> <lpage> 3428年</lpage> <pub-id pub-id-type="doi"> 10.1007 / s00500 - 015 - 2018 - 5</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84957587985</pub-id> </element-citation> </ref> <ref id="B51" content-type="article"> <label>51</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Chhabra</surname> <given-names> j·K。</given-names> </name> </person-group> <article-title> 基于和声搜索remodularization面向对象软件系统</一个rticle-title> <source> <italic> 计算机语言、系统和结构</我t一个lic> <year> 2017年</year> <volume> 47</volume> <fpage> 153年</fpage> <lpage> 169年</lpage> </element-citation> </ref> <ref id="B52" content-type="article"> <label>52</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Kumari</surname> <given-names> a . C。</given-names> </name> <name> <surname> 斯</surname> <given-names> K。</given-names> </name> </person-group> <article-title> Hyper-heuristic多目标软件模块聚类方法</一个rticle-title> <source> <italic> 系统和软件杂志》上</我t一个lic> <year> 2016年</year> <volume> 117年</volume> <fpage> 384年</fpage> <lpage> 401年</lpage> <pub-id pub-id-type="doi"> 10.1016 / j.jss.2016.04.007</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84964345567</pub-id> </element-citation> </ref> <ref id="B53" content-type="inproceedings"> <label>53</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 生</surname> <given-names> 一个。</given-names> </name> <name> <surname> Chhabra</surname> <given-names> j·K。</given-names> </name> </person-group> <article-title> 一个有效的方案基于搜索多目标软件remodularization候选解决方案</一个rticle-title> <conf-name> 《人机界面和管理国际会议的信息</conf-name> <conf-date> 2016年</conf-date> <conf-loc> 英国伦敦</conf-loc> <publisher-name> 施普林格</publisher-name> <fpage> 296年</fpage> <lpage> 307年</lpage> </element-citation> </ref> <ref id="B54" content-type="article"> <label>54</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 华</surname> <given-names> J。</given-names> </name> <name> <surname> 柳</surname> <given-names> 年代。</given-names> </name> <name> <surname> 搜索引擎优化</surname> <given-names> Y.-S。</given-names> </name> <name> <surname> 英国宇航系统公司</surname> <given-names> D.-H。</given-names> </name> </person-group> <article-title> 基于搜索的方法基于多个软件模块聚类关系因素</一个rticle-title> <source> <italic> 软件工程和知识工程的国际期刊</我t一个lic> <year> 2017年</year> <volume> 27</volume> <issue> 7</我ssue> <fpage> 1033年</fpage> <lpage> 1062年</lpage> <pub-id pub-id-type="doi"> 10.1142 / s0218194017500395</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85029633351</pub-id> </element-citation> </ref> <ref id="B55" content-type="article"> <label>55</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 拉米雷斯</surname> <given-names> 一个。</given-names> </name> <name> <surname> 罗梅罗</surname> <given-names> j . R。</given-names> </name> <name> <surname> 文图拉</surname> <given-names> 年代。</given-names> </name> </person-group> <article-title> 交互式多目标进化优化软件架构</一个rticle-title> <source> <italic> 信息科学</我t一个lic> <year> 2018年</year> <volume> 463 - 464</volume> <fpage> 92年</fpage> <lpage> 109年</lpage> <pub-id pub-id-type="doi"> 10.1016 / j.ins.2018.06.034</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 85049338161</pub-id> </element-citation> </ref> <ref id="B56" content-type="inproceedings"> <label>56</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 阿克巴里</surname> <given-names> M。</given-names> </name> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> </person-group> <article-title> 混合遗传算法和磷虾群软件聚类问题</一个rticle-title> <conf-name> 学报》2019年第5基于知识工程和创新(KBEI)</conf-name> <conf-date> 2019年</conf-date> <conf-loc> 英国伦敦</conf-loc> <publisher-name> IEEE</publisher-name> <fpage> 565年</fpage> <lpage> 570年</lpage> </element-citation> </ref> <ref id="B57" content-type="article"> <label>57</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Chhabra</surname> <given-names> j·K。</given-names> </name> </person-group> <article-title> 许多客观人工蜂群算法对大规模软件模块聚类问题</一个rticle-title> <source> <italic> 软计算</我t一个lic> <year> 2018年</year> <volume> 22</volume> <issue> 19</我ssue> <fpage> 6341年</fpage> <lpage> 6361年</lpage> </element-citation> </ref> <ref id="B58" content-type="article"> <label>58</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Izadkhah</surname> <given-names> H。</given-names> </name> <name> <surname> Tajgardan</surname> <given-names> M。</given-names> </name> </person-group> <article-title> 信息理论目标函数遗传软件集群</一个rticle-title> <source> <italic> 多学科研究所数字出版程序</我t一个lic> <year> 2019年</year> <volume> 46</volume> <issue> 1</我ssue> <fpage> 18</fpage> </element-citation> </ref> <ref id="B59" content-type="article"> <label>59</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Maqbool</surname> <given-names> O。</given-names> </name> <name> <surname> 清真寺</surname> <given-names> H。</given-names> </name> </person-group> <article-title> 层次聚类的软件架构的复苏</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2007年</year> <volume> 33</volume> <issue> 11</我ssue> <fpage> 759年</fpage> <pub-id pub-id-type="doi"> 10.1109 / tse.2007.70732</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 35348960950</pub-id> </element-citation> </ref> <ref id="B60" content-type="article"> <label>60</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 库恩</surname> <given-names> 一个。</given-names> </name> <name> <surname> 杜卡斯</surname> <given-names> 年代。</given-names> </name> <name> <surname> Girba</surname> <given-names> T。</given-names> </name> </person-group> <article-title> 在源代码语义聚类:确定主题</一个rticle-title> <source> <italic> 信息与软件技术</我t一个lic> <year> 2007年</year> <volume> 49</volume> <issue> 3</我ssue> <fpage> 230年</fpage> <lpage> 243年</lpage> <pub-id pub-id-type="doi"> 10.1016 / j.infsof.2006.10.017</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 33846409962</pub-id> </element-citation> </ref> <ref id="B61" content-type="article"> <label>61年</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Andritsos</surname> <given-names> P。</given-names> </name> <name> <surname> Tzerpos</surname> <given-names> V。</given-names> </name> </person-group> <article-title> 信息理论软件集群</一个rticle-title> <source> <italic> IEEE软件工程</我t一个lic> <year> 2005年</year> <volume> 31日</volume> <issue> 2</我ssue> <fpage> 150年</fpage> <lpage> 165年</lpage> <pub-id pub-id-type="doi"> 10.1109 / tse.2005.25</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 17644406339</pub-id> </element-citation> </ref> <ref id="B62" content-type="article"> <label>62年</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Rathee</surname> <given-names> 一个。</given-names> </name> <name> <surname> Chhabra</surname> <given-names> j·K。</given-names> </name> </person-group> <article-title> 集群软件remodularization通过使用结构,概念和演化特性</一个rticle-title> <source> <italic> 通用计算机科学杂志》上</我t一个lic> <year> 2018年</year> <volume> 24</volume> <issue> 12</我ssue> <fpage> 1731年</fpage> <lpage> 1757年</lpage> </element-citation> </ref> <ref id="B63" content-type="inproceedings"> <label>63年</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> Shokoufandeh</surname> <given-names> 一个。</given-names> </name> <name> <surname> Mancoridis</surname> <given-names> 年代。</given-names> </name> <name> <surname> Maycock</surname> <given-names> M。</given-names> </name> </person-group> <article-title> 应用光谱方法软件集群</一个rticle-title> <conf-name> 第九次工作会议在逆向工程学报》上</conf-name> <conf-date> 2002年</conf-date> <conf-loc> 柏林,德国</conf-loc> <fpage> 3</fpage> <lpage> 10</lpage> </element-citation> </ref> <ref id="B64" content-type="inproceedings"> <label>64年</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> Tzerpos</surname> <given-names> V。</given-names> </name> <name> <surname> 霍尔特</surname> <given-names> r . C。</given-names> </name> </person-group> <article-title> 交直流:comprehension-driven聚类的算法</一个rticle-title> <conf-name> 诉讼程序的逆向工程第七次工作会议</conf-name> <conf-date> 2000年</conf-date> <conf-loc> 柏林,德国</conf-loc> <publisher-name> IEEE</publisher-name> <fpage> 258年</fpage> <lpage> 267年</lpage> </element-citation> </ref> <ref id="B65" content-type="inproceedings"> <label>65年</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 戈特利布</surname> <given-names> J。</given-names> </name> <name> <surname> Julstrom</surname> <given-names> b。</given-names> </name> <name> <surname> Raidl</surname> <given-names> g·R。</given-names> </name> <name> <surname> Rothlauf</surname> <given-names> F。</given-names> </name> </person-group> <article-title> Prufer数字:生成树进化搜索的一个贫穷的表示</一个rticle-title> <conf-name> 第三届研讨会论文集遗传和进化计算</conf-name> <conf-date> 2001年</conf-date> <conf-loc> 柏林,德国</conf-loc> <publisher-name> 摩根Kaufmann出版商公司。</publisher-name> <fpage> 343年</fpage> <lpage> 350年</lpage> </element-citation> </ref> <ref id="B66" content-type="inproceedings"> <label>66年</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 奥利弗</surname> <given-names> 我。</given-names> </name> <name> <surname> 史密斯</surname> <given-names> D。</given-names> </name> <name> <surname> 荷兰</surname> <given-names> j . R。</given-names> </name> </person-group> <article-title> 研究排列交叉算子的旅行推销员问题</一个rticle-title> <conf-name> 学报第二国际会议对遗传算法及其应用</conf-name> <conf-date> 1987年</conf-date> <conf-loc> 山谷,新泽西,美国</conf-loc> <publisher-name> l . Erlhaum同事</publisher-name> </element-citation> </ref> <ref id="B67" content-type="inproceedings"> <label>67年</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 吴</surname> <given-names> J。</given-names> </name> <name> <surname> 哈桑</surname> <given-names> 答:E。</given-names> </name> <name> <surname> 霍尔特</surname> <given-names> r . C。</given-names> </name> </person-group> <article-title> 比较聚类算法在软件演化的背景下</一个rticle-title> <conf-name> 21 IEEE国际会议的程序软件维护(ICSM ' 05)</conf-name> <conf-date> 2005年</conf-date> <conf-loc> 山谷,新泽西,美国</conf-loc> <publisher-name> IEEE</publisher-name> <fpage> 525年</fpage> <lpage> 535年</lpage> </element-citation> </ref> <ref id="B68" content-type="inproceedings"> <label>68年</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 温</surname> <given-names> Z。</given-names> </name> <name> <surname> Tzerpos</surname> <given-names> V。</given-names> </name> </person-group> <article-title> 一个测量软件聚类算法的有效性</一个rticle-title> <conf-name> 学报》第12届IEEE国际研讨会程序理解</conf-name> <conf-date> 2004年</conf-date> <conf-loc> 新泽西,新泽西,美国</conf-loc> <publisher-name> IEEE</publisher-name> <fpage> 194年</fpage> <lpage> 203年</lpage> </element-citation> </ref> <ref id="B69" content-type="article"> <label>69年</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> 田</surname> <given-names> Z.-P。</given-names> </name> <name> <surname> 张</surname> <given-names> H.-Y。</given-names> </name> <name> <surname> 王</surname> <given-names> J。</given-names> </name> <name> <surname> 王</surname> <given-names> J.-Q。</given-names> </name> <name> <surname> 陈</surname> <given-names> X.-H。</given-names> </name> </person-group> <article-title> 多准则决策方法与基于叉间隔neutrosophic集</一个rticle-title> <source> <italic> 国际系统科学杂志》上</我t一个lic> <year> 2016年</year> <volume> 47</volume> <issue> 15</我ssue> <fpage> 3598年</fpage> <lpage> 3608年</lpage> <pub-id pub-id-type="doi"> 10.1080 / 00207721.2015.1102359</pub-id> <pub-id pub-id-type="other"> 2 - s2.0 - 84945324926</pub-id> </element-citation> </ref> <ref id="B70" content-type="inproceedings"> <label>70年</label> <element-citation publication-type="confproc"> <person-group person-group-type="author"> <name> <surname> 科恩</surname> <given-names> J。</given-names> </name> </person-group> <article-title> 我学会了(到目前为止)</一个rticle-title> <conf-name> 《美国心理协会第98届年度会议在上述会议上提出的</conf-name> <conf-date> 1990年</conf-date> <conf-loc> 波士顿,美国</conf-loc> <publisher-name> 美国心理学协会</publisher-name> </element-citation> </ref> <ref id="B71" content-type="article"> <label>71年</label> <element-citation publication-type="journal"> <person-group person-group-type="author"> <name> <surname> Wilcoxon</surname> <given-names> F。</given-names> </name> <name> <surname> Katti</surname> <given-names> 年代。</given-names> </name> <name> <surname> 威尔科克斯</surname> <given-names> r。</given-names> </name> </person-group> <article-title> 关键值和概率水平wilcoxon秩和检验和魏克森讯号等级测试</一个rticle-title> <source> <italic> 在数理统计选择的表</我t一个lic> <year> 1970年</year> <volume> 1</volume> <fpage> 171年</fpage> <lpage> 259年</lpage> </element-citation> </ref> </ref-list> </back> </article> </body> </html>