CN104268278B - 一种基于规则的软件体系结构层性能演化优化方法 - Google Patents

一种基于规则的软件体系结构层性能演化优化方法 Download PDF

Info

Publication number
CN104268278B
CN104268278B CN201410546025.1A CN201410546025A CN104268278B CN 104268278 B CN104268278 B CN 104268278B CN 201410546025 A CN201410546025 A CN 201410546025A CN 104268278 B CN104268278 B CN 104268278B
Authority
CN
China
Prior art keywords
rule
loc
record
tables
rulnum
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.)
Active
Application number
CN201410546025.1A
Other languages
English (en)
Other versions
CN104268278A (zh
Inventor
杜欣
倪友聪
叶鹏
谢大同
肖如良
汪春燕
昂凤平
王晓红
李松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Normal University
Original Assignee
Fujian Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujian Normal University filed Critical Fujian Normal University
Priority to CN201410546025.1A priority Critical patent/CN104268278B/zh
Publication of CN104268278A publication Critical patent/CN104268278A/zh
Application granted granted Critical
Publication of CN104268278B publication Critical patent/CN104268278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种基于规则的软件体系结构层性能演化优化方法,采用遗传算法进行软件体系结构层性能演化优化:A.进行种群初始化;B.输入个体编码(规则号序列)、初始软件体系结构和规则使用历史表,计算种群中每个个体的适应度值;C.采用基于精英保留的轮盘赌选择策略进行选择操作;D.采用带约束检查机制的一点交叉进行交叉操作;E.采用带约束检查机制的一点变异进行变异操作;F.判断是否满足终止条件,是则转步骤G,否则基于步骤E得到的下一代种群,返回步骤B进行下一次迭代;步骤G.将最优个体中出现的0及没有改进效果的规则号依次删除,获得最优改进方案并输出。该方法可降低软件体系结构层性能的优化成本,提高优化质量。

Description

一种基于规则的软件体系结构层性能演化优化方法
技术领域
本发明涉及软件性能优化技术领域,特别涉及一种基于规则的软件体系结构层性能演化优化方法。
背景技术
软件的性能是衡量软件系统质量的一个重要属性,性能的优劣已经成为系统成败的关键因素。在软件体系结构(Software Architecture,简记为SA)设计阶段进行性能优化,可以尽早发现资源使用率过高、响应时间过长和吞吐量过小等性能问题,并通过相应的设计改进缓解或消除这些问题,从而获得满足性能需求的SA设计方案,进而可在软件生命周期的早期达到性能优化的目的。基于SA进行性能优化,不仅可以显著减少软件性能优化的时间,而且能够有效降低优化的成本。
SA层性能优化一直是软件工程学术界和工业界高度关注的主题。经过多年研究和实践,已产生一些普适性的SA层性能改进知识。这些知识已被系统归纳和总结过,并用自然语言描述的性能反模式进行了适当的表示。为了提高SA层性能优化的自动化程度,近年来涌现出一些基于规则的优化方法。这些方法以机器可处理的性能改进规则形式精确地描述了SA层性能反模式,并通过研发规则执行引擎,使得性能优化过程可以自动地使用这些规则。然而这些方法在优化过程中未充分考虑规则组合使用场景下各规则的使用次数和使用顺序不确定性的问题,使得它们只能搜索相对较小的性能改进空间,往往难以获得最优的性能改进方案。例如:文献《An approach for modeling and detecting softwareperformance antipatterns based on first-order logics》针对文献《Performancesolutions:a practical guide to creating responsive,scalable software》、《Software Performance Antipatterns》中的12种SA层性能反模式,给出了对应的12条改进规则。即使不考虑规则可以重复使用的情景,由这12条规则不同组合的情况而构成的改进空间也将高达1212(近9000万亿)个改进方案。在如此庞大的SA层性能改进空间中,如何找出最优性能改进方案仍是一个亟待解决的问题。
发明内容
本发明的目的在于提供一种基于规则的软件体系结构层性能演化优化方法,该方法可降低软件体系结构层性能的优化成本,提高优化质量。
为实现上述目的,本发明的技术方案是:一种基于规则的软件体系结构层性能演化优化方法,采用遗传算法进行软件体系结构层性能演化优化,包括以下步骤:
步骤A.进行种群初始化:设置种群规模、交叉概率、变异概率、最大进化代数、迭代数t=0,并采用一定的个体编码方法,随机生成初始种群P(t)中的每个个体;所述个体编码方法为:
任意个体的编码X'=<x'1,x'2,L,x'k,L,x'l'>均采用定长自然数编码,码长l’由下式定义:
其中ui表示i号规则最多可使用的次数;规则号1到n表示对n条性能改进规则的依次编号;特别地,引入0号规则表示不做任何动作的空规则,并令:1)0号规则最多可使用的次数u0=l’;2)0号规则作用在任何软件体系结构SA上都没有性能改进;3)由0号规则构成的单规则序列作用在任何软件体系结构SA上得到的改进后的软件体系结构仍是SA;
X’的每位x'k满足下式:
x'k∈N∧0≤x'k≤n
其中1≤k≤l',N表示自然数;
X’中i号规则出现的次数记为hi(X’),其满足下式:
hi(X')≤ui,0≤i≤n
步骤B.适应度计算:输入个体编码X’、初始软件体系结构SA0和空的规则使用历史表T_RuleUseInHis,采用solveFitness算法计算P(t)中每个个体的适应度值fitness,并更新T_RuleUseInHis表;T_RuleUseInHis表包括rulNum、loc、nxtRulNum、impNum、totNum五个字段,rulNum表示规则号,loc表示规则号在编码中的位置,nxtRulNum表示loc+1位置的规则号,若loc+1大于码长,则其值为-1,impNum表示在loc和loc+1位置的规则号分别是rulNum和nxtRulNum的情景下,rulNum对应规则有改进效果的使用次数,totNum表示在loc和loc+1位置的规则号分别是rulNum和nxtRulNum的情景下,rulNum对应规则的使用总数;所述solveFitness算法包括以下步骤:
B1.将个体编码X’中的0号规则依次全部删除,获得规则号序列X;
B2.将初始软件体系结构SA0和规则号序列X作为一定的规则序列执行算法的输入,运行所述规则序列执行算法,输出X对应规则序列执行前的系统响应时间BRT和执行后的系统响应时间ART,以及序列中规则使用情况表T_RuleUseInSeq;T_RuleUseInSeq表包括rulNum、loc、isImp三个字段,rulNum表示规则号,loc表示规则号在X中的位置,isImp表示根据loc位置上编号为rulNum的规则执行前后的系统响应时间,判定该规则的应用是否有性能改进效果,是则isImp为1,否则为0;
B3.根据X对应规则序列执行前的系统响应时间BRT和执行后的系统响应时间ART,计算两者的差值ΔRT
B4.根据T_RuleUseInSeq表,统计有性能改进效果的规则数impRulNum(X)和使用的总规则数totRulNum(X),按下式计算出个体编码X’的适应度值fitness:
其中,X为删除X’中出现的0号规则得到的规则号序列;
B5.根据T_RuleUseInSeq表,更新T_RuleUseInHis表;
B6.输出适应度值fitness和更新后的T_RuleUseInHis表,算法结束;
步骤C.选择操作:采用基于精英保留的轮盘赌选择策略在P(t)上进行个体选择,并生成临时种群P1(t);
步骤D.交叉操作:采用带约束检查机制的一点交叉,对交叉操作生成的两个新个体,从交叉位开始至最后一位依次检查每位上的规则号是否违反最大出现次数的约束,若违反则将该位赋值为0;按此方法在P1(t)上进行交叉操作生成临时种群P2(t);
步骤E.变异操作:采用带约束检查机制的一点变异,变异操作后执行约束检查,若变异后的规则号违反最大出现次数的约束,则将变异位赋值为0;按此方法在P2(t)上进行变异操作生成下一代种群;
步骤F.判断是否满足终止条件:最优个体经过多次迭代后其适应度不再发生变化,或者迭代次数达到最大进化代数,是则转步骤G,否则基于步骤E得到的下一代种群,返回步骤B进行下一次迭代;
步骤G.将最优个体中出现0及没有改进效果的规则号依次删除,获得最优改进方案X并输出。
进一步的,在步骤B2中,所述规则序列执行算法包括以下步骤:
B201.分别将待改进软件体系结构SA、当前位置i、T_RuleUseInSeq表、BRT和ART赋值为初始软件体系结构SA0、1、空、-1和-1;
B202.判断i是否大于X的长度,是则转步骤B206,否则转步骤B203;
B203.取X的第i个元素xi,并根据编号xi从规则库取出对应的规则,并与待改进软件体系结构SA一并交由规则执行引擎执行;
B204.根据规则执行引擎返回的执行前系统响应时间BRTi和执行后系统响应时间ARTi,计算BRTi与ARTi两者的差值ΔRT
B2041.若BRT为-1,则把BRTi赋值给BRT;
B2042.将ARTi赋值给ART;
B2043.若ΔRT>0,将记录(xi,i,1)插入T_RuleUseInSeq表中,否则将记录(xi,i,0)插入T_RuleUseInSeq表中;
B2044.若ΔRT>0,则将规则执行引擎返回的改进后软件体系结构赋值给SA,使其成为下一条规则执行时的待改进软件体系结构;
B205.令i=i+1,并转步骤B203;
B206.输出BRT、ART和T_RuleUseInSeq表,算法结束。
进一步的,在步骤B5中,根据T_RuleUseInSeq表,按以下步骤更新T_RuleUseInHis表:
B501.给变量i和len分别赋值1和T_RuleUseInSeq表的记录数;
B502.若i≤len,则转步骤B503,否则更新结束;
B503.从T_RuleUseInSeq中取出第i条记录的值(rulNumi,loci,isImpi);
B504.在T_RuleUseInHis表中按主码值为进行查找,并将查找结果赋值给记录recordi
B505.若(isImpi=1)∧(recordi不空)条件成立,将recordi记录中的impNum和totNum字段的值分别加1,并更新T_RuleUseInHis表中与recordi对应的记录;
B506.若(isImpi=0)∧(recordi不空)条件成立,将recordi记录中的totNum字段值加1,并更新T_RuleUseInHis表中的对应记录;
B507.若(isImpi=1)∧(recordi为空)∧(loci≠X的长度)条件成立,则将记录(rulNumi,loci,nxtRulNum,1,1)插入T_RuleUseInHis表中;
B508.若(isImpi=1)∧(recordi为空)∧(loci=X的长度)条件成立,则将记录(rulNumi,loci,-1,1,1)插入T_RuleUseInHis表中;
B509.若(isImpi=0)∧(recordi为空)∧(loci≠X的长度)条件成立,则将记录(rulNumi,loci,nxtRulNum,0,1)插入T_RuleUseInHis表中;
B510.若(isImpi=0)∧(recordi为空)∧(loci=X的长度)条件成立,将记录(rulNumi,loci,-1,0,1)插入T_RuleUseInHis表中;
B511.令i=i+1,并转步骤B502。
进一步的,在步骤E中,基于一定的条件变异概率进行变异操作,所述条件变异概率按如下方法得到:
基于规则使用历史表T_RuleUseInHis定义以下3个函数:
1)函数fΔ(j,k,m)表示在T_RuleUseInHis表中按主码值为(loc=j)∧(rulNum=k)∧(nxtRulNum=m)进行查找,若查找不到返回0,否则返回记录中impNum和totNum字段值的比值;
2)定义函数O(j,k)表示在T_RuleUseInHis表中按条件(loc=j)∧(rulNum=k)进行查找,若查找不到返回空集否则返回所有满足条件记录中nxtRulNum字段值构成的集合SnxtRulNum
3)定义函数
基于定义的3个函数,条件变异概率p(x'i=k|x'i-1=q)由下式定义:
本发明的有益效果是:1、本发明将规则方法和演化技术紧密结合提出SA层性能优化方法,将基于规则的SA层性能优化抽象为一个寻找最优性能改进规则号序列的数学模型,并设计高效的演化求解算法,以找出最优性能改进方案。2、本发明设计的个体编码方案、带约束检查的交叉算子、基于统计学习机制和带约束检查的变异算子,能够在演化优化过程中灵活应用规则形式的性能改进知识、并可以充分使用规则执行历史中所包含的启发式信息,进而保证算法可以快速收敛到全局最优解。本发明在帮助缩短SA层性能优化的时间、降低优化成本和提高优化质量等方面都具有重要的应用价值和广泛的应用前景。
附图说明
图1是本发明实施例的实现流程图。
图2是本发明实施例中个体编码示意图。
图3是本发明实施例中规则序列执行算法的总体结构图。
具体实施方式
下面结合附图及具体实施例对本发明作进一步的详细说明。
本发明基于规则的软件体系结构层性能演化优化方法,采用遗传算法进行软件体系结构层性能演化优化,如图1所示,包括以下步骤:
步骤A.进行种群初始化
设置种群规模、交叉概率、变异概率、最大进化代数、迭代数t=0,并采用一定的个体编码方法,随机生成初始种群P(t)中的每个个体;个体编码示意图如图2所示,所述个体编码方法为:
任意个体的编码X'=<x1',x'2,L,x'k,L,xl”>均采用定长自然数编码,码长l’由下式定义:
其中ui表示i号规则最多可使用的次数;规则号1到n表示对n条性能改进规则的依次编号;特别地,引入0号规则表示不做任何动作的空规则,并令:1)0号规则最多可使用的次数u0=l’;2)0号规则作用在任何软件体系结构SA上都没有性能改进;3)由0号规则构成的单规则序列作用在任何软件体系结构SA上得到的改进后的软件体系结构仍是SA;
X’的每位x'k满足下式:
x'k∈N∧0≤x'k≤n
其中1≤k≤l',N表示自然数;
X’中i号规则出现的次数记为hi(X’),其满足下式:
hi(X')≤ui,0≤i≤n
步骤B.适应度计算
个体编码X’的适应度求解过程中需要将X’对应规则序列执行完成后,各规则的使用情况记录到一张规则使用历史表T_RuleUseInHis中。下面先给出规则使用历史表的定义,再给出适应度的求解过程。
规则使用历史表T_RuleUseInHis定义:
规则使用历史表T_RuleUseInHis用于记录到目前为止各个规则累计的使用情况。T_RuleUseInHis表的定义如下表1所示,前3个段构成了该表的主码。T_RuleUseInHis表包括rulNum、loc、nxtRulNum、impNum、totNum五个字段,rulNum表示规则号,loc表示规则号在序列中的位置,nxtRulNum表示loc+1位置的规则号,若loc+1大于编码长度,则其值为-1,impNum表示在loc和loc+1位置的规则号分别是rulNum和nxtRulNum的情景下,rulNum对应规则有改进效果的使用次数,totNum表示在loc和loc+1位置的规则号分别是rulNum和nxtRulNum的情景下,rulNum对应规则的使用总数。
表1 T_RuleUseInHis表定义
适应度求解过程:
输入个体编码X’、初始软件体系结构SA0和空的规则使用历史表T_RuleUseInHis,采用solveFitness算法计算P(t)中每个个体的适应度值fitness,并更新T_RuleUseInHis表;所述solveFitness算法包括以下步骤:
B1.将个体编码X’中的0号规则依次全部删除,获得规则号序列X。
B2.将初始软件体系结构SA0和规则号序列X作为一定的规则序列执行算法的输入,运行所述规则序列执行算法,输出X对应规则序列执行前的系统响应时间BRT和执行后的系统响应时间ART,以及序列中规则使用情况表T_RuleUseInSeq。规则序列执行算法的总体结构如图3所示。
序列中规则使用情况表T_RuleUseInSeq定义:
序列中规则使用情况表T_RuleUseInSeq的定义如下表2所示,rulNum和loc两个字段构成了T_RuleUseInSeq表的主码。T_RuleUseInSeq表包括rulNum、loc、isImp三个字段,rulNum表示规则号,loc表示规则号在X中的位置,isImp表示根据loc位置上编号为rulNum的规则执行前后的系统响应时间,判定该规则的应用是否有性能改进效果,是则isImp为1,否则为0。
表2 T_RuleUseInSeq表定义
所述规则序列执行算法包括以下步骤:
B201.分别将待改进软件体系结构SA、当前位置i、T_RuleUseInSeq表、BRT和ART赋值为初始软件体系结构SA0、1、空、-1和-1;
B202.判断i是否大于X的长度,是则转步骤B206,否则转步骤B203;
B203.取X的第i个元素xi,并根据编号xi从规则库取出对应的规则,并与待改进软件体系结构SA一并交由规则执行引擎执行;
B204.根据规则执行引擎返回的执行前系统响应时间BRTi和执行后系统响应时间ARTi,计算BRTi与ARTi两者的差值ΔRT
B2041.若BRT为-1,则把BRTi赋值给BRT;
B2042.将ARTi赋值给ART;
B2043.若ΔRT>0,将记录(xi,i,1)插入T_RuleUseInSeq表中,否则将记录(xi,i,0)插入T_RuleUseInSeq表中;
B2044.若ΔRT>0,则将规则执行引擎返回的改进后软件体系结构赋值给SA,使其成为下一条规则执行时的待改进软件体系结构。
B205.令i=i+1,并转步骤B203;
B206.输出BRT、ART和T_RuleUseInSeq表,算法结束。
B3.根据X对应规则序列执行前的系统响应时间BRT和执行后的系统响应时间ART,计算两者的差值ΔRT
B4.根据T_RuleUseInSeq表,统计有性能改进效果的规则数impRulNum(X)和使用的总规则数totRulNum(X),按下式计算出个体编码X’的适应度值fitness:
其中,X为删除X’中出现的0号规则得到的规则号序列。fitness(X’)的两个乘积项分别表示性能改进幅度、X中有改进效果规则的数目占规则总数的比例,fitness(X’)的值越大表明性能改进方案X越优。
B5.根据T_RuleUseInSeq表,更新T_RuleUseInHis表:
B501.给变量i和len分别赋值1和T_RuleUseInSeq表的记录数;
B502.若i≤len,则转步骤B503,否则更新结束;
B503.从T_RuleUseInSeq中取出第i条记录的值(rulNumi,loci,isImpi);
B504.在T_RuleUseInHis表中按主码值为进行查找,并将查找结果赋值给记录recordi
B505.若(isImpi=1)∧(recordi不空)条件成立,将recordi记录中的impNum和totNum字段的值分别加1,并更新T_RuleUseInHis表中与recordi对应的记录;
B506.若(isImpi=0)∧(recordi不空)条件成立,将recordi记录中的totNum字段值加1,并更新T_RuleUseInHis表中的对应记录;
B507.若(isImpi=1)∧(recordi为空)∧(loci≠X的长度)条件成立,则将记录(rulNumi,loci,nxtRulNum,1,1)插入T_RuleUseInHis表中;
B508.若(isImpi=1)∧(recordi为空)∧(loci=X的长度)条件成立,则将记录(rulNumi,loci,-1,1,1)插入T_RuleUseInHis表中;
B509.若(isImpi=0)∧(recordi为空)∧(loci≠X的长度)条件成立,则将记录(rulNumi,loci,nxtRulNum,0,1)插入T_RuleUseInHis表中;
B510.若(isImpi=0)∧(recordi为空)∧(loci=X的长度)条件成立,将记录(rulNumi,loci,-1,0,1)插入T_RuleUseInHis表中;
B511.令i=i+1,并转步骤B502。
B6.输出适应度值fitness和更新后的T_RuleUseInHis表,算法结束。
步骤C.选择操作
采用基于精英保留的轮盘赌选择策略在P(t)上进行个体选择,并生成临时种群P1(t)。
步骤D.交叉操作
采用带约束检查机制的一点交叉,对交叉操作生成的两个新个体,从交叉位开始至最后一位依次检查每位上的规则号是否违反最大出现次数的约束,若违反则将该位赋值为0;按此方法在P1(t)上进行交叉操作生成临时种群P2(t)。
步骤E.变异操作
采用带约束检查机制的一点变异,基于一定的条件变异概率进行变异操作,变异操作后执行约束检查,若变异后的规则号违反最大出现次数的约束,则将变异位赋值为0;按此方法在P2(t)上进行变异操作生成下一代种群。
所述条件变异概率按如下方法得到:
基于规则使用历史表T_RuleUseInHis定义以下3个函数:
1)函数fΔ(j,k,m)表示在T_RuleUseInHis表中按主码值为(loc=j)∧(rulNum=k)∧(nxtRulNum=m)进行查找,若查找不到返回0,否则返回记录中impNum和totNum字段值的比值;
2)定义函数O(j,k)表示在T_RuleUseInHis表中按条件(loc=j)∧(rulNum=k)进行查找,若查找不到返回空集否则返回所有满足条件记录中nxtRulNum字段值构成的集合SnxtRulNum
3)定义函数
基于定义的3个函数,条件变异概率p(xi'=k|xi'-1=q)由下式定义:
步骤F.判断是否满足终止条件:最优个体经过多次迭代后其适应度不再发生变化,或者迭代次数达到最大进化代数,是则转步骤G,否则基于步骤E得到的下一代种群,返回步骤B进行下一次迭代。
步骤G.将最优个体中出现0及没有改进效果的规则号依次删除,获得最优改进方案X并输出。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

