SAT问题.

Slides:



Advertisements
Similar presentations
校园及周边治安防范 暨应急预案桌面演练 实 训 乐山应急管理学会 贾 伟. 目 录 校园治安问题包含的内容 校园治安问题的特点 避免引发校园治安问题的对策 校园应急预案桌面演练实训 校园治安问题的成因.
Advertisements

“ 我不能 上学了,我 每天还要帮 家里拾柴火 呢。 ” 给远方的小学生写一封信 书信的基本格式: 开头顶格写称呼,打上冒号; 换行空两格写问候语; 接下来换行空两格写正文部分; 正文结束后,换行写祝颂语; 最后在右下方写上寄信人姓名和 写信日期。
化学是一门以实验为基础的科学 广元市零八一中学 化学备课组 化学是一门以实验为基础的科学,化学 的许多重大发现和研究成果都是通过实 验得到的。由此可见实验在化学学习过 程中的重要地位:学好了化学实验,就 为我们学好整个化学打下坚实的基础。 【新课引入】
中醫藥就醫用藥 - 婦女篇 中醫藥安全衛生教育資源中心 中醫藥就醫用藥百分百、就是藥做到: 停、看、聽、選、用專業.
下背痛 林口長庚醫院內科 住院醫師 毛畯台. 下背痛常見原因 軟組織受傷/背部筋膜發炎 椎間盤突出症 脊椎退化性關節炎 壓迫性骨折 椎間盤滑脫 惡性腫瘤 泌尿道疾患 姿勢不良.
華德學校上午校 「協助小學中國語文科教師建立專業學習型社群」計劃 (2008) 總結分享會 二零零九年一月十日.
園藝二乙 1 號 丁楷儒 32 號 孫子恩. 1. 福山萵苣 ( 大陸妹 ) : 福山萵苣,萵苣家族成員之一,鮮甜脆綠又帶有萵苣類的 特殊苦味,用來代替生菜搭配烤肉也別具風味。極少病蟲 害,只需定時澆水施肥就能健康長大,是相當容易種植又 能有大收穫的蔬菜 。 感想: 雖然大陸妹好吃又好種,但種了太多而吃不完.
开远市第一中学 2014年高考志愿填报指导会 2014年6月26日.
“321人才计划”情况介绍 南京高新技术产业开发区 人才工作办公室.
贴着生活写作 慈溪中学 黄宏武.
第五单元 口语交际和作文.
第八章 負債 8-1 負債之意義及內容 8-2 流動負債 8-3 長期負債 8-4 其他負債.
工业财务状况表 财务部分培训 (2010年年报).
南宁市中考网上报名录取系统 使用手册 2014年5月.
3.2 农业区位因素与农业地域类型.
第三部分 木薯淀粉 木薯是世界七大作物之一,与马铃薯、红薯并列为世界三大薯类作物。木薯的主要用途是食用、饲用和在工业上开发利用,世界上木薯全部产量的65%用于人类食物,工业上木薯主要用于提取淀粉,可制浆料、酒精、果糖、葡萄糖、味精、塑料纤维、塑料薄膜、涂料和胶粘剂等。世界木薯制品的主要贸易国集中在亚洲和西欧地区,排名前五位的国家和地区分别是中国、韩国、荷兰、西班牙和比利时。
定海区渔农村集体资产 股份合作制改革工作 档案管理培训班
指 导:高歌老师 责任编辑:汤杰林 杜峥 供 稿:课代表 班委会 团长 栏目创编:张廷信 技术编辑:汤杰林 杜峥 常务编辑:杜峥
北京市工作居住证办理讲解.
自傳 82410陳信宏.
中学生社会适应问题及其调适.
祝贺您获得国家留学基金资助 请您登陆“国家留学网”查看《出国留学人员须知》,您在出国前及在外学习期间所需要办理的手续及具体流程,以及可能遇到的政策上疑问均在此《须知》上有所列明。
实际问题与一元二次方程(一).
如何調適兩性關係--- 婚前與婚後.
恒泰期货研究所2016年 期债暴跌告一段落,短期波动降低 国债期货周报
邮币卡开户、银行签约、出入金流程.
审题与立意 夏邑高中高四语文组.
把握高考改革的历史机遇 实现学校跨越式发展
述职报告 ( 二○○七年度 ) 述职人: xxx 部 门: 计划财务部 岗 位: 部门经理.
实验一:分析“征途游戏”网站的类型与推广手段
20.1.1平均数 问题1:某市三个郊县的人数及人均耕地面积如下表,求这个郊县的人均耕地面积是多少?(精确到0.01公顷).
杜甫诗三首 《望岳》 《春望》 《石壕吏》 授课人:姚晓霞.
簡報內容 網路請購系統說明 經費授權注意事項 請購單&授權應用範例 系統環境及設定. 簡報內容 網路請購系統說明 經費授權注意事項 請購單&授權應用範例 系統環境及設定.
关于职教发展的几个理念 上海市教育科学研究院 周亚弟.
负 债 第九章 主讲老师:潘煜双 方正为人,勤慎治学.
解放軍論壇 中共信息戰發展 對我國軍事戰略之影響.
組員:簡年佑組員:xxx 組員:xxx組員:xxx
第三課 宗教(倫理)的獨特向度 單元 3.2 全球倫理:兩項原則和四項座右銘
如何調適兩性關係--- 婚前與婚後.
簡報 石門水庫及其集水區整治計畫 之水庫集水區保育 第2次評鑑 中華民國97年01月23日 交通部公路總局第一區養護工程處
科學與科技課程 教師分享會 二OO四年五月七日.
专题五 高瞻远瞩 把握未来 ——信息化战争 主讲教师:.
文書檔案與實務概述 103年7月30日 主講人:總務處文書組單秀琴組長.
第九章 病人卧位与安全的护理.
第十章 现代秘书协调工作.
第Ⅲ部分 知识、推理与规划 第7章 逻辑Agent 中国科大 计算机学院.
北京市医师定期考核信息管理系统 在线考试培训会 北京市卫生和计划生育委员会 北京市医师定期考核办公室 2016年9月
陈 汉 文 厦门大学会计系 主任 经济学教授 博士生导师
我真的很不想活,日子過得太沒有意思了。. 我真的很不想活,日子過得太沒有意思了。 聽起來,你現在的日子真難熬,你 願意說說看為什麼嗎?
老员工心态管理.
杜甫诗三首 《望岳》 《春望》 《石壕吏》.
10.2 直方图.
產品責任險的意義 想一想,什麼是「產品責任險」? Q
清华大学 计算机科学与技术系 李恺威 简单数理逻辑及其应用 清华大学 计算机科学与技术系 李恺威
港口股份有限公司东源分公司 降本增效 部门:机械队流机二班 发言人:程广州.
吉林省信息技术与教学融合优质课大赛 参赛教师提交大赛作品流程 吉林省电化教育馆.
織物的認識 演示者:陳明玲 美容科:家政概論.
古诗鉴赏.
公 共 关 系 主编:谢苏.
地質篇 Unit_04_地質年代.
國民年金 np97006.
杭州国家粮食交易中心 欢迎您!.
大葉服務學習執行說明 課外活動暨服務學習中心:黃泰元.
一切都是課程 『國際教育』在明道.
《算法设计技巧与分析》 第10章 NP完全问题 朱友文
道家的中心觀念.
Module_5_Unit_4_ppt Unit4:非线性系统的描述函数法 东北大学《自动控制原理》课程组.
學生學習診斷與進展評量 測驗科目:第一次國語文、第二次數學 (數學要帶紙筆計算)
请大家起立,练习“站桩”:两手平伸,两脚与肩间宽,双脚尽量下蹲,上身保持平直。
Presentation transcript:

SAT问题

内容 什么是SAT问题 SAT问题的重要性 DPLL算法

SAT问题 布尔变量是值域只有两个元素0和1的变量 一个只由布尔变量形成的CSP问题又称为SAT问题 可以将SAT问题看做是一类特殊的CSP问题,不过因为SAT是一类重要的问题,在现实中和理论上有着重要的意义,因此我们将重新给出SAT问题的定义

SAT问题的相关定义 一般来说,SAT问题是判定一个命题公式是否可满足的问题,通常这个命题公式是CNF公式。相关定义如下: 文字:布尔变量x和布尔变量的非﹁x称为文字,前者为正文字,后者为负文字 子句:l1∨… ∨ lk形式的式子称为子句,其中∨是逻辑上的析取连接词, li是文字;子句也常被表示为文字的集合 CNF公式:C1 ∧… ∧ Cm为CNF公式,其中∧是逻辑上的合取连接词,Ci是子句; CNF公式也常被表示为子句的集合

SAT问题的相关定义 赋值t:变量到{0,1}的映射 对于文字l: t(l) = 1当且仅当: l为正文字x且t(x) = 1 对于子句C=l1∨… ∨ lk: t(C)=1当且仅当 对于某个li有t(li) = 1 对于公式F= C1 ∧… ∧ Cm:t(F)=1当且仅当 对于所有的Ci有t(Ci) = 1

