solverl v1.0.0 MinizincSolver
Minizinc solver API.
Link to this section Summary
Functions
Get list of solver ids for solvers available to MinizincSolver.
Get list of descriptions for solvers available to MinizincSolver.
Lookup a solver by (possibly partial) id; for results, it could be 'cplex' or 'org.minizinc.mip.cplex'
Solve (asynchronously) with model, data and options.
Solve (synchronously) with model, data and options.
Get solver status
Stop solver process.
Link to this section Types
server_opts()
Specs
server_opts() :: GenServer.options()
solver_opt()
Specs
solver_opts()
Specs
solver_opts() :: [solver_opt()]
Link to this section Functions
get_solverids()
Get list of solver ids for solvers available to MinizincSolver.
get_solvers(minizinc_executable \\ MinizincUtils.default_executable())
Get list of descriptions for solvers available to MinizincSolver.
lookup(solver_id)
Lookup a solver by (possibly partial) id; for results, it could be 'cplex' or 'org.minizinc.mip.cplex'
solve(model, data \\ [], solver_opts \\ [], opts \\ [])
Specs
solve( MinizincModel.mzn_model(), MinizincData.mzn_data(), solver_opts(), server_opts() ) :: {:ok, pid()}
Solve (asynchronously) with model, data and options.
Example:
# Solve Sudoku puzzle with "mzn/sudoku.mzn" model, "mzn/sudoku.dzn" data,
# and custom solution handler Sudoku.solution_handler/2.
#
MinizincSolver.solve("mzn/sudoku.mzn", "mzn/sudoku.dzn", [solution_handler: &Sudoku.solution_handler/2])
Check out Sudoku
module in examples/sudoku.ex
for more details on handling solutions.
solve_sync(model, data \\ [], solver_opts \\ [], opts \\ [])
Specs
solve_sync( MinizincModel.mzn_model(), MinizincData.mzn_data(), solver_opts(), server_opts() ) :: [any()]
Solve (synchronously) with model, data and options.
Example:
# Solve N-queens puzzle with n = 4.
# Use Gecode solver, solve within 1000 ms.
#
results = MinizincSolver.solve_sync("mzn/nqueens.mzn", %{n: 4}, [solver: "gecode", time_limit: 1000])
Check out NQueens
module in examples/nqueens.ex
for more details on handling solutions.
solver_status(solver_pid)
Get solver status
stop_solver(pid)
Stop solver process.