复杂的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文件,解决了什么问题?
下面是