论文部分内容阅读
Q学习是机器学习的一种,以其简捷、高效的算法及自适应学习特点,成为增强学习的典型代表,在人工智能领域得到越来越多的应用。理论和实践证明,解决动态过程优化问题是Q学习的长处。程序分析领域中切片技术日趋成熟。基于系统依赖图的程序静态切片技术效率高、应用广。但是,随着软件程序的功能多样化发展,复杂性随之提高,环境中干扰因素不断增加。复杂程序在不确定环境中的动态分析、控制成为技术难题和迫切需求。此时,切片方法为主的程序分析理论、技术严重受限。提出用Q学习策略探索程序分析领域存在的难题,是一次大胆尝试。论文引入Q学习独有的优势,针对复杂程序动态分析、控制难题,提出基于Q学习的复杂程序动态分析、控制思想,构造切实可行的分析算法,着重对并发程序、面向对象程序、不确定环境中的复杂程序动态分析进行研究,初步形成了基于Q学习的复杂程序动态分析技术,为实时、有效控制不确定环境中复杂程序的动态过程提供了依据。在此基础上,对基于Q学习的复杂程序动态分析、控制系统(析控器:QACA)的实现相关技术进行了研究。论文的主要工作:(1)通过对基于Q学习的复杂程序动态分析技术的研究,解决当前在并发程序、面向对象程序、不确定环境中的复杂程序等的动态分析方面存在的难题,提高分析智能性、效率及精度。(2)在Q学习分析的基础上,探讨对复杂程序实施动态最优控制,增强复杂软件程序的自动控制能力,为提高大型、重要软件系统的安全性、可维护性等问题提供对策。(3)对析控器(QACA)的实现相关技术进行基础性研究。论文的主要成果表现在以下几个方面:提出一种基于Q学习的程序智能分析思想及方法,初步形成基于Q学习的复杂程序动态分析技术。提出Q依赖链、Q依赖图等一系列基于Q学习的程序分析新概念。融合了传统程序分析技术和机器学习领域知识,使这两个学科有机结合、优势互补。提出将不确定环境中的复杂程序区分特征、区别分析的方法。既可提高析控器学习、分析的效率,又使智能分析、控制的针对性、精确性得到增强。为提高析控器的学习、训练速度及动态分析时效,提出利用当前程序分析中先进理论、技术对程序的表示、分析等方法,约束动态分析信息量,缩短了agent的学习、训练周期。提出运用Q学习策略实时分析、控制复杂程序动态过程的思想和方法,研究、设计将析控器绑定或嵌入大型重要软件系统程序的动态过程,为基于Q学习的析控器系统实现做出基础性研究工作。