复杂的sat求解器改进程序,采用多种编程语言结合的方式编写。这样既保留了原来求解库(通常c++/c编写)的高效性,由能发挥便于调试编程语言(如MATLAB、python)的易用性。通常这种情形,编译程序会提供cmake文档,调用指定版本的CMake软件,帮助实现复杂程序的编译过程。

       neurocore-public-master是2017年发表的求解器研究库(网址:https://link.springer.com/chapter/10.1007/978-3-030-24258-9_24),提供了随机局部搜索(SLS)求解器改进策略——神经网络改进求解器——训练UNSAT核心向量(sat问题没有核心向量)初始决策策略。相关文章和库代码可以从网址查阅。其中的cmake文档CMakeLists.txt内容如下:

cmake_minimum_required(VERSION 2.8.12)
project(pysat)

set(CMAKE_CXX_FLAGS                "-Wall -Wextra -std=c++14")
set(CMAKE_CXX_FLAGS_DEBUG          "-g3")
set(CMAKE_CXX_FLAGS_RELEASE        "-O3 -DNDEBUG")

set(PYBIND11_CPP_STANDARD -std=c++14)
set(PYBIND11_CPP_STANDARD -O2)

find_package(pybind11 REQUIRED)
include_directories(/usr/local/include/eigen3)

pybind11_add_module(solver solver.cxx)
target_link_libraries(solver PUBLIC libz3.so)

  通过这个cmake文件,解决了什么问题?

 

 

下面是

posted on 2020-03-27 08:18  海阔凭鱼跃越  阅读(167)  评论(0编辑  收藏  举报