CN111352650A - 一种基于insga-ii的软件模块化多目标优化方法及系统 - Google Patents
一种基于insga-ii的软件模块化多目标优化方法及系统 Download PDFInfo
- Publication number
- CN111352650A CN111352650A CN202010116024.9A CN202010116024A CN111352650A CN 111352650 A CN111352650 A CN 111352650A CN 202010116024 A CN202010116024 A CN 202010116024A CN 111352650 A CN111352650 A CN 111352650A
- Authority
- CN
- China
- Prior art keywords
- vertex
- module
- insga
- value
- oriented system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 77
- 230000008878 coupling Effects 0.000 claims abstract description 35
- 238000010168 coupling process Methods 0.000 claims abstract description 35
- 238000005859 coupling reaction Methods 0.000 claims abstract description 35
- 238000004364 calculation method Methods 0.000 claims abstract description 22
- 210000000349 chromosome Anatomy 0.000 claims description 35
- 230000006870 function Effects 0.000 claims description 22
- 108090000623 proteins and genes Proteins 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 8
- 230000003044 adaptive effect Effects 0.000 claims description 7
- 230000008602 contraction Effects 0.000 claims description 3
- 230000035772 mutation Effects 0.000 description 9
- 238000002474 experimental method Methods 0.000 description 8
- 230000002068 genetic effect Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 230000002759 chromosomal effect Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000000692 Student's t-test Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000012353 t test Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Physics & Mathematics (AREA)
- Genetics & Genomics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Physiology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于INSGA‑II的软件模块化多目标优化方法及系统,本发明涉及的一种基于INSGA‑II的软件模块化多目标优化方法,包括:S11.将面向对象系统抽象为无向带权图;S12.将抽象为无向带权图的面向对象系统进行模块化处理,并计算与面向对象系统相对应的模块的内聚值;S13.计算面向对象系统的耦合值;S14.根据所述计算得到的模块内聚值以及面向对象系统的耦合值建立软件模块化优化模型;S15.通过INSGA‑II算法对建立的软件模块化优化模型进行求解,得到最终结果。
Description
技术领域
本发明涉及信息技术及自动化技术领域,尤其涉及一种基于INSGA-II的软件模块化多目标优化方法及系统。
背景技术
在当今社会,随着软件技术的应用与发展,计算机软件与人们的日常办公、学习和生活密不可分。在这些软件系统中,遗留系统开发投入使用较早,内部结构复杂,由于技术人员变动频繁,系统文档不完善,给系统的使用和维护造成不便。不论在面向对象系统还是面向过程系统中,绝大部分软件系统是以模块化的形式设计开发的,但是,多年的维护和进化使得软件产品趋向大型化和复杂化,系统结构偏离原来的设计,例如一些组件的没有放置在合适的模块中,长此以往,逐渐恶化的系统结构会导致更多的时间人力和财力花费。
对于企业或组织至今仍在使用的软件系统,随着多年来软件的进化和维护,系统最初的模块化设计逐渐退化导致系统的结构越来越复杂,对系统的使用和维护非常不利,就需要软件模块化技术来改进软件结构。软件模块化技术按照一定的标准进行自动模块聚类,采用基于搜索的方法得到可行解。由于解空间过于庞大且仅依靠专家经验无法应对复杂的软件模块化方案设计问题,因此,需要运用智能优化算法自动生成大型复杂软件系统的高质量模块划分备选方案,提高软件系统在合理成本下的可维护性。
故,针对现有技术的缺陷,实有必要提出一种技术方案以解决现有技术存在的技术问题。
发明内容
本发明的目的是针对现有技术的缺陷,提供了一种基于INSGA-II的软件模块化多目标优化方法及系统,INSGA-Ⅱ算法提高了软件系统在合理成本下的可维护性,很好地缓解了软件系统中的各种矛盾。
为了实现以上目的,本发明采用以下技术方案:
一种基于INSGA-II的软件模块化多目标优化方法,包括:
S1.将面向对象系统抽象为无向带权图;
S2.将抽象为无向带权图的面向对象系统进行模块化处理,并计算与面向对象系统相对应的模块的内聚值;
S3.计算面向对象系统的耦合值;
S4.根据所述计算得到的模块内聚值以及面向对象系统的耦合值建立软件模块化优化模型;
S5.通过INSGA-II算法对建立的软件模块化优化模型进行求解,得到最终结果。
进一步,所述步骤S2中计算与面向对象系统相对应的模块的内聚值,表示为:
其中,cij表示顶点i与顶点j之间边的权值;xik表示顶点i是否在模块k中,若顶点i在模块k中,则xik=1,否则xik=0;xjk表示顶点j是否在模块k中,若顶j在模块k中,则xjk=1,否则xjk=0;若顶点i和顶点j都在模块k中,则cijxikxjk=1,否则cijxikxjk=0。
进一步,所述步骤S3中计算面向对象系统的耦合值,表示为:
其中,cij表示顶点i与顶点j之间边的权值;xik表示顶点i是否在模块k中,若顶点i在模块k中,则xik=1,否则xik=0;xjk表示顶点j是否在模块k中,若顶j在模块k中,则xjk=1,否则xjk=0;若顶点i和顶点j都在模块k中,则cijxikxjk=1,否则cijxikxjk=0。
进一步,所述步骤S4中建立的软件模块化优化模型,所述优化模型的目标函数和约束表示为:
S.t.
xik∈{0,1},i=1,2,…,|V|,k=1,2,…,M
M∈{1,2,…,|V|}
xik∈{0,1},i=1,2,…,|V|,k=1,2,…,M表示保证了决策变量xik为0,1变量;
M∈{1,2,…,|V|}表示整数决策变量M的范围。
进一步,所述步骤S5具体为:
S51.对染色体进行编码;
S52.采用随机生成的方式和基于最大边收缩的启发式算法生成初始种群;
S53.对所述初始化后的种群进行适应值函数处理;
S54.对所述经过适应值函数处理的种群进行非支配排序和拥挤距离处理;
S55.对经过非支配排序和拥挤距离处理的种群进行选择、交叉、变异操作,得到子代种群;
S56.将子代种群以及父代种群进行合并,得到合并种群。
进一步,所述步骤S52具体为:
S521.提取矩阵的上三角元素,并构成矢量B;
S522.获取所述矢量B中权值的最大值;
S523.初始化染色体基因位;
S524.设置矢量B中收缩边的权值;
S525.计算染色体的目标值。
相应的,还提供一种基于INSGA-II的软件模块化多目标优化系统,包括:
抽象模块,用于将面向对象系统抽象为无向带权图;
第一计算模块,用于将抽象为无向带权图的面向对象系统进行模块化处理,并计算与面向对象系统相对应的模块的内聚值;
第二计算模块,用于计算面向对象系统的耦合值;
建立模块,用于根据所述计算得到的模块内聚值以及面向对象系统的耦合值建立软件模块化优化模型;
求解模块,用于通过INSGA-II算法对建立的软件模块化优化模型进行求解,得到最终结果。
进一步,所述第一计算模块中计算与面向对象系统相对应的模块的内聚值,表示为:
其中,cij表示顶点i与顶点j之间边的权值;xik表示顶点i是否在模块k中,若顶点i在模块k中,则xik=1,否则xik=0;xjk表示顶点j是否在模块k中,若顶j在模块k中,则xjk=1,否则xjk=0;若顶点i和顶点j都在模块k中,则cijxikxjk=1,否则cijxikxjk=0。
进一步,所述第二计算模块中计算面向对象系统的耦合值,表示为:
其中,cij表示顶点i与顶点j之间边的权值;xik表示顶点i是否在模块k中,若顶点i在模块k中,则xik=1,否则xik=0;xjk表示顶点j是否在模块k中,若顶j在模块k中,则xjk=1,否则xjk=0;若顶点i和顶点j都在模块k中,则cijxikxjk=1,否则cijxikxjk=0。
进一步,所述建立模块中建立的软件模块化优化模型,所述优化模型的目标函数和约束表示为:
S.t.
xik∈{0,1},i=1,2,…,|V|,k=1,2,...,M
M∈{1,2,...,|V|}
xik∈{0,1},i=1,2,...,|V|,k=1,2,…,M表示保证了决策变量xik为0,1变量;
M∈{1,2,…,|V|}表示整数决策变量M的范围。
与现有技术相比,本发明采用一种基于带精英策略的改进非支配排序的遗传算法(INSGA-Ⅱ)的软件模块化优化算法来生成大型复杂软件系统的高质量模块划分备选方案,基于INSGA-Ⅱ的软件模块化目标优化算法可以降低软件维护中时间人力和财力,自动生成大型复杂软件系统的高质量模块划分备选方案,提高软件系统在合理成本下的可维护性。
附图说明
图1是实施例一提供的一种基于INSGA-II的软件模块化多目标优化方法流程图;
图2是实施例一提供的基于INSGA-Ⅱ的染色体编码示意图;
图3是实施例一提供的INSGA-Ⅱ染色体交叉互换示意图;
图4是实施例一提供的INSGA-Ⅱ算法流程图;
图5是实施例三提供的一种基于INSGA-II的软件模块化多目标优化系统结构图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
本发明的目的是针对现有技术的缺陷,提供了一种基于INSGA-II的软件模块化多目标优化方法及系统。
实施例一
本实施例提供一种基于INSGA-II的软件模块化多目标优化方法,如图1所示,包括:
S11.将面向对象系统抽象为无向带权图;
S12.将抽象为无向带权图的面向对象系统进行模块化处理,并计算与面向对象系统相对应的模块的内聚值;
S13.计算面向对象系统的耦合值;
S14.根据所述计算得到的模块内聚值以及面向对象系统的耦合值建立软件模块化优化模型;
S15.通过INSGA-II算法对建立的软件模块化优化模型进行求解,得到最终结果。
在步骤S11中,将面向对象系统抽象为无向带权图。
将面向对象系统抽象为一个无向带权图G=(V,E),其中V表示顶点的集合,每个顶点表示一个类,E表示图中边的集合。针对两个相邻顶点之间关系交互的不同程度,我们使用正权值cij表示顶点i与顶点j之间关系的大小,其中i,j=1,2,...,|V|,i≠j,如果两个顶点之间没有边连接,则cij=0。图中边cij的集合可以表示为c(e),其中e∈E。|V|表示无向带权图G中顶点的数量,顶点V的子集的集合{V1,V2,...,VM},表示软件模块化的一个可行解,其中M是整型决策变量,表示无向带权图中模块的数量,1≤M≤|V|。二元决策变量xik表示顶点i是否在子图k中,其中i=1,2,...,|V|,k=1,2,...,M,如果顶点i在子图k中,则xik=1,否则xik=0。对于遗留系统重新模块化问题,即将对应的无向带权图划分为若干子图{G1,G2,...,GM}。模块的耦合值表示模块与模块之间关系的大小,内聚值表示模块内顶点之间关系大小。对于Gk=(Vk,Ek),Vk表示第k个子图(第k个模块)的所有顶点,Ek表示第k个子图中顶点与顶点之间边的集合,F=E-{E1,E2,...,EM}F=E-{E1,E2,...,EM}是边的集合,表示拥有M个子图{G1,G2,...,GM}的图G去除M个模块后剩余的边的集合,即系统的耦合值。
在步骤S12中,将抽象为无向带权图的面向对象系统进行模块化处理,并计算与面向对象系统相对应的模块的内聚值。
将系统抽象为一个无向带权图后,对软件系统进行重新模块化处理,即对无向带权图进行子图划分。一个模块的内聚值指的是这个模块内所有顶点之间边的权值之和。对于无向带权图,如果可以划分为k个模块,那么每个模块的内聚值可以用表示。为了用数学公式表示模块的内聚值,我们引入二元决策变量xik,其中i=1,2,...,|V|,k=1,2,...,M。如果顶点i在模块k中,则xik=1,反之xik=0。数学公式表示一个模块内所有边的和(c(e)的和),其中e∈Ek,k=1,2,...,M。
,如果使用所有模块内聚值平均值最小的度量标准,无法保证避免过度内聚的问题,因此采用min(max)的思想,如果软件系统中最大的模块复杂度不太高,则整个系统中其它模块的复杂度也不会特别高。最大模块的内聚值表示如式(2.1)所示:
其中cij表示顶点i与顶点j之间边的权值,xik表示顶点i是否在模块k中,如果顶点i在模块k中,则xik=1,否则xik=0;xjk表示顶点j是否在模块k中,如果顶j在模块k中,则xjk=1,否则xjk=0。如果顶点i和顶点j都在模块k中,则cijxikxjk=1,否则cijxikxjk=0。
在步骤S13中,计算面向对象系统的耦合值。
一个系统的耦合值指的是这个系统中模块与模块之间所有边的权值之和。对于无向带权图,如果其可以划分为k个子图,对于子图Gk=(Vk,Ek),Vk表示第k个子图(第k个模块)的所有顶点的集合,Ek表示第k个子图中顶点与顶点之间边的集合,F=E-{E1,E2,...,EM}表示系统的耦合值,那么整个系统的耦合值可以用∑e∈F C(e)表示。为了用数学公式表示系统的耦合值,同上,引入二元决策变量xik,其中i=1,2,...,|V|,k=1,2,...,M。为了方便求解,我们用无向带权图中所有边的权值之和减去所有模块的内聚值,表示整个系统的耦合值。表示无向带权图中所有边的权值之和(边的取值e∈E),表示M个模块的内聚值之和(边的取值e∈E1∪E2∪,...,∪EM)。则整个系统的耦合值用表示。本研究使用耦合值作为软件系统架构的另一个度量标准,使用整个系统的耦合值最小作为目标,系统耦合值的表示方法如下:
其中Cij表示顶点i与顶点j之间边的权值,xik表示顶点i是否在模块k中,如果顶点i在模块k中,则xik=1,否则xik=0;xjk表示顶点j是否在模块k中,如果顶点j在模块k中,则xjk=1,否则xjk=0。如果顶点i和顶点j都在模块k中,则cijxikxjk=1,否则cijxikxjk=0。
在步骤S14中,根据所述计算得到的模块内聚值以及面向对象系统的耦合值建立软件模块化优化模型。
根据模块内聚值、整个系统的耦合值的表示方法,可以建立出以最小化整个系统的耦合值和最小化最大模块的内聚值为目标的软件模块化优化模型,目标函数和约束如下:
s.t.
xik∈{0,1},i=1,2,…,|V|,k=1,2,...,M (4.5)
M∈{1,2,…,|V|} (4.6)
约束(4.3)表示每个顶点只能属于顶点集合Vk中的一个,其中k=1,2,...,M,即每个顶点只能在无向带权图中的一个模块里。约束(4.4)表示每一个顶点集合Vk至少包含一个顶点,其中k=1,2,...,M,即每个模块中至少有一个顶点。约束(4.5)保证了决策变量xik为0,1变量,约束(4.6)表示整数决策变量M的范围。
在步骤S15中,通过INSGA-II算法对建立的软件模块化优化模型进行求解,得到最终结果。
采用改进的NSGA-II算法对多目标优化模型进行求解运算,针对随机生成的初始种群质量较差的问题,设计了一种基于最大边收缩的启发式算法,用于生成质量较好的初始种群;
S51.染色体编码;
本算法中,染色体采用了整数编码的形式。染色体的长度由无向带权图中顶点的个数决定。每个基因所存储的数据为整数,表示其对应的顶点所在的模块序号。图2为染色体编码示例,该例中无向带权图有10个顶点,第2个顶点、第3个顶点和第6个顶点在模块1中,第1个顶点、第7个顶点和第8个顶点在模块3中,第2个顶点、第3个顶点和第6个顶点在模块2中,染色体编码中不同数字的个数表示无向带权图被划分的模块数量。
S52.种群初始化;
为了保证初始种群中个体的多样性及种群的质量,使用随机生成的方式和基于最大边收缩的启发式算法共同产生初始种群。随机生成初始种群的方式为每个顶点所在模块的序号值,以整数编码的形式储存在染色体的基因中;
S521.提取元素;
提取矩阵的上三角元素(对角线元素除外)构成矢量B。矢量B中每一个非零正数表示可收缩的边的权值;
S522.找到矢量B中权值的最大值;
找到矢量B中边权值的最大值,并获取权值最大的值的坐标in,如果该坐标值有多个,则随机选取一个边权值最大值的坐标rand_in;
S523.初始化染色体基因位;
染色体基因位都初始化为0。如果该边连接的两个顶点有任何一个顶点之前被合并过,即基因位对应的值大于0,将连接该边的两个顶点对应的染色体基因位的值更新,同时与这两个顶点合并过的顶点的值也更新,将当前生成的染色体存放在indi_list中。
S524.设置矢量B中收缩边的权值;
将矢量B中收缩的边的权值设置为0。
S525.计算染色体的目标值;
计算当前染色体的目标函数值,并重复上述过程,迭代次数为可收缩边的条数,直到所有顶点都被合并为一个顶点,从所有可能方案中挑选一个可被接受的最好方案最为一个初始个体。
S53.适应值函数;
适应值函数有两个,第一个适应值函数是计算整个无向带权图的耦合值,第二个适应值函数计算的是无向带权图中最大模块的内聚值。计算适应值函数根据的是无向带权图转化的关系矩阵。首先,根据染色体中基因的编码,得到每个顶点所在的模块序号,相同序号的基因位对应的顶点在同一个模块中。对于每一个模块,得到模块内顶点对应的关系矩阵,对矩阵进行求和运算,得到子模块的内聚值;
S54.非支配排序和拥挤距离;
在种群适应值函数计算之后、选择操作之前,需要根据种群中每个个体非支配水平对个体进行序值排列。在计算序值时,需要比较两个个体之间的支配关系。在优化问题中,如果个体a至少有一个目标比b的好,并且个体a的所有目标都不比b的差,那么称个体a支配个体b,也可以说个体a非劣于个体b。本算法使用的非支配排序的基本思想是:序值从1开始,每循环一次依次加1,在每一轮的排序中,依次将未被排序的个体a与其余所有未被排序的个体b进行比较(判断个体是否已经被排序的矩阵每轮更新一次),判断个体b是否支配个体a,若未支配,则个体a被赋予当前序值,并将其标记为已处理个体;反之,因为个体a受个体b支配,因此个体a的序值高于当前序值,需要参与下一轮的排序。若种群中的所有个体均被标记为已处理个体,则分级操作终止。通过排序,种群中的所有个体都被分配到了不同的前端。得到种群中每个个体的序值后,还需要计算个体的密度指标。根据Pareto占优关系和密度指标,然后选择相对较好的个体进入下一循环。使用拥挤距离这一密度评估方法,拥挤距离描述的是个体与其相邻个体之间拥挤度的指标,通常情况下,拥挤距离越大,表示该个体与相邻个体的目标函数值的差越大,也就是多样性越好,被选择的概率也越大,拥挤距离的计算过程描述如下:
(1)对于同一序值的所有个体,根据每个目标函数值按照从大到小的顺序排列;
(2)在每个目标排序中,第一个和最后一个个体的拥挤距离设为无穷大,其余个体的拥挤距离计算公式为其中L为目标函数的个数;di为第i个个体的拥挤距离;fa(i+1)和fa(i-1)分别为在第a个目标函数值的排序中第i个个体左右相邻个体的目标函数值;
S55.选择操作;
遗传算法的选择操作能够使优化过程逐步向Pareto最优解集的方向趋近。好的选择算子,可以有效保留染色体中的优良基因,使性能好的个体被选择的概率更大。经过S5-4的操作过程,种群中的每个个体都具有两个属性:非支配排序级别和拥挤距离。采用锦标赛选择方法作为选择算子,根据个体的序值和拥挤距离决定染色体的选择,即序值较小,拥挤距离较大的个体被选择的概率更大,具体操作步骤如下:
(1)确定每次选择的个体数量,选择2个个体;
(2)从种群中随机选择个体构成组(每个个体被选择的概率相同),组的数量与种群数量相同,每组中有两个随机选择的个体;
(3)比较组中两个个体的支配关系,如果两个个体的序值不同,则选择序值较小的个体,即被支配程度低的个体;如果两个个体的序值相同,则选择拥挤距离较大的个体,即周围较不拥挤的个体;
(4)重复步骤(3)直到每一组都进行比较和选择,选择操作终止;
S56.染色体交叉变异操作;
在遗传算法里,将染色体交叉互换是非常重要的运算环节。尽管在染色体交叉互换时,个体的优秀特性会与旧代个体的特性组合,但其也可能会产生适应性更好的新一代个体。在进行交叉操作时,两个父代基因的相似度越大,越不易于新的基因型的产生,这种情况被称为无效交叉操作,类似于现实生活中的近亲结婚。两个染色体之间的差异越小,进行无效交叉操作的概率就越大,这样不仅影响算法的收敛速度,而且浪费计算机资源。所以本算法采用了相似度方法,在进行交叉操作时,先检验两个父代染色体之间的相似度,只有满足相似度条件的个体才能进行交叉操作。
相关度值的是两个染色体基因之间的相似程度,以实数编码为例,假设两个父代个体X,Y为
X=[x1,x2,…,xm]
Y=[y1,y2,…,ym]
其中xi∈Z,yi∈Z,i=1,2,…l,l为染色体长度。两个个体之间的相似度p(X,Y)为:
其中实际上X和Y之间的相似度就等于染色体对应位置的基因相同的个数除以基因串的总长度。p(X,Y)越大,则说明染色体X和Y的相似度越高。提出的机制是当两个父代染色体的相似度小于0.8时,两个父代可以进行交叉操作,交叉方式如图3所示采用两点交叉.
虽然变异发生的概率往往比较小,但是变异过程可以使遗传算法拥有更好的局部随机搜索能力,保持种群的多样性。在遗传算法中,交叉操作由于能对可行解进行全局搜索,被看作算法的核心算子,而变异操作,由于只能对可行解进行局部搜索,被看作算法的辅助算子。
本算法期望通过染色体变异可以获得更好的个体。由于染色体长度比较长,例如无向带权图中有100个顶点,则染色体长度为100。因此个体进行变异操作时,设置变异系数mu,用染色体长度乘以变异系数,得到变异基因的个数n。使用产生随机数的方法,从长度为|G|的染色体中,随机产生n个不同随机数,在给定的变异概率下,如果一个染色体中的某些基因需要进行变异操作,那么该基因会被另一个随机产生的合法基因代替;
S57.精英保留策略;
精英策略指的是父代中的优良个体得以保留并进入到子代的过程。将变异后的子代种群与父代种群合并,得到数量是初始种群2倍的合并种群。合并种群需要进行修剪,其作用是在两倍于种群大小的个体中,修剪出个数等于N的新的父代种群。种群修剪的基本思想是:先计算某前端的现存个体数目和允许保留的个体数目,之后要将该前端中的个体数目修剪至允许保留的个体数目,这一步是通过锦标赛选择来实现的。前文已述及,对于同一前端,个体的拥挤距离越小,则多样性越差,因此,在锦标赛选择中,就越应该被选中淘汰掉。另外,个体的去除通过将其赋值为空矩阵来实现,精英策略的具体过程可描述为:
(1)第t代产生的新种群Qt与父代Pt合并组成Rt,合并种群的数量为2N;
(2)对合并种群Rt的个体进行非支配排序,并对一系列非支配集Fi进行拥挤距离计算;
(3)对非支配集中的个体进行修剪。由于子代和父代都包含在Rt中,则经过非支配排序后得到的非支配集F1中包含的个体是Rt中最好的,因此先考虑将F1放到新的父代种群Pt+1中。如果F1的现存个体数量大于种群数量N,选择拥挤距离较大的前N个个体放入父代种群Pt+1中;如果F1的个体数量小于种群数量N,将F1的所有个体放入父代种群Pt+1中,继续向Pt+1中填充F2,如果F1的个体和F2的个体数量和大于N,按照拥挤距离升序排列,从F2中取前N-Pt+1个个体,使Pt+1个体数量达到N。此时得到新的父代种群Pt+1;
(4)对新的父代种群Pt+1进行新一轮的选择、交叉、变异操作,可以得到新的子代种群Qt+1,然后重复步骤(1)的过程,直到算法终止。由此可以看出,精英策略可以使父代中没有被选择进入子代的优良基因重新得到被选择的机会,从而大大提高了该算法的寻优能力;
S58.终止规则;
终止规则为,当迭代次数给定的阈值时,INSGA-II算法终止并输出当前的非劣解,作为最终运行结果,基于上述算法的设计过程,算法的流程如图4所示。
与现有技术相比,本实施例采用一种基于带精英策略的改进非支配排序的遗传算法(INSGA-II)的软件模块化优化算法来生成大型复杂软件系统的高质量模块划分备选方案,基于INSGA-II的软件模块化目标优化算法可以降低软件维护中时间人力和财力,自动生成大型复杂软件系统的高质量模块划分备选方案,提高软件系统在合理成本下的可维护性。
实施例二
本实施例提供的本实施例提供一种基于INSGA-II的软件模块化多目标优化方法与实施例一的不同之处在于:
本实施例通过实验案例具体说明:
实验案例有16组,案例的来源网址和名称在表1中列出,详细信息可以在网址中找到,将下载下来的软件系统模型图进行初步的数据处理,整理成邻接矩阵的表达形式,实际案例中顶点数和边数在表2中列出,分别用改进NSGA-II、传统NSGA-II、MPSO三个算法对优化模型进行求解,并对求解结果进行分析。
表1
表2
为了检测INSGA-II算法的性能,一共做了两组实验,分别是基于实际案例和基于模拟案例做的实验。每组实验中,将INSGA-II算法和传统的优化算法如NSGA-II算法和MPSO算法在解的质量方面作对比。由于这三个优化算法都具有随机搜索的性质,每次运行的结果可能有所偏差,所以实验中每个案例运行20次。
INSGA-II算法种群大小设为100,最大迭代次数设为200,交叉概率设为0.8,变异概率设为0.01。传统NSGA-II算法的参数设定如下:种群大小设置为100,交叉概率和变异概率分别为0.8和0.01。MPSO算法的粒子规模为100,最大惯性权重1.2,最小惯性权重0.1,r1和r2均为[0,1]区间内的随机数,c1和c2均为0.8。设置一个时间限制参数,传统NSGA-II算法和MPSO算法运行的最大时间为相同条件下INSGA-II算法运行的时间。
算法求得的Pareto前沿是一个非支配解集,本研究问题的优化模型在算法进化后期,种群中大部分个体都趋近于Pareto前沿。我们从Pareto前沿分布的均匀性和三个算法得到的Pareto前沿中非支配解的支配关系进行分析。另外,Pareto前沿中每一个非支配解代表一个软件模块化方案,从Pareto解集中将两个目标值按相同偏好决策出的解作为最优解,实验对比20次实验所取最优值的均值和标准差。由于实验主要检验INSGA-II算法的性能,分别比较INSGA-II和传统NSGA-II算法、INSGA-II和MPSO算法的实验结果。对所有实验结果采用独立样本双尾t检验进行统计分析,置信水平为95%。当t检验的p值小于0.05的时候,说明两个样本的均值在95%的置信水平内存在显著差异。通过对选出的最优解的比较进一步分析三个算法的求解性能。
案例的求解中,从每个算法得到的Pareto解集中,两个目标值按相同的偏好决策出一个最优解,得到20次实验中最优解的平均值、标准差以及T检验的p值,三个算法两两比较实验结果如下表3所示。
表3
从表3中可得到如下结论:
(1)从每个实验案例的均值来比较,INSGA-II算法找到的最好解的质量均比传统NSGA-II和MPSO算法好,而且所有实例里的p值都远远小于0.05,说明在95%的置信水平下,INSGA-II算法取得解的质量明显比传统NSGA-II和MPSO算法好。
(2)对于每个案例的标准差,INSGA-II算法在所有案例中的标准差都比MPSO算法的标准差小。在与传统NSGA-II的比较中,INSGA-II算法在16个实例中有14个实例的标准差比传统NSGA-II算法的小,除了第4个和第8个实例。说明INSGA-II算法的鲁棒性比较高,每次运行结果的可行度比较高。
综上,基于带精英策略的改进非支配排序的遗传算法(INSGA-Ⅱ)的软件模块化优化算法来生成大型复杂软件系统的高质量模块划分备选方案,基于INSGA-Ⅱ的软件模块化目标优化算法可以降低软件维护中时间人力和财力,自动生成大型复杂软件系统的高质量模块划分备选方案,提高软件系统在合理成本下的可维护性。
实施例三
本提供一种基于INSGA-II的软件模块化多目标优化系统,如图5所示,包括:
抽象模块11,用于将面向对象系统抽象为无向带权图;
第一计算模块12,用于将抽象为无向带权图的面向对象系统进行模块化处理,并计算与面向对象系统相对应的模块的内聚值;
第二计算模块13,用于计算面向对象系统的耦合值;
建立模块14,用于根据所述计算得到的模块内聚值以及面向对象系统的耦合值建立软件模块化优化模型;
求解模块15,用于通过INSGA-II算法对建立的软件模块化优化模型进行求解,得到最终结果。
进一步,所述第一计算模块中计算与面向对象系统相对应的模块的内聚值,表示为:
其中,cij表示顶点i与顶点j之间边的权值;xik表示顶点i是否在模块k中,若顶点i在模块k中,则xik=1,否则xik=0;xjk表示顶点j是否在模块k中,若顶j在模块k中,则xjk=1,否则xjk=0;若顶点i和顶点j都在模块k中,则cijxikxjk=1,否则cijxikxjk=0。
进一步,所述第二计算模块中计算面向对象系统的耦合值,表示为:
其中,cij表示顶点i与顶点j之间边的权值;xik表示顶点i是否在模块k中,若顶点i在模块k中,则xik=1,否则xik=0;xjk表示顶点j是否在模块k中,若顶j在模块k中,则xjk=1,否则xjk=0;若顶点i和顶点j都在模块k中,则cijxikxjk=1,否则cijxikxjk=0。
进一步,所述建立模块中建立的软件模块化优化模型,所述优化模型的目标函数和约束表示为:
S.t.
xik∈{0,1},i=1,2,…,|V|,k=1,2,…,M
M∈{1,2,…,|V|}
xik∈{0,1},i=1,2,…,|V|,k=1,2,…,M表示保证了决策变量xik为0,1变量;
M∈{1,2,…,|V|}表示整数决策变量M的范围。
需要说明的是,本实施例提供的一种基于INSGA-II的软件模块化多目标优化系统与实施例一类似,在此不多做赘述。
与现有技术相比,本实施例采用一种基于带精英策略的改进非支配排序的遗传算法(INSGA-Ⅱ)的软件模块化优化算法来生成大型复杂软件系统的高质量模块划分备选方案,基于INSGA-Ⅱ的软件模块化目标优化算法可以降低软件维护中时间人力和财力,自动生成大型复杂软件系统的高质量模块划分备选方案,提高软件系统在合理成本下的可维护性。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种基于INSGA-II的软件模块化多目标优化方法,其特征在于,包括:
S1.将面向对象系统抽象为无向带权图;
S2.将抽象为无向带权图的面向对象系统进行模块化处理,并计算与面向对象系统相对应的模块的内聚值;
S3.计算面向对象系统的耦合值;
S4.根据所述计算得到的模块内聚值以及面向对象系统的耦合值建立软件模块化优化模型;
S5.通过INSGA-II算法对建立的软件模块化优化模型进行求解,得到最终结果。
5.根据权利要求4所述的一种基于INSGA-II的软件模块化多目标优化方法,其特征在于,所述步骤S5具体为:
S51.对染色体进行编码;
S52.采用随机生成的方式和基于最大边收缩的启发式算法生成初始种群;
S53.对所述初始化后的种群进行适应值函数处理;
S54.对所述经过适应值函数处理的种群进行非支配排序和拥挤距离处理;
S55.对经过非支配排序和拥挤距离处理的种群进行选择、交叉、变异操作,得到子代种群;
S56.将子代种群以及父代种群进行合并,得到合并种群。
6.根据权利要求5所述的一种基于INSGA-II的软件模块化多目标优化方法,其特征在于,所述步骤S52具体为:
S521.提取矩阵的上三角元素,并构成矢量B;
S522.获取所述矢量B中权值的最大值;
S523.初始化染色体基因位;
S524.设置矢量B中收缩边的权值;
S525.计算染色体的目标值。
7.一种基于INSGA-II的软件模块化多目标优化系统,其特征在于,包括:
抽象模块,用于将面向对象系统抽象为无向带权图;
第一计算模块,用于将抽象为无向带权图的面向对象系统进行模块化处理,并计算与面向对象系统相对应的模块的内聚值;
第二计算模块,用于计算面向对象系统的耦合值;
建立模块,用于根据所述计算得到的模块内聚值以及面向对象系统的耦合值建立软件模块化优化模型;
求解模块,用于通过INSGA-II算法对建立的软件模块化优化模型进行求解,得到最终结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010116024.9A CN111352650B (zh) | 2020-02-25 | 2020-02-25 | 一种基于insga-ii的软件模块化多目标优化方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010116024.9A CN111352650B (zh) | 2020-02-25 | 2020-02-25 | 一种基于insga-ii的软件模块化多目标优化方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111352650A true CN111352650A (zh) | 2020-06-30 |
CN111352650B CN111352650B (zh) | 2023-06-30 |
Family
ID=71192333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010116024.9A Active CN111352650B (zh) | 2020-02-25 | 2020-02-25 | 一种基于insga-ii的软件模块化多目标优化方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111352650B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115017832A (zh) * | 2022-08-09 | 2022-09-06 | 中国民航大学 | 一种面向飞机作动系统的状态预测方法 |
CN115964959A (zh) * | 2023-03-13 | 2023-04-14 | 北京理工大学 | 一种域集中式电子电气架构建模和多目标优化方法及系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1548608A2 (en) * | 2003-12-24 | 2005-06-29 | Yamaha Hatsudoki Kabushiki Kaisha | Multiobjective optimization |
US20110307430A1 (en) * | 2010-06-11 | 2011-12-15 | International Business Machines Corporation | Pareto Sampling Using Simplicial Refinement by Derivative Pursuit |
CN103235877A (zh) * | 2013-04-12 | 2013-08-07 | 北京工业大学 | 机器人控制软件模块划分方法 |
KR20140082238A (ko) * | 2012-12-24 | 2014-07-02 | 유종민 | 비용 주도 순차적 하드웨어/소프트웨어 분할 최적화 프레임워크 개발 |
US20160364649A1 (en) * | 2015-01-07 | 2016-12-15 | Northeastern University | Optimized decision-making system and method for multiple ore dressing production indexes based on cloud server and mobile terminals |
CN106484401A (zh) * | 2016-09-23 | 2017-03-08 | 东北大学 | 一种面向对象软件的自动化重构方法 |
CN106775705A (zh) * | 2016-12-12 | 2017-05-31 | 西安邮电大学 | 一种软件模块划分方法 |
CN107527119A (zh) * | 2017-09-06 | 2017-12-29 | 河海大学 | 基于改进的多目标量子遗传算法的水资源优化调度方法 |
CN107766076A (zh) * | 2017-11-07 | 2018-03-06 | 西安邮电大学 | 一种概率选择的软件模块聚类方法 |
US20190147617A1 (en) * | 2017-11-14 | 2019-05-16 | Samsung Electronics Co., Ltd. | Method and apparatus for processing a plurality of undirected graphs |
-
2020
- 2020-02-25 CN CN202010116024.9A patent/CN111352650B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1548608A2 (en) * | 2003-12-24 | 2005-06-29 | Yamaha Hatsudoki Kabushiki Kaisha | Multiobjective optimization |
US20110307430A1 (en) * | 2010-06-11 | 2011-12-15 | International Business Machines Corporation | Pareto Sampling Using Simplicial Refinement by Derivative Pursuit |
KR20140082238A (ko) * | 2012-12-24 | 2014-07-02 | 유종민 | 비용 주도 순차적 하드웨어/소프트웨어 분할 최적화 프레임워크 개발 |
CN103235877A (zh) * | 2013-04-12 | 2013-08-07 | 北京工业大学 | 机器人控制软件模块划分方法 |
US20160364649A1 (en) * | 2015-01-07 | 2016-12-15 | Northeastern University | Optimized decision-making system and method for multiple ore dressing production indexes based on cloud server and mobile terminals |
CN106484401A (zh) * | 2016-09-23 | 2017-03-08 | 东北大学 | 一种面向对象软件的自动化重构方法 |
CN106775705A (zh) * | 2016-12-12 | 2017-05-31 | 西安邮电大学 | 一种软件模块划分方法 |
CN107527119A (zh) * | 2017-09-06 | 2017-12-29 | 河海大学 | 基于改进的多目标量子遗传算法的水资源优化调度方法 |
CN107766076A (zh) * | 2017-11-07 | 2018-03-06 | 西安邮电大学 | 一种概率选择的软件模块聚类方法 |
US20190147617A1 (en) * | 2017-11-14 | 2019-05-16 | Samsung Electronics Co., Ltd. | Method and apparatus for processing a plurality of undirected graphs |
Non-Patent Citations (7)
Title |
---|
AMARJEET等: "FP-ABC: Fuzzy-Pareto dominance driven artificial bee colony algorithm for many-objective software module clustering", 《COMPUTER LANGUAGES, SYSTEMS & STRUCTURES》 * |
ROBERTO E. LOPEZ-HERREJON等: "A systematic mapping study of search-based software engineering for software product lines", 《INFORMATION AND SOFTWARE TECHNOLOGY》 * |
卢小张;刘伟;陶耀东;: "基于NSGA-Ⅱ的嵌入式系统软硬件划分方法", no. 01 * |
孙家泽;令蓓蕾;: "利用改进粒子群优化的软件模块划分算法", no. 07 * |
文笑雨;孙海强;李浩;乔东平;肖艳秋;曹阳;: "基于改进NSGA-Ⅱ的多目标绿色作业车间调度问题研究", 河南理工大学学报(自然科学版), no. 05 * |
牟立峰;王方媛;: "抑制孤立簇的软件模块化优化算法", no. 03 * |
陆忆;罗胜钦;王长慧;: "基于多目标优化的SoC软硬件划分方法研究", 电子与封装, no. 02 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115017832A (zh) * | 2022-08-09 | 2022-09-06 | 中国民航大学 | 一种面向飞机作动系统的状态预测方法 |
CN115017832B (zh) * | 2022-08-09 | 2022-10-25 | 中国民航大学 | 一种面向飞机作动系统的状态预测方法 |
CN115964959A (zh) * | 2023-03-13 | 2023-04-14 | 北京理工大学 | 一种域集中式电子电气架构建模和多目标优化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111352650B (zh) | 2023-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334949B (zh) | 一种基于优化深度卷积神经网络结构快速进化的图像分类器构建方法 | |
Zhou et al. | Multiobjective evolutionary algorithms: A survey of the state of the art | |
Deb | Introduction to evolutionary multiobjective optimization | |
CN107197006B (zh) | 基于全局QoS分解的多约束服务选取方法及其装置 | |
CN107977740A (zh) | 一种现场运维智能调度方法 | |
CN111898689B (zh) | 一种基于神经网络架构搜索的图像分类方法 | |
CN105809297B (zh) | 一种基于多目标差分进化算法的火电厂环境经济调度方法 | |
CN111275172A (zh) | 一种基于搜索空间优化的前馈神经网络结构搜索方法 | |
CN111352650A (zh) | 一种基于insga-ii的软件模块化多目标优化方法及系统 | |
CN114330659A (zh) | 一种基于改进aso算法的bp神经网络参数优化方法 | |
CN112734051A (zh) | 一种针对分类问题的进化集成学习方法 | |
CN113191486A (zh) | 基于参数服务器架构的图数据与参数数据的混合划分方法 | |
CN115481727A (zh) | 一种基于进化计算的意图识别神经网络生成与优化方法 | |
Zou et al. | An evolutionary algorithm based on dynamic sparse grouping for sparse large scale multiobjective optimization | |
Karim et al. | Hovering swarm particle swarm optimization | |
Gao et al. | A distance and cosine similarity-based fitness evaluation mechanism for large-scale many-objective optimization | |
CN117521788A (zh) | 一种具有双参考向量引导的多模态多目标进化方法 | |
Kubota et al. | Schema representation in virus-evolutionary genetic algorithm for knapsack problem | |
Giraud-Carrier | Unifying learning with evolution through baldwinian evolution and lamarckism | |
CN115277445B (zh) | 一种基于QoS目标的微服务系统调度优化方法 | |
CN113141272B (zh) | 基于迭代优化rbf神经网络的网络安全态势分析方法 | |
CN115293430A (zh) | 一种基于合作型协同进化算法的无人节点协同方法及系统 | |
CN115688605B (zh) | 一种基于多目标优化算法的民机研制需求排序方法 | |
CN116992098B (zh) | 引文网络数据处理方法及系统 | |
Li et al. | Surrogate-Assisted Evolution of Convolutional Neural Networks by Collaboratively Optimizing the Basic Blocks and Topologies |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |