0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

求解布尔SAT的方法

玻色量子 来源:玻色量子 2023-06-27 09:56 次阅读

摘要:布尔可满足性问题(Boolean Satisfiability Problem,简称SAT问题)是逻辑学和计算机科学中的一个问题,它的目的是确定是否存在一种解释,使给定的布尔公式成立。换句话说,它询问给定布尔公式的变量是否可以被一致地替换为真值或假值,使公式求值为真。如果是这样,那么这个公式就是可满足的。另一方面,如果不存在这样的赋值,那么该公式所表示的函数对于所有可能的变量赋值都为假,该公式不可满足1。

追根溯源,SAT是第一个已知的NP-Complete问题,多伦多大学的Stephen Cook在1971年,国家科学院的Leonid Levin在1973年均独立证明了这一问题。在此之前,NP-Complete问题的概念甚至不存在。另外,证明显示复杂性类NP中的每个决策问题都可以简化为CNF公式的SAT问题,有时也称为“CNFSAT”。

值得注意的是,SAT问题是计算机科学领域最基本的问题之一,有着重要的理论意义和实际应用。在理论研究中,SAT问题是一个经典的判定问题,同样是第一个被证明为NP-Complete的问题。这个决策问题在包括理论计算机科学、复杂性理论、算法、密码学和人工智能等计算机科学的各个领域都至关重要。

在现实场景应用中,SAT是很多工业场景里面的核心工具。尤其在一些包括芯片测试、电路等价性验证、电路模型检测、智慧园区及无线设备的布局、操作系统、航空等对精确度要求很高的核心领域,都需要SAT求解器的重磅参与。例如,芯片SAT分析是一种系统级应用测试分析方法,通过对芯片的性能和可靠性进行全面的测试和分析,以评估芯片在实际应用中的表现。 另外,在腾讯地图中的语音序列调度中,采用SAT算法中的约束加权方法,播报失败率从6.20%可降至2.85%,降幅54%,同时把地图路网更新的内存消耗量降低一半,更新周期缩短一半。

5月,北京玻色量子科技有限公司(以下简称“玻色量子”)在新品发布会上推出的100量子比特相干光量子计算机真机——“天工量子大脑”,旨在快速、且高效地求解NP难的组合优化问题,尤其是Ising问题。而布尔可满足性(SAT)和最大可满足性(Max-SAT)是NP-Complete问题和NP难问题的一类,两者同等重要且更切合实际的组合优化问题。

目前,求解布尔SAT的方法有很多,比如量子退火和经典的随机局部搜索(SLS)求解器。然而,它们都需要巨量步骤来解决困难的SAT问题,这将耗费大量的时间和精力。随着量子计算技术的发展,一个SAT问题可以转化为一个Ising/QUBO问题,从而可由玻色量子的“天工量子大脑”快速高效地求出全局最优解。

那么,为了更清楚的理解SAT问题,下面首先介绍一些基本术语。

基本定义和术语

SAT问题,简单地说就是确定是否存在满足给定布尔公式解释的问题,它需要判断给定布尔公式的变量是否可以一致地替换为值TRUE或FALSE,以使公式的计算结果为TRUE。如果是这种情况,则公式称为“满足”。否则,若不存在这样的赋值,则公式表示的函数对于所有可能的变量赋值都是FALSE,并且公式是不满足的。例如,公式“a AND NOT b”是可以满足的,因为可以找到值a = TRUE和b = FALSE,这使得(aANDNOT b)= TRUE。相反,“a AND NOT a”是无法被满足的,因为找不到这样的a的值。

命题逻辑公式,也称为布尔表达式,由变量,运算符AND(连接,也用∧表示)、OR(分离,∨)、NOT(否定,¬)和括号构成。如果通过为其变量分配适当的逻辑值(即TRUE,FALSE)可以使公式为TRUE,则称该公式是可满足的。给定公式,布尔可满足性问题(SAT)是检查它是否可满足。

