一种基于LAF剪枝决策的快速判定方法与流程

文档序号:16468602发布日期:2019-01-02 22:55阅读:242来源:国知局
一种基于LAF剪枝决策的快速判定方法与流程

本发明涉及计算机领域,尤其涉及一种基于laf剪枝决策的快速判定方法。



背景技术:

布尔可满足性问题(sat问题),即判定是否存在满足给定布尔公式的解释的问题,是第一个被发现的np完全问题。sat求解器可用于数理逻辑、人工智能、组合优化、电路设计与验证等领域,求解sat算法的改进将对计算机科学与软件工程有很大的影响。

dpll算法是一种求解sat的完备性算法,运用了搜索与推理的技术,只要能够求出一个满足布尔公式的赋值,这个公式就是可满足的;如果最终搜索不到满足这个公式的赋值,则说明所有赋值都不能满足公式,即这个布尔公式是不可满足的。尽管基于dpll的完备算法有各种改进(如cdcl等),但最坏时间复杂度仍然是指数级别,因此不适合在短时间内处理大规模的sat问题。不完备算法中,有优化方法、统计物理的方法、基于dpll的局部搜索等。这些方法虽然效率有所提高,但往往陷入局部最优。大部分的不完备算法在找不到满足公式的赋值时,无法确定公式是不可满足的。

近来,有一种laf的sat求解算法,先将sat问题逐步转化为1-in-3-sat问题,然后做两次线性化求解。这是一种多项式时间的不完备方法,该方法对于不可满足1-in-3-sat问题的判定非常有效。但是,这种方法无法计算出1-in-3-sat可满足问题的可满足赋值。



技术实现要素:

鉴于以上所述现有技术的缺点,本发明提供一种基于laf剪枝决策的快速判定方法,以解决上述技术问题。

本发明提供的基于laf剪枝决策的快速判定方法,包括:

s1.根据决策判断问题建立布尔命题逻辑公式,并将所述布尔命题逻辑公式转化为1-in-3-sat公式;

s2.通过laf判断所述1-in-3-sat公式是否相容:如相容,则输出公式可满足及满足公式的赋值,并终止;如不相容,则输出公式不可满足,并终止;

如不能通过laf判定所述1-in-3-sat公式是否相容,则进入步骤s3;

s3.计算二次延拓布尔方程组的再线性化系统是否有常数解:

如果有0-1常数解,则进入步骤s4;

如果没有0-1常数解,则进入步骤s5;

s4.根据所述常数解,获取化简公式,并进入步骤s2;

s5.设搜索过程中需要赋值的变元为x=(x′1,...,x′k),定义0-1串τ=(τ1,...,τp),p≤k,若赋给x′j值1,τj=1;若赋给x′j值0,τj=0;

s6.通过对未赋值的变元中进行选取并赋值,获取化简公式,并进入步骤s7;

s7.利用laf判定所述化简公式是否相容:

如相容,则输出公式可满足及满足公式的赋值,并终止;

如不相容,则进入步骤s8;

如不能通过laf判定所述化简公式是否相容,则进入步骤s6;

s8.若则进入步骤s10;否则,进入步骤s9;

s9.x′i翻转为0,进入步骤s12;

s10.若τ1=1,则进入步骤s11;否则,输出不可判定,并终止;

s11.x′1′翻转为0,取消其他变元的赋值,进入步骤s12;

s12:代入变更的赋值得到化简公式,进入步骤s13;

s13:利用laf判定化简公式是否相容:

如果公式相容,则输出公式可满足及满足公式的赋值,并且算法终止;

如果不相容,则输出公式不相容,则进入步骤s10;

如果laf不可判定公式是否相容,则进入步骤s6。

进一步,所述二次延拓布尔方程组的再线性化系统通过如下方法获取:

将所述1-in-3-sat公式,转换为等价的线性布尔系统;

将所述等价的线性布尔系统进行二次延拓,获取二次延拓布尔方程组;

根据所述二次延拓布尔方程组,获取再线性化系统。

进一步,所述1-in-3-sat公式为:

所述等价的线性布尔系统为:

其中,变元x和u为方程的布尔变元,将所述线性布尔系统记为a·y=ii,a是线性布尔系统的系数矩阵,y为变元x和u的列向量,ii为所有坐标皆为单位1的列向量;

获取二次延拓布尔方程组:

其中,y(2)为所有坐标为y对应位置坐标的平方的列向量。

进一步,抽象二次延拓布尔方程组为一个线性布尔系统,引进新的布尔变量z1,…,zn取代所述等价的线性布尔系统中的所有二次单项式yiyj,其中1≤i,j≤k;抽象所得的再线性化系统为b·z=b;其中b为布尔系数矩阵,b为布尔常数。

进一步,当所述再线性化系统b·z=b有0-1常数解时,则进入步骤s4,根据所述常数解确定部分布尔变元的值;当有方程组b·z=b没有0-1常数解时,则进入s5,进行搜索赋值。

进一步,当所述再线性化系统b·z=b有多解时,根据常数解确定变量的值:当存在常数解zk=yiyj=1时,推出yi=yj=1,对应布尔变元值为1;当存在常数解时,推出yi=0,对应布尔变元值为0。

进一步,通过所述0-1串τ=(τ1,...,τp)记录变元翻转的情况,在步骤s7中,利用laf判定化简后的公式是否可相容,如果laf不可判定公式是否相容,则进入步骤s6再次挑选一个xi'进行赋值;如果公式相容,则输出公式可满足及满足公式的赋值,并终止;如果不相容,则根据σ(τ)决定是否翻转布尔变元,在步骤s6中通过对未赋值的变元中进行选取并赋值为1,获取化简公式。

进一步,所述步骤s8还包括:

时,进入步骤s9翻转当前选中的布尔变元xi';

时,停止在x′1=1(或者x′1=0)分支中的搜索,进入步骤10;

在步骤s10中,当τ1=1时,进入s11将x1翻转为0,取消其他变元的赋值;当τ1=0即x1′=0时,输出不可判定,并算法终止。

本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项所述方法。

本发明还提供一种电子终端,包括:处理器及存储器;

所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行上述任一项所述方法。

本发明的有益效果:本发明中的基于laf剪枝决策的快速判定方法,充分利用laf方法中线性方程组0-1解的性质,通过求出变量的常数解,以简化cnf公式,当不能求出所有变量的常数解时,则用一种多项式时间的方法,对变量进行赋值搜索;本发明不仅可以针对不可满足1-in-3-sat问题的判定,还可以计算出1-in-3-sat可满足问题的可满足赋值,显著的提高了计算效率,增强了判定方法的实用性,可以广泛应用于数理逻辑、人工智能、组合优化、电路设计与验证等领域,具有较强的科学意义与实用价值。

附图说明

图1是本发明实施例中基于laf剪枝决策的快速判定方法的流程示意图。

具体实施方式

以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

如图1所示,本实施例中的基于laf剪枝决策的快速判定方法的流程如下:

s1:根据实际工程应用,对需要进行决策判断的问题建立布尔命题逻辑公式,并转化为1-in-3-sat公式,进入步骤s2;

s2:利用laf判定公式是否相容。如果公式相容,则输出公式可满足及满足公式的赋值,并且算法终止;如果不相容,则输出公式不可满足,并且算法终止;如果laf不可判定公式是否可满足,则进入步骤s3;

s3;计算二次延拓布尔方程组的再线性化系统是否有0-1常数解,如果有0-1常数解,则进入步骤s4;如果没有0-1常数解,则进入步骤s5;

s4:根据常数解来确定某些布尔变元的值,代入得到化简后的公式,进入步骤s2;

s5:设搜索过程中需要赋值的变元(不包括赋值后求出的新常数解)为x=(x′1,...,x′k)。定义一个0-1串τ=(τ1,...,τp),p≤k,若赋给x′j值1,τj=1;若赋给x′j值0,τj=0;

s6:从未赋值的变元中挑选一个x′i赋值为1,代入得到化简公式,进入步骤s7;