SAT问题的相关定义 这样一个SAT问题就是: 给定一个CNF公式F,判定它是否存在一个赋值t,使得t(F)=1

SAT问题的重要性 SAT问题是一个重要的问题,它是最早被证明为NP完全的问题之一;目前SAT问题还被用于编码一些实际应用问题,比如人工智能问题,形式验证问题等 现在的SAT求解器能求解的问题的规模:百万个变量,千万个子句

SAT的理论意义 [Cook 70] 中指出SAT 是NPC的

图染色问题 每个节点染且仅染一种颜色,相邻的节点颜色不同 图是否能2染色? 图是否能3染色? 图是否能K(k>3)染色? Decidable in P. 图是否能3染色? NP-complete. 图是否能K(k>3)染色?

SAT问题的实践意义 SAT 问题在实践中主要应用于: 验证和测试电路图案 两个电路的等价性检测 软件的可达性分析 程序的形式验证 ……

求解SAT 尝试所有的赋值可能 应用一些启发式策略来生成比较可能满足布尔公式的赋值 当有 n 个变量时,需要尝试 2n 个可能的组合 指数爆炸 应用一些启发式策略来生成比较可能满足布尔公式的赋值

SAT求解器 SAT求解器是求解SAT问题的算法,它以一个CNF公式作为输入,以0,1作为输出,表示该公式是否可满足。有的求解器还可以给出满足的解,或者不满足的原因 SAT求解器分为完全求解器和不完全求解器两种

完全求解器 穷尽搜索空间 只要有足够的时间,一定能够给出答案 适用于实际应用中的问题

不完全求解器 大多采用局部搜索方法 当问题可满足的时候,有可能给出答案,也有可能给不出答案 当问题不可满足的时候,无法给出答案 适用于随机产生的CNF公式

DPLL SAT 求解器 Davis-Putnam-Logemann-Loveland 算法(1960,1962). 最近的一些途径 它提供了一个结构化的方法来枚举可能的赋值。 Chronological backtracking 最近的一些途径 Conflict analysis & learning Non-chronological backtracking Search space pruning

DPLL算法简述 它是一个回溯搜索算法 它的基本思想是每次选中一个未被赋值的变量进行赋值,然后判断该赋值是否满足整个公式: 满足:结束搜索; 导致冲突(某个子句为0):回溯; 否则:对下一个变量进行赋值

DPLL算法的例子

DPLL算法的例子 上图是一个典型的DPLL算法过程,是一个树状结构 分别给变量a,b,c赋值,给变量赋值为1用变量本身表示,赋值为0用变量的非表示 当给变量a,b,c分别赋值为1,1,0的时候,遇到了冲突,这时需要回溯到b,重新给b赋值

DPLL 算法 decide-next-branch() deduce() – 单元值传播(unit propagation): 选择一个没有被赋值的变量,并给定一个赋值 deduce() – 单元值传播(unit propagation): 如果有一个没有赋值的变量,给它一个赋值,从这个赋值出发做BCP (Boolean Constraint Propagation). BCP 反复的应用单子句规则(当有一个子句变成单子句的时候触发) BCP 也可能应用其它的规则 如果没有发现冲突,选择下一个没有被赋值的变量;反之,回溯。 analyze-conflict() 找出导致冲突(一个变量既被赋值为真又被赋值为假 )的原因,有的时候还会添加一些新的子句来约束后面的搜索。 backtrack() 回溯,取消一些赋值和他们诱导出的赋值。

DPLL 算法详解

例子 f = a (b + c + d) (b’ + c) (b’ + d) (x’ + y’) (x + z’) (x’ + b’ + y) (x + b’ + z) (c + d + y’ + z’). a = 1. f = (b + c + d) (b’ + c) (b’ + d) (x’ + y’) (x + z’) (x’ + b’ + y) (x + b’ + z) (c + d + y’ + z’). 决策(分支)变量: b = 1. f = c d (x’ + y’) (x + z’) (x’ + y) (x + z) (c + d + y’ + z’). c = 1, d = 1. f = (x’ + y’) (x + z’) (x’ + y) (x + z). 决策变量: x = 1. f = y’ y . 冲突

例子(续) f可满足 f = (x’ + y’) (x + z’) (x’ + y) (x + z). f = z’ z. 翻转最近的决策变量赋值,i.e., x = 0. f = z’ z. 还是冲突,翻转再上一个决策变量赋值, i.e., b = 0. f = (c + d) (x’ + y’) (x + z’) (c + d + y’ + z’). 决策变量: x = 1. f = (c + d) y’ (c + d + y’ + z’). y = 0. f = (c + d). 决策变量: c = 1. f = 1. f可满足

ZChaff: 优化BCP BCP占据了求解的大量时间(大概80%) BCP没有必要检查所有的子句是否变成了单子句。 每一个子句选择2个文字作为观察文字(watching literals ),仅当有一个观察文字都为假的时候这个子句才可能变成单子句。 一个赋值 (x = 1) 仅可能将包括x’的子句变成单子句,类似的性质对 (x = 0)也成立。 需要一个高效的数据结构

ZChaff: 启发式分支策略 分支决策变量的选取显著的影响了搜索树的深度 搜索应该局部化 出现频繁的文字似乎是自然的选择 搜索应该局部化 即,冲突分析后,应该选择那些导致冲突的文字做为决策文字 每一个变量都分配一个计数器,子句中出现一次变量,该变量就累加一。我们可以选择没有赋值的变量中,该值最高的变量做为决策变量。 由于冲突分析会引入lemma子句加入,这个策略会使得搜索倾向于局部化。

ZChaff: 有效的冲突分析 当冲突分析的时候,我们还应该添加一些子句来避免重复的子空间搜索。 例,如果按照a, b, c, d, e的顺序搜索,那么如果冲突分析得出是a导致的冲突,那么我们不需要按照年代顺序一步步回溯回去,直接跳到a即可,这样就避免了重复的子空间搜索。

ZChaff:有效的冲突分析(续) 假设有两个互相冲突的单子句P和Q。 考虑P和Q中那些导致他们成为单子句的变量。 如果那些变量是a, b, c (他们的赋值为1)和d, e, f (他们的赋值为0),那么我们将添加子句 (a’ + b’ + c’ + d + e + f)。

x1’ +x9+x10+x11

Unique Implication Point UIP = 当前决策层上,决策变量到冲突的路径都经过的点 x1 is UIP (decision variable causing is always a UIP) x4 is UIP

Limiting Learned Clauses 保留较短的子句(较少的文字) zChaff 推荐仅保留最靠近冲突的UIP lemma[Zhang et al., ICCAD2001] 类似cache的处理,周期性的舍弃一部分lemma 用活跃性统计来保留最有用的子句 [minisat 1.2] CALTECH CS137 Fall2005 -- DeHon