haskelzinc-0.3.0.9: CP in Haskell through MiniZinc

Copyright(c) Some Guy 2013
Someone Else 2014
LicenseBSD3
MaintainerKlara Marntirosian <klara.mar@cs.kuleuven.be>
Stabilityexperimental
Safe HaskellSafe
LanguageHaskell2010

Interfaces.MZinHaskell

Description

This module provides IO functionality for running the Haskell representation of a MiniZinc model and getting back the solutions in Haskell values.

Synopsis

Documentation

iTestModel :: MZModel -> IO (Either ParseError [Solution]) Source #

Same as testModel, but interactive.

Interactively runs a constraint model and outputs its solution(s). The function first prompts the user for the working directory: the FlatZinc file will be created in that directory. Then, for a name for the constraint model: the created FlatZinc file will be named after this. Also asks the user to choose between supported solvers and the desired number of solutions. Returns either a parse error or a list of solutions of the constraint model. The length of the list is at most equal to the number of solutions requested.

testModel Source #

Arguments

:: MZModel

The model

-> FilePath

The path of the file in which the FlatZinc translation will be printed (without ".fzn" extension)

-> Int

The chosen solver (1 for the G12/FD built-in solver or 2 for choco3)

-> Int

The number of solutions to be returned

-> IO (Either ParseError [Solution]) 

Runs a model and parses its solution(s). Use this function if the model contains no output item, so that the solutions have the default format.

testModelWithData Source #

Arguments

:: MZModel

The model

-> MZModel

The data to be used by the model

-> FilePath

Path of the file in which the FlatZinc translation will be printed (without ".fzn" extension)

-> Int

Chosen solver (1 for the G12/FD built-in solver or 2 for choco3)

-> Int

Number of solutions to be returned

-> IO (Either ParseError [Solution]) 

Same as testModel but accepts one more argument for the data of the model.

testModelWithParser Source #

Arguments

:: (Int -> Parser [Solution])

The parser with which solutions will be parsed

-> MZModel

The model

-> FilePath

The path of the file in which the FlatZinc translation will be printed (without ".fzn" extension)

-> Int

The chosen solver (1 for the G12/FD built-in solver or 2 for choco3)

-> Int

The number of solutions to be returned

-> IO (Either ParseError [Solution]) 

Runs a model and parses its solution(s) with the use of the specified parser. Use this function if the model outputs its solutions in a different format than the default.

writeData :: MZModel -> IO () Source #

Writes the model's data file. The MZModel of the argument must contain only Assign items.