布尔可满足性问题有几种特殊情况,其中公式需要具有特定结构。文字是一个变量,称为正文字,或变量的否定,称为负文字。子句是文字(或单个文字)的分离。如果一个子句最多包含一个正文字,则该子句称为Horn子句。如果公式是条款(或单个子句)的连接,则公式为合取范式(CNF)。

例如,x1是正文字,¬x2是负文字,x1∨¬x2是子句,(x1∨¬x2)∧(¬x1∨x2∨x3)∧x1是联合范式的公式;它的第一和第三个条款是Horn条款,但它的第二个条款不是。

最大可满足性问题(Max-SAT)是确定给定布尔公式(以合取范式表示)中最多有多少个子句可以通过对公式变量赋真值来使其成立。它是布尔可满足性问题的推广,后者询问是否存在一种真值赋值使所有子句都成立。

问题描述

2-SAT和3-SAT问题是SAT问题的两种形式,它们的区别在于每个子句中包含的变量数量不同。

具体来说,2-SAT问题中每个子句最多包含两个变量,形如(a∨b)、(¬a∨c)等,其中∨表示逻辑或,¬表示逻辑非。而3-SAT问题中每个子句最多包含三个变量,形如(a∨¬b∨c)、(¬a∨b∨¬c)等。

因为2-SAT问题中每个子句最多包含两个变量,所以可以使用一些特殊的算法(如Kosaraju算法和Tarjan算法)在多项式时间内求解。而3-SAT问题则是NP-Complete问题,目前还没有已知的多项式时间算法可以解决。由于二元变量存在(0/1或者-1/+1)表达形式的区别,常见模型有两种建模思路,在这里分别进行说明。

建模思路一

我们以Max 2-SAT问题进行讨论,将文字表示为0/1的变量,建立QUBO模型。每个子句由两个文字组成,如果其中一个或两个文字都为真,则满足一个子句。对于这个问题有三种可能的子句类型,每一种都有一个传统的约束,如果子句是真的,则必须满足。

下面是三种常见的转换情况:

① 无负文字

例如:(xi∨xj)

传统约束:(xi+xj)≥1

QUBO惩罚项:(1-xi-xj+xixj)

② 一个负文字

例如:(xi∨¬xj)

传统约束:xi+¬xj≥1

QUBO惩罚项:(xj-xixj)

③两个负文字

例如:(¬xi∨¬xj)

传统约束:¬xi+¬xj≥1

QUBO惩罚项:(xixj)

注:由于变量xj为1/0,所以¬xj=1-xj

对于每个子句类型,如果满足传统约束,则对应的惩罚等于0;如果不满足传统约束,则二次惩罚等于1。给定这种一一对应的关系,我们可以通过等价地最小化不满足的子句数量来逼近子句数量最大化问题。通过这种形式我们可以构建一个QUBO模型。

所以,对于给定的Max 2-SAT算例,我们可以添加与问题子句相关的二次惩罚项,得到一个我们想要最小化的复合惩罚函数。由于惩罚项均为二次型,因此该惩罚函数采用QUBO模型形式,min y=xTQx。如果在最小化QUBO模型时等于零,这意味着我们有一个满足所有子句的解;如果等于5,这意味着我们有一个满足除5以外的所有子句的解。

我们用以下4个变量和12个子句的例子来说明这个算例的建模和求解过程。

f29efa98-1486-11ee-962d-dac502259ad0.png

f2b1c196-1486-11ee-962d-dac502259ad0.png

将惩罚项加在一起给出了我们的QUBO模型表达式:

min y=3+x1-2x4-x2x3+x2x4+2x3x4 (1)

或QUBO模型的矩阵形式:

miny=3+xTQx (2)

则Q矩阵表达为

f2f6e0c8-1486-11ee-962d-dac502259ad0.png

求解这个QUBO模型可以得到y=3-2=1,其中x1=x2=x3=0,x4=1。意思是除一个子句外的所有子句都满足。

注:上述QUBO方法已在Kochenberger等人的研究中得到成功应用[2],研究解决了含有数百个变量和数千个子句的Max 2-SAT问题。这种方法求解Max 2-SAT问题的一个有趣的特点是,得到的待求解QUBO模型的大小与问题中的子句数无关,仅由变量的个数决定。因此,一个含有200个变量和30000个子句的Max2-SAT问题可以建模为一个只含有200个变量的QUBO模型并求解。