Claims (4)

1.一种基于规则的软件体系结构层性能演化优化方法,其特征在于,采用遗传算法进行软件体系结构层性能演化优化,包括以下步骤:
步骤A.进行种群初始化:设置种群规模、交叉概率、变异概率、最大进化代数、迭代数t=0,并采用一定的个体编码方法,随机生成初始种群P(t)中的每个个体;所述个体编码方法为:
任意个体的编码X'=<x'1,x'2,L,x'k,L,x'l'>均采用定长自然数编码,码长l’由下式定义:
l &prime; = &Sigma; i = 1 n u i
其中ui表示i号规则最多可使用的次数;规则号1到n表示对n条性能改进规则的依次编号;特别地,引入0号规则表示不做任何动作的空规则,并令:1)0号规则最多可使用的次数u0=l’;2)0号规则作用在任何软件体系结构SA上都没有性能改进;3)由0号规则构成的单规则序列作用在任何软件体系结构SA上得到的改进后的软件体系结构仍是SA;
X’的每位x'k满足下式:
x'k∈N∧0≤x'k≤n
其中1≤k≤l',N表示自然数;
X’中i号规则出现的次数记为hi(X’),其满足下式:
hi(X')≤ui,0≤i≤n
步骤B.适应度计算:输入个体编码X’、初始软件体系结构SA0和空的规则使用历史表T_RuleUseInHis,采用solveFitness算法计算P(t)中每个个体的适应度值fitness,并更新T_RuleUseInHis表;T_RuleUseInHis表包括rulNum、loc、nxtRulNum、impNum、totNum五个字段,rulNum表示规则号,loc表示规则号在编码中的位置,nxtRulNum表示loc+1位置的规则号,若loc+1大于码长,则其值为-1,impNum表示在loc和loc+1位置的规则号分别是rulNum和nxtRulNum的情景下,rulNum对应规则有改进效果的使用次数,totNum表示在loc和loc+1位置的规则号分别是rulNum和nxtRulNum的情景下,rulNum对应规则的使用总数;所述solveFitness算法包括以下步骤:
B1.将个体编码X’中的0号规则依次全部删除,获得规则号序列X;
B2.将初始软件体系结构SA0和规则号序列X作为一定的规则序列执行算法的输入,运行所述规则序列执行算法,输出X对应规则序列执行前的系统响应时间BRT和执行后的系统响应时间ART,以及序列中规则使用情况表T_RuleUseInSeq;T_RuleUseInSeq表包括rulNum、loc、isImp三个字段,rulNum表示规则号,loc表示规则号在X中的位置,isImp表示根据loc位置上编号为rulNum的规则执行前后的系统响应时间,判定该规则的应用是否有性能改进效果,是则isImp为1,否则为0;
B3.根据X对应规则序列执行前的系统响应时间BRT和执行后的系统响应时间ART,计算两者的差值ΔRT
B4.根据T_RuleUseInSeq表,统计有性能改进效果的规则数impRulNum(X)和使用的总规则数totRulNum(X),按下式计算出个体编码X’的适应度值fitness:
f i t n e s s ( X &prime; ) = &Delta; R T &times; i m p R u l N u m ( X ) t o t R u l N u m ( X )
其中,X为删除X’中出现的0号规则得到的规则号序列;
B5.根据T_RuleUseInSeq表,更新T_RuleUseInHis表;
B6.输出适应度值fitness和更新后的T_RuleUseInHis表,算法结束;
步骤C.选择操作:采用基于精英保留的轮盘赌选择策略在P(t)上进行个体选择,并生成临时种群P1(t);
步骤D.交叉操作:采用带约束检查机制的一点交叉,对交叉操作生成的两个新个体,从交叉位开始至最后一位依次检查每位上的规则号是否违反最大出现次数的约束,若违反则将该位赋值为0;按此方法在P1(t)上进行交叉操作生成临时种群P2(t);
步骤E.变异操作:采用带约束检查机制的一点变异,变异操作后执行约束检查,若变异后的规则号违反最大出现次数的约束,则将变异位赋值为0;按此方法在P2(t)上进行变异操作生成下一代种群;
步骤F.判断是否满足终止条件:最优个体经过多次迭代后其适应度不再发生变化,或者迭代次数达到最大进化代数,是则转步骤G,否则基于步骤E得到的下一代种群,返回步骤B进行下一次迭代;
步骤G.将最优个体中出现0及没有改进效果的规则号依次删除,获得最优改进方案X并输出。
2.根据权利要求1所述的一种基于规则的软件体系结构层性能演化优化方法,其特征在于,在步骤B2中,所述规则序列执行算法包括以下步骤:
B201.分别将待改进软件体系结构SA、当前位置i、T_RuleUseInSeq表、BRT和ART赋值为初始软件体系结构SA0、1、空、-1和-1;
B202.判断i是否大于X的长度,是则转步骤B206,否则转步骤B203;
B203.取X的第i个元素xi,并根据编号xi从规则库取出对应的规则,并与待改进软件体系结构SA一并交由规则执行引擎执行;
B204.根据规则执行引擎返回的执行前系统响应时间BRTi和执行后系统响应时间ARTi,计算BRTi与ARTi两者的差值ΔRT
B2041.若BRT为-1,则把BRTi赋值给BRT;
B2042.将ARTi赋值给ART;
B2043.若ΔRT>0,将记录(xi,i,1)插入T_RuleUseInSeq表中,否则将记录(xi,i,0)插入T_RuleUseInSeq表中;
B2044.若ΔRT>0,则将规则执行引擎返回的改进后软件体系结构赋值给SA,使其成为下一条规则执行时的待改进软件体系结构;
B205.令i=i+1,并转步骤B203;
B206.输出BRT、ART和T_RuleUseInSeq表,算法结束。
3.根据权利要求1所述的一种基于规则的软件体系结构层性能演化优化方法,其特征在于,在步骤B5中,根据T_RuleUseInSeq表,按以下步骤更新T_RuleUseInHis表:
B501.给变量i和len分别赋值1和T_RuleUseInSeq表的记录数;
B502.若i≤len,则转步骤B503,否则更新结束;
B503.从T_RuleUseInSeq中取出第i条记录的值(rulNumi,loci,isImpi);
B504.在T_RuleUseInHis表中按主码值为(loc=loci)∧(rulNum=rulNumi)∧(nxtRulNum=xloci+1)进行查找,并将查找结果赋值给记录recordi
B505.若(isImpi=1)∧(recordi不空)条件成立,将recordi记录中的impNum和totNum字段的值分别加1,并更新T_RuleUseInHis表中与recordi对应的记录;
B506.若(isImpi=0)∧(recordi不空)条件成立,将recordi记录中的totNum字段值加1,并更新T_RuleUseInHis表中的对应记录;
B507.若(isImpi=1)∧(recordi为空)∧(loci≠X的长度)条件成立,则将记录(rulNumi,loci,nxtRulNum,1,1)插入T_RuleUseInHis表中;
B508.若(isImpi=1)∧(recordi为空)∧(loci=X的长度)条件成立,则将记录(rulNumi,loci,-1,1,1)插入T_RuleUseInHis表中;
B509.若(isImpi=0)∧(recordi为空)∧(loci≠X的长度)条件成立,则将记录(rulNumi,loci,nxtRulNum,0,1)插入T_RuleUseInHis表中;
B510.若(isImpi=0)∧(recordi为空)∧(loci=X的长度)条件成立,将记录(rulNumi,loci,-1,0,1)插入T_RuleUseInHis表中;
B511.令i=i+1,并转步骤B502。
4.根据权利要求1所述的一种基于规则的软件体系结构层性能演化优化方法,其特征在于,在步骤E中,基于一定的条件变异概率进行变异操作,所述条件变异概率按如下方法得到:
基于规则使用历史表T_RuleUseInHis定义以下3个函数:
1)函数fΔ(j,k,m)表示在T_RuleUseInHis表中按主码值为(loc=j)∧(rulNum=k)∧(nxtRulNum=m)进行查找,若查找不到返回0,否则返回记录中impNum和totNum字段值的比值;
2)定义函数O(j,k)表示在T_RuleUseInHis表中按条件(loc=j)∧(rulNum=k)进行查找,若查找不到返回空集否则返回所有满足条件记录中nxtRulNum字段值构成的集合SnxtRulNum
3)定义函数
基于定义的3个函数,条件变异概率p(x'i=k|x'i-1=q)由下式定义:
CN201410546025.1A 2014-10-16 2014-10-16 一种基于规则的软件体系结构层性能演化优化方法 Active CN104268278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410546025.1A CN104268278B (zh) 2014-10-16 2014-10-16 一种基于规则的软件体系结构层性能演化优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410546025.1A CN104268278B (zh) 2014-10-16 2014-10-16 一种基于规则的软件体系结构层性能演化优化方法

