SAT Encoding and CDCL Algorithm听课笔记

news2024/9/29 3:37:12

CDCL::归结式

如果x不出现在公式的别的地方,那么两者可以等价

CDCL::watched literals

通过监测文字来判断当前子句是否是单元子句

先选择两个未赋值的文字作为监测文字,若其中的监测文字被赋值后则去寻找其他未被赋值的文字作为监测文字,若最后的两个监测文字重合,即只剩下一个未被赋值的文字,则为单元子句(unit clause)

CDCL::clause learning

假设之前已经对c=0,f=0进行赋值,现在对a=0进行赋值

最后一个子句会出现冲突,这样我们可以得出一个新的学习子句

即a,c,f最少有一个为1,同时为0则会出现冲突

CDCL::implication graph(蕴含图)

在第5层,表示x2赋值为0

蕴含图的箭头表示对方是通过单元子句传播得到的值,所以蕴含图是不断生长的

当出现冲突时(红箭头指向)

就需要学习经验,也就是需要生成学习子句,可以进行如下图的分离割,将决策与冲突分离开

三条边只要不成立就不会出现右侧的冲突,而三条边对应的点为x4与x21,则我们可以学习到x4=1与x21=0不能同时成立,即学习子句:非x4或者x21

学习子句不唯一,因为可以有不同的分离割,不同的分离割对应不同的学习子句

那到底应该在哪个地方进行割,引出概念独一蕴含点

蕴含图的数据结构

对每个变量要维护三个信息,变量的值;变量的层级,变量被哪个子句单元传播过来的

CDCL::unique implication point(独一蕴含点)

UIP(独一蕴含点):在部分蕴含图中决策点走到冲突点所有路径都要经过的点

First UIP:离冲突结点最近的UIP、

目标就是通过蕴含图找到冲突点的First UIP然后分离割,进行学习子句

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

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

相关文章

基于单片机的土壤温湿度控制系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式 文章目录 概要 一、温湿度控制系统的整体规划2.3系统的总体构架 二、温度湿度控制系统硬件设计3.1系统硬件概述 三、 温湿度系统软件…

Java web(七):VueElement

