haskelzinc-0.3.1.1: CP in Haskell through MiniZinc

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

iRunModel :: [GItem a] -> 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.

runModel Source #

Arguments

:: [GItem a]

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.

layout :: [GItem a] -> String Source #

The main function that is used to pretty print the MiniZinc model. The Style used is the following.

Style {
  mode = PageMode,
  lineLength = 100,
  ribbonsPerLine = 1.5
}

writeData :: MZModel -> IO () Source #

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