Publications (2)

Publication Number Publication Date
CN104268278A CN104268278A (zh) 2015-01-07
CN104268278B true CN104268278B (zh) 2017-06-30

Family

ID=52159799

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410546025.1A Active CN104268278B (zh) 2014-10-16 2014-10-16 一种基于规则的软件体系结构层性能演化优化方法

Country Status (1)

Country Link
CN (1) CN104268278B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669698A (zh) * 2018-11-09 2019-04-23 福州三鑫隆铸业有限公司 基于频繁模式挖掘的gcc编译时能耗演化优化方法及存储设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866010A (zh) * 2010-05-28 2010-10-20 北京航空航天大学 一种卫星导航系统选星方法
CN102831063A (zh) * 2012-09-03 2012-12-19 东华理工大学 一种软件体系结构并行演化冲突的检测方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844420B2 (en) * 2005-02-02 2010-11-30 Gm Global Technology Operations, Inc Manufacturing system performance analysis tool software architecture
US8073790B2 (en) * 2007-03-10 2011-12-06 Hendra Soetjahja Adaptive multivariate model construction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101866010A (zh) * 2010-05-28 2010-10-20 北京航空航天大学 一种卫星导航系统选星方法
CN102831063A (zh) * 2012-09-03 2012-12-19 东华理工大学 一种软件体系结构并行演化冲突的检测方法

