[发明专利]一种基于可编程逻辑的硬件SAT求解器有效
申请号: | 201911416673.4 | 申请日: | 2019-12-31 |
公开(公告)号: | CN111159631B | 公开(公告)日: | 2023-08-11 |
发明(设计)人: | 肖立权;马柯帆;张建民;赖明澈;徐金波;黎渊;熊泽宇;欧洋;庞征斌;刘路;吕方旭 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F17/10 | 分类号: | G06F17/10 |
代理公司: | 北京丰浩知识产权代理事务所(普通合伙) 11781 | 代理人: | 李学康 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 可编程 逻辑 硬件 sat 求解 | ||
1.一种基于可编程逻辑的硬件SAT求解器,其特征在于,所述硬件SAT求解器包括:预处理模块和FPGA模块;
其中,所述预处理模块,用于产生CNF公式各变元的初始指派、当前指派下的不可满足子句以及所述CNF公式的子句和变元信息,并发送给所述FPGA模块;
其中,所述预处理模块包括:全文字判断模块、正文字赋值模块、负文字赋值模块和概率赋值模块;
所述产生CNF公式各变元的初始指派,具体包括:
所述全文字判断模块判断各变元在CNF公式中是否以全是正文字或全是负文字的形式出现;
所述正文字赋值模块将在CNF公式中以全是正文字的形式出现的变元初始赋值为1;
所述负文字赋值模块将在CNF公式中以全是负文字的形式出现的变元初始赋值为0;
所述概率赋值模块对在CNF公式中不以全是正文字或全是负文字的形式出现的变元按照该变元取值为真的概率产生初始指派;
所述FPGA模块,用于接收预处理模块发送的CNF公式各变元的初始指派以及不可满足子句,并在指定次数内根据预存的概率分布数据翻转变元,判断CNF公式是否可满足;
所述FPGA模块包括第一存储模块;
所述接收预处理模块发送的CNF公式的子句和变元信息,具体包括:
FPGA模块将接收到的所述预处理模块发送的CNF公式的子句和变元信息存储在所述第一存储模块;
所述FPGA模块还包括第一评估模块、第二存储模块、计数器模块、变元翻转模块、概率映射表、FIFO树和第二评估模块;
其中,所述第一评估模块,用于存储各变元的初始指派以及计算第一存储模块中存储的子句是否满足,并将不满足子句存储在所述第二存储模块;
所述计数器模块,用于计算所述第二存储模块中各个变元翻转后的break-value值,并将break-value排序;
所述概率映射表,用于预先存储不同翻转概率对应的break-value值;
所述变元翻转模块,用于将子句变元进行翻转;
所述FIFO树,用于存储经变元翻转模块翻转变元后的子句;
所述第二评估模块,用于从FIFO树中读取子句并判断该子句是否是满足。
2.如权利要求1所述的基于可编程逻辑的硬件SAT求解器,其特征在于,所述FPGA模块还包括缓存模块、随机数产生模块和循环控制模块;
所述FPGA模块在指定次数内根据预存的概率分布数据翻转变元,具体包括:
循环控制模块在指定次数内循环执行下列步骤:
从所述第二存储模块读取不可满足子句,暂存至所述缓存模块;
在所述缓存模块中将不可满足子句的文字进行翻转,所述计数器模块计算各个变元翻转后的break-value值,并将break-value排序;
将各变元排序后的break-value值与所述概率映射表进行比对,如果变元的break-value值存在于概率映射表中,所述随机数产生模块产生随机数,所述变元翻转模块选择随机数对应的break-value值对应的变元进行翻转;如果变元的break-value值不存在于概率映射表中,则所述变元翻转模块选择最小的break-value值对应的变元进行翻转;
将变元翻转后的子句存储到FIFO树;
所述第二评估模块从FIFO树中读取子句并判断该子句是否是可满足;
将不可满足子句发送至第二存储模块。
3.如权利要求2所述的基于可编程逻辑的硬件SAT求解器,其特征在于,所述FPGA模块还包括输出模块;
所述判断CNF公式是否可满足,具体包括:
所述循环控制模块执行完指定次数后,所述第二存储模块和所述FIFO树的最后一级FIFO均无不可满足子句,则所述输出模块输出所述CNF公式可满足,否则所述输出模块输出所述CNF公式不可满足。
4.如权利要求1所述的基于可编程逻辑的硬件SAT求解器,其特征在于,所述CNF公式的格式为DIMACS格式。
5.如权利要求1所述的基于可编程逻辑的硬件SAT求解器,其特征在于,所述概率映射表预先存储出现概率最高的对应的若干组break-value值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911416673.4/1.html,转载请声明来源钻瓜专利网。