TAPFixer总结

news2024/12/25 9:30:31

相关工作

Menshen 检测属性用户写
et al检测属性就简单三个

未来工作:

liveness; implicit; 数据集; 抽象方式合并;抽象规则配置;缓解谓词爆炸;concurrency的说明; 代码简化工作;给出能修复的漏洞种类

代码未实现:

delay之后的抽象不能取值钱的值,last状态为安全如何定义安全,VAR里的函数类型建模
不被设备执行影响的延时自然属性,比如下雨,那么被设备影响的延时自然属性,比如温度,烟雾???
不被设备执行影响的非延时自然属性,比如
被设备影响的非延时自然属性,比如光照
一次新增多条规则而不是一条
fix_rule初始化为{}会不会导致如果满足属性,出现Bug
LTL在非限界的布尔编码
新规则要排除老规则
ASSIGN_NEW_RULE里对数值类的处理是一个值一个谓词,这样不行
某个概念如state space在background里一笔带过,后面可不可以不解释??

疑问

符号的定义重复了
符号的字体清不清楚
反属性推理想和整体取反作符号区分
图、表、公式、算法的引用
图片大小
系统结构图和算法概述的位置
单复数,the,句子开头字母才大写
检测种类只体现在实验,不体现在代码
基于什么什么的描述,推出一个结论,那么这个结论可以不可以放到描述那些,虽然前面没用到

整体代码细节

TAP规则按照action作字典

输入:entity_attribute_list 、entity_rule_list、spec_list
for spec in spec_list:
  规则交互模型构建ModelBuilder(其中包含属性筛选)
  规则交互漏洞检测ModelChecker
  反属性推理
  if 推理成功:
    修复成功,返回修复后的规则
  else:
	无法修复

在安全属性,反属性检测后都对CEX进行complete_state()
第一次抽象是CEX引导的,之后是CEX以及上次的抽象过程
无法解决可能是安全属性的优先级问题如sleep和away
一个谓词等于 flag->取值

% 算法写半页的1/3页到3/4页
% 算法解释加上目的,不说函数
% 5行就可以做算法

规则交互模型构建的代码细节

筛选实体属性自动机变量定义

channel-based interaction config :

从筛选属性中选出有物理影响的
CONFIG(包括运作和不运作)+THRESHOLD
自然延时属性自动机变量定义 __count 实现自动变化的环境谓词
对于不被设备执行影响的延时自然属性,比如下雨变化靠__count,被设备影响的延时自然属性没有状态时靠__count,否则靠设备的物理影响<threshold则每次加,大于则回归之前状态

不被设备执行影响的非延时自然属性,比如???
被设备影响的非延时自然属性,比如光照???

last值为安全保证可以从第一个状态触发
大多数数据结构都是字典或者[[[],[] ]一条rule,[]第二天]

延时变量

MODULE RUNIN

规则交互模型抽象的代码细节

flag->取值 抽象为一个谓词P(取值),只有真假
CEGAR包括模型抽象和反属性验证
class变量清零
单trigger的情况不加INVAR_flag
LAST变量的处理,安全属性中的和属性外的,保证初始状态能触发
对LAST变量的引入

模型抽象

除了正常的建模外

1+3n是 present
2+3n是new
3+3n是delay

build_INVAR constraints
value flag: toint(original_flag_rule0_weather.rain_0) + toint(original_flag_rule0_weather.rain_1) != 2 对现有和新增
如果是现有,排除已有谓词,如果是新增,排除当前谓词
trigger flag 新规则步骤加,一次一条,排除当前谓词

delay的抽象在VAR实现
在建模延时变量时,将取值范围设置为0或延时
predicate_flag
抽象只针对property里的entity

find_assign_before_violating_state
predicate(attribute):[0,1,2,3,4]

abstract_time_ASSIGN
__Extended_rule_flag_ASSIGN
get_var_value

抽象精化

build_INVAR: class.INVAR.test_list之前的取值

在之前的build_VAR加入:
初始值定格
step和step_upperlimit
不被设备执行影响的非延时自然属性,比如
不被设备执行影响的延时自然属性,比如下雨,被设备影响的延时自然属性的也是同样方式

修复对比

Thier work最接近我们的工作,但也有差异
没有明确提出反属性,且简单,之前是更大空间需要反属性, 我们是反属性需要更大空间,所以Trigger、Condition、Action都要变

Previous work searches potential TAP patches by changing
trigger-states of existing TAP rules in three ways: (1) deleting
a conjunction clause; (2) adding a conjunction clause that
appears in the LTL/CTL policy(只加了属性中出现的,N-gram?); or (3) modifying numerical
parameters. Consequently, they cannot synthesize patches that
change TAP rules’ trigger events or rule actions(从状态机模型的角度,推导出都要变), not to mention creating new TAP rules from scratch.
The end-user property specification interface of previous work [22] only accepts
“[states] shall not happen”, missing many common desires.比如G(F),liveness
有些安全属性没有说明

修复算法:初始值固定
Salus按照所编写的顺序执行规则来解决相互冲突的设备命令

修复是user-facing

共享环境属性,包括环境属性影响,在建模时完成(共同区域+same channel),temperature里加一个trasition
不仅是共享,而且有共同,我没咋说共同,比如温度湿度关联,归于共同作用
本文只说了devices can influence the readings of sensors in the same logical space.而且没说温湿度关联

定位方法:用形式化的方法定位错误的用户逻辑,他这里只指反例

将系统逻辑转为等价方程式解SMT,方程右侧是违反的约束?
对于没有LTL和CTL语法的琐碎策略

修复算法:
首先,尝试现有,它试图确定是否可以更改任何自动化规则参数(数值,枚举)。
其次,尝试新的,它试图看看是否可以引入额外的自动化规则(增删trigger)。然后,根据用户的偏好,ActAxdaod制定一个解决方案,然后提交给用户批准。adding or deleting rules’ triggering conditions
IF livingroom.temp <= 18 THEN livingroom.heater = on 加没人的条件

尝试过的值下次不再尝试,通过invariant
在这里插入图片描述
The basic idea is to re-use model checkers’ ability of solving parametrized equations

Rule:
IF kitchen.CO2 > 1000 THEN kitchen.fan = on

property:
kitchen CO2 level cannot exceed 1000 ppm, globally

FIX RULE:
IF kitchen.CO2 > X THEN kitchen.fan = on

Prioritizing Solutions.
会求解出多个值,由用户选择或者根据偏好选择(用决策树)
数值选择选接近原来的,定义一定范围内的

Rule:
IF livingroom.temp <= 18 THEN livingroom.heater = on

property:
if no one is in the living room,then heater should always be off
增删的trigger来源于policies provide hints on
by considering all conditions in the policies but not in the rules.而我们考虑了规则里的

FIX RULE:
IF λ1 ⇒ (livingroom.temp <= X) AND
λ2 ⇒ (livingroom.occupancy == Y)
THEN livingroom.heater = on
λ1 p->q 非p或q,p为1则启用条件,p为0则等于加没加都为TRUE

在这里插入图片描述

迭代中止次数设置为200
100个设备就在60s完成
生成修复建议所需的时间因策略而异。政策#1需要最多的时间。这背后有几个因素,其中包括变量的范围。策略#1取决于室温,室温比门打开/关闭等二进制变量有更广泛的状态范围。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/479525.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《基于光电容积法和机器学习的冠状动脉疾病患者出血风险预测》阅读笔记

目录 一、论文摘要 二、论文十问 三、论文亮点与不足之处 四、与其他研究的比较 五、实际应用与影响 六、个人思考与启示 参考文献 一、论文摘要 在冠状动脉疾病&#xff08;CAD&#xff09;患者的抗血栓治疗过程中&#xff0c;出血事件是关注的主要焦点。本研究旨在探讨…

浅谈一下布隆过滤器的设计之美

1 缓存穿透 2 原理解析 3 Guava实现 4 Redisson实现 5 实战要点 6 总结 布隆过滤器是一个非常有用的数据结构。它可以在大规模数据中高效地判断某个元素是否存在。布隆过滤器的应用非常广泛&#xff0c;不仅在搜索引擎、防垃圾邮件等领域中经常用到&#xff0c;而且在许多…

R语言单因素方差分析

R中的方差分析 介绍用于比较独立组的不同类型的方差分析&#xff0c;包括&#xff1a; 单因素方差分析&#xff1a;独立样本 t 检验的扩展&#xff0c;用于在存在两个以上组的情况下比较均值。这是方差分析检验的最简单情况&#xff0c;其中数据仅根据一个分组变量&#xff0…

【数据结构】七大排序总结

目录 &#x1f33e;前言 &#x1f33e; 内部排序 &#x1f308;1. 直接插入排序 &#x1f308;2. 希尔排序 &#x1f308;3. 直接选择排序 &#x1f308;4. 堆排序 &#x1f308;5. 归并排序 &#x1f308;6. 冒泡排序 &#x1f308;7. 快速排序 &#x1f33e;外部排序 &…

4 月份 火火火火 的开源项目

盘点 4 月份 GitHub 上 Star 攀升最多的开源项目&#xff0c;整个 4 月份最火项目 90% 都是 AI 项目&#xff08;准确的说&#xff0c;最近半年的热榜都是 AI 项目&#xff09; 本期推荐开源项目目录&#xff1a; 1. AI 生成逼真语音 2. 复旦大模型 MOSS&#xff01; 3. 让画中…

万万没想到在生产环境翻车了,之前以为很熟悉 CountDownLatch

前言 需求背景 具体实现 解决方案 总结 前言 之前我们分享了CountDownLatch的使用。这是一个用来控制并发流程的同步工具&#xff0c;主要作用是为了等待多个线程同时完成任务后&#xff0c;在进行主线程任务。然而&#xff0c;在生产环境中&#xff0c;我们万万没想到会…

【LeetCode】583. 两个字符串的删除操作

583. 两个字符串的删除操作&#xff08;中等&#xff09; 思路 这道题的状态定义和 1143. 最长公共子序列 相同&#xff0c;「定义一个 dp 数组&#xff0c;其中 dp[i]表示到位置 i 为止的子序列性质&#xff0c;并不是必须以 i 结尾」&#xff0c;此时 dp 数组的最后一位即为…

富士康终于醒悟了,重新加码中国制造,印度制造信不过

4月25日富士康在郑州揭牌新事业总部&#xff0c;显示出在扰攘了数年之后&#xff0c;富士康再度加强郑州富士康的发展力度&#xff0c;这应该是富士康在印度努力数年之后终于清醒了&#xff0c;印度制造终究不如中国制造可靠。 一、苹果和富士康在印度发展的教训 这两年苹果和富…

智能算法系列之基于粒子群优化的模拟退火算法

文章目录 前言1. 算法结合思路2. 问题场景2.1 Sphere2.2 Himmelblau2.3 Ackley2.4 函数可视化 3. 算法实现代码仓库&#xff1a;IALib[GitHub] 前言 本篇是智能算法(Python复现)专栏的第四篇文章&#xff0c;主要介绍粒子群优化算法与模拟退火算法的结合&#xff0c;以弥补各自…

【unity项目实战】3DRPG游戏开发07——其他详细的设计

敌人动画设计 新增图层动画,把权重设为1 在新图层默认新建一个空状态Base State,实现怪物默认动画播放Base State,因为Base State是空动画,所以默认会找上一个层的动画,这样就实现了两个图层动画的切换,也可以选择修改权重的方式实现 敌人随机巡逻 显示敌人巡逻的范…

网络字节序和主机字节序详解(附代码)

一、网络字节序和主机字节序 网络字节序和主机字节序是计算机网络中常用的两种数据存储格式。 主机字节序&#xff1a; 指的是在计算机内部存储数据时采用的字节排序方式。对于一个长为4个字节的整数&#xff0c;若采用大端字节序&#xff0c;则该整数在内存中的存储顺序是&a…

AppScan-被动手动扫描

被动扫描是针对性的扫描&#xff0c;浏览器代理到AppScan&#xff0c;然后进行手工操作&#xff0c;探索产生出的流量给AppScan进行扫描。这样可以使得扫描足够精准&#xff0c;覆盖率更加高&#xff0c;还能减少不必要的干扰 &#xff08;一&#xff09;环境准备 1、火狐安装…

SAP UI5 之Controls (控件) 笔记三

文章目录 官网 Walkthrough学习-Controls控件1.0.1 在index.html中使用class id 属性控制页面展示的属性1.0.2 我们在index.js文件中引入 text文本控制1.0.3打开浏览器查看结果 官网 Walkthrough学习-Controls控件 Controls控件 在前面展示在浏览器中的Hello World 是在Html …

Presto 之Hash Join的Partition

一. 前言 在Presto中&#xff0c;当两表Join为Hash Join并且join_distribution_type为PARTITIONED的时候&#xff0c;Presto会将Build表分区&#xff08;Partition&#xff09;后再进行Join操作。在Presto中的Join操作中&#xff0c;对表的分区有两级&#xff0c;第一级是将Has…

超简单搭建一个自用的ChatGPT网站(支持给网站添加访问密码)

前言&#xff1a; 有小伙伴留言想在自己的服务器搭建上图所示的ChatGPT网站&#xff0c;那么今天就是教大家如何在自己的服务器搭建像上图所示的ChatGPT网站 准备条件&#xff1a; 1&#xff09;一台服务器(这里用centos7) 2&#xff09;ChatGPT的API-KEY 一、Docker环境部署…

存储资源调优技术——SmartThin智能精简配置技术

目录 基本概念 工作原理 SmartThin关键技术 SmartThin主要功能 应用场景 精简LUN&#xff0c;存储空间超分配 按需动态分配存储资源&#xff0c;提高存储资源利用率 Thick和Thin LUN的区别如下 基本概念 Thin Lun属于存储资源的虚拟化&#xff0c;因此需要基于RAID 2.0存…

当影像遇上Python:用MoviePy库轻松搞定视频编辑

I. 简介 当影像遇上Python&#xff1a;用MoviePy库轻松搞定视频编辑 I. 简介II. 安装III. 使用 &#x1f680;&#x1f3ac;1. 创建一个视频剪辑对象2. 剪辑视频3. 剪切视频片段4. 改变视频尺寸和速度5. 合并视频6. 合并多个视频7. 用混合模式合并视频8. 添加音频9. 添加背景音…

台北房价预测

目录 1.数据理解1.1分析数据集的基本结构&#xff0c;查询并输出数据的前 10 行和 后 10 行1.2识别并输出所有变量 2.数据清洗2.1输出所有变量折线图2.2缺失值处理2.3异常值处理 3.数据分析3.1寻找相关性3.2划分数据集 4.数据整理4.1数据标准化 5.回归预测分析5.1线性回归&…

C++之深入解析如何实现一个线程池

一、基础概念 当进行并行的任务作业操作时&#xff0c;线程的建立与销毁的开销是&#xff0c;阻碍性能进步的关键&#xff0c;因此线程池&#xff0c;由此产生。使用多个线程&#xff0c;无限制循环等待队列&#xff0c;进行计算和操作&#xff0c;帮助快速降低和减少性能损耗…

Linux-初学者系列4_rpm-yum软件包管理

Linux-初学者系列4_rpm-yum软件包管理 一、软件包管理 系统软件安装后默认目录路径&#xff1a; /user/local /opt这两个目录用来存放用户自编译安装软件的目录&#xff0c;对于通过源码包安装的软件&#xff0c;如果没有指定安装目录&#xff0c;一般会装在以上目录中。 使…