Also Published As

Publication number Publication date
CN104268278A (zh) 2015-01-07

Similar Documents

Publication Publication Date Title
US20220382564A1 (en) Aggregate features for machine learning
Chang et al. Continuous-time dynamic graph learning via neural interaction processes
CN111340493B (zh) 一种多维度分布式异常交易行为检测方法
CN107086870B (zh) 修复多节点失效的mds阵列码编码以及解码方法
Fan et al. Answering graph pattern queries using views
CN107656978B (zh) 一种基于函数依赖的多样性数据修复方法
US10896270B2 (en) Method for solving multi-fidelity optimization problems
CN111625258A (zh) 默克尔树更新方法、装置、设备及可读存储介质
Liang et al. Attribute reduction based on improved information entropy
Guilani et al. Optimal component sequence in heterogeneous 1-out-of-N mixed RRAPs
Liu et al. Strong social graph based trust-oriented graph pattern matching with multiple constraints
CN104268278B (zh) 一种基于规则的软件体系结构层性能演化优化方法
Sun et al. Toward auto-learning hyperparameters for deep learning-based recommender systems
CN102663190A (zh) Pptl符号模型检测方法
Qian et al. Variable solution structure can be helpful in evolutionary optimization.
Kiesl et al. Simulating strong practical proof systems with extended resolution
CN104462705A (zh) 一种基于微粒群算法的夹具装配序列规划方法
Kwong et al. A genetic algorithm based knowledge discovery system for the design of fluid dispensing processes for electronic packaging
Georgopoulou et al. A multi-objective metamodel-assisted memetic algorithm with strength-based local refinement
US20230229895A1 (en) Automatic Selection of Quantization and Filter Pruning Optimization Under Energy Constraints
Kaufmann et al. Practical algebraic calculus and Nullstellensatz with the checkers Pacheck and Pastèque and Nuss-Checker
CN114741597A (zh) 一种基于知识增强注意力图神经网络的下一项推荐方法
Minato VSOP (valued-sum-of-products) calculator for knowledge processing based on zero-suppressed BDDs
CN106095882A (zh) 一种多云平台环境下的个性化云推荐方法
Wu et al. Mining of high-utility itemsets by ACO algorithm

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant