MiniZinc / MiniSearch

the source code for the MiniSearch meta-search language
Other
5 stars 0 forks source link

MiniSearch 0.1

This repository contains the source code for the MiniSearch meta-search language, which includes the MiniZinc 2.1beta constraint modelling language and tool chain. It provides a backend that supports all FlatZinc solvers.

This repository is no longer under active development. MiniSearch is not guaranteed to be compatible with newer versions of MiniZinc and might fail to work in some ways in general.

With MiniSearch you can express and run many advanced meta-searches, such as lexicographic optimisation, large neighbourhood search, and/or search and diverse solution search.

Have a look at the MiniSearch webpage for a detailed documentation: http://www.minizinc.org/minisearch

Folder Structure

README.md                    --->   this file
CMakeLists.txt               --->   cmake file
README_bin.txt               --->   README for binary package
lib/                         --->   cpp Files and libs
doc/                         --->   some MiniZinc documenation
solvers/                     --->   solver backends
tests/                       --->   test files and examples
LICENSE.txt                  --->   license file
md5_gen.cmake                --->   script for parser and lexer
share/                       --->   examples and MiniZinc libs
include/                     --->   header files

Compilation

To compile the sources, you require cmake (version 2.8.7 or newer), flex, bison and a C++ compiler. Follow the instructions below for your OS in a terminal.

After compilation the build/ folder will contain the binary file minisearch. See 'Getting Started' on how to execute it.

Note: The instructions above will compile the sources for a 64bit machine. If you are compiling for a 32-bit architecture, then set the cmake option 'BUILD_32BIT' by:

cmake -DBUILD_32BIT=ON ..

Windows

Create a build/ folder in the current directory and change into it and execute cmake where you set the project file type, for instance Visual Studio 12 (type 'cmake --help' to get a list of all project file generators):

mkdir build
cd build
cmake -G"Visual Studio 12 2013" ..
cmake --build .

After compilation the build/Debug folder will contain the binary file minisearch.exe. See 'Getting Started' on how to execute it.

Note: The instructions above will compile the sources for a 32bit machine. If you are compiling for a 64-bit architecture, then set the cmake option for a 64bit architecture, for instance:

cmake -G"Visual Studio 12 2013 Win64" ..

Building the binary package

You can create the binary package using the following command (after compilation) in the build/ directory:

cmake --build . --target package

This will create a .tar.gz (Linux and Mac OS) or .zip file (Windows) in the build/ directory that contains the binary package.

Getting Started

./build/minisearch --solver tests/minisearch/regression_tests/golomb_lns.mzn

into your shell in this directory. Check out the documentation on how to get a FlatZinc solver if have not got any installed on your system.

Note that you also have to set the MiniZinc standard library path $MZN_STDLIB_DIR to share/minizinc/ since it contains the MiniSearch builtin definitions. You can also manually set the stdlib path by adding the --stdlib-dir option to calling minisearch:

./build/minisearch --solver --stdlib-dir share/minizinc/ tests/minisearch/regression_tests/golomb_lns.mzn

cd build/Debug minisearch.exe --solver ../../tests/minisearch/regression_tests/golomb_lns.mzn

Note that you also have to set the MiniZinc standard library path $MZN_STDLIB_DIR to share/minizinc since it contains the MiniSearch builtin definitions. You can also manually set the stdlib path by adding the --stdlib-dir option to calling minisearch:

minisearch.exe --solver --stdlib-dir ../../share/minizinc ../../tests/minisearch/regression_tests/golomb_lns.mzn

Documentation

For a detailed documentation please visit: http://www.minizinc.org/minisearch

Bugs

If you encounter any problems with MiniSearch, please use the MiniZinc bug tracker at http://www.minizinc.org/trac to report any issues or feature requests.