建模思路二

为了更好地理解这个问题,我们将文字表示为-1/1的变量,继续讨论一个3-Sat问题。

f3064b8a-1486-11ee-962d-dac502259ad0.png

我们讨论一个3-Sat子句:

x1∨x2∨x3

该子句通过引入-1/1辅助变量可以映射成二次函数:

f314fa7c-1486-11ee-962d-dac502259ad0.png

在x0,x1,x2的任意取值中,都有一个使得K最小的值a。如果我们假设a总是被设置为这个最优值,那么除了x0=x1=x2=-1时能量为+1外,其他取值的最低能量都是-7。下表总结了有关变量的取值,其中加粗的数字是给定x0,x1,x2变量的最低可能能量。

f3229b00-1486-11ee-962d-dac502259ad0.png

使用这种方法,如果xi在子句中被否定,我们可以通过将xi替换为-xi来编码任意3-Sat子句。现在,如果我们对求和这些每个子句对应的二次函数,我们可以得到一个关于Nxi自旋变量和Maj辅助自旋的二次函数,从而得到一个大小为N+M的Ising/QUBO问题。如果该问题是可满足的,那么最小的Ising能量将是-7M,如果该问题是不可满足的问题,那么最小的Ising能量为-7Msat,其中Msat是可满足子句的个数。

问题拓展

MAX-SAT是最大可满足性问题,是SAT问题的推广。它要求最大数量的条款,任何转让都可以满足。它具有有效的近似算法,但是NP时间难以精确解决。

在量子计算领域,2023年6月,NTT最新的研究提出了一种相干SAT求解器(CSS)的新技术。使用图形处理器(GPU)实现的Cyber-CSS与现有的SLS求解器(如probSAT)相比有一定的竞争力。未来通过量子计算实现SAT问题的快速求解将成为一种新的有效方法。

如今,玻色量子已基于自研的相干光量子计算机真机——“天工量子大脑”在SAT问题求解上具有显著的算力优势,代表了其在NP-Complete问题上的实用性,以进一步拓展更多可实用化量子计算应用场景。

玻色量子还将启动“燎原计划”开发者平台,并持续对外开放“天工量子大脑”的真机测试,热忱欢迎更多不同领域的研究伙伴前来了解相干量子计算的原理和能力,在此基础上展开共同研发,用量子计算去解决更多真实场景中的问题,让量子计算的超强算力能真正服务于各行各业,满足未来时代对于计算的需求。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409118
  • 计算机
    +关注

    关注

    19

    文章

    6649

    浏览量

    84524
  • 建模
    +关注

    关注

    1

    文章

    280

    浏览量

    60500

原文标题:玻色量子“揭秘”之可满足性问题(SAT)与QUBO建模

