CN115391379A - 布尔可满足性问题解的搜索方法、装置、电子设备及介质 - Google Patents
布尔可满足性问题解的搜索方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN115391379A CN115391379A CN202211163796.3A CN202211163796A CN115391379A CN 115391379 A CN115391379 A CN 115391379A CN 202211163796 A CN202211163796 A CN 202211163796A CN 115391379 A CN115391379 A CN 115391379A
- Authority
- CN
- China
- Prior art keywords
- node
- node set
- generating
- boolean satisfiability
- satisfiability problem
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 239000011159 matrix material Substances 0.000 claims abstract description 93
- 230000009467 reduction Effects 0.000 claims abstract description 16
- 238000003860 storage Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 229920003987 resole Polymers 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000009833 condensation Methods 0.000 description 1
- 230000005494 condensation Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种布尔可满足性问题解的搜索方法、装置、电子设备及计算机可读介质。该方法包括:获取节点集合,所述节点集合包括多个节点,每个节点根据其对应的物理含义确定为正极性和负极性;通过所述节点集合中的部分节点之间的组合生成多个子节点集合;基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;基于所述合取范式生成所述节点集合对应的邻接矩阵;通过所述邻接矩阵对所述节点集合进行布尔可满足性问题的归结操作;根据归结操作结果行搜索以确定所述节点集合的布尔可满足性问题的解。
Description
本申请是申请日为2022 年07月21 日,国家申请号为202210858627.5的、名称为“布尔可满足性问题解的搜索方法、装置、电子设备及计算机可读介质”的发明专利申请的分案申请。
技术领域
本公开涉及信息处理领域,具体而言,涉及一种布尔可满足性问题解的搜索方法、装置、电子设备及计算机可读介质。
背景技术
在现实生活中,存在着大量的约束可满足性(Constraint SatisfactionProblem,CSP)问题,这类CSP问题在实际生产中存在着广泛的应用。命题逻辑可满足性(Propositional Satisfiability,SAT)问题是目前研究最为广泛的一类CSP问题。SAT问题是计算机科学领域最基本的问题之一,有着至关重要的实际应用价值。
在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本申请提供一种布尔可满足性问题解的搜索方法、装置、电子设备及计算机可读介质,能够将图算法与稀疏矩阵运算结合,从而优化现有的SAT求解器算法,提高算法的计算效率、减少不必要的开销。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一方面,提出一种布尔可满足性问题解的搜索方法,该方法包括:获取节点集合,所述节点集合包括多个节点,每个节点包含正极性和负极性;通过所述节点集合中的部分节点之间的组合生成多个子节点集合;基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;基于所述合取范式生成所述节点集合对应的邻接矩阵;通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索。
在本申请的一种示例性实施例中,基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式,包括:基于子节点集合中的节点之间的逻辑关系生成子节点集合内的逻辑关系式;基于多个子节点集合之间的逻辑关系生成子节点集合之间的逻辑关系式;根据子节点集合内和子节点之间的逻辑关系式生成所述节点集合的布尔可满足性问题对应的合取范式。
在本申请的一种示例性实施例中,基于所述合取范式生成所述节点集合对应的邻接矩阵,包括:提取所述合取范式对应的代码或拓扑结构;基于所述代码或所述拓扑结构生成所述节点集合对应的邻接矩阵。
在本申请的一种示例性实施例中,通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索,包括:通过所述邻接矩阵求取所述节点集合的最大独立集;通过所述最大独立集对所述节点集合的布尔可满足性问题进行简化以搜索求解。
在本申请的一种示例性实施例中,通过所述邻接矩阵求取所述节点集合的最大独立集,包括:对所述邻接矩阵进行矩阵运算以生成节点关联矩阵;基于所述节点关联矩阵获取所述节点集合之间多个节点的关联关系;基于所述关联关系提取所述节点集合的最大独立集。
在本申请的一种示例性实施例中,通过所述最大独立集对所述节点集合的布尔可满足性问题进行简化以搜索求解,包括:通过所述最大独立集合消元算法对所述节点集合对应的合取范式进行化简;根据化简结果对所述节点集合的布尔可满足性解进行搜索。
在本申请的一种示例性实施例中,通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索,包括:通过所述邻接矩阵对所述节点集合进行布尔可满足性问题的归结操作;根据归结操作结果进行搜索以确定所述节点集合的布尔可满足性问题的解。
在本申请的一种示例性实施例中,通过所述邻接矩阵对所述节点集合进行布尔可满足性问题的归结操作,包括:对所述邻接矩阵进行矩阵异或操作以生成候选矩阵;基于所述候选矩阵生成布尔可满足性问题的归结操作候选集合;基于所述归结操作候选集合对所述节点集合进行归结操作。
在本申请的一种示例性实施例中,基于所述候选矩阵生成布尔可满足性问题的归结操作候选集合,包括:基于所述候选矩阵生成边连接矩阵;根据所述边连接矩阵生成布尔可满足性问题的归结操作候选集合。
根据本申请的一方面,提出一种布尔可满足性问题解的搜索装置,该装置包括:节点模块,用于获取节点集合,所述节点集合包括多个节点,每个节点包含正极性和负极性;集合模块,用于通过所述节点集合中的部分节点之间的组合生成多个子节点集合;公式模块,用于基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;矩阵模块,用于基于所述命令逻辑公式生成所述节点集合对应的邻接矩阵;求解模块,用于通过所述邻接矩阵对所述节点集合的布尔可满足性问题的解进行搜索。
根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本申请的布尔可满足性问题解的搜索方法、装置、电子设备及计算机可读介质,通过获取节点集合,所述节点集合包括多个节点,每个节点包含正极性和负极性;通过所述节点集合中的部分节点之间的组合生成多个子节点集合;基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;基于所述合取范式生成所述节点集合对应的邻接矩阵;通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索的方式,能够将图算法与稀疏矩阵运算结合,从而优化现有的SAT求解器算法,提高算法的计算效率、减少不必要的开销。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种布尔可满足性问题解的搜索方法的流程图。
图2是根据另一示例性实施例示出的一种布尔可满足性问题解的搜索方法的示意图。
图3是根据另一示例性实施例示出的一种布尔可满足性问题解的搜索方法的流程图。
图4是根据另一示例性实施例示出的一种布尔可满足性问题解的搜索方法的示意图。
图5是根据另一示例性实施例示出的一种布尔可满足性问题解的搜索方法的流程图。
图6是根据另一示例性实施例示出的一种布尔可满足性问题解的搜索方法的示意图。
图7是根据一示例性实施例示出的一种布尔可满足性问题解的搜索装置的框图。
图8是根据一示例性实施例示出的一种电子设备的框图。
图9是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
本申请涉及的技术缩略语解释如下:
SAT(Boolean Satisfiability Problem,布尔可满足性问题),简称(Satisfiability)是用来解决给定的真值方程式,是否存在一组变量赋值,使得问题为可满足。布尔可满足性问题(Boolean satisfiability problem, SAT)属于决定性问题(decision problem),也是第一个被证明属于NP完全的问题。此问题在计算机科学上许多的领域都相当地重要,包括计算机科学基础理论、演算法、人工智能、硬件芯片设计等。
NP(Nondeterministic Polynomial,非确定性多项式)类问题是指一个复杂问题不能确定是否在多项式时间内找到答案,但是可以在多项式时间内验证答案是否正确。
DP(Davis-Putnam Algorithm,DP算法)解决约束满足性的最常用算法,即回溯搜索法。
DPLL(Davis-Putnam-Logemann-Loveland Algorithm,DPLL算法)是一种完备的、以回溯为基础的算法,用于解决在合取范式(CNF)中命题逻辑的布尔可满足性问题,也就是解决CNF-SAT问题。
MIS(Maximum Independent Set,最大独立集),当且仅当对于U 中任意点u 和v所构成的边(u,v)不是G 的一条边时,U定义了一个空子图。当且仅当一个子集不被包含在一个更大的点集中时,该点集是图G 的一个独立集,同时它也定义了图G 的空子图。最大独立集是具有最大尺寸的独立集。
如上文所述,在现实生活中存在着大量的CSP问题,在理论研究中,SAT 问题是一个经典的判定问题,同样是第一个被证明为NP完全的问题。
首先在SAT问题中,一般给定一组有n个变量(variable)的集合={x1,x2,…,},以及与其中的每一个变量相关联的2个文字(literal)组成的集合={x1,¬x1,x2,¬x2,…, xn,¬xn}其中,对于变量而言,文字(literal) 是正文字(positive literal),文字“¬”是负文字(negative literal)。
子句(clause)则是由文字集合中的部分若干文字的析取(disjunction)所构成的:即每个子句都可以写成= x1∨x2∨x3…的形式,也就是各个变量的或操作集合(or)。然后通过将m个子句C1,C2, C3,…, CM用与(and)的形式进行合取,这样就很容易的构成了一个”合取范式”(Conjunctive Normal Form,CNF)形式的命题公式F,即=C1∧C2∧ C3∧…∧CM。
一个命题逻辑公式可以看成由一个变量集合和一个子句集合构成的二元组。显而易见,公式中的任意一个子句都处于下列两种状态之一:满足(satisfied)状态或者未满足(unsatisfied)状态;EDA工具的前段通过形式验证,如,寻找错误点;或者逻辑综合用无关(don’t care)机制,如,对逻辑表达式进行优化。
SAT问题在集成电路领域具有非常广泛的应用空间,在集成电路的逻辑节点优化中,可将待优化的节点的集合之间的关系看做SAT问题。如果,能在这些集合之中找到某些可消去或者可看作一个整体的节点,能够大大简化后续的运算。现有的集成电路逻辑优化中的算法都是基于链表的操作,以及递归算法求解,寻找SAT问题的解的效率较低且内存占用空间较大。在本申请中,以集成电路的逻辑优化为例,对SAT问题的解的搜索进行详细说明,值得一提的是,本申请中的方法还可应用在其他领域。
本案申请人发现,SAT问题求解的规模通常都很大,所以如果能先将大问题合理的削减成较小规模问题,若问题削减过程的开销不大,这个较小问题同原问题同构,所求的问题解不变,则会大大地提高全局问题的求解效率。
图1是根据一示例性实施例示出的一种布尔可满足性问题解的搜索方法的流程图。基于上文的说明,结合集成电路中节点优化的一个具体的实施例,来对本申请的内容进行详细描述。布尔可满足性问题解的搜索方法10至少包括步骤S102至S110。
如图1所示,在S102中,获取节点集合,所述节点集合包括多个节点,每个节点包含正极性和负极性。可由集成电路的多级逻辑网络中获取节点集合,每个节点根据其对应的物理含义确定为正极性或负极性。
在S104中,通过所述节点集合中的部分节点之间的组合生成多个子节点集合。可根据待进行优化的目标,将节点划分为多个节点集合。更具体的,跟将一个节点的邻接节点集合作为一个子集合,还可将某个区域内的节点作为一个子集合,本申请不以此为限。
在S106中,基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式。可基于子节点集合中的节点之间的逻辑关系生成子节点集合内的逻辑关系式;基于多个子节点集合之间的逻辑关系生成子节点集合之间的逻辑关系式;根据子节点集合内和子节点之间的逻辑关系式生成所述节点集合的布尔可满足性问题对应的合取范式。
图2是根据另一示例性实施例示出的一种布尔可满足性问题解的搜索方法的流程图。如图2所示的集成电路的网络结构图中,所对应的合取范式可为:
在S108中,基于所述合取范式生成所述节点集合对应的邻接矩阵。可为提取所述合取范式对应的代码或拓扑结构;基于所述代码或所述拓扑结构生成所述节点集合对应的邻接矩阵。
在S110中,通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索。
在一个实施例中,可通过所述邻接矩阵求取所述节点集合的最大独立集;通过所述最大独立集对所述节点集合的布尔可满足性问题进行简化以搜索求解。
在一个实施例中,可通过所述邻接矩阵对所述节点集合进行布尔可满足性问题的归结操作;根据归结操作结果进行搜索以确定所述节点集合的布尔可满足性问题的解。
“通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索”的内容将在后文中详细描述。
根据本申请的布尔可满足性问题解的搜索方法,通过获取节点集合,所述节点集合包括多个节点,每个节点包含正极性和负极性;通过所述节点集合中的部分节点之间的组合生成多个子节点集合;基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;基于所述合取范式生成所述节点集合对应的邻接矩阵;通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索的方式,能够将图算法与稀疏矩阵运算结合,从而优化现有的SAT求解器算法,提高算法的计算效率、减少不必要的开销。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
图3是根据另一示例性实施例示出的一种布尔可满足性问题解的搜索方法的流程图。图3所示的流程30是对图1所示的流程中S110“通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索”的详细描述。
如图3所示,在S302中,通过所述邻接矩阵求取所述节点集合的最大独立集。可对所述邻接矩阵进行矩阵运算以生成节点关联矩阵;基于所述节点关联矩阵获取所述节点集合之间多个节点的关联关系;基于所述关联关系提取所述节点集合的最大独立集。
在S304中,通过所述最大独立集合的消元算法对所述节点集合对应的合取范式进行化简。
在S306中,根据化简结果对所述节点集合的布尔可满足性解进行搜索。
如上文所述,假设给定:
如果,C=FALSE,则C4,C5可以被消掉,C2中的文字C可以被消掉,这样就可以得到新的,这样问题的规模现在就缩小了,同时记录A的赋值为FALSE。但是根据变量的选取不同的策略给出不同的效果,常见的随机(random)选取可能效果并不好。假设现在先选取的是B=TRUE,则只能消去C1、化简C3=D。
上面的CNFΔ可以通过邻接矩阵(Adjacency Matrix)表示,如下:
通过邻接矩阵可以求得变量间的关联矩阵D,如图2中算法的公式D←MT×M-I;如下所示:
可以通过MIS={B,C},如图2所示,变量C、B是候选化简对象,以变量C为例,其所在的语句为{C2,C4,C5},按照极性(polarity),这些语句的索引分为ids+={2}和ids-={4,5}。ids-的个数大于ids+,所以, idsr=ids-;记录C=FALSE,并将语句C4,C5从CNFΔ中消掉。
本公开申请人发现,可将图算法抽象为线性代数运算入手,以动态规划DP为例,从某节点出发到其子节点的消息传递通过线性代数表达为一次邻接矩阵(adjacencymatrix)和距离矢量(distance vector)的操作,类比矩阵与矢量乘法Ci,j=∑kAi,k×Bk,j,可将∑k(•)替换成mink (•),“×”运算替换成“+”,则新的公式Ci,j=mink (Ai,k+ Bk,j) 同构,这个新的公式在动态规划DP运算中相当于从节点i对下一层所有有连接关系的节点k传递自己的值,然后每个节点k计算其到i节点的距离(+),节点j再从所有结果中选取最小值(min)更新自己到i的距离值。
如图4所示,公式进一步抽象成矩阵表达式为,OP1执行逐元操作(elment wise operation),OP2为缩合(reduction),模拟出矩阵乘。那么动态规划DP的一步就可以表达成。通过图算法与稀疏矩阵运算结合,运用在逻辑综合算法本身的优化上,能够提高算法的计算效率和减少不必要的开销。
图5是根据另一示例性实施例示出的一种布尔可满足性问题解的搜索方法的流程图。基于上文的说明,对图5所示的流程50进行说明,流程50是对图1所示的流程中S110“通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索”的详细描述。
如图5所示,在S502中,对所述邻接矩阵进行矩阵异或操作以生成候选矩阵。
利用上文中的说明,可以进一步对SAT求解算法中的归结(resolution)操作进行代数化处理。还是以
在S504中,基于所述候选矩阵生成布尔可满足性问题的归结操作候选集合。可基于所述候选矩阵生成边连接矩阵;根据所述边连接矩阵生成布尔可满足性问题的归结操作候选集合。
如上文的矩阵R中表示得到所有可能的resolution操作候选,如R[3, 1]代表C1和C3可以进行resolution操作。为了更好地找到合理的配对进行resolution,可进一步将R转换成Q的边的连接关系R’。如图6所示,graph R的节点C1和C3的边对应右侧graph Q的节点{1,3}。构建了图7最右侧Q,可以进一步计算它的MIS={{1,3},{2,4}}。(Line graph ®MIS)。
在S506中,基于所述归结操作候选集合对所述节点集合进行归结操作。{1,3}和{2,4}分别是要找的语句配对,resolution操作如下:
C6←resol(C2, C4)= {¬A,¬D }
C7←resol(C1, C3)= {¬A, D }
这样得到新的语句C6= {¬A,¬D }和C7= {¬A, D }
在S508中,根据归结操作结果进行搜索以确定所述节点集合的布尔可满足性问题的解。
本申请的布尔可满足性问题解的搜索方法,利用图结构的线性代数表达,将图算法与稀疏矩阵运算结合,运用在SAT求解器算法的优化上,提高算法的计算效率和减少不必要的开销。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU 执行的计算机程序。在该计算机程序被CPU 执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图7是根据一示例性实施例示出的一种布尔可满足性问题解的搜索装置的框图。如图7所示,布尔可满足性问题解的搜索装置70包括:节点模块702,集合模块704,公式模块706,矩阵模块708,求解模块710。
节点模块702用于获取节点集合,所述节点集合包括多个节点,每个节点包含正极性和负极性;
集合模块704用于通过所述节点集合中的部分节点之间的组合生成多个子节点集合;
公式模块706用于基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;公式模块706还用于基于子节点集合中的节点之间的逻辑关系生成子节点集合内的逻辑关系式;基于多个子节点集合之间的逻辑关系生成子节点集合之间的逻辑关系式;根据子节点集合内和子节点之间的逻辑关系式生成所述节点集合的布尔可满足性问题对应的合取范式。
矩阵模块708用于基于所述命令逻辑公式生成所述节点集合对应的邻接矩阵;矩阵模块708还用于提取所述合取范式对应的代码或拓扑结构;基于所述代码或所述拓扑结构生成所述节点集合对应的邻接矩阵。
求解模块710用于通过所述邻接矩阵对所述节点集合的布尔可满足性问题的解进行搜索。求解模块710还用于通过所述邻接矩阵求取所述节点集合的最大独立集;通过所述最大独立集对所述节点集合的布尔可满足性问题进行简化以搜索求解。
求解模块710还用于通过所述邻接矩阵对所述节点集合进行布尔可满足性问题的归结操作;根据归结操作结果进行搜索以确定所述节点集合的布尔可满足性问题的解。
根据本申请的布尔可满足性问题解的搜索装置,通过获取节点集合,所述节点集合包括多个节点,每个节点包含正极性和负极性;通过所述节点集合中的部分节点之间的组合生成多个子节点集合;基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;基于所述合取范式生成所述节点集合对应的邻接矩阵;通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索的方式,能够将图算法与稀疏矩阵运算结合,从而优化现有的SAT求解器算法,提高算法的计算效率、减少不必要的开销。
图8是根据一示例性实施例示出的一种电子设备的框图。
下面参照图8来描述根据本申请的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:至少一个处理单元810、至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1,图3,图5中所示的步骤。
所述存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
所述存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备800’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备800交互的设备通信,和/或该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器860可以通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图9所示,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:获取节点集合,所述节点集合包括多个节点,每个节点包含正极性和负极性;通过所述节点集合中的部分节点之间的组合生成多个子节点集合;基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;基于所述合取范式生成所述节点集合对应的邻接矩阵;通过所述邻接矩阵对所述节点集合的布尔可满足性问题解进行搜索。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (8)
1.一种布尔可满足性问题解的搜索方法,其特征在于,包括:
由集成电路的多级逻辑网络中获取节点集合,所述节点集合包括多个节点,每个节点根据其对应的物理含义确定为正极性和负极性;
通过所述节点集合中的部分节点之间的组合生成多个子节点集合;
基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;
基于所述合取范式生成所述节点集合对应的邻接矩阵;
通过所述邻接矩阵对所述节点集合进行布尔可满足性问题的归结操作;
根据归结操作结果行搜索以确定所述节点集合的布尔可满足性问题的解。
2.如权利要求1所述的方法,其特征在于,基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式,包括:
基于子节点集合中的节点之间的逻辑关系生成子节点集合内的逻辑关系式;
基于多个子节点集合之间的逻辑关系生成子节点集合之间的逻辑关系式;
根据子节点集合内和子节点之间的逻辑关系式生成所述节点集合的布尔可满足性问题对应的合取范式。
3.如权利要求1所述的方法,其特征在于,基于所述合取范式生成所述节点集合对应的邻接矩阵,包括:
提取所述合取范式对应的代码或拓扑结构;
基于所述代码或所述拓扑结构生成所述节点集合对应的邻接矩阵。
4.如权利要求1所述的方法,其特征在于,通过所述邻接矩阵对所述节点集合进行布尔可满足性问题的归结操作,包括:
对所述邻接矩阵进行矩阵异或操作以生成候选矩阵;
基于所述候选矩阵生成布尔可满足性问题的归结操作候选集合;
基于所述归结操作候选集合对所述节点集合进行归结操作。
5.如权利要求4所述的方法,其特征在于,基于所述候选矩阵生成布尔可满足性问题的归结操作候选集合,包括:
基于所述候选矩阵生成边连接矩阵;
根据所述边连接矩阵生成布尔可满足性问题的归结操作候选集合。
6.一种布尔可满足性问题的求解装置,其特征在于,包括:
节点模块,用于由集成电路的多级逻辑网络中获取节点集合,所述节点集合包括多个节点,每个节点根据其对应的物理含义确定为正极性和负极性;
集合模块,用于通过所述节点集合中的部分节点之间的组合生成多个子节点集合;
公式模块,用于基于所述多个子节点集合生成所述节点集合的布尔可满足性问题对应的合取范式;
矩阵模块,用于基于所述命令逻辑公式生成所述节点集合对应的邻接矩阵;
求解模块,用于通过所述邻接矩阵对所述节点集合进行布尔可满足性问题的归结操作,根据归结操作结果进行搜索以确定所述节点集合的布尔可满足性问题的解。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
8.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211163796.3A CN115391379B (zh) | 2022-07-21 | 2022-07-21 | 布尔可满足性问题解的搜索方法、装置、电子设备及介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211163796.3A CN115391379B (zh) | 2022-07-21 | 2022-07-21 | 布尔可满足性问题解的搜索方法、装置、电子设备及介质 |
CN202210858627.5A CN114936220B (zh) | 2022-07-21 | 2022-07-21 | 布尔可满足性问题解的搜索方法、装置、电子设备及介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210858627.5A Division CN114936220B (zh) | 2022-07-21 | 2022-07-21 | 布尔可满足性问题解的搜索方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115391379A true CN115391379A (zh) | 2022-11-25 |
CN115391379B CN115391379B (zh) | 2023-12-26 |
Family
ID=82869119
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211163796.3A Active CN115391379B (zh) | 2022-07-21 | 2022-07-21 | 布尔可满足性问题解的搜索方法、装置、电子设备及介质 |
CN202210858627.5A Active CN114936220B (zh) | 2022-07-21 | 2022-07-21 | 布尔可满足性问题解的搜索方法、装置、电子设备及介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210858627.5A Active CN114936220B (zh) | 2022-07-21 | 2022-07-21 | 布尔可满足性问题解的搜索方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN115391379B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107945275A (zh) * | 2017-12-14 | 2018-04-20 | 中国科学院重庆绿色智能技术研究院 | 一种基于代数化的快速逻辑决策方法 |
CN110826812A (zh) * | 2019-11-13 | 2020-02-21 | 南京航空航天大学 | 一种基于图的布尔可满足性问题的目标算法预测方法 |
CN112597347A (zh) * | 2020-12-14 | 2021-04-02 | 中山大学 | 一种基于局部搜索的故障树最大概率最小割集求解方法 |
US20220044097A1 (en) * | 2020-08-04 | 2022-02-10 | Deepmind Technologies Limited | Boolean satisfiability problem solving using restricted boltzmann machines |
CN114091392A (zh) * | 2021-11-19 | 2022-02-25 | 中国科学院重庆绿色智能技术研究院 | 基于线性规划的布尔可满足性判定方法 |
CN114722748A (zh) * | 2022-04-15 | 2022-07-08 | 上海华大九天信息科技有限公司 | 一种基于合取范式的半张量积sat求解方法及装置 |
-
2022
- 2022-07-21 CN CN202211163796.3A patent/CN115391379B/zh active Active
- 2022-07-21 CN CN202210858627.5A patent/CN114936220B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107945275A (zh) * | 2017-12-14 | 2018-04-20 | 中国科学院重庆绿色智能技术研究院 | 一种基于代数化的快速逻辑决策方法 |
CN110826812A (zh) * | 2019-11-13 | 2020-02-21 | 南京航空航天大学 | 一种基于图的布尔可满足性问题的目标算法预测方法 |
US20220044097A1 (en) * | 2020-08-04 | 2022-02-10 | Deepmind Technologies Limited | Boolean satisfiability problem solving using restricted boltzmann machines |
CN112597347A (zh) * | 2020-12-14 | 2021-04-02 | 中山大学 | 一种基于局部搜索的故障树最大概率最小割集求解方法 |
CN114091392A (zh) * | 2021-11-19 | 2022-02-25 | 中国科学院重庆绿色智能技术研究院 | 基于线性规划的布尔可满足性判定方法 |
CN114722748A (zh) * | 2022-04-15 | 2022-07-08 | 上海华大九天信息科技有限公司 | 一种基于合取范式的半张量积sat求解方法及装置 |
Non-Patent Citations (1)
Title |
---|
CHRISTIAN SCHRIDDE: "THE PERMANENT, GRAPH GADGETS AND COUNTING SOLUTIONS FOR CERTAIN TYPES OF PLANAR FORMULAS", 《ARXIV:1205.4124V1》, pages 1 - 20 * |
Also Published As
Publication number | Publication date |
---|---|
CN115391379B (zh) | 2023-12-26 |
CN114936220A (zh) | 2022-08-23 |
CN114936220B (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Graph-to-tree learning for solving math word problems | |
Onoe et al. | Learning to denoise distantly-labeled data for entity typing | |
CN111104518A (zh) | 用于从用户生成的内容建立演化本体的系统和方法 | |
Chen et al. | Efficient second-order gradient boosting for conditional random fields | |
Zhang et al. | Taxonomy completion via triplet matching network | |
Yang et al. | Co-embedding network nodes and hierarchical labels with taxonomy based generative adversarial networks | |
Aparício et al. | Graphlet-orbit Transitions (GoT): A fingerprint for temporal network comparison | |
Tran et al. | Analyzing knowledge graph embedding methods from a multi-embedding interaction perspective | |
US20210390464A1 (en) | Learning interpretable relationships between entities, relations, and concepts via bayesian structure learning on open domain facts | |
Tang et al. | Bayesian estimation‐based sentiment word embedding model for sentiment analysis | |
Phan et al. | A New Fuzzy Logic‐Based Similarity Measure Applied to Large Gap Imputation for Uncorrelated Multivariate Time Series | |
Wang et al. | Optimizing the topology of Bayesian network classifiers by applying conditional entropy to mine causal relationships between attributes | |
Yang et al. | HackRL: Reinforcement learning with hierarchical attention for cross-graph knowledge fusion and collaborative reasoning | |
Xian et al. | Exacta: Explainable column annotation | |
Ramazzotti et al. | Efficient computational strategies to learn the structure of probabilistic graphical models of cumulative phenomena | |
Schwier et al. | Zero knowledge hidden markov model inference | |
Leonelli et al. | Structural learning of simple staged trees | |
Hong et al. | Rule-enhanced noisy knowledge graph embedding via low-quality error detection | |
Tang et al. | Deep graph alignment network | |
CN114936220B (zh) | 布尔可满足性问题解的搜索方法、装置、电子设备及介质 | |
Kong et al. | A neural bag-of-words modelling framework for link prediction in knowledge bases with sparse connectivity | |
Zheng et al. | FairGen: Towards Fair Graph Generation | |
Chen et al. | A trigger-free method enhanced by coreference information for document-level event extraction | |
Pang et al. | Tri-domain pattern preserving sign prediction for signed networks | |
Huang et al. | HmcNet: A General Approach for Hierarchical Multi-Label Classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |