SAT求解器—cryptominisat Windows安装及使用

官网 Wonderings of a SAT geek | A blog about SAT solving and cryptography

GitHub 资源包 https://github.com/msoos/cryptominisat

下图是官方给出的安装教程,第一次编译安装可能会出现一些问题,所以写下这篇博客,希望大家少走弯路。

1. 获得工程项目

选择分支(默认是master分支),拉取需要版本的工程项目,可以直接下载.zip 的压缩包也可以通过Git拉取。

 2. 解压工程项目资源,组织新建后续编译时需要的文件夹

 

3. 下载批处理安装包

download http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.zip

解压boost_1_59_0.zip到上C:\cms\build\

创建批处理安装文件夹boost_1_59_0_install,后续会在该文件夹中生成很多需要的文件。

 

4. 批处理

打开Windows PowerShell。快捷键win+x+a。

切换到boost_1_59_0目录下,执行下面命令。

 5. 拉取zlib依赖包

拉取前可以在浏览器中试一下是否可以访问。然后切换到zlib目录下,切换分支,创建需要的文件夹,再切换目录。参考下面命令。

C:\cms\build> git clone https://github.com/madler/zlib
C:\cms\build> cd zlib
C:\cms\build\zlib> git checkout v1.2.8
C:\cms\build\zlib> mkdir build
C:\cms\build\zlib> mkdir myinstall
C:\cms\build\zlib> cd build

6. CMake编译 

去官网下载CMake安装压缩包Download | CMake

解压后,配环境变量,将bin\目录加到path环境变量中。

执行CMake编译

 

7. 执行msbuild

C:\cms\build\zlib\build> msbuild /t:Build /p:Configuration=Release /p:Platform="x64" zlib.sln
C:\cms\build\zlib\build> msbuild INSTALL.vcxproj
C:\cms\build> cd ..\..

如果出现没有msbuild命令,需要配置环境变量

 有可能会出现找不到“C:\Program Files (x86)\MSBuild\Microsoft.Cpp\
v4.0\V110\Microsoft.Cpp.Default.props”

根据路径找到文件所处位置确实没有,但有"C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Default.props"

指定编译的VS版本,加入参数:/p:VisualStudioVersion=15.0

8. 再一次CMake编译 Release 版本

C:\cms\build> cmake -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release -DSTATICCOMPILE=ON -DZLIB_ROOT=C:\cms\build\zlib\myinstall -DBOOST_ROOT=C:\cms\build\boost_1_59_0_install ..
C:\cms\build> cmake --build --config Release .

 cmake 编译 release版本,又报错了,未知参数。

 换成cmake --build . --config Release

 9. 生成运行程序

10. 使用cryptominisat

新建cnf文件

 

 该文件有 3 个变量和 3 个子句,这反映在标题 p cnf 3 3 中,它将变量的数量作为第一个数字,将子句的数量作为第二个。每个子句都以“0”结尾。子句说:1 必须为 True,2 必须为 False,并且 1 必须为 False,2 必须为 True,或 3 必须为 True。这个问题的唯一解决方案是:

 这意味着,设置变量 1 True、变量 2 False 和变量 3 True 满足 CNF 中的一组约束(子句)。如果文件包含:

p cnf 3 4
1 0
-2 0
-3 0
-1 2 3 0

然后没有解决方案,求解器返回 s UNSATISFIABLE

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值