Trainable SAT Solver Library

Introduction

Ben-Jose is:

  1. A sotware library.
  2. A SAT problem solver.
  3. Free Software and Open Source Software.
  4. Trainable.
  5. A proof of concept tool for the proposed general strategy.

The initial motivation for this software was to do better than existant solvers for Pigeon Hole Principle (PHP) instances of the SAT problem, while using a general strategy that could be used to solve other 'hard' SAT instancess, and still be competitive for 'simple' instances.

Status

Since 2016, this library (ben-jose) is in a frozen state. The algorithm of Ben-Jose is been redesigned from scratch to be highly parallel while preserving the proposed trainable strategy.

An asynchronous messaging library Messaging Cells was developed in order to implement the new algorithm. It is research work in progress.

This library (ben-jose) never left pre-alpha stage. It served as a proof of concept tool for the proposed general strategy to solve SAT problems. It is the result of more than ten years of research in SAT solving.

Download and Install

  1. Download and unzip a ZIP file of ben-jose from https://github.com/ben-jose/ben-jose
  2. In the command line:
    	  cd ben-jose-master/build/gnu_make
    	  make 
    	  cd lib/ben-jose
    	  echo $'\nPATH=$PATH:'`pwd`$'\n' >> ~/.bashrc
    	  ls
    	  exit
    	

These commands will compile, built, put the library directory in the PATH environment variable, list all files of the library and finally 'exit' the command line so the changes to the path take effect (.bashrc is ran again) the next time you open a command line.

Required Software

  1. A Linux system.
  2. GNU C++ (g++).
  3. GNU Make (Make).
  4. GMP Library for c++ development installed. Packages 'libgmp' (library), 'libgmp-dev' (development) and 'libgmpxx' (c++ bindings).

For Mint and in the command line (probably the same for other debian based distros):

	sudo apt-get install gcc
	sudo apt-get install g++
	sudo apt-get install make
	sudo apt-get install libgmp10
	sudo apt-get install libgmp-dev
	sudo apt-get install libgmpxx4ldbl

These commands are safe to be run even if the packages are already installed because it will just tell you so.

Getting Started

Look at:

  1. The bj-hello-world program.
  2. The bj-phi program.
  3. The .pdf file of Ben-Jose 's Tool Paper.