工作汇报

工作汇报
2021.3.31-2021.4.9

一、argo项目的错误及改进
首先对于argo项目不稳定的部分查找出来了原因,问题主要是在将类图的属性数据类型和方法参数的数据类型上的判断逻辑出现了问题,导致代码运行时可能出现空指针异常,主要有以下两种情况:
1.之前的代码在判断属性和方法参数的类型时先对于基本数据类型匹配符号表,再通过类名和所对应的类的id对剩下未识别出数据类型的属性和方法参数进行匹配,忽略了类尚未被转换为符号表时属性和方法参数的数据类型可能匹配不到引起的空指针异常;
2.还有一个可以引起空指针异常的原因是类图中属性和方法参数的数据类型非基本类型也非当前类图所创建的类,之前的代码没有对这种异常情况进行处理,当前代码对这种情况的处理是将属性和方法参数的符号表中classtype属性的值设置为404代表错误情况。
其次对王梦楠师姐论文中法师攻击的例子进行了复现,试图画出类图活动图来得到相应的AST树和符号表,但现在没有办法正常完成复现,发现了一个新的bug:当活动图中关联到类图对应的方法之后,关闭程序再次打开会发现之前的UML图打开失败。目前已经解决这个问题,原因是当项目重新编译之后临时的temp文件会清空。
二、阅读论文

  1. 模型检测中状态爆炸问题研究综述
    文章来源:计算机科学
    在这里插入图片描述

主要的状态空间爆炸的解决方法:

  1. 显示模型检测
    在模型检测领域早期采用显示状态表示的方法,即通过列表或者表格等方式显示存储所有的状态空间,这些状态表的大小与系统模型的状态数成正比。而模型的状态数与并发系统的大小成指数关系。因此, 随着所要检测的系统规模增大,所要搜索的状态空间呈指数增长,算法验证所需要的时间/空间复杂度将超过实际硬件所能承受的程度。因此,状态空间爆炸极大地限制了显示模型检测应用。因此提出了为4种基本思想:状态空间压缩、存储空间压缩、并行和分布式计算、随机化和启发式搜索算法。
    1.1 状态空间压缩
    1.1.1 基于状态的削减
    主要的方法是对称性削减。,它是一种通过避免对系统中对 称状态重复搜索而有效减少验证规模的方法。对称性经常表 现在包含多个相同进程的并发系统中,例 如互斥协议(MU-TEX)。由于交换相同进程不会影响系统的整体行为,因此可 以采用自同构置换群刻画进程之间的对称性,并基于此,将系 统的状态空间划分为若干个等价类。由于根据置换群所划分的等价 类数目远小于系统原有状态,因此采用对称化简可以有效地 减少系统状态空间,提高模型检测效率。
    1.1.2 基于路径的削减
    主要的方法是偏序规约。一个系统可以由多个进程组 成, 并发执行使得不同进程动作可以有许多不同次序,这使得验 证成本大幅提高。并发系统的一次执行本质上可看作各事件 不断插入的线性序列。这样,对n个事 件 可产生n种线性序列。通过对各事件分析可发现,有些事件可能与执行次序无关,将这些事件预先插入到序列中的固定位置,则可避免重复验证一批本质上相同的路径。偏序规约在缓解状态空间爆炸问题上,侧重于减少验证路径来节省内存空间。
    1.1.3 组合方法
    组合方法是一种通过检测局部状态空间来验证整体状态 空间的方法。对于大型系统验证,组合方法利用“分而治之”策略,根据系统模块结构,先分别验证系统各个局部模块性质,再由局部模块性质推断整个系统性质。如果 系统满足每一局部性质,并且局部性质的合取蕴涵了整个规范,那么完整的系统也必定满足这个规范。总 而言之,组合推理是借助分治策略,从本地属性推导出全局属性,从而减小状态空间
    1.2 存储空间压缩
    1.3 并行和分布式计算
    1.4 随机化和启发式算法
  2. 符号模型检测
    区别于显示模型检测用表的形式显示表示状态空间,它使用布尔函数来表示模型状态集合和状态转换关系,并使用二叉决策图在计算机中存储布尔函数,从而在很大程度上缓解了状态空间爆炸问题,增大了模型检测可以处理问题的规模原理是将系统的状态转换关系用逻辑公式来表示。二叉图(binary decision diagram)是表示逻辑公式的重要手段。二叉图是类似于满二叉树的一种图。

2.An Approximate CTL Model Checking Approach
一种拟合CTL模型检验的方法
出处:会议论文( 2019 IEEE 10th International Conference on Software Engineering and Service Science (ICSESS))
2.1研究目的:用机器学习的ML算法来拟合CTL进行模型检测获得的结果
2.2解决问题:模型检测的状态空间爆炸问题
2.3使用的工具:NuSMV和Graph Lab
2.3进行实验的方法:先得到数据集,数据集中存放几组Kripke 结构、CTL公式并且使用NuSMV来获取他们进行模型检测获得的结果,其次使用随机森林(RF),增强树木(BT),决策树(DT)和逻辑回归(LR)算法来训练上述数据集;最终得到了四组模型用来预测CTL模型检测的结果。
2.4实验的结果:实验发现机器学习拟合的结果与现有模型检测器NuSMV获得的结果精度相同且效率提高了238倍,但CTL公式长度需限定在500以内。
2.5结论
三、java web学习

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值