hrussel / kec-sat-solver

Automatically exported from code.google.com/p/kec-sat-solver

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

                KECOSATS (Kelwin-Eleazar-Carlos Optimized SAT Solver)

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

Authors:
 Carlos Colmenares
 Eleazar Leal
 Kelwin Fernandez

Universidad Simón Bolívar. 
Caracas, Venezuela.

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

% This file is part of KECOSATS
% This README file was last updated Feb 2011.

README FILE
-----------
SUMMARY:

(I)     Software requirements
(II)    Compiling
(III)   Using the SAT solver's executable file 'kec_o_sat_s'
(III.1) The DIMACS CNF format
(III.2) Interpreting the 'kec_o_sat_s' output
(IV)    KECOSATS' directory structure
(V)     Further Information

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

--------------------------------------------------------------------------------
(I) Software requirements
--------------------------------------------------------------------------------

KECOSATS was writen and tested in several computers using either MAC OS X,
Debian GNU/Linux 6.0 (squeeze) or UBUNTU GNU/Linux 10.04 (Lucid Linx).

The program should run without any trouble in any Intel Pentium III (or
later, or similar) processor. The RAM memory requirements are directly
bounded to the size of the SAT instances given to the program.

For compiling the code, the next tools are necessary:
    (a) GNU Make 3.81 (or later, or equal)
    (b) gcc 4.4.5 (or later, or equal)
    (c) Doxygen version 1.7.1 (or later, or equal). NOTE: This tool is only
        necessary for generating the documentation (javadoc-like).

This program uses some system libraries and makes special system calls,
hence it is meant to be tested only in UNIX-like OS. Its behaviour in other
OS like Windows is unknown for the developers of the KECOSATS.
        
--------------------------------------------------------------------------------
(II) Compiling KECOSATS
--------------------------------------------------------------------------------

0.- Unzip or check out all the files in any directory "alpha"
    (Quotes for clarity, the directory may have any arbitrary name).
    It is necessary for the active user to have read, write and
    execute permissions on "alpha".

1.- Go inside KECOSATS's directory and execute the make file:
    E.G.:

    > cd /opt/kecosats
    > make

    ( where "alpha" = "/opt/kecosats" )

    Then the KECOSATS will be automatically compiled.

--------------------------------------------------------------------------------
(III)   Using the SAT solver's executable file 'kec_o_sat_s'
--------------------------------------------------------------------------------

0.- After compiling, an executable file 'kec_o_sat_s' will be created in the
    root directory of KECOSATS. Fore using KECOSATS its necessary to execute
    such file.

1.- For succesfully ussing the KECOSATS, some arguments need to be provided
    to the executable file, for detailed information about this options, just
    provide the '-h' flag to the executable. E.G.:

    > ./kec_o_sat_s -h

--------------------------------------------------------------------------------
(III.1) The DIMACS CNF format
--------------------------------------------------------------------------------

For providing SAT insances to the KECOSATS, the instance has to be written in
a file with the DIMACS CNF format. For further information about this format
go to:

    http://logic.pdmi.ras.ru/~basolver/dimacs.html

Several SAT instances with DIMACS CNF format can be found in the 'test'
directory.

--------------------------------------------------------------------------------
(III.2) Interpreting the 'kec_o_sat_s' output
--------------------------------------------------------------------------------

If the '-o <output_file>' flag is provided to the program, an assignment for
the formula's variables will be written in 'output_file' following the
following format:

If the formula is unsatisfiable:
    > The output file will contain a single line with the word "UNSAT" (quotes
      for clarity).

If the formula is satisfiable:
    > The first line of the output file will contain the string "1 0" (quotes
      for clarity)
    > N lines will follow, where N is the number of variables in the formula:
      The ith line will contain a single number, either "0", "1" or "-1":
      >> If the ith line contains a "0", for satisfying the formula, the ith
         variable needs to be assigned with a TRUE value
      >> If the ith line contains a "1", for satisfying the formula, the ith
         variable needs to be assigned with a FALSE value
      >> If the ith line contains a "-1", for satisfying the formula, the ith
         variable can be assigned with ANY value (either TRUE or FALSE).

--------------------------------------------------------------------------------
(IV) KECOSATS directoy structure
--------------------------------------------------------------------------------

The project is comprised of several files and directories, the puspose of the
directory is described below. Note: For an explanation of the purpose of each
file, consult either each file's header or the documentation generated by
doxygen.

    /-------> /src:     Contains the source code (.c) for each of the files
    |                   that comprise the KECOSATS.
    |
    |-------> /lib      Contains the headers (and procedures' documentation)
    |                   for each of the files that comprise the KECOSATS.
    |
    |-------> /bin      After compiling, the generated binary files (.o) are
root_dir                stored in this directory.
    |
    |-------> /doc      Contains both the documentation of the KECOSATS and the
    |                   doxygen documentation for the source code.
    |
    |-------> /test     Contains several test files for testing the KECOSATS.
    |                   In the subdirectory 'sudoku_tests' some sudoku test
    |                   cases can be found. 
    |
    \-------> /sudoku2sat   Contains an executable file that transform a sudoku
                            instance to a SAT instance, the output is generated
                            in DIMACS CNF format. For further information,
                            refer to the documentation of the code (inside that
                            directory) or the README_SUDOKU file

--------------------------------------------------------------------------------
(V) Further Information
--------------------------------------------------------------------------------

    The documentation of the KECSATS can be found in the 'doc' directory. Also
for generating the Doxygen documentation of the code (which will be stored in
the 'doc' directory), just execute the command 'make doc' in the root directory
of KECOSATS. E.G.:

    > cd /opt/kecosats
    > make doc

    If you are interested in KECOSATS or simply want to know any
information about its designers, feel free to send an email to any
of the following email addresses:

> carlos.a.colmenares.r@gmail.com
> leall9000@gmail.com
> kelwinfc@gmail.com

About

Automatically exported from code.google.com/p/kec-sat-solver


Languages

Language:C 87.5%Language:TeX 4.9%Language:C++ 4.4%Language:Perl 1.9%Language:Makefile 1.3%