文章目录 一、Vue1.1 基本介绍1.2 常用指令1.3 生命周期1.4 案例VueAxios 二、Element三、综合案例【VueElementAxiosServeltMybatis】 一、Vue 1.1 基本介绍 Vue 是一套前端框架,免除原生JavaScript中的DOM操作,简化书写。 基于MVVM(Model-View-View…

六大排序算法:插入、选择、冒泡、快排、希尔、归并

1、插入排序 解析&#xff1a;第一个元素设定为已经排好序&#xff0c;依次选择后续的元素插入到已经排好序的组内进行排序。 图示&#xff1a; 代码&#xff1a; public static void insertionSort(int[] arr) {int n arr.length;for (int i 1; i < n; i) {int key a…

Databend 开源周报第 118 期

Databend 是一款现代云数仓。专为弹性和高效设计&#xff0c;为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务&#xff1a;https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展&#xff0c;遇到更贴近你心意的 Databend 。 MERGE INTO 现已…

计算机毕业设计 基于SpringBoot高校毕业与学位资格审核系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

VR全景在旅游中应用有哪些?VR云游的优势是什么?

近日受到剧烈日冕物质抛射活动影响&#xff0c;漠河再现极光美景&#xff0c;极光舞动的灿烂星空下&#xff0c;正在封冻的黑龙江上&#xff0c;无数的冰排随波而去&#xff0c;天地之间光影流动好不美丽。相信很多人都想了解、观赏祖国的大好风光&#xff0c;但是碍于没时间、…

关于SSP3D复现

关于SSP3D复现的问题 准备工作 下载Xshell和XFTP&#xff1a;家校免费版下载链接连接服务器&#xff08;可能需要与服务器处在相同网络下&#xff09;GitHub上下载源码&#xff1a;SSP3D 左上角新建会话&#xff0c;输入名称和主机 点击左侧菜单“用户身份验证”&#xff0c…

Freeswitch实现软电话功能

1.话务步骤 分机注册(需要查询分机状态来判断是否可用)->登录&#xff08;接听呼入电话需要登录到指定queue&#xff09;->拨打电话->就绪->未就绪-> 登出 2. sdk调用方式 /*<--注册分机-->*/ //EslMessage eslMessage1 inboundClient.sendApiCommand(…

Linux文件系统——文件描述符

文章目录 0. 前言1. C文件接口文件打开文件写入 2. 系统文件接口open && write && closeopen的返回值 本章gitee代码仓库&#xff1a;文件描述符 0. 前言 基础原理知识&#xff1a; 文件 内容 属性 文件分为&#xff1a;打开的文件&#xff08;本章重点讲解…

python使用pysqlcipher3对sqlite数据库进行加密

python对很多项目都需要对sqlite数据库的数据进行加密&#xff0c;最流行的加密方式是使用pysqlcipher3&#xff0c;当前使用的python版本为3.7&#xff0c;本博文是直接使用pysqlcipher3在项目上的应用&#xff0c;使用的是已编译好的pysqlcipher3包&#xff0c;如果你需要pys…

6个常用的小程序UI组件库,大厂设计师都在用!

UI组件库是设计系统的一部分&#xff0c;在一般的页面设计过程中可以直接用来构建交互界面。因此&#xff0c;一个有效的小程序UI组件库可以帮助设计师快速掌握基本的交互框架&#xff0c;提高设计师的工作效率&#xff0c;让设计师有更多的时间打磨和提高小程序的整体效果。小…

Softing新版HART多路复用器现支持图尔克excom和西门子ET 200iSP等远程I/O

Softing工业自动化最近升级了用于访问配置和诊断数据的smartLink SW-HT软件&#xff0c;现在该软件可支持访问图尔克excom和西门子ET 200iSP等远程I/O。 &#xff08;smartLink SW-HT支持访问配置和诊断数据&#xff09; 越来越多的新型远程I/O选择使用以太网来替代PROFIBUS连接…

微信小程序将后端返回的图片文件流解析显示导页面

说明 由于请求接口后端返回的图片格式不是一个完整的url,也不是其他直接能显示的图片格式&#xff0c;是一张图片 后端根据模板与二维码生成图片,返回二进制数据 返回为文件流的格式,用wx.request请求的时候&#xff0c;就自动解码成为了下面这样的数据数据格式,这样的数据没…

【无代码】【VR开发】【Unity】【VRTK】4-导入VRTK Tilia Package

【导入VRTK V4】 VRTK的Tilia Package包含了一整套空间开发方案。导入后你可以在PackageManager中看到它们。 所有的Tilia包都可以在如下页面找到: https://www.vrtk.io/tilia.html Tilia包有一个安装器,可以让你仅仅安装需要的包。包的种类很多,按照适用方向分类。 点击H…

Redis中的渐进式遍历-Scan命令

之前我们学习过遍历命令keys,而keys *是一次性的把整个redis中所有的key都获取到.在不知道当前redis中有多少key的情况下,这个操作是非常危险的,可能会一下子得到太多的key而阻塞redis服务器.从而使其他redis客户端卡顿. 通过渐进式遍历,就可以做到,既可以获取到所有的key,同时…

python链队_队列的链式存储结构

队列是一种先进先出&#xff08;first in first out,FIFO&#xff09;的线性表&#xff0c;是一种常用的数据结构。 它只允许在表的前端&#xff08;front&#xff09;进行删除操作&#xff0c;而在表的后端&#xff08;rear&#xff09;进行插入操作&#xff0c;和栈一样&…

Elasticsearch:在 ES|QL 中使用 DISSECT 和 GROK 进行数据处理

目录 DISSECT 还是 GROK&#xff1f; 或者两者兼而有之&#xff1f; 使用 DISSECT 处理数据 Dissect pattern 术语 例子 DISSECT 关键修饰符 右填充修饰符 (->) 附加修饰符 () 添加顺序修饰符&#xff08; 和 /n&#xff09; 命名的跳过键&#xff08;&#xff1f…

895. 最长上升子序列

题目&#xff1a; 895. 最长上升子序列 - AcWing题库 思路&#xff1a;dp 代码&#xff1a; #include<iostream> #include<cstdio> #include<cmath> using namespace std; typedef long long ll; const int N1010; int f[N];//表示以i结尾的最大上升子序列…

ESP32 未来能够取代 STM32吗?

今日话题&#xff0c;ESP32 未来能够取代 STM32吗&#xff1f;ESP32和STM32各自有其特点和优势&#xff0c;能否取代彼此取决于具体应用和需求。STM32的流行除了性价比外&#xff0c;还有其强大的开发环境&#xff0c;例如Cubemx能够快速生成代码&#xff0c;使得上手STM32的速…

ros1 自定义Publisher消息编程实现示例

整理步骤 cd进入工作空间下的代码空间, 创建功能包&#xff0c;并配置依赖 在功能包里面的代码空间里编写C代码文件 在cmakelist文件里面配置编译规则 cd到工作空间&#xff0c;编译工作空间&#xff0c;source设置环境变量 打开roscore, 运行海龟仿真节点&#xff0c;运行功能…