[发明专利]一种基于目标规约满足度评估的并发程序合成方法和装置有效
申请号: | 201810426842.1 | 申请日: | 2018-05-07 |
公开(公告)号: | CN108804135B | 公开(公告)日: | 2020-02-07 |
发明(设计)人: | 卜磊;沈大川;庄媛;李宣东 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F8/72 | 分类号: | G06F8/72;G06F8/30;G06N3/12 |
代理公司: | 32242 江苏银创律师事务所 | 代理人: | 孙计良 |
地址: | 210001 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 规约 程序合成 时序逻辑 适应度 方法和装置 规约转换 检验工具 模型检验 统计模型 遗传算法 用户提供 评估 限界 并发 概率 检验 | ||
本发明公开了一种基于目标规约满足度评估的符合规约并发程序合成方法和装置。该方法或装置通过将用户提供的线性时序逻辑规约转换成限界线性时序逻辑规约,然后使用统计模型检验工具评估候选者满足规约的概率,计算每个候选者的适应度,然后再根据该适应度采用遗传算法得到新的候选程序,避免了模型检验工具直接逐个检验候选程序,从而提高程序合成的生成效率。
技术领域
本发明主要涉及程序合成等领域,尤其涉及根据给定规约进行程序合成,生成满足规约的并发程序的问题。
背景技术
一直以来,如何提高编程的自动化,提升编程的效率都是人们关注的问题,程序合成是一种自动化编程方法,可以实现由给定的需求描述自动生成计算机程序的功能。
使用遗传算法进行程序合成是一种常用的方法。遗传算法是一种通过模拟自然进化过程搜索最优解的启发式方法,以集束搜索为基础,即每一轮迭代都保持一组候选者而不是单个候选者,并试图在每次生成新一轮候选者集合的时候提升新的候选者的质量,候选者被选中进入下一轮迭代的概率取决于它的适应度,适应度用来描述一个候选者距离正确结果的接近程度。
传统的方法是使用模型检验来计算候选者的适应度,然而模型检验是一种复杂的用来验证正确性的方法,因此它更适合用来确保代码的正确性而不是用来测试,另一方面,由于模型检验只能给出目标满足或不满足规约的结论,即只有0,1两种值,所以使用模型检验会导致适应度的可选值集合较小,不利于遗传算法搜索的过程。使用模型检验的另一个缺点是,模型检验的复杂度较高,需要将线性时序逻辑规约翻译成自动机,这一过程中可能发生空间爆炸。因此,传统采用模型检验和遗传算法的结合效率较低。
发明内容
本发明所要解决的问题:传统采用模型检验和遗传算法生成程序的效率低。
为解决上述问题,本发明采用的方案如下:
根据本发明的一种基于目标规约满足度评估的并发程序合成方法,该方法包含以下步骤:
S1:获取用户提供的程序模板和目标规约集合;所述目标规约为线性时序逻辑规约;
S2:根据所述程序模板随机生成初始的候选程序集合;
S3:计算所述候选程序集合中各个候选程序的适应度;
S4:选取所述候选程序集合中适应度超过阈值的候选程序,并对这些适应度超过阈值的候选程序用模型检验工具检验其是否满足所述目标规约集合中的各个目标规约;若模型检验工具检验到存在候选程序满足所述目标规约集合中的各个目标规约,则该候选程序作为最终输出并结束,否则进入步骤S5;
S5:根据所述各个候选程序的适应度迭代生成新的候选程序集合;
S6:重复步骤S3至S5直到迭代次数超过最大迭代轮次数;
所述步骤S3中计算所述候选程序的适应度包括如下步骤:
S31:将所述目标规约集合中各个目标规约转换成对应的限界规约;所述限界规约可以在有限长度的路径上进行检验;
S32:使用统计模型检验工具评估候选程序满足每个所述限界规约的概率;
S33:统计候选程序满足每个所述限界规约的概率得到所述候选程序的适应度。
进一步,根据本发明的基于目标规约满足度评估的并发程序合成方法,所述步骤S5包括如下步骤:
S51:根据所述候选程序的适应度,为每个候选程序分配一个概率值;
S52:根据各个候选程序的概率值,从候选程序集合中随机选择候选程序;
S53:对随机选择得到的候选程序进行拷贝或变异操作得到新的候选程序;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810426842.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:岩石压裂物理模拟系统及试验方法
- 下一篇:分数极路比叠绕组连接方法