文章出处:【微信号:玻色量子,微信公众号:玻色量子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    一种用于随机约束仿真的SAT增强的字级求解

    上取决于产生合法激励的约束求解器的性能。   本文我们首先讨论了字级求解器在求解包含特定操作符(如IF-THEN-ELSE、IMPLIES和布尔OR)的约束时遇到的挑战。为了克服这一挑
    发表于 06-06 10:28 462次阅读
    一种用于随机约束仿真的<b class='flag-5'>SAT</b>增强的字级<b class='flag-5'>求解</b>器

    GPS RTK转换参数求解方法

    GPS RTK转换参数求解方法摘要:GPS RTK 技术是目前测量中具有定位快速, 精度高的一种先进的测量方法. 主要介绍了RTK 在应用过程中求解转换参数的
    发表于 04-26 11:33 71次下载

    采用布尔处理的键盘矩阵解读方法分析

    采用布尔处理的键盘矩阵解读方法分析 运用布尔处理技术对键盘矩阵进行扫描解读: 运用“位”操作方式将整个键盘矩阵的扫描解读
    发表于 03-29 15:13 895次阅读
    采用<b class='flag-5'>布尔</b>处理的键盘矩阵解读<b class='flag-5'>方法</b>分析

    布尔代数,布尔代数是什么意思

    布尔代数,布尔代数是什么意思 布尔代数最初是作为对逻辑思维法则的研究出现的。英国哲学家George Boole于1847年的论文“逻辑之数学分析”及“思维法则之研究”中引
    发表于 03-08 11:04 8010次阅读

    基于硬件模拟的SAT求解框架

    基于硬件模拟的SAT求解框架_何安平
    发表于 01-07 20:49 0次下载

    布尔矩阵乘的分布式异构并行优化

    布尔多项式求解是当今密码代数分析中的关键步骤,F4算法是布尔多项式求解的高效算法。分析了Lachartre为F4矩阵专门设计的高斯消去算法,针对其中
    发表于 11-21 15:32 3次下载

    基于故障树最小割集求解算法

    故障树分析广泛应用于核工业、航空航天和交通控制等安全攸关领域的安全性分析。求解故障树的最小割集是故障树分析的关键步骤。目前,对于大规模故障树的最小割集的求解方法主要是将故障树转化为二元决策图之后
    发表于 11-21 16:05 10次下载
    基于故障树最小割集<b class='flag-5'>求解</b>算法

    基于大规模网络模型间布尔运算

    的交点进行高精度的求解和插值处理,使得布尔运算速度大为提高,从而大大提升复杂拓扑结构的产品设计效率。通过该算法所获得射线段点云模型可获得等同于基于三角网格的渲染效果,该方法可进行工程应用。
    发表于 11-30 17:39 0次下载
    基于大规模网络模型间<b class='flag-5'>布尔</b>运算

    基于硬件可编程逻辑的SAT求解算法研究与进展

    布尔可满足性SAT问题作为第一个被证明的NP完全问题,是计算机理论与应用的核心问题,有着重要的应用价值,因此近年来涌现了各种各样SAT求解器。但是,
    发表于 12-01 17:05 0次下载
    基于硬件可编程逻辑的<b class='flag-5'>SAT</b><b class='flag-5'>求解</b>算法研究与进展

    随机正则(k,r)-SAT问题的可满足临界

    研究k-SAT问题实例中每个变元恰好出现r=2s次,且每个变元对应的正、负文字都出现s次的严格随机正则(K,r)-SAT问题.通过构造一个特殊的独立随机实验,结合一阶矩方法,给出了严格随机正则
    发表于 01-05 15:30 0次下载

    聚类和划分的SAT分治判定

    子句组的可满足性来判定原公式的可满足性,相当于用分治法将复杂问题分解为多个子问题来求解.这种分治判定方法一方面降低了原公式的可满足性判定复杂度;另一方面,由于子句组的判定可以并行,因而判定速度能够得到进一步的提高.对于不能直接产生布尔
    发表于 01-24 17:41 0次下载

    瞬态扩散方程求解方法研究

    中子时空动力学模型是一个刚性模型。求解中子时空动力学模型时,常常将其简化为点堆模型。基于点堆模型提出了如下求解方法:吉尔算法、刚性限制方法(SCM)、线性多步法、四阶隐式龙格库塔法等。
    发表于 03-12 14:54 0次下载

    数列极限的求解方法及案例分析

    数列极限的求解方法及案例分析
    发表于 03-24 10:25 0次下载
    数列极限的<b class='flag-5'>求解</b><b class='flag-5'>方法</b>及案例分析

    基于奖励机制的SAT求解器分支策略综述

    分支决策是CDCL( Conflict Driven Clause Learning)求解器一个十分关键的环节,一个妤的分支策略可以减少分支决策次数进而提高SAT求解器的效率。目前,先进的分支策略
    发表于 05-18 11:53 1次下载

    基于布尔函数导数的布尔置换构造

    布尔函数导数的性质在密码构造中起着重要的作用。文中利用布尔函数导数的性质,构造了一个新的平衡布尔函数然后基于平衡布尔函数与布尔置换的关系,构
    发表于 06-17 10:58 15次下载