基于隐马尔科夫模型和多目标进化算法的软件自适应方法

文档序号:6626327阅读:1370来源:国知局
基于隐马尔科夫模型和多目标进化算法的软件自适应方法
【专利摘要】本发明公开了一种软件自适应的方法,在软件监控、分析、计划、执行(MAPE-K)过程循环中,在系统的运行时对软件及系统进行动态自适应。在监控阶段,应用隐马尔科夫模型(HMM)来对各个系统组件进行可靠性建模,并在运行时不断通过学习算法优化此模型的参数,以此计算得出各组件的可靠性;在分析阶段中,应用监控阶段得到的各组件可靠性作为输入,应用离散时间马尔科夫链(DTMC),将各组件的调用关系映射为系统各状态的转移关系,计算系统可靠性;在计划阶段,根据特定使用场景,设定多种目标需求,如可靠性、能耗、性能等,作为多目标进化算法的输入(MOEA),以此来计算系统应进行迁移的合理配置集合。
【专利说明】基于隐马尔科夫模型和多目标进化算法的软件自适应方法

【技术领域】
[0001] 本发明涉及一种软件自适应技术,尤其涉及对运行时的软件系统进行动态的自适 应,属于软件工程【技术领域】。

【背景技术】
[0002] 自适应软件是能随着软件系统运行时的内部、外部环境的变化,动态调整自己的 运行方式的软件系统,跨越了软件监控、上下文敏感计算、决策和控制理论、软件演化和维 护等多个科学分支。软件自适应过程以MAPE-K(监控、调整、计划、执行、知识库)为基本周 期主线。在一些特定的领域(如消防、工业控制)中,自适应软件有着非常重要的应用。由 于需要面对庞大、复杂的软件逻辑和应对诸多的环境变化和不确定性因素,自适应软件有 着其独特的优势。
[0003] 在应急系统中,需要高度的系统可靠性,目前的自适应方法主要存在以下的不 足:
[0004] 设计时的自适应无法更好应对动态环境的变化;
[0005] 基于模糊集合等监控方法,精确性不能保证;
[0006] 单目标的计划模块不能应对普遍存在的多目标调整需求。


【发明内容】

[0007] 发明目的:针对现有技术中存在的问题与不足,为提高软件系统的可靠性和安全 性,提供一种在系统运行时有效动态自适应的运行时软件动态自适应方法。
[0008] 技术方案:一种基于隐马尔科夫模型和多目标进化算法的软件自适应方法,包 括:
[0009] a)HMM监控方法:应用隐马尔科夫模型根据运行时的上下文参数实时地对系统的 各个组件进行可靠性建模,并计算得出其可靠性数值;
[0010] b) DTMC分析方法:根据上一个HMM监控模块对每个系统组件得出的可靠性,根据 各个组件的互相调用关系构建离散时间马尔科夫链模型,最后根据此模型的状态转移矩阵 计算系统可靠性。
[0011] C)M0AE监控方法:应用多进化目标优化算法,根据多种系统需求(如可靠性、能耗 等)来选择和生成符合该目标的系统配置,从而替换当前配置,是完成自适应过程中重要 的环节。
[0012] 所述HMM为隐马尔科夫模型的简称,DTMC为离散时间马尔科夫模型的简称。
[0013] 有益效果:与现有技术相比,本发明所提供的方法在应用HMM监控组件可靠性,同 时加入考虑了多目标优化问题,为原本单一指标的配置选择加入多种目标,平衡多种非自 适应需求。

【专利附图】

【附图说明】
[0014] 图1为本发明实施例的整体框架图;
[0015] 图2为本发明实施例的HMM监控方法工作流程图;
[0016] 图3为本发明实施例的DTMC分析方法工作流程图;
[0017] 图4为本发明实施例的MOEA规划方法工作流程图。

【具体实施方式】
[0018] 下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明 而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价 形式的修改均落于本申请所附权利要求所限定的范围。
[0019] 如图1所示,本实施例提供的自适应方法包含下列三个主要部分:
[0020] HMM监控方法、DTMC分析方法、MOEA规划方法。
[0021] a)HMM监控方法:应用隐马尔科夫模型根据运行时的上下文参数实时地对系统的 各个组件进行可靠性建模,并计算得出其可靠性数值;
[0022] b) DTMC分析方法:根据上一个HMM监控模块对每个系统组件得出的可靠性,根据 各个组件的互相调用关系构建离散时间马尔科夫链模型,最后根据此模型的状态转移矩阵 计算系统可靠性。
[0023] c)M0EA规划方法:应用多进化目标优化算法,根据多种系统需求(如可靠性、能耗 等)来选择和生成符合该目标的系统配置,从而替换当前配置,是完成自适应过程中重要 的环节。
[0024] 如图2所示,此方法工作过程分为以下几个过程:初始化HMM、判断系统是否运行、 获取观测序列、HMM动态训练、计算可靠性、传递给DTMC模块。
[0025] 此方法需要在运行时得到观测序列并应用BM算法动态训练隐马尔科夫模型,从 而计算组件可靠性。可靠性取值在0-1之间。
[0026] 具体步骤如下:
[0027] 如图2所示,HMM监控方法的工作步骤如下:
[0028] 步骤101,根据各组件的设计时的状态转移关系来初始化HMM ;
[0029] 步骤102,判断系统是否处在运行状态;
[0030] 步骤103,循环开始,根据运行时上下文环境得到组件的观测序列;
[0031] 步骤104,根据得到的观测序列对HMM应用BM算法进行训练,使其收敛;
[0032] 步骤105,根据步骤104可得到收敛的HMM状态转移矩阵,并由此计算得到该组件 可靠性;
[0033] 步骤106,将计算得出的可靠性数值传递给DTMC模块;
[0034] 如图3所示,DTMC分析方法的工作步骤如下:
[0035] 步骤201,初始化各组件调用关系;
[0036] 步骤202,将各组件调用关映射为系统各状态转移关系;
[0037] 步骤203,通过运行时监控的各组件的状态转移关系,得到状态转移矩阵是为M ;
[0038] 步骤204,由于采用的基于结构的软件可靠性模型,因此计算系统可靠性的时候, 需要计算单位矩阵减去状态转移矩阵的行列式的值I I-Ml,去除矩阵M的最后一行和第一 列以后的矩阵的行列式的值是为|E|,退出状态的组件的可靠性为R,可靠性计算公式为:

【权利要求】
1. 一种基于隐马尔科夫模型和多目标进化算法的软件自适应方法,特征在于,包括: a) HMM监控方法:应用HMM根据运行时的上下文参数实时地对系统的各个组件进行可 靠性建模,并计算得出其可靠性数值; b) DTMC分析方法:根据上一个HMM监控方法对每个系统组件得出的可靠性,根据各个 组件的互相调用关系映射为系统状态的转移关系,从而构建DTMC模型,最后根据此模型的 状态转移矩阵计算系统可靠性; c) MOEA规划方法:将所有可选配置作为遗传算法的输入,退出条件是多种目标需求的 组合;根据系统的多种需求目标来进行最优配置的生成和选择。
2. 如权利要求1所述的基于隐马尔科夫模型和多目标进化算法的软件自适应方法,其 特征在于: HMM监控方法中: 首先,根据设计时各个组件的内部原始状态转移关系,初步针对每个组件建立静态HMM 模型; 然后根据运行时对系统的监控数据(即观察序列),应用学习型的BM算法,对每个组件 进行动态训练; 根据经过训练而收敛的该模型中的状态转移矩阵计算其平稳分布,得到平稳分布状态 下每个组件到达失效状态的概率,组件的可靠性即为1减去进入失效状态的概率; 所述BM算法为Baum-Welch算法。
3. 如权利要求1所述的基于隐马尔科夫模型和多目标进化算法的软件自适应方法,其 特征在于: DTMC分析方法包括: 将各组件的调用关系映射成为状态转移关系,形成一个离散时间马尔科夫链; 得到该马尔科夫链的状态转移矩阵,根据此矩阵和可靠性模型计算出此系统的系统可 靠性。
4. 如权利要求1所述的基于隐马尔科夫模型和多目标进化算法的软件自适应方法,其 特征在于: MOEA规划方法中: 将所有可选系统配置作为多目标进化算法的输入集合; 进入循环,判断该集合是否是系统多种目标的最优解集,即Pareto最优解集; 进行集合的遗传进化过程,通过种群的选择、交叉、变异得到子代配置集合; 构建父代和子代集合的精英种群; 对精英种群进行修剪,剔除超过非劣解个数的种群; 将精英种群的值赋给父代种群; 对得到的父代集合再次进行判断; 所述配置为:系统组件的不同线程结构可认为是不同配置,所有组件的配置的不同组 合即为系统的可选配置。
【文档编号】G06N3/00GK104239046SQ201410454223
【公开日】2014年12月24日 申请日期:2014年9月5日 优先权日:2014年9月5日
【发明者】张鹏程, 周宇鹏, 冯钧, 朱跃龙, 万定生, 刘宗磊, 庄媛, 肖艳 申请人:河海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1