基于遗传算法的动态体系结构选择.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于遗传算法的动态体系结构选择

基于遗传算法的动态体系结构选择   摘要:随着可移动环境的改变,软件系统正经历许多环境变化,这些变化影响着软件提供的服务质量。为了维持软件的正常性能,我们必须重配置,如果一个应用软件面临环境的变化和有许多的软件体系结构实例时,重配置会变成一个复杂的问题。我们提出了一种新的方法,该方法在应对移动环境的时候可以自动进行体系结构的选择。该方法使软件系统在当前的环境下选出最好的体系结构实例;为了快速地找到最好的实例,我们利用遗传算法来实现选择的过程。此外,我们提供了一种绩效评价来证明该方法在寻找最佳结果时最有效。 中国论文网 /8/view-7222130.htm   关键词:移动环境;软件体系结构;遗传算法;绩效评价   中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2015)34-0165-02   1 概述   用户的满意度代表用户需求和优先权的质量属性,在执行期间,不同用户依赖各自用户的实例进行变化。因此,一个应用程序必须包含不同的功能来适应不同的用户需求;软件体系结构作为软件的宏伟蓝图和支撑骨架,在软件体系中起着决定性的作用[1],它从全局的角度为系统提供结构组成及其相互关系等信息,为人们宏观把握软件的整体结构和动态演化提供了一条有效途径[2]。本文的研究目标是提供一种方法在环境和需求实时的变化时从大量的候选者中来自动地选择合适的软件体系结构种群。我们使用提出的相互依赖图来精确地制定软件体系结构选择问题。为了处理这个问题,我们利用遗传算法提供了一种新的方法来自动进行软件体系结构的选择。   2 相关实例   移动应用程序被多种因素影响而变化,这种变化可能影响应用程序的性能,为了控制这些变化,我们需要知道用户需求从哪方面影响应用程序。   为了适应用户需求的变化,软件系统有多种变化的函数,如“丰富的GUI”等,如图1所示。这些备选项代表候选函数,使得应用程序可以允许环境和质量的变化,GUI可能会影响应用程序的使用性和持久性,这种影响被量化,量化能把描述关系变得能明确,如HCD对可读性有积极影响(表示为”+”)。(质量属性包括响应,使用性,持久性和可读性)。   3 体系结构的选择问题   我们使用软目标相互依赖图(SIG)制定质量属性,SIG通过无功能需求的框架来制定。一个SIG代表质量属性(如,无功能需求的属性)之间的关系,一个软目标代表一个质量属性,用云状框表示。两个软目标之间的相互依赖用连接两软目标的横线表示,通过识别软目标并连接它们,SIG代表一个应用程序的质量属性。质量属性通过一种质量变量来制定,在SIG的软目标之间,只有最高的质量属性被质量变量考虑,因为它们在我们的方法中作为优先级和价值评估的目标。质量变量[qi]用一个实数来描述质量变量代替的质量属性的应用程序的满意度。一组质量变量Q代表用户的所有满意度,这些质量变量聚集起来代表全部的满意度。一个用来衡量用户所有满意度的值函数U被定义为:   其中,Q是一组质量变量,W是一组权重值,每个[wi]是对应的质量变量[qi]的值,n是质量变量的个数,所有权重值的总和等于1(如[inwi=1])。   4 基于遗传算法的体系结构选择   4.1 遗传算法的步骤   遗传算法作为一种通用、高效的优化算法,已应用到工程计算的各个领域[3]。在遗传算法中,目标问题被一串基因代替,这个串为染色体,遗传算法使用染色体替换确定染色体的初始种群。重复以下的过程直到一个终止条件的出现:(1)基于一个明确的交叉概率和运行交叉操作来选择父类染色体;(2)基于一个确定的变异概率来选择染色体和突变染色体;(3)评估后代的适应值;(4)从后代中选择下一个后代种群。   4.2 用基因代替体系结构实例   应用遗传算法确定应用程序的主要问题是将问题空间编码为一组染色体,在这种方法里,我们将体系结构实例编码为染色体,因为我们的目的是从一系列实例中寻找到最优的实例,我们使用体系结构决策变量来编码实例,如图2所示。   4.3 交叉和变异   对于交叉和变异操作,我们使用两点交叉和全数字的变异概率。两点交叉获得两个染色体和对每个染色体选择两个位置,然后在两个位置之间交换染色体的数字[4]。执行交叉操作后,该算法执行变异操作,交叉步骤产生的后代的数字通过变异率[Pm]来随机的改变。通过交叉和变异产生的后代被作为下一代的候选种群。   4.4 适应值和选择   执行交叉和变异操作后,下一步是选择操作,该算法评估所有后代和染色体的适应值,适应值更高的保留下来。种群的大小决定了遗传算法的效率和效益,如果种群太小,它不能有效地探寻搜索空间,如果太大可能破坏它的效率。实际地,我们的方法取样至少是[δ-l]个染色体的数量,其中,[δ]是体系结构决策变量中选择项

文档评论(0)

cby201601 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档