3、基于社区划分的线性约束关系查找算法

基于社区划分的线性约束关系查找算法

1. 背景与动机

在程序分析领域,自动生成具有高执行路径覆盖率的测试用例是一项重要任务。为了分析不同路径的可达性,会将分支或循环语句中的条件用布尔连接词组合形成约束,很多生成的约束是线性约束的组合。这些技术也应用于程序的形式验证中。

然而,线性约束求解问题计算复杂度高。对于大规模实例,在有限时间内找到可行解或证明无解非常困难。整数线性规划(ILP)问题被证明是NP难的。许多程序分析、验证和测试方法依赖可满足性模理论(SMT)求解器来建模和解决约束满足问题,但SMT求解器在处理大量变量和约束时也需要大量时间。因此,找到线性约束之间的关系,有助于利用约束结构设计智能算法,提高搜索解空间的效率。

2. 相关工作
  • 线性规划中冗余约束识别 :在求解线性规划问题时,约束集中可能存在冗余约束,识别并移除这些约束可提高求解效率。相关工作主要集中在线性不等式的特征,通过设置规则检测冗余约束。但在约束关系查找(CRF)问题中,目标是找到使用布尔连接词连接文字(线性不等式)的约束之间的关系,比线性规划中找冗余约束更复杂,基于规则的方法难以匹配多种关系。
  • SAT求解中的引理学习 :引理学习在SAT求解技术中对设计强大求解器很重要,是一种动态关系查找方法。遇到冲突时,算法回溯并撤销决策,分析冲突原因并将其记录为约束数据库中的子句。该策略不改变原问题的可满足性,能引导搜索方向避免未来陷入相同冲突。但动态方法在开始时没有先验知识,可能导致早期搜索找不到解,且对于含线性数值约束的实例,分析冲突原因较复杂。本文提出静态预分析算法解决CRF问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值