s7:利用laf判定公式是否相容。如果公式相容,则输出公式可满足及满足公式的赋值,并且算法终止;如果不相容,则进入步骤s8;如果laf不可判定公式是否可满足,则进入步骤s6;

s8:若则进入步骤s10;否则,进入步骤s9;

s9:x′i翻转为0,进入步骤s12;

s10:若τ1=1,则进入步骤s11;否则,输出不可判定,并且算法终止;

s11:x′1翻转为0,取消其他变元的赋值,进入步骤s12;

s12:代入变更的赋值得到化简公式,进入步骤s13;

s13:利用laf判定公式是否相容。如果公式相容,则输出公式可满足及满足公式的赋值,并且算法终止;如果不相容,则输出公式不相容,则进入步骤s10;如果laf不可判定公式是否可满足,则进入步骤s6。

下面列举一个具体实施例进行说明,在电子自动设计中,电路回路经常用一个等价的布尔命题逻辑公式描述。然后通过检查布尔命题逻辑公式的可满足性来查看电路的相容性。

在本实例中,假设1-in-3-sat公式为

(x7∨x8∨x14)∧(x3∨x11∨x13)∧(x6∨x10∨x15)∧(x5∨x8∨x10)∧(x8∨x9∨x12)∧(x2∨x12∨x13)∧(x5∨x9∨x14)∧(x4∨x11∨x14)∧(x2∨x6∨x11)∧(x1∨x3∨x7)(1)

s2:根据laf方法,把cnf形式1-in-3-sat公式转化为一个等价的线性布尔系统:

二次延拓为:

引进新的布尔变量z1=x1x1,z2=x1x2,...,z120=x15x15,方程组线性化为:

方程有多个整数解。laf方法无法判定此公式是否1-in-3-sat。进入s3;

s3:在二次延拓布尔方程组的再线性化系统中,存在常数解z85=x82=0,进入s4;

s4:根据x82=0,可确定1-in-3-sat公式中x8=0;代入化简得到公式:

(x7∨x14)∧(x3∨x11∨x13)∧(x6∨x10∨x15)∧(x5∨x10)∧(x9∨x12)∧(x2∨x12∨x13)∧(x5∨x9∨x14)∧(x4∨x11∨x14)∧(x2∨x6∨x11)∧(x1∨x3∨x7)

进入s2;

s2:laf不可判定化简后的公式是否相容,进入s5-s6;

s6:挑选一个变量x′1=x14,赋值为1,代入公式,0-1串τ=1,进入s7,判定当前赋值下,公式不相容,进入s7;

s8:进入s9;

s9:x′1=x14翻转为0,0-1串τ=0,进入s12;

s12:代入变更的赋值得到化简公式,进入s13。

s13:laf不可判定化简后的公式是否相容,进入s6;

s6:挑选一个变量x′2=x11,赋值为1,0-1串τ=01,代入公式,进入s7,laf判定化简后的公式可相容。输出公式可满足,满足公式的真值赋值是

(x1,x2,…,x15)=(f,f,f,f,t,f,t,f,f,f,t,t,f,f,t)。

通过本实例可以看出,通过利用laf方法中线性方程组0-1解的性质,求出变量的常数解,以简化cnf公式;当不能求出所有变量的常数解时,则用一种多项式时间的方法,对变量进行赋值搜索。通过这种方式,大大提高了计算效率,增强了实用性。

相应地,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本实施例中的任一项方法。

本实施例还提供一种电子终端,包括:处理器及存储器;

所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述终端执行本实施例中任一项方法。

本实施例中的计算机可读存储介质,本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例提供的电子终端,包括处理器、存储器、收发器和通信接口,存储器和通信接口与处理器和收发器连接并完成相互间的通信,存储器用于存储计算机程序,通信接口用于进行通信,处理器和收发器用于运行计算机程序,使电子终端执行如上方法的各个步骤。

在本实施例中,存储器可能包含随机存取存储器(randomaccessmemory,简称ram),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1