My MiniZinc page
/(The original of this file is http://www.hakank.org/minizinc/index.html
<http://www.hakank.org/minizinc/index.html>.)/
This page was created by Hakan Kjellerstrand (hakank@gmail.com
<mailto:hakank@gmail.com>).
Also, see my My Zinc page <https://www.hakank.org/minizinc/
index_zinc.html> which includes information about and models for G12 Zinc.
MiniZinc constraint programming system
[MiniZinc] <http://www.minizinc.org/>
MiniZinc <http://www.minizinc.org/> is a very interesting constraint
programming <http://en.wikipedia.org/wiki/Constraint_programming>
system/modeling language with a high level syntax. From the MiniZinc
page <http://www.minizinc.org/>:
MiniZinc is a medium-level constraint modelling language. It is
high-level enough to express most constraint problems easily, but
low-level enough that it can be mapped onto existing solvers easily
and consistently. It is a subset of the higher-level language Zinc.
We hope it will be adopted as a standard by the Constraint
Programming community.
FlatZinc is a low-level solver input language that is the target
language for MiniZinc. It is designed to be easy to translate into
the form required by a solver.
Some important links:
* Main page <http://www.minizinc.org/>
* MiniZinc Handbook <http://www.minizinc.org/doc-latest/index.html>,
including a Tutorial, User Manual, and Reference Manual
* Download page <https://www.minizinc.org/software.html> Source from |
git clone http://www.minizinc.org/repos/libminizinc|
* Forum <https://groups.google.com/g/minizinc>
* MiniZinc IDE <http://www.minizinc.org/ide/index.html>
* MiniZinc Project GitHub page <https://github.com/MiniZinc/> (GitHub)
* Coursera courses using MiniZinc as the modeling language by Jimmy Ho
Man Lee and Peter Stuckey: Basic Modeling for Discrete Optimization
<https://www.coursera.org/learn/basic-modeling>, Solving Algorithms
for Discrete Optimization <https://www.coursera.org/learn/solving-
algorithms-discrete-optimization>, and Advanced Modeling for
Discrete Optimization <https://www.coursera.org/learn/advanced-
modeling>
*Solvers*
In order to solve a problem stated in the MiniZinc modeling language, a
FlatZinc solver must be used. Here is a listing of some FlatZinc solvers.
* The MiniZinc distribution <http://www.minizinc.org/download.html>
contains the following solvers:
o Gecode
o CBC (MIP)
o Chuffed
* Gecode/FlatZinc <http://www.gecode.org/flatzinc.html>. Requires that
Gecode <http://www.gecode.org/> is installed.
* The ECLiPSe Constraint Programming System <http://eclipse-clp.org/>
library(minizinc) <http://eclipse-clp.org/doc/bips/lib_public/
minizinc/index.html> (and library(flatzinc <http://eclipse-clp.org/
doc/bips/lib_public/flatzinc/index.html>) provides 3 different
solvers which corresponds to ECLiPSe's "normal" solvers:
* fzn_ic <http://eclipse-clp.org/doc/bips/lib_public/fzn_ic/
index.html>, see library(ic) <http://eclipse-clp.org/doc/bips/lib/
ic/index.html>
* fzn_fd <http://eclipse-clp.org/doc/bips/lib_public/fzn_fd/
index.html>, see library(fd) <http://eclipse-clp.org/doc/bips/lib/
fd/index.html>
* fzn_eplex <http://eclipse-clp.org/doc/bips/lib_public/fzn_eplex/
index.html>, see library(eplex) <http://eclipse-clp.org/doc/bips/
lib/eplex/index.html>, which in turn can use different solvers, e.g.
the commercial Cplex, XPress-MP, or the open source COIN solvers
symclp, clpcbc.
* SICStus Prolog <http://www.sics.se/isl/sicstuswww/site/index.html>
(from version 4.0.5 and onward): Zinc interface - library(zinc)
<http://www.sics.se/sicstus/docs/latest4/html/sicstus.html/
lib_002dzinc.html>
* JaCoP <http://jacop.osolpro.com/> (*Ja*va *Co*nstraint *P*rogramming
solver): Fz2jacop
* Google or-tools <https://code.google.com/p/or-tools/>
* SCIP <http://scip.zib.de/scip.shtml> (*S*olving *C*onstraint
*I*nteger *P*rograms)
* fzntini <http://users.rsise.anu.edu.au/~jinbo/fzntini/>. A SAT
solver based on Tinisat <http://users.rsise.anu.edu.au/~jinbo/
tinisat/>.
* fzn2smt <http://ima.udg.edu/Recerca/ESLIP/fzn2smt/index.html>: Using
SMT/SAT.
* Neng-Fa Zhou <http://www.sci.brooklyn.cuny.edu/~zhou/>'s BProlog
solver <http://www.sci.brooklyn.cuny.edu/~zhou/csp/flatzinc.pl>,
newer version for MiniZinc Challenge 2012: flatzinc2012.pl <http://
probp.com/flatzinc/flatzinc2012.pl>
* Picat <http://picat-lang.org/projects.html>, section "MiniZinc
Challenge" (this was the version we submitted to MiniZinc Challenge
2013)
* Mistral 2.0 <https://github.com/ehebrard/Mistral-2.0>
* Numberjack <https://github.com/eomahony/Numberjack>
* MiniCSP <http://www.inra.fr/mia/T/katsirelos/minicsp.html> clause
learning CSP solver (based on MiniSAT)
* fz_izplus <http://products.ndis.jp/iz/download.html> (note: the web
page is in Japanese)
* MinisatID <http://dtai.cs.kuleuven.be/krr/software/minisatid>: SAT/
Lazy solver
* Opturion CPX Optimizer <http://www.opturion.com/cpx.html>: CP/SAT
solver
* Chuffed <https://github.com/geoffchu/chuffed> by Geoff Chu
* OscaR/CBLS Backend for MiniZinc <http://www.it.uu.se/research/group/
astra/software> by Gustav Bj�rdal and Jean-No�l Monette
Utilities
Emacs mode
minizinc.el <https://www.hakank.org/minizinc/minizinc.el> is a simple
MiniZinc (major) mode for Emacs, heavily based on the Prolog model
prolog.el (written by Masanobu UMEDA); to be honest I mostly replaced
"Prolog" with "MiniZinc" and some other adjustments. The file still have
the interactive mode etc but that will (of course) not work for MiniZinc
since it don't work like Prolog. I mostly use it for syntax
highlightning and commenting.
My MiniZinc models
The following is a list of (some of) my models: simple puzzles and not
so simple puzzles, standard operation research / integer programming
examples, and some global constraints (that are not in the MiniZinc
globals.mzn). Some are just examples of modelling in MiniZinc.
Almost all models are commented with sources or inspirations, and quite
a few have the main constraints generalized as a predicate.
All files (models, datafiles, etc) are (or will be) available at the
Github repository: github.com/hakank/hakank/tree/master/minizinc
<https://github.com/hakank/hakank/tree/master/minizinc>.
Contents
The models are collected in the following categories:
* Puzzles/recreational mathematics, small, and large <#puzzles>
* Operations research, linear programming, integer programming <#or>
* Non linear / float variable problems <#nonlin>
* Combinatorial problems <#combin>
* Global constraints (decompositions) <#global>
* Martin Gardner's Puzzles and Problems <#martingardner>
* Martin Chlond's Integer Programming Puzzles <#chlond1>
* Models based on Martin Chlond's Puzzle articles in Informs
Transations on Education <#chlond2>
* Other models <#misc>
Puzzles, small, and large
* 1d_rubiks_cube.mzn <https://www.hakank.org/
minizinc/1d_rubiks_cube.mzn>: 1D Rubik's cube (including GAP code
for solving the problem using group theory)
* 1d_rubiks_cube2.mzn <https://www.hakank.org/
minizinc/1d_rubiks_cube2.mzn>: 1D Rubik's cube (including GAP code
for solving the problem using group theory). This version use only
permutations arrays.
* 225_divisor.mzn <https://www.hakank.org/minizinc/225_divisor.mzn>:
Smallest number divisible by 225 that consists of all 1s and 0s
* 3_coins.mzn <https://www.hakank.org/minizinc/3_coins.mzn>: 3 coins
(THT), in exactly 3 flips make HHH or TTT
* 3_jugs.mzn <https://www.hakank.org/minizinc/3_jugs.mzn>: 3 jugs
problem (as shortest path problem)
* 3_jugs2.mzn <https://www.hakank.org/minizinc/3_jugs2.mzn>: 3 jugs
problem (using shortest_path_model.mzn)
* 3_jugs2_all.mzn <https://www.hakank.org/minizinc/3_jugs2_all.mzn>: 3
jugs problem (using shortest_path_model.mzn), searches for all
solutions (which happens to be unique)
* 18_hole_golf.mzn <https://www.hakank.org/minizinc/18_hole_golf.mzn>:
A golf (i.e. shortest program) version of random 18-hole golf
generation. Length: 76 chars.
* 18_hole_golf2.mzn <https://www.hakank.org/
minizinc/18_hole_golf2.mzn>: A golf (i.e. shortest program) version
of random 18-hole golf generation. Length: 61 chars.
* 30_bottles.mzn <https://www.hakank.org/minizinc/30_bottles.mzn>:
Bottle and wine problems (Vaderlind)
* a_card_trick_1.mzn <https://www.hakank.org/minizinc/
a_card_trick_1.mzn>: A card placement problem by Donald Preece (via
Peter Cameron's blog post A card trick, 1 <http://
cameroncounts.wordpress.com/2011/08/20/a-card-trick-1/>)
* a_puzzle.mzn <https://www.hakank.org/minizinc/a_puzzle.mzn>: The
"8809 = 6 ..." puzzle (See God Play Dice: A puzzle <http://
gottwurfelt.wordpress.com/2012/02/22/a-puzzle/>)
* a_round_of_golf.mzn <https://www.hakank.org/minizinc/
a_round_of_golf.mzn>: A round of golf puzzle (Dell Logic Puzzles)
* aaa_bbb_ccc.mzn <https://www.hakank.org/minizinc/aaa_bbb_ccc.mzn>:
AAA+BBB+CCC=BAAC (Mind Your Decisions problem)
* abc_endview.mzn <https://www.hakank.org/minizinc/abc_endview.mzn>:
ABC End View grid puzzle (a.k.a. "Easy as ABC", "Last Man Standing")
* added_corner.mzn <https://www.hakank.org/minizinc/added_corner.mzn>:
Added corner puzzle
* ages2.mzn <https://www.hakank.org/minizinc/ages2.mzn>: Ages problem
from CTK Insights When Two Wrongs Make One Right <http://
www.mathteacherctk.com/blog/2012/04/when-two-wrongs-make-one-right/>
* alphametic2mzn.pl <https://www.hakank.org/minizinc/
alphametic2mzn.pl>: Alphametic 2 Mzn. A Perl program converting
alphametic puzzles to a MiniZinc model, including optimizing a
variable. Examples:
o |perl alphametic2mzn.pl "SEND+MORE+MONEY"|
o |perl alphametic2mzn.pl "SEND+MOST+MONEY" MOST max| (maximizing
the MOST variable)
* allocating_developments.mzn <https://www.hakank.org/minizinc/
allocating_developments.mzn>: Allocating developments
* anniversaries.mzn <https://www.hakank.org/minizinc/
anniversaries.mzn>: Anniversaries (Logic4Fun)
* another_kind_of_magic_square.mzn <https://www.hakank.org/minizinc/
another_kind_of_magic_square.mzn>: Another kind of magic square
(from "Fun with Numb3ers": Another kind of magic square <http://
benvitale-funwithnum3ers.blogspot.com/2010/12/another-kind-of-magic-
square.html>)
* arch_friends.mzn <https://www.hakank.org/minizinc/arch_friends.mzn>:
Arch friends puzzle (Dell Logic Puzzles)
* archery_puzzle.mzn <https://www.hakank.org/minizinc/
archery_puzzle.mzn>: Archery puzzle (Sam Loyd)
* are_you_the_one.mzn <https://www.hakank.org/minizinc/
are_you_the_one.mzn>: Are you the one? problem
* arithmetic_ring.mzn <https://www.hakank.org/minizinc/
arithmetic_ring.mzn>: Arithmetic ring problem
* arrow.mzn <https://www.hakank.org/minizinc/arrow.mzn>: Simple grid
problem (from the Swedish blog post Pilen <http://
mattebloggen.com/2012/03/4459/> [translated "Arrow"])
* artificial_intelligence.mzn <https://www.hakank.org/minizinc/
artificial_intelligence.mzn>: Alphametic problem (from Erwin
Kalvelagen Alphametics (3) <http://
yetanothermathprogrammingconsultant.blogspot.com/2009/04/
alphametics-3.html>)
* atom_smasher.mzn <https://www.hakank.org/minizinc/atom_smasher.mzn>:
Digital Atom Smasher. Alphametic problem: sqrt(ATOM) = A + TO + M
* autoref.mzn <https://www.hakank.org/minizinc/autoref.mzn>: Auto
referential puzzle
* averbach_1.2.mzn <https://www.hakank.org/minizinc/averbach_1.2.mzn>:
Example 1.2 in Averbach & Chein "Problem Solving Through
Recreational Mathematics"
* averbach_1.3.mzn <https://www.hakank.org/minizinc/averbach_1.3.mzn>:
Example 1.3 in Averbach & Chein "Problem Solving Through
Recreational Mathematics"
* averbach_1.4.mzn <https://www.hakank.org/minizinc/averbach_1.4.mzn>:
Example 1.4 in Averbach & Chein "Problem Solving Through
Recreational Mathematics"
* averbach_1.5.mzn <https://www.hakank.org/minizinc/averbach_1.5.mzn>:
Example 1.5 in Averbach & Chein "Problem Solving Through
Recreational Mathematics"
* babysitting.mzn <https://www.hakank.org/minizinc/babysitting.mzn>:
Babysitting puzzle (Dell Logic Puzzles)
* bales_of_hay.mzn <https://www.hakank.org/minizinc/bales_of_hay.mzn>:
Bales of hay puzzle
* bananas.mzn <https://www.hakank.org/minizinc/bananas.mzn>: Bananas
problem.
* bank_card.mzn <https://www.hakank.org/minizinc/bank_card.mzn>: Bank
card puzzle
* barrels.mzn <https://www.hakank.org/minizinc/barrels.mzn>: Barrels
problem (From September Magic Contest 2014)
* before_and_after.mzn <https://www.hakank.org/minizinc/
before_and_after.mzn>: Before and After (Logic4Fun)
* bertand_russell_puzzle.mzn <https://www.hakank.org/minizinc/
bertrand_russell_puzzle.mzn>: Bertrand Russell puzzle
* binary_puzzle.mzn <https://www.hakank.org/minizinc/
binary_puzzle.mzn>: Binary puzzle
* binary_sudoku.mzn <https://www.hakank.org/minizinc/
binary_sudoku.mzn>: Binary Sudoku
* binero.mzn <https://www.hakank.org/minizinc/binero.mzn>: Binero grid
puzzle (from Scampi) (cf binoxxo.mzn <https://www.hakank.org/
minizinc/binoxxo.mzn>)
* binoxxo.mzn <https://www.hakank.org/minizinc/binoxxo.mzn>: Binoxxo
grid puzzle (cf binero.mzn <https://www.hakank.org/minizinc/
binero.mzn>)
* birthdays_2010.mzn <https://www.hakank.org/minizinc/
birthdays_2010.mzn>: A simple birthday puzzle of my own, based on a
coincidence of my and my brother's birth years.
* blueberry_muffins.mzn <https://www.hakank.org/minizinc/
blueberry_muffins.mzn>: Blueberry muffins problem (Brown Buffalo
Logic Puzzles)
* bobsledders_puzzle.mzn <https://www.hakank.org/minizinc/
bobsledders_puzzle.mzn>: Bobsledders puzzle
* breaking_news.mzn <https://www.hakank.org/minizinc/
breaking_news.mzn>: Breaking news puzzle (Dell Logic Puzzles)
* bridge_and_torch_problem.mzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem.mzn>: Bridge and torch problem, crossing a
bridge with a torch (a.k.a. The Midnight Train, and Dangerous crossing).
Data files:
o bridge_and_torch_problem1.dzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem1.dzn>: original data, with 4 persons
o bridge_and_torch_problem2.dzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem2.dzn>: 5 persons
o bridge_and_torch_problem3.dzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem3.dzn>: 6 persons, max 2 persons may
cross at the same time
o bridge_and_torch_problem3_3.dzn <https://www.hakank.org/
minizinc/bridge_and_torch_problem3_3.dzn>: 6 persons, max 3
persons may cross at the same time
o bridge_and_torch_problem4.dzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem4.dzn>: 10 persons
o bridge_and_torch_problem5.dzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem5.dzn>: 5 persons
o bridge_and_torch_problem6.dzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem6.dzn>: 4 persons
o bridge_and_torch_problem7.dzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem7.dzn>: 3 persons
o bridge_and_torch_problem8.dzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem8.dzn>: 4 persons (from Choco's
U2planning problem)
o bridge_and_torch_problem9.dzn <https://www.hakank.org/minizinc/
bridge_and_torch_problem9.dzn>: 4 persons (from Martin Erwig:
"Escape from Zurg: An Exercise in Logic Programming")
* broken_weights.mzn <https://www.hakank.org/minizinc/
broken_weights.mzn>: Broken weights problem
* buckets.mzn <https://www.hakank.org/minizinc/buckets.mzn>: Buckets
problem (minimizing differences of masses in four buckets)
* building_blocks.mzn <https://www.hakank.org/minizinc/
building_blocks.mzn>: Building blocks (Dell Logic Puzzles)
* bus.mzn <https://www.hakank.org/minizinc/bus.mzn>: Bus puzzle (from
rec.puzzles FAQ)
* calculs_d_enfer.mzn <https://www.hakank.org/minizinc/
calculs_d_enfer.mzn>: Calculs d'enfer puzzle (from the NCL manual)
* calculs_d_enfer2.mzn <https://www.hakank.org/minizinc/
calculs_d_enfer2.mzn>: Calculs d'enfer puzzle (from the NCL manual),
alternative model
* candies.mzn <https://www.hakank.org/minizinc/candies.mzn>: Candies
problem (from HackerRank)
* candles.mzn <https://www.hakank.org/minizinc/car_talk_odometer.mzn>:
Odometer problem from Cat Talk
* cashier_change.mzn <https://www.hakank.org/minizinc/
cashier_change.mzn>: Cashier change problem (coin problem)
* calvin_puzzle.mzn <https://www.hakank.org/minizinc/
calvin_puzzle.mzn>: Calvin puzzle
* chandelier_balancing.mzn <https://www.hakank.org/minizinc/
chandelier_balancing.mzn>: Chandelier balancing (PuzzlOR)
* changepoint_detection.mzn <https://www.hakank.org/minizinc/
changepoint_detection.mzn>: Changepoint detection, mix float and
integer
* changepoint_detection_int.mzn <https://www.hakank.org/minizinc/
changepoint_detection_int.mzn>: Changepoint detection, all integers
* climbing_stairs.mzn <https://www.hakank.org/minizinc/
climbing_stairs.mzn>: Climbing stairs
* coins_grid.mzn <https://www.hakank.org/minizinc/coins_grid.mzn>:
Coins Grid (Tony Hurlimann)
* combination_locks.mzn <https://www.hakank.org/minizinc/
combination_locks.mzn>: Combination locks (PuzzlOR)
* coins3.mzn <https://www.hakank.org/minizinc/coins3.mzn>: Minimum
mumber of coins that allows one to pay exactly any amount smaller
than one Euro
* coins3b.mzn <https://www.hakank.org/minizinc/coins3b.mzn>: Minimum
mumber of coins that allows one to pay exactly any amount smaller
(here we also decide about the denominations of the coins)
* coins_problem.mzn <https://www.hakank.org/minizinc/
coins_problem.mzn>: Minimum mumber of coins that allows one to pay
exactly any amount smaller than one Euro (alternative solution based
on OPL code)
* coins_41_58.mzn <https://www.hakank.org/minizinc/coins_41_58.mzn>:
Minimize number of coins - with the same amount of the different
denominations - that sums to 41.58 GBP
* col_sum_puzzle.mzn <https://www.hakank.org/minizinc/
col_sum_puzzle.mzn>: Find out values in a matrix, given column and
row sums and some hints.
* congress.mzn <https://www.hakank.org/minizinc/congress.mzn>:
Congress puzzle (from XPress Mosel)
* controversy_about_the_weekday.mzn <https://www.hakank.org/minizinc/
controversy_about_the_weekday.mzn>: Controversy about the weekday
* cookie_bake_off.mzn <https://www.hakank.org/minizinc/
cookie_bake_off.mzn>: Cookie bake off (PuzzlOr)
* countdown.mzn <https://www.hakank.org/minizinc/countdown.mzn>:
CountDown Game
* cube_sum.mzn <https://www.hakank.org/minizinc/cube_sum.mzn>: Sum a
number with the minimum number of different cubes
* crossfigure.mzn <https://www.hakank.org/minizinc/crossfigure.mzn>:
Crossfigure problem (CSPLib problem 21)
* crossword.mzn <https://www.hakank.org/minizinc/crossword.mzn>:
Crossword solving (standard constraint programming example)
* crossword2.mzn <https://www.hakank.org/minizinc/crossword2.mzn>:
Crossword solving (standard constraint programming example), more
general approach
* crossword_bratko.mzn <https://www.hakank.org/minizinc/
crossword_bratko.mzn>: Crossword solving (example from Bratko
"Prolog Programming for Artificial Intelligence", 4th edition)
* MiniZinc crossword page <https://www.hakank.org/minizinc/crossword3/
>: This is a collection of 72 problem instances (from Gecode's
crossword model). The model, general approach and benchmark is
described in the blog post Crossword construction in MiniZinc using
table constraints - a small benchmark on "72 Gecode problems"
<http://www.hakank.org/constraint_programming_blog/2011/10/
crossword_construction_in_minizinc_using_table_constraints_a_small_ben_1.html>
* crystal_maze.mzn <https://www.hakank.org/minizinc/crystal_maze.mzn>:
Crystal maze problem
* crypt_reversed.mzn <https://www.hakank.org/minizinc/
crypt_reversed.mzn>: Crypt reversed puzzle: x + reversed(x) = z
where all different(x) and all_different(z) (Requires MiniZinc 2.0)
* crypta.mzn <https://www.hakank.org/minizinc/crypta.mzn>: crypta,
alphametic problem (standard Prolog benchmark)
* crypto.mzn <https://www.hakank.org/minizinc/crypto.mzn>: crypto,
alphametic problem (standard Prolog benchmark), constraint
programming model
* crypto_ip.mzn <https://www.hakank.org/minizinc/crypto_ip.mzn>:
crypto, alphametic problem (standard Prolog benchmark), integer
programming model
* cur_num.mzn <https://www.hakank.org/minizinc/cur_num.mzn>: Curious
Number (Dudeney)
* defending_castle.mzn <https://www.hakank.org/minizinc/
defending_castle.mzn>: Defending the Castle (Cut the knot)
* dennys_menu.mzn <https://www.hakank.org/minizinc/dennys_menu.mzn>:
Denny's Menu problem (How many combinations of $2,$4,$6,$8 will give
$10?)
* devils_word.mzn <https://www.hakank.org/minizinc/devils_word.mzn>:
Devil's Word problem (see the Devil's word <http://www.hakank.org/
data_snooping/666.cgi> page)
* digital_roots.mzn <https://www.hakank.org/minizinc/
digital_roots.mzn>: Digital roots
* digits_of_the_square.mzn <https://www.hakank.org/minizinc/
digits_of_the_square.mzn>: Digits of the square problem
* dimes.mzn <https://www.hakank.org/minizinc/dimes.mzn>: Dimes puzzle
(rec.puzzles FAQ)
* dinner.mzn <https://www.hakank.org/minizinc/dinner.mzn>: A dinner
problem
* dividing_the_spoils.mzn <https://www.hakank.org/minizinc/
dividing_the_spoils.mzn>: Dividing the spoils (Sam Loyd)
* divisible_by_7.mzn <https://www.hakank.org/minizinc/
divisible_by_7.mzn>: Divisible by 7 (Sam Loyd)
* divisible_by_1_to_1.mzn <https://www.hakank.org/minizinc/
divisible_by_1_to_9.mzn>: Find a number divisible by 1 through 9
(for a "truncated" number)
* divisible_by_9_through_1.mzn <https://www.hakank.org/minizinc/
divisible_by_9_through_1.mzn>: divisible by 9 through 1 for a
"truncated" number
* divisors_ending_in_0_to_9.mzn <https://www.hakank.org/minizinc/
divisors_ending_in_0_to_9.mzn>: Divisors ending in 0 to 9
* domino.mzn <https://www.hakank.org/minizinc/domino.mzn>: Solitaire
Domino (placing of Domino tiles)
domino2.mzn <https://www.hakank.org/minizinc/domino2.mzn>: Solitaire
Domino (placing of Domino tiles), faster version.
Data:
o domino0.dzn <https://www.hakank.org/minizinc/domino0.dzn>:
Gecode's example 0
o domino1.dzn <https://www.hakank.org/minizinc/domino1.dzn>:
Gecode's example 1
o domino2.dzn <https://www.hakank.org/minizinc/domino2.dzn>:
Gecode's example 2
o domino3.dzn <https://www.hakank.org/minizinc/domino3.dzn>:
Gecode's example 3
o domino4.dzn <https://www.hakank.org/minizinc/domino4.dzn>:
Gecode's example 4
o domino5.dzn <https://www.hakank.org/minizinc/domino5.dzn>:
Gecode's example 5
o domino_ecl.dzn <https://www.hakank.org/minizinc/domino_ecl.dzn>:
ECLiPSe's example (from domino.ecl)
o domino_sicstus_a.dzn <https://www.hakank.org/minizinc/
domino_sicstus_a.dzn>: SICStus' example (from dominoes.ecl,
instance "a")
o domino_sicstus_51.dzn <https://www.hakank.org/minizinc/
domino_sicstus_51.dzn>: SICStus' example (from dominoes.ecl,
instance 51)
o domino_sicstus_71.dzn <https://www.hakank.org/minizinc/
domino_sicstus_71.dzn>: SICStus' example (from dominoes.ecl,
instance 71)
o domino_sicstus_72.dzn <https://www.hakank.org/minizinc/
domino_sicstus_72.dzn>: SICStus' example (from dominoes.ecl,
instance 72)
o domino_sicstus_81.dzn <https://www.hakank.org/minizinc/
domino_sicstus_81.dzn>: SICStus' example (from dominoes.ecl,
instance 81)
o domino_sicstus_82.dzn <https://www.hakank.org/minizinc/
domino_sicstus_82.dzn>: SICStus' example (from dominoes.ecl,
instance 82)
o domino_sicstus_91.dzn <https://www.hakank.org/minizinc/
domino_sicstus_91.dzn>: SICStus' example (from dominoes.ecl,
instance 91)
o domino_sicstus_101.dzn <https://www.hakank.org/minizinc/
domino_sicstus_101.dzn>: SICStus' example (from dominoes.ecl,
instance 101)
o domino_sicstus_111.dzn <https://www.hakank.org/minizinc/
domino_sicstus_111.dzn>: SICStus' example (from dominoes.ecl,
instance 111)
o domino_sicstus_121.dzn <https://www.hakank.org/minizinc/
domino_sicstus_121.dzn>: SICStus' example (from dominoes.ecl,
instance 121)
o domino_sicstus_181.dzn <https://www.hakank.org/minizinc/
domino_sicstus_181.dzn>: SICStus' example (from dominoes.ecl,
instance 181)
o domino_sicstus_182.dzn <https://www.hakank.org/minizinc/
domino_sicstus_182.dzn>: SICStus' example (from dominoes.ecl,
instance 182)
o domino_sicstus_201.dzn <https://www.hakank.org/minizinc/
domino_sicstus_201.dzn>: SICStus' example (from dominoes.ecl,
instance 201)
o domino_sicstus_221.dzn <https://www.hakank.org/minizinc/
domino_sicstus_221.dzn>: SICStus' example (from dominoes.ecl,
instance 221)
o domino_sicstus_251.dzn <https://www.hakank.org/minizinc/
domino_sicstus_251.dzn>: SICStus' example (from dominoes.ecl,
instance 251)
o domino_vaderlind_1.dzn <https://www.hakank.org/minizinc/
domino_vaderlind_1.dzn>: Problem 1 from Paul Vaderlind's Swedish
puzzle book "Vaderlinds specialblandning: Sudoku, Kakuro och
andra rutiga tankelekar" (tr. ~ "Vaderlind's special brew:
Sudoku, Kakuro, and other squared thought games")
o domino_vaderlind_2.dzn <https://www.hakank.org/minizinc/
domino_vaderlind_2.dzn>: Problem 2 from Paul Vaderlind's Swedish
puzzle book "Vaderlinds specialblandning: Sudoku, Kakuro och
andra rutiga tankelekar"
o domino_vaderlind_3.dzn <https://www.hakank.org/minizinc/
domino_vaderlind_3.dzn>: Problem 3 from Paul Vaderlind's Swedish
puzzle book "Vaderlinds specialblandning: Sudoku, Kakuro och
andra rutiga tankelekar"
o domino_simonis.dzn <https://www.hakank.org/minizinc/
domino_simonis.dzn>: Problem from Helmut Simonis' "Dominoes as a
Constraint Problem", page 1
o domino_glaeser.dzn <https://www.hakank.org/minizinc/
domino_glaeser.dzn>: Problem from "Thinking Mathematically", p. 172
* donald.mzn <https://www.hakank.org/minizinc/donald.mzn>: Alphametic
puzzle: DONALD + GERALD = ROBERT
* donald2.mzn <https://www.hakank.org/minizinc/donald2.mzn>:
Alphametic puzzle: DONALD + GERALD = ROBERT (using carries)
* drinking_game.mzn <https://www.hakank.org/minizinc/
drinking_game.mzn>: Drinking game (Marriott & Stuckey)
* drive_ya_nuts.mzn <https://www.hakank.org/minizinc/
drive_ya_nuts.mzn>: Drive Ya Nuts puzzle (rotated "nuts")
* dudeney_numbers.mzn <https://www.hakank.org/minizinc/
dudeney_numbers.mzn>: Dudeney numbers (inspired by Pierre Schaus'
Google CP/Python code in Dedeney numbers <http://cp-is-
fun.blogspot.com/2010/09/test-python.html>)
* einav_puzzle.mzn <https://www.hakank.org/minizinc/einav_puzzle.mzn>:
Solving the A programming puzzle from Einav <http://
gcanyon.wordpress.com/2009/10/28/a-programming-puzzle-from-einav/>
* eliza_pseudonym7.mzn <https://www.hakank.org/minizinc/
eliza_pseudonym7.mzn>: Eliza Pseudonym of Puzzlania 7
* einstein_hurlimann.mzn <https://www.hakank.org/minizinc/
einstein_hurlimann.mzn>: Einstein puzzle (variant of Zebra puzzle)
* einstein_opl.mzn <https://www.hakank.org/minizinc/einstein_opl.mzn>:
Einstein puzzle (variant of Zebra puzzle, from an OPL model)
* enclosed_tiles.mzn <https://www.hakank.org/minizinc/
enclosed_tiles.mzn>: Enclosed tiles (from Stack Overflow How do I
write a program to find the tiles that are completely enclosed?
<http://stackoverflow.com/questions/10067802/how-do-i-write-a-
program-to-find-the-tiles-that-are-completely-enclosed>)
* Enigma problems (originally from New Scientist Magazine <http://
www.newscientist.com/topic/enigma>). Also see Jim Randell's blog
Enigmatic Code - Programming Enigma Puzzles <https://
enigmaticcode.wordpress.com/> for many problems and solutions.
o enigma_95_for_love_and_money.mzn <https://www.hakank.org/
minizinc/enigma_95_for_love_and_money.mzn>: Enigma For love and
money (#95)
o enigma_248_add_or_multiply.mzn <https://www.hakank.org/minizinc/
enigma_248_add_or_multiply.mzn>: Enigma Add or multiply (#248)
o dice_with_a_difference_enigma_290.mzn <https://www.hakank.org/
minizinc/dice_with_a_difference_enigma_290.mzn>: Dice with a
difference (#290)
o enigma_843.mzn <https://www.hakank.org/minizinc/enigma_843.mzn>:
Enigma How many are whole? (#843)
o enigma_counting_pennies.mzn <https://www.hakank.org/minizinc/
enigma_counting_pennies.mzn>: Enigma Counting pennies (from 2005)
o enigma_circular_chain.mzn <https://www.hakank.org/minizinc/
enigma_circular_chain.mzn>: Enigma circular chain puzzle (#985)
o enigma_441_the_colored_painting.mzn <https://www.hakank.org/
minizinc/enigma_441_the_colored_painting.mzn>: The colored
paintinge (#445)
o enigma_1000.mzn <https://www.hakank.org/minizinc/
enigma_1000.mzn>: Enigma ENIGMA / M = TIMES puzzle (#1000)
o enigma_1001.mzn <https://www.hakank.org/minizinc/
enigma_1001.mzn>: Enigma What the hex? puzzle (#1001)
o chain_of_primes.mzn <https://www.hakank.org/minizinc/
chain_of_primes.mzn>: Chain of primes (#1216)
o a_league_of_their_own_enigma_1217.mzn <https://www.hakank.org/
minizinc/a_league_of_their_own_enigma_1217.mzn>: A league of
their own (#1217)
o age_changing.mzn <https://www.hakank.org/minizinc/
age_changing.mzn>: Age changing (Enigma 1224)
o enigma_1266_unhelpful_square.mzn <https://www.hakank.org/
minizinc/enigma_1266_unhelpful_square.mzn>: Enigma Unhelpful
square (#1266)
o enigma_1293.mzn <https://www.hakank.org/minizinc/
enigma_1293.mzn>: Enigma Reverse Fahrenheitpuzzle (#1293)
o enigma_eight_times.mzn <https://www.hakank.org/minizinc/
enigma_eight_times.mzn>: Enigma Eight times puzzle (#1317)
o enigma_eight_times2.mzn <https://www.hakank.org/minizinc/
enigma_eight_times2.mzn>: Enigma Eight times puzzle (#1317),
alternative model
o enigma_five_fives.mzn <https://www.hakank.org/minizinc/
enigma_five_fives.mzn>: Enigma Five fives puzzle (#1358)
o enigma_planets.mzn <https://www.hakank.org/minizinc/
enigma_planets.mzn>: Enigma planets puzzle (#1396)
o enigma_birthday_magic.mzn <https://www.hakank.org/minizinc/
enigma_birthday_magic.mzn>: Enigma birthday puzzle (#1448)
o enigma_portuguese_squares.mzn <https://www.hakank.org/minizinc/
enigma_portuguese_squares.mzn>: Enigma portuguese squares puzzle
(#1476)
o enigma_eighteen.mzn <https://www.hakank.org/minizinc/
enigma_eighteen.mzn>: Enigma Eighteen puzzle (#1496)
o relative_sizes.mzn <https://www.hakank.org/minizinc/
relative_sizes.mzn>: Relative sizes puzzle (Enigma 1515)
o just_forgotten.mzn <https://www.hakank.org/minizinc/
just_forgotten.mzn>: Just forgotten puzzle (Enigma 1517)
o enigma_1530.mzn <https://www.hakank.org/minizinc/
enigma_1530.mzn>: Enigma Tom Daley (#1530)
o enigma_1535.mzn <https://www.hakank.org/minizinc/
enigma_1535.mzn>: Enigma Back to front (#1535)
o enigma_1553.mzn <https://www.hakank.org/minizinc/
enigma_1553.mzn>: Enigma Squares from squares (#1553)
o enigma_1555.mzn <https://www.hakank.org/minizinc/
enigma_1555.mzn>: Enigma Not a square (#1555)
o enigma_1557.mzn <https://www.hakank.org/minizinc/
enigma_1557.mzn>: Enigma Reverse Division (#1557)
o enigma_1568.mzn <https://www.hakank.org/minizinc/
enigma_1568.mzn>: Enigma Odd puzzle (#1568)
o enigma_1570.mzn <https://www.hakank.org/minizinc/
enigma_1570.mzn>: Enigma Set of cubes (#1570)
o enigma_1573.mzn <https://www.hakank.org/minizinc/
enigma_1573.mzn>: Enigma Sat, Sun, Mon, Tue (#1573)
o enigma_1574.mzn <https://www.hakank.org/minizinc/
enigma_1574.mzn>: Enigma Doubly square dates (#1574)
o enigma_1575.mzn <https://www.hakank.org/minizinc/
enigma_1575.mzn>: Enigma All our days (#1575)
o enigma_1576.mzn <https://www.hakank.org/minizinc/
enigma_1576.mzn>: The holly and the ivy and the... (#1576)
o enigma_1577.mzn <https://www.hakank.org/minizinc/
enigma_1577.mzn>: Enigma Happy New Year (#1577)
o enigma_1615.mzn <https://www.hakank.org/minizinc/
enigma_1615.mzn>: Enigma #1615
o enigma_1631.mzn <https://www.hakank.org/minizinc/
enigma_1631.mzn>: Enigma #1631: Joe's pyramid
* equation.mzn <https://www.hakank.org/minizinc/equation.mzn>: Solve
the problem |11x11=4; 22x22=16; 33x33=?| (four interpretations)
* ett_ett_ett_ett_ett__fem.mzn <https://www.hakank.org/minizinc/
ett_ett_ett_ett_ett__fem.mzn>: Alphametic puzzle ETT + ETT + ETT +
ETT + ETT = FEM
* Project Euler <http://projecteuler.net/> problems:
o euler_1.mzn <https://www.hakank.org/minizinc/euler_1.mzn>:
Project Euler problem #1
o euler_2.mzn <https://www.hakank.org/minizinc/euler_2.mzn>:
Project Euler problem #2
o euler5.mzn <https://www.hakank.org/minizinc/euler5.mzn>: Project
Euler problem #5, euler5b.mzn <https://www.hakank.org/minizinc/
euler5b.mzn> using functions (requires MiniZinc 2)
o euler_6.mzn <https://www.hakank.org/minizinc/euler_6.mzn>:
Project Euler problem #6
o euler_9.mzn <https://www.hakank.org/minizinc/euler_9.mzn>:
Project Euler problem #9
o euler_18.mzn <https://www.hakank.org/minizinc/euler_18.mzn>:
Project Euler problem #18
o euler_30.mzn <https://www.hakank.org/minizinc/euler_30.mzn>:
Project Euler problem #30
o euler31.mzn <https://www.hakank.org/minizinc/euler31.mzn>:
Project Euler problem #31
o euler_39.mzn <https://www.hakank.org/minizinc/euler_39.mzn>:
Project Euler problem #39
o euler_52.mzn <https://www.hakank.org/minizinc/euler_52.mzn>:
Project Euler problem #52
* exodus.mzn <https://www.hakank.org/minizinc/exodus.mzn>: Exodus
problem (Dell Logic Puzzle)
* family_riddle.mzn <https://www.hakank.org/minizinc/
family_riddle.mzn>: Family riddle
* family_riddle2.mzn <https://www.hakank.org/minizinc/
family_riddle2.mzn>: Family riddle (variant)
* fair_xmas_duty_2014.mzn <https://www.hakank.org/minizinc/
fair_xmas_duty_2014.mzn>: Fair Xmas duty 2014 (Swedish holidays)
* farmer_and_cows.mzn <https://www.hakank.org/minizinc/
farmer_and_cows.mzn>: Farmer and cows problem
* farmer_and_cows_mip.mzn <https://www.hakank.org/minizinc/
farmer_and_cows_mip.mzn>: Farmer and cows problem (MIP approach)
* fancy.mzn <https://www.hakank.org/minizinc/fancy.mzn>: Mr Greenguest
puzzle (Fancy dress puzzle)
* farm_puzzle0.mzn <https://www.hakank.org/minizinc/farm_puzzle0.mzn>:
Farm puzzle, simple model
* farm_puzzle.mzn <https://www.hakank.org/minizinc/farm_puzzle.mzn>:
Farm puzzle, more general model
* fill_a_pix.mzn <https://www.hakank.org/minizinc/fill_a_pix.mzn>:
Fill-a-pix puzzle.
Data files:
o fill_a_pix1.dzn <https://www.hakank.org/minizinc/fill_a_pix1.dzn>
o fill_a_pix2.dzn <https://www.hakank.org/minizinc/fill_a_pix2.dzn>
o fill_a_pix3.dzn <https://www.hakank.org/minizinc/fill_a_pix3.dzn>
* final_student.mzn <https://www.hakank.org/minizinc/
final_student.mzn>: Final Student problem (Chris Smith)
* find_missing_number.mzn <https://www.hakank.org/minizinc/
find_missing_number.mzn>: Find the missing number in a (random
ordered) sequence of digits. Some data files:
o find_missing_number_50_11.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_11.dzn>
o find_missing_number_50_12.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_12.dzn>
o find_missing_number_50_12_random.dzn <https://www.hakank.org/
minizinc/find_missing_number_50_12_random.dzn>
o find_missing_number_50_13.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_13.dzn>
o find_missing_number_50_14.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_14.dzn>
o find_missing_number_50_15.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_15.dzn>
o find_missing_number_50_19.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_19.dzn>
o find_missing_number_50_1.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_1.dzn>
o find_missing_number_50_21.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_21.dzn>
o find_missing_number_50_22.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_22.dzn>
o find_missing_number_50_23.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_23.dzn>
o find_missing_number_50_24.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_24.dzn>
o find_missing_number_50_27.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_27.dzn>
o find_missing_number_50_2.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_2.dzn>
o find_missing_number_50_31.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_31.dzn>
o find_missing_number_50_32.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_32.dzn>
o find_missing_number_50_36.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_36.dzn>
o find_missing_number_50_37.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_37.dzn>
o find_missing_number_50_38.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_38.dzn>
o find_missing_number_50_39.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_39.dzn>
o find_missing_number_50_3.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_3.dzn>
o find_missing_number_50_42.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_42.dzn>
o find_missing_number_50_43.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_43.dzn>
o find_missing_number_50_44.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_44.dzn>
o find_missing_number_50_45.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_45.dzn>
o find_missing_number_50_46.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_46.dzn>
o find_missing_number_50_49.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_49.dzn>
o find_missing_number_50_4.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_4.dzn>
o find_missing_number_50_50.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_50.dzn>
o find_missing_number_50_5.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_5.dzn>
o find_missing_number_50_6.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_6.dzn>
o find_missing_number_50_9.dzn <https://www.hakank.org/minizinc/
find_missing_number_50_9.dzn>
o find_missing_number_100_54.dzn <https://www.hakank.org/minizinc/
find_missing_number_100_54.dzn>
o find_missing_number_250_101.dzn <https://www.hakank.org/
minizinc/find_missing_number_250_101.dzn>
o find_missing_number_250_123.dzn <https://www.hakank.org/
minizinc/find_missing_number_250_123.dzn>
o find_missing_number_250_169.dzn <https://www.hakank.org/
minizinc/find_missing_number_250_169.dzn>
o find_missing_number_250_192.dzn <https://www.hakank.org/
minizinc/find_missing_number_250_192.dzn>
o find_missing_number_250_196.dzn <https://www.hakank.org/
minizinc/find_missing_number_250_196.dzn>
o find_missing_number_250_205.dzn <https://www.hakank.org/
minizinc/find_missing_number_250_205.dzn>
o find_missing_number_250_235.dzn <https://www.hakank.org/
minizinc/find_missing_number_250_235.dzn>
o find_missing_number_250_34.dzn <https://www.hakank.org/minizinc/
find_missing_number_250_34.dzn>
o find_missing_number_250_56.dzn <https://www.hakank.org/minizinc/
find_missing_number_250_56.dzn>
o find_missing_number_250_62.dzn <https://www.hakank.org/minizinc/
find_missing_number_250_62.dzn>
o find_missing_number_250_83.dzn <https://www.hakank.org/minizinc/
find_missing_number_250_83.dzn>
o find_missing_number_500_463.dzn <https://www.hakank.org/
minizinc/find_missing_number_500_463.dzn>
o find_missing_number_500_83.dzn <https://www.hakank.org/minizinc/
find_missing_number_500_83.dzn>
o find_missing_number_1000_380.dzn <https://www.hakank.org/
minizinc/find_missing_number_1000_380.dzn>
* find_missing_number2.mzn <https://www.hakank.org/minizinc/
find_missing_number2.mzn>: Find the missing number in a (random
ordered) sequence of digits. This variant has a little more
"intelligence" than find_missing_number.mzn <https://www.hakank.org/
minizinc/find_missing_number.mzn>. Some data files:
o find_missing_number2_20_2.dzn <https://www.hakank.org/minizinc/
find_missing_number2_20_2.dzn>
o find_missing_number2_20_1.dzn <https://www.hakank.org/minizinc/
find_missing_number2_20_1.dzn>
o find_missing_number2_50_44.dzn <https://www.hakank.org/minizinc/
find_missing_number2_50_44.dzn>
o find_missing_number2_50_33.dzn <https://www.hakank.org/minizinc/
find_missing_number2_50_33.dzn>
o find_missing_number2_50_28.dzn <https://www.hakank.org/minizinc/
find_missing_number2_50_28.dzn>
o find_missing_number2_50_21.dzn <https://www.hakank.org/minizinc/
find_missing_number2_50_21.dzn>
o find_missing_number2_50_1.dzn <https://www.hakank.org/minizinc/
find_missing_number2_50_1.dzn>
o find_missing_number2_50_18.dzn <https://www.hakank.org/minizinc/
find_missing_number2_50_18.dzn>
o find_missing_number2_100_72.dzn <https://www.hakank.org/
minizinc/find_missing_number2_100_72.dzn>
o find_missing_number2_100_69.dzn <https://www.hakank.org/
minizinc/find_missing_number2_100_69.dzn>
o find_missing_number2_100_13.dzn <https://www.hakank.org/
minizinc/find_missing_number2_100_13.dzn>
o find_missing_number2_150_85.dzn <https://www.hakank.org/
minizinc/find_missing_number2_150_85.dzn>
o find_missing_number2_150_80.dzn <https://www.hakank.org/
minizinc/find_missing_number2_150_80.dzn>
o find_missing_number2_150_76.dzn <https://www.hakank.org/
minizinc/find_missing_number2_150_76.dzn>
o find_missing_number2_20_14.dzn <https://www.hakank.org/minizinc/
find_missing_number2_20_14.dzn>
o find_missing_number2_200_155.dzn <https://www.hakank.org/
minizinc/find_missing_number2_200_155.dzn>
o find_missing_number2_200_110.dzn <https://www.hakank.org/
minizinc/find_missing_number2_200_110.dzn>
o find_missing_number2_250_78.dzn <https://www.hakank.org/
minizinc/find_missing_number2_250_78.dzn>
o find_missing_number2_250_74.dzn <https://www.hakank.org/
minizinc/find_missing_number2_250_74.dzn>
o find_missing_number2_250_4.dzn <https://www.hakank.org/minizinc/
find_missing_number2_250_4.dzn>
o find_missing_number2_250_221.dzn <https://www.hakank.org/
minizinc/find_missing_number2_250_221.dzn>
o find_missing_number2_250_194.dzn <https://www.hakank.org/
minizinc/find_missing_number2_250_194.dzn>
o find_missing_number2_250_191.dzn <https://www.hakank.org/
minizinc/find_missing_number2_250_191.dzn>
o find_missing_number2_250_18.dzn <https://www.hakank.org/
minizinc/find_missing_number2_250_18.dzn>
o find_missing_number2_250_168.dzn <https://www.hakank.org/
minizinc/find_missing_number2_250_168.dzn>
o find_missing_number2_250_101.dzn <https://www.hakank.org/
minizinc/find_missing_number2_250_101.dzn>
o find_missing_number2_500_67.dzn <https://www.hakank.org/
minizinc/find_missing_number2_500_67.dzn>
o find_missing_number2_500_55.dzn <https://www.hakank.org/
minizinc/find_missing_number2_500_55.dzn>
o find_missing_number2_500_37.dzn <https://www.hakank.org/
minizinc/find_missing_number2_500_37.dzn>
o find_missing_number2_500_368.dzn <https://www.hakank.org/
minizinc/find_missing_number2_500_368.dzn>
o find_missing_number2_500_259.dzn <https://www.hakank.org/
minizinc/find_missing_number2_500_259.dzn>
o find_missing_number2_500_166.dzn <https://www.hakank.org/
minizinc/find_missing_number2_500_166.dzn>
o find_missing_number2_500_130.dzn <https://www.hakank.org/
minizinc/find_missing_number2_500_130.dzn>
o find_missing_number2_1000_278.dzn <https://www.hakank.org/
minizinc/find_missing_number2_1000_278.dzn>
* fill_in_the_squares.mzn <https://www.hakank.org/minizinc/
fill_in_the_squares.mzn>: Fill in the squares (Brainjammer problem)
* five_brigades.mzn <https://www.hakank.org/minizinc/
five_brigades.mzn>: Five brigades (Dudeney)
* five_elements.mzn <https://www.hakank.org/minizinc/
five_elements.mzn>: Five elements problem (Charles W. Trigg)
* five_floors.mzn <https://www.hakank.org/minizinc/five_floors.mzn>:
Five floors problem (Dinesman)
* five_statements.mzn <https://www.hakank.org/minizinc/
five_statements.mzn>: Five statements problem (logic problem)
* five_translators.mzn <https://www.hakank.org/minizinc/
five_translators.mzn>: Five translators (set version)
* five_translators2.mzn <https://www.hakank.org/minizinc/
five_translators2.mzn>: Five translators, matrix 0/1 version
* five_words_that_share_no_letter.mzn <https://www.hakank.org/
minizinc/five_words_that_share_no_letter.mzn>: Five words that share
no letter. Data files: five_letter_words.dzn <https://
www.hakank.org/minizinc/five_letter_words.dzn>,
five_letter_words_anagrams.dzn <https://www.hakank.org/minizinc/
five_letter_words_anagrams.dzn>
* four_islands.mzn <https://www.hakank.org/minizinc/four_islands.mzn>:
Four islands puzzle (Dell Logic Puzzles)
* four_rectangles.mzn <https://www.hakank.org/minizinc/
four_rectangles.mzn>: Four rectangles puzzle (Mind Your Decisions
problem)
* four_same_friends.mzn <https://www.hakank.org/minizinc/
four_same_friends.mzn>: Four same friends problem
* four_trees.mzn <https://www.hakank.org/minizinc/four_trees.mzn>:
Four trees problem (Logic4Fun)
* fractions.mzn <https://www.hakank.org/minizinc/fractions.mzn>:
Fractions, alphametic problem (standard Prolog benchmark)
* franklin_8x8_magic_square.mzn <https://www.hakank.org/minizinc/
franklin_8x8_magic_square.mzn>: Benjamin Franklin's 8x8 Magic Square
* funny_dice.mzn <https://www.hakank.org/minizinc/funny_dice.mzn>:
Funny dice problem (Sunday Times teaser 2739)
* futoshiki.mzn <https://www.hakank.org/minizinc/futoshiki.mzn>:
Futoshiki puzzle
* general_store.mzn <https://www.hakank.org/minizinc/
general_store.mzn>: General store problem (Sam Loyd)
* giant_cat_army_riddle.mzn <https://www.hakank.org/minizinc/
giant_cat_army_riddle.mzn>: Giant Cat Army riddle
* golf_puzzle.mzn <https://www.hakank.org/minizinc/golf_puzzle.mzn>:
Golf puzzle (Sam Loyd)
* good_burger_puzzlor.mzn <https://www.hakank.org/minizinc/
good_burger_puzzlor.mzn>: Good Burger (PuzzlOR)
* greatest_combination.mzn <https://www.hakank.org/minizinc/
greatest_combination.mzn>: Greatest combination problem (from
StackOverflow Solving Prolog puzzle <http://stackoverflow.com/
questions/10001344/solving-prolog-puzzle>)
* grid_puzzle.mzn <https://www.hakank.org/minizinc/grid_puzzle.mzn>:
Grid puzzle (from StackOverflow Riddle in Prolog <http://
stackoverflow.com/questions/9955366/riddle-in-prolog>)
* grime_puzzle.mzn <https://www.hakank.org/minizinc/grime_puzzle.mzn>:
See Travels in a Mathematical World Blog A puzzle from James Grime
about abcdef <http://travels.peterrowlett.net/2012/02/puzzle-from-
james-grime-about-abcdef.html>)
* grocery2.mzn <https://www.hakank.org/minizinc/grocery2.mzn>: Grocery
problem, alternative version
* guards_and_apples.mzn <https://www.hakank.org/minizinc/
guards_and_apples.mzn>: Guards and apple problem
* guards_and_apples2.mzn <https://www.hakank.org/minizinc/
guards_and_apples2.mzn>: Guards and apple problem (variant)
* hanging_weights.mzn <https://www.hakank.org/minizinc/
hanging_weights.mzn>: Hanging weights puzzle
* hardy_1729.mzn <https://www.hakank.org/minizinc/hardy_1729.mzn>:
Hardy's 1729 problem
* harry_potter_seven_potions.mzn <https://www.hakank.org/minizinc/
harry_potter_seven_potions.mzn>: Harry Potter's seven potions problem
* hidato.mzn <https://www.hakank.org/minizinc/hidato.mzn>: Hidato puzzle
* hidato_exists.mzn <https://www.hakank.org/minizinc/
hidato_exists.mzn>: Hidato puzzle, same as above but it use |exists|
which is less efficient
* hidato_table.mzn <https://www.hakank.org/minizinc/hidato_table.mzn>:
Hidato puzzle, using a |table| constraint.
* hidato_table2.mzn <https://www.hakank.org/minizinc/
hidato_table2.mzn> Hidato puzzle, can also solve non-rectangular
problems.
* houses.mzn <https://www.hakank.org/minizinc/houses.mzn> (from
Algebra 1, Glencoe/McGraw-Hill, 1998 via kanren)
* huey_dewey_louie.mzn <https://www.hakank.org/minizinc/
huey_dewey_louie.mzn>: Huey, Dewey, Louie, logical problem from
Marriott & Stuckey "Programming in Constraints"
* heterosquare.mzn <https://www.hakank.org/minizinc/heterosquare.mzn>:
Heterosquare problem
* how_old_am_i.mzn <https://www.hakank.org/minizinc/how_old_am_i.mzn>:
How old am I (from Choco)
* hundred_doors_unoptimized.mzn <https://www.hakank.org/minizinc/
hundred_doors_unoptimized.mzn>: 100 doors problem, unoptimized
(array version) (Rosetta code)
* hundred_doors_unoptimized2.mzn <https://www.hakank.org/minizinc/
hundred_doors_unoptimized2.mzn>: 100 doors problem, unoptimized
(array version, alternative model) (Rosetta code)
* hundred_doors_optimized.mzn <https://www.hakank.org/minizinc/
hundred_doors_optimized.mzn>: 100 doors problem, optimized (set
version) (Rosetta code)
* hundred_doors_optimized_array.mzn <https://www.hakank.org/minizinc/
hundred_doors_optimized_array.mzn>: 100 doors problem, optimized
(array version) (Rosetta code)
* hundred_fowls.mzn <https://www.hakank.org/minizinc/
hundred_fowls.mzn>: Hundred Fowls puzzle
* high_iq_problem.mzn <https://www.hakank.org/minizinc/
high_iq_problem.mzn>: "High IQ problem"
* its_a_tie.mzn <https://www.hakank.org/minizinc/its_a_tie.mzn>: "It's
a tie" problem (Dell Logic Puzzles)
* jellybeans.mzn <https://www.hakank.org/minizinc/jellybeans.mzn>:
Jellybeans
* jobs_puzzle.mzn <https://www.hakank.org/minizinc/jobs_puzzle.mzn>:
Jobs puzzle (an automated reasoning problem, TPTP #19)
* kakuro.mzn <https://www.hakank.org/minizinc/kakuro.mzn>: Kakuro puzzle
* kakuro2.mzn <https://www.hakank.org/minizinc/kakuro2.mzn>: Kakuro
puzzle, alternative representation of the hints.
* kakuro3.mzn <https://www.hakank.org/minizinc/kakuro3.mzn>: Kakuro
puzzle, simple version (inspired by BProlog's model)
* kaprekars_constant.mzn <https://www.hakank.org/minizinc/
kaprekars_constant.mzn>: Kaprekar's Constant
* kaprekars_constant2.mzn <https://www.hakank.org/minizinc/
kaprekars_constant2.mzn>: Kaprekar's Constant (calculate the
fixpoint for different lengths)
* kenken2.mzn <https://www.hakank.org/minizinc/kenken2.mzn>: KenKen
puzzle
* killer_sudoku.mzn <https://www.hakank.org/minizinc/
killer_sudoku.mzn>: Killer Sudoku puzzle
* killer_sudoku2.mzn <https://www.hakank.org/minizinc/
killer_sudoku2.mzn>: Killer Sudoku puzzle, alternative
representation of the hints
* kordemskys_palindrome_problem.mzn <https://www.hakank.org/minizinc/
kordemskys_palindrome_problem.mzn>: Kordemsky's Palindrome problem
* krypto.mzn <https://www.hakank.org/minizinc/krypto.mzn>: Krypto
puzzle (combine given numbers to an objective using the four basic
arithmetic operations)
* labeled_dice.mzn <https://www.hakank.org/minizinc/labeled_dice.mzn>:
Labeled dice, from Jim Orlin "Colored letters, labeled dice: a logic
puzzle" <http://jimorlin.wordpress.com/2009/02/17/colored-letters-
labeled-dice-a-logic-puzzle/>
* language_round_table.mzn <https://www.hakank.org/minizinc/
language_round_table.mzn>: Languages spoken at a round table (from
Stack overflow: A prolog program that reflects people sitting at a
round table <http://stackoverflow.com/questions/13305356/a-prolog-
program-that-reflects-people-sitting-at-a-round-table>)
* latin_square_card_puzzle.mzn <https://www.hakank.org/minizinc/
latin_square_card_puzzle.mzn>: Latin square card puzzle
* least_diff.mzn <https://www.hakank.org/minizinc/least_diff.mzn>:
Least diff problem: What is the smallest difference between two
numbers X - Y if you must use all the digits (0..9) exactly once?
* least_diff1.mzn <https://www.hakank.org/minizinc/least_diff1.mzn>:
Least diff problem: simpler version.
* lecture_series.mzn <https://www.hakank.org/minizinc/
lecture_series.mzn>: Lecture series puzzle (Dell Logic Puzzles)
* letter_square.mzn <https://www.hakank.org/minizinc/
letter_square.mzn>: Letter square problem (Vaderlind).
Data files:
o letter_square1.dzn <https://www.hakank.org/minizinc/
letter_square1.dzn>
o letter_square59.dzn <https://www.hakank.org/minizinc/
letter_square59.dzn>
o letter_square60.dzn <https://www.hakank.org/minizinc/
letter_square60.dzn>
o letter_square89.dzn <https://www.hakank.org/minizinc/
letter_square89.dzn>
* library_books.mzn <https://www.hakank.org/minizinc/
library_books.mzn>: Library books (Logic4Fun)
* lights_out.mzn <https://www.hakank.org/minizinc/lights_out.mzn>:
Lights out puzzle
* lights_out_all.mzn <https://www.hakank.org/minizinc/
lights_out_all.mzn>: Variant of Lights out puzzle (flip all cells in
row and column)
* limerick_primes.mzn <https://www.hakank.org/minizinc/
limerick_primes.mzn>: Limerick Primes (see John D. Cook: Limerick
Primes <http://www.johndcook.com/blog/2011/03/08/limerick-primes/>).
A more declarative version: limerick_primes2.mzn <https://
www.hakank.org/minizinc/limerick_primes2.mzn>
* linear_combinations.mzn <https://www.hakank.org/minizinc/
linear_combinations.mzn>: Restore origin list from pair differences.
For experiments use the MiniZinc-Python program
linear_combinations.py <https://www.hakank.org/minizinc/
linear_combinations.py>
* loading_pair_of_dice.mzn <https://www.hakank.org/minizinc/
loading_pair_of_dice.mzn>: Loading a pair of dice (by cheating)
* locker.mzn <https://www.hakank.org/minizinc/locker.mzn>: Locker puzzle.
* local_art_theft.mzn <https://www.hakank.org/minizinc/
local_art_theft.mzn>: Local Art Theft problem.
* local_art_theft1.mzn <https://www.hakank.org/minizinc/
local_art_theft1.mzn>: Local Art Theft problem. A much more verbose
model.
* logic_puzzle_aop.mzn <https://www.hakank.org/minizinc/
logic_puzzle_aop.mzn>: Logic puzzle (from The Art of Prolog)
* longest_subset_of_five_positions.mzn <https://www.hakank.org/
minizinc/longest_subset_of_five_positions.mzn>: Longest subset of
five positions
* lost_at_sea.mzn <https://www.hakank.org/minizinc/lost_at_sea.mzn>:
Lost at Sea (PuzzlOR)
* lucky_number.mzn <https://www.hakank.org/minizinc/lucky_number.mzn>:
Lucky numbers (see God Plays Dice What is the origin of Kirillov's
lucky number problem <http://godplaysdice.blogspot.com/2011/03/what-
is-origin-of-kirillovs-lucky.html>)
* m_queens_on_n_board.mzn <https://www.hakank.org/minizinc/
m_queens_on_n_board.mzn>: M queens on a N x N board
* M12.mzn <https://www.hakank.org/minizinc/M12.mzn>: Solving the M12
puzzlea <http://www.sciam.com/article.cfm?id=puzzles-simple-groups-
at-play>
* <http://www.sciam.com/article.cfm?id=puzzles-simple-groups-at-
play>M12b.mzn <https://www.hakank.org/minizinc/M12b.mzn>: Solving
the M12 puzzle <http://www.sciam.com/article.cfm?id=puzzles-simple-
groups-at-play>. A variant using just permutations.
* magic.mzn <https://www.hakank.org/minizinc/magic.mzn>: Magic square,
integer programming (GLPK)
* magic3.mzn <https://www.hakank.org/minizinc/magic3.mzn>: Magic
sequence, 3 x 3 (this formulations is from a standard Prolog benchark)
* magic4.mzn <https://www.hakank.org/minizinc/magic4.mzn>: Magic
sequence, 4 x 4 (this formulations is from a standard Prolog benchark)
* magic_modulo_number.mzn <https://www.hakank.org/minizinc/
magic_modulo_number.mzn>: Magic modulo number (from Scampi)
* magic_sequence.mzn <https://www.hakank.org/minizinc/
magic_sequence.mzn>: Magic sequence (CSPLib)
* magic_sequence2.mzn <https://www.hakank.org/minizinc/
magic_sequence2.mzn>: Magic sequence (CSPLib), alternative model
* magic_sequence3.mzn <https://www.hakank.org/minizinc/
magic_sequence3.mzn>: Magic sequence (CSPLib), alternative model
* magic_sequence4.mzn <https://www.hakank.org/minizinc/
magic_sequence4.mzn>: Magic sequence (CSPLib), alternative model
* magic_series.mzn <https://www.hakank.org/minizinc/magic_series.mzn>:
Magic series
* magic_square.mzn <https://www.hakank.org/minizinc/magic_square.mzn>:
Magic squares
* magic_square_function.mzn <https://www.hakank.org/minizinc/
magic_square_function.mzn>: Magic squares using some extra function
(requires MiniZinc 2.0)
* magic_square_associate.mzn <https://www.hakank.org/minizinc/
magic_square_associate.mzn>: Associative Magic squares
* magic_square_frenicle_form.mzn <https://www.hakank.org/minizinc/
magic_square_frenicle_form.mzn>: Magic squares with symmetry
breaking (Frénicle standard form <http://en.wikipedia.org/wiki/
Fr%C3%A9nicle_standard_form>)
* magic_square_primes.mzn <https://www.hakank.org/minizinc/
magic_square_primes.mzn>: Magic squares with only prime numbers
* magic_square_water_retention.mzn <https://www.hakank.org/minizinc/
magic_square_water_retention.mzn>: Magic squares water retention
problem
* mamas_age.mzn <https://www.hakank.org/minizinc/mamas_age.mzn>:
Mama's age (Dudeney)
* manasa_and_stones.mzn <https://www.hakank.org/minizinc/
manasa_and_stones.mzn>: Manasa and Stones problem
* marathon.mzn <https://www.hakank.org/minizinc/marathon.mzn>:
Marathon puzzle (XPress example), MIP model
* marathon2.mzn <https://www.hakank.org/minizinc/marathon2.mzn>:
Marathon puzzle (XPress example), CP model
* max_number_of_occurences.mzn <https://www.hakank.org/minizinc/
max_number_of_occurrences.mzn>: Max number of occurrences
(StackOverflow)
* message_sending.mzn <https://www.hakank.org/minizinc/
message_sending.mzn>: Message sending puzzle (cf all_paths_graph.mzn)
* minesweeper.mzn <https://www.hakank.org/minizinc/minesweeper.mzn>:
Minesweeper puzzle
* minesweeper_inverse.mzn <https://www.hakank.org/minizinc/
minesweeper_inverse.mzn>: Minesweeper "inverse" problem (given the
bombs, calculate the number of neighbours)
* minesweeper_model.mzn <https://www.hakank.org/minizinc/
minesweeper_model.mzn>: Minesweeper puzzle, general model to be used
with the following problems:
o minesweeper_0.mzn <https://www.hakank.org/minizinc/
minesweeper_0.mzn>
o minesweeper_1.mzn <https://www.hakank.org/minizinc/
minesweeper_1.mzn>
o minesweeper_2.mzn <https://www.hakank.org/minizinc/
minesweeper_2.mzn>
o minesweeper_3.mzn <https://www.hakank.org/minizinc/
minesweeper_3.mzn>
o minesweeper_4.mzn <https://www.hakank.org/minizinc/
minesweeper_4.mzn>
o minesweeper_5.mzn <https://www.hakank.org/minizinc/
minesweeper_5.mzn>
o minesweeper_6.mzn <https://www.hakank.org/minizinc/
minesweeper_6.mzn>
o minesweeper_7.mzn <https://www.hakank.org/minizinc/
minesweeper_7.mzn>
o minesweeper_8.mzn <https://www.hakank.org/minizinc/
minesweeper_8.mzn>
o minesweeper_9.mzn <https://www.hakank.org/minizinc/
minesweeper_9.mzn>
o minesweeper_basic3.mzn <https://www.hakank.org/minizinc/
minesweeper_basic3.mzn>
o minesweeper_basic4.mzn <https://www.hakank.org/minizinc/
minesweeper_basic4.mzn>
o minesweeper_basic4x4.mzn <https://www.hakank.org/minizinc/
minesweeper_basic4x4.mzn>
o minesweeper_config_page2.mzn <https://www.hakank.org/minizinc/
minesweeper_config_page2.mzn>
o minesweeper_config_page3.mzn <https://www.hakank.org/minizinc/
minesweeper_config_page3.mzn>
o minesweeper_german_Lakshtanov.mzn <https://www.hakank.org/
minizinc/minesweeper_german_Lakshtanov.mzn>
o minesweeper_splitter.mzn <https://www.hakank.org/minizinc/
minesweeper_splitter.mzn>
o minesweeper_wire.mzn <https://www.hakank.org/minizinc/
minesweeper_wire.mzn>
* miss_manners.mzn <https://www.hakank.org/minizinc/miss_manners.mzn>:
Miss Manners' seating problem (standard benchmark for rule engines).
Data:
o miss_manners_16.dzn <https://www.hakank.org/minizinc/
miss_manners_16.dzn>: 16 quests
o miss_manners_64.dzn <https://www.hakank.org/minizinc/
miss_manners_64.dzn>: 64 quests
o miss_manners_128.dzn <https://www.hakank.org/minizinc/
miss_manners_128.dzn>: 128 quests
* mislabeled_boxes.mzn <https://www.hakank.org/minizinc/
mislabeled_boxes.mzn>: Mislabeled boxes (theorem proving problem,
TPTP #12)
* missing_digit.mzn <https://www.hakank.org/minizinc/
missing_digit.mzn>: Missing digit probblem
* money_change.mzn <https://www.hakank.org/minizinc/money_change.mzn>:
Simple money change problem
* monks_and_doors.mzn <https://www.hakank.org/minizinc/
monks_and_doors.mzn>: Eight monks and four doors
* monorail.mzn <https://www.hakank.org/minizinc/monorail.mzn>:
Monorail puzzle (Grand Tour).
Data:
o monorail1.dzn <https://www.hakank.org/minizinc/monorail1.dzn>:
4x4 problem (with 3 hints)
o monorail2.dzn <https://www.hakank.org/minizinc/monorail2.dzn>:
6x6 problem (with 7 hints)
o monorail3.dzn <https://www.hakank.org/minizinc/monorail3.dzn>:
6x11 problem (with 16 hints)
o monorail4.dzn <https://www.hakank.org/minizinc/monorail4.dzn>:
6x14 problem (with 18 hints)
o monorail5.dzn <https://www.hakank.org/minizinc/monorail5.dzn>:
8x21 problem (with 52 hints)
o monorail6.dzn <https://www.hakank.org/minizinc/monorail6.dzn>:
6x6 problem (with 7 hints)
* move_one_coin.mzn <https://www.hakank.org/minizinc/
move_one_coin.mzn>: Move one coin puzzle (Scam Nation)
* movement_puzzle.mzn <https://www.hakank.org/minizinc/
movement_puzzle.mzn>: Movement puzzle (1d array)
* moving_coins.mzn <https://www.hakank.org/minizinc/moving_coins.mzn>:
Moving coins in a triangle (generalized model)
* mr_smith.mzn <https://www.hakank.org/minizinc/mr_smith.mzn>: Mr
Smith problem (IF Prolog)
* muddle_management.mzn <https://www.hakank.org/minizinc/
muddle_management.mzn>: Muddle management (Logic4Fun)
* multipl.mzn <https://www.hakank.org/minizinc/multipl.mzn>: Unknown
multiplication (standard Prolog benchmark)
* multiplicative_sequence.mzn <https://www.hakank.org/minizinc/
multiplicative_sequence.mzn>: Multiplicative sequence
* murder.mzn <https://www.hakank.org/minizinc/murder.mzn>: Murder puzzle
* music_men.mzn <https://www.hakank.org/minizinc/music_men.mzn>: Music
men puzzle
* n_puzzle.mzn <https://www.hakank.org/minizinc/n_puzzle.mzn>: N-
puzzle, e.g. 8-puzzle, 15-puzzle
* narcissistic_numbers.mzn <https://www.hakank.org/minizinc/
narcissistic_numbers.mzn>: Narcissistic numbers
* norwegian_mathematical_olympiad_problem.mzn <https://www.hakank.org/
minizinc/norwegian_mathematical_olympiad_problem.mzn>: Norwegian
Mathematical Olympiad Problem
* number_lock.mzn <https://www.hakank.org/minizinc/number_lock.mzn>:
Number lock problem (Presh Talwalkar, MindYourDecisions)
* number_lock2.mzn <https://www.hakank.org/minizinc/number_lock2.mzn>:
Number lock problem (Presh Talwalkar, MindYourDecisions), another
version
* number_of_regions.mzn <https://www.hakank.org/minizinc/
number_of_regions.mzn>: Number of regions (Vaderlind, Guy, Larson:
"The Inquisitive Problem Solver", problem 21)
* number_puzzle.mzn <https://www.hakank.org/minizinc/
number_puzzle.mzn>: A number puzzle (of some kind)
* numbrix.mzn <https://www.hakank.org/minizinc/numbrix.mzn>: Numbrix
(cf Hidato), MIP model
* numeric_keypad.mzn <https://www.hakank.org/minizinc/
numeric_keypad.mzn>: Numeric keypad problem
* nonogram.mzn <https://www.hakank.org/minizinc/nonogram.mzn>:
Nonogram, a.k.a. Painting by numbers. Also, see
"nonogram_regular.mzn" and "nonogram_create_automaton.mzn" below.
* nonogram_regular.mzn <https://www.hakank.org/minizinc/
nonogram_regular.mzn>: Nongoram, a.k.a. Painting by numbers. This
version uses the |regular| constraints and is much faster than
nonogram.mzn <https://www.hakank.org/minizinc/nonogram.mzn>.
Note that the data models must be in a specific format (listing the
finite states for the |regular| constraint, converted (for example)
by the Perl program make_nonogram_automata.pl <https://
www.hakank.org/minizinc/make_nonogram_automata.pl>. Below is a list
of data instances with the proper format. The data files used with
nonogram_regular.mzn is the "*_aut.dzn" version. Also, see
"nonogram_create_automaton.mzn" below.
o Bear: nonogram_bear_aut.dzn <https://www.hakank.org/minizinc/
nonogram_bear_aut.dzn> nonogram_bear.dzn <https://
www.hakank.org/minizinc/nonogram_bear.dzn>
o Car: nonogram_car_aut.dzn <https://www.hakank.org/minizinc/
nonogram_car_aut.dzn> nonogram_car.dzn <https://www.hakank.org/
minizinc/nonogram_car.dzn>
o Castle: nonogram_castle_aut.dzn <https://www.hakank.org/
minizinc/nonogram_castle_aut.dzn> nonogram_castle.dzn <https://
www.hakank.org/minizinc/nonogram_castle.dzn>
o Crocodile: nonogram_crocodile_aut.dzn <https://www.hakank.org/
minizinc/nonogram_crocodile_aut.dzn> nonogram_crocodile.dzn
<https://www.hakank.org/minizinc/nonogram_crocodile.dzn>
o Difficult: nonogram_difficult_aut.dzn <https://www.hakank.org/
minizinc/nonogram_difficult_aut.dzn> nonogram_difficult.dzn
<https://www.hakank.org/minizinc/nonogram_difficult.dzn>
o Dragonfly: nonogram_dragonfly_aut.dzn <https://www.hakank.org/
minizinc/nonogram_dragonfly_aut.dzn> nonogram_dragonfly.dzn
<https://www.hakank.org/minizinc/nonogram_dragonfly.dzn>
o Griddler: nonogram_griddler_aut.dzn <https://www.hakank.org/
minizinc/nonogram_griddler_aut.dzn> nonogram_griddler.dzn
<https://www.hakank.org/minizinc/nonogram_griddler.dzn>
o Hard: nonogram_hard_aut.dzn <https://www.hakank.org/minizinc/
nonogram_hard_aut.dzn> nonogram_hard.dzn <https://
www.hakank.org/minizinc/nonogram_hard.dzn>
o Hen: nonogram_hen_aut.dzn <https://www.hakank.org/minizinc/
nonogram_hen_aut.dzn> nonogram_hen.dzn <https://www.hakank.org/
minizinc/nonogram_hen.dzn>
o House: nonogram_house_aut.dzn <https://www.hakank.org/minizinc/
nonogram_house_aut.dzn> nonogram_house.dzn <https://
www.hakank.org/minizinc/nonogram_house.dzn>
o Lambda: nonogram_lambda_aut.dzn <https://www.hakank.org/
minizinc/nonogram_lambda_aut.dzn> nonogram_lambda.dzn <https://
www.hakank.org/minizinc/nonogram_lambda.dzn>
o n2: nonogram_n2_aut.dzn <https://www.hakank.org/minizinc/
nonogram_n2_aut.dzn> nonogram_n2.dzn <https://www.hakank.org/
minizinc/nonogram_n2.dzn>
o n3: nonogram_n3_aut.dzn <https://www.hakank.org/minizinc/
nonogram_n3_aut.dzn> nonogram_n3.dzn <https://www.hakank.org/
minizinc/nonogram_n3.dzn>
o n4: nonogram_n4_aut.dzn <https://www.hakank.org/minizinc/
nonogram_n4_aut.dzn> nonogram_n4.dzn <https://www.hakank.org/
minizinc/nonogram_n4.dzn>
o n5: nonogram_n5_aut.dzn <https://www.hakank.org/minizinc/
nonogram_n5_aut.dzn> nonogram_n5.dzn <https://www.hakank.org/
minizinc/nonogram_n5.dzn>
o n6: nonogram_n6_aut.dzn <https://www.hakank.org/minizinc/
nonogram_n6_aut.dzn> nonogram_n6.dzn <https://www.hakank.org/
minizinc/nonogram_n6.dzn>
o Nonunique: nonogram_nonunique_aut.dzn <https://www.hakank.org/
minizinc/nonogram_nonunique_aut.dzn> nonogram_nonunique.dzn
<https://www.hakank.org/minizinc/nonogram_nonunique.dzn>
o Optima: nonogram_optima_aut.dzn <https://www.hakank.org/
minizinc/nonogram_optima_aut.dzn> nonogram_optima.dzn <https://
www.hakank.org/minizinc/nonogram_optima.dzn>
o P199: nonogram_p199_aut.dzn <https://www.hakank.org/minizinc/
nonogram_p199_aut.dzn> nonogram_p199.dzn <https://
www.hakank.org/minizinc/nonogram_p199.dzn>
o P200: nonogram_p200_aut.dzn <https://www.hakank.org/minizinc/
nonogram_p200_aut.dzn> nonogram_p200.dzn <https://
www.hakank.org/minizinc/nonogram_p200.dzn>
o ps: nonogram_ps_aut.dzn <https://www.hakank.org/minizinc/
nonogram_ps_aut.dzn> nonogram_ps.dzn <https://www.hakank.org/
minizinc/nonogram_ps.dzn>
o Simple: nonogram_simple_aut.dzn <https://www.hakank.org/
minizinc/nonogram_simple_aut.dzn> nonogram_simple.dzn <https://
www.hakank.org/minizinc/nonogram_simple.dzn>
o Simple2: nonogram_simple2_aut.dzn <https://www.hakank.org/
minizinc/nonogram_simple2_aut.dzn> nonogram_simple2.dzn
<https://www.hakank.org/minizinc/nonogram_simple2.dzn>
o Soccer player: nonogram_soccer_player_aut.dzn <https://
www.hakank.org/minizinc/nonogram_soccer_player_aut.dzn>
nonogram_soccer_player.dzn <https://www.hakank.org/minizinc/
nonogram_soccer_player.dzn>
o Problem from Stack Overflow: Solving Nonograms (Picross)
<http://stackoverflow.com/questions/813366/solving-nonograms-
picross>: nonogram_stack_overflow.dzn <https://www.hakank.org/
minizinc/nonogram_stack_overflow.dzn>
o t1: nonogram_t1_aut.dzn <https://www.hakank.org/minizinc/
nonogram_t1_aut.dzn> nonogram_t1.dzn <https://www.hakank.org/
minizinc/nonogram_t1.dzn>
o t2 (with "zero clue") nonogram_t2.dzn <https://www.hakank.org/
minizinc/nonogram_t2.dzn>
o t3: nonogram_t3_aut.dzn <https://www.hakank.org/minizinc/
nonogram_t3_aut.dzn> nonogram_t3.dzn <https://www.hakank.org/
minizinc/nonogram_t3.dzn>
o gondola: nonogram_gondola.dzn <https://www.hakank.org/minizinc/
nonogram_gondola.dzn>
* nonogram_create_automaton.mzn <https://www.hakank.org/minizinc/
nonogram_create_automaton.mzn>: Nonogram solver. This version uses
the |regular| constraints and is much faster than nonogram.mzn
<https://www.hakank.org/minizinc/nonogram.mzn>.
In contract to nonogram_regular.mzn <https://www.hakank.org/
minizinc/nonogram_regular.mzn> it creates the automata from the
Nonogram patterns (clues), so no preprocessing step is needed. The
data file used is the files shown above for "nonogram_regular.mzn"
with no "_aut" in its name.
* nonogram_create_automaton2.mzn <https://www.hakank.org/minizinc/
nonogram_create_automaton2.mzn>: Nonogram solver. A version of
nonogram_create_automaton.mzn <https://www.hakank.org/minizinc/
nonogram_create_automaton.mzn> that calculates the states as par
variables (not decision variables). Note: *It is the recommended
model, especially for solvers that have an optimized version of the
|regular| constraint.*
Data files: besides the data files above, there is now a dedicated
page for Nonogram problems: MiniZinc: Nonogram problem instances
in .dzn format (from JaCoP's distribution) <https://www.hakank.org/
minizinc/nonogram_examples/>.
* nonogram_gchq.mzn <https://www.hakank.org/minizinc/
nonogram_gchq.mzn>: Nonogram GCHQ problem with fixed black cells.
From Can you solve the British spy agency’s ridiculously difficult
Christmas puzzle? <http://qz.com/570665/can-you-solve-the-british-
spy-agencys-ridiculously-difficult-christmas-puzzle/>
* nonogram_regexp.mzn <https://www.hakank.org/minizinc/
nonogram_regexp.mzn>: Nonogram solver using the |regular(x,pattern)|
global constraint where |pattern| is a regular expression (regexp).
See above for some problem instances. Note: This require that
MiniZinc has been complied with Gecode for the support of regexps.
* number_generation.mzn <https://www.hakank.org/minizinc/
number_generation.mzn>: Number generation (cf Devil's word)
* number_square.mzn <https://www.hakank.org/minizinc/
number_square.mzn>: Recreational mathematics (Pascal Van Hentenryck:
"The OPL Optimization Programming Language")
* numberlink.mzn <https://www.hakank.org/minizinc/numberlink.mzn>:
Numberlink grid puzzle
Instances:
o numberlink1.dzn <https://www.hakank.org/minizinc/numberlink1.dzn>
o numberlink2.dzn <https://www.hakank.org/minizinc/numberlink2.dzn>
o numberlink3.dzn <https://www.hakank.org/minizinc/numberlink3.dzn>
o numberlink4.dzn <https://www.hakank.org/minizinc/numberlink4.dzn>
o numberlink5.dzn <https://www.hakank.org/minizinc/numberlink5.dzn>
o numberlink6.dzn <https://www.hakank.org/minizinc/numberlink6.dzn>
o numberlink7.dzn <https://www.hakank.org/minizinc/numberlink7.dzn>
* OandX.mzn <https://www.hakank.org/minizinc/OandX.mzn>: Three
Dimensional Nought and Crosses (Tic-Tac-Toe) (Williams)
* odd_even_sequences.mzn <https://www.hakank.org/minizinc/
odd_even_sequences.mzn>: Odd/even sequence (from Presh Talwalkar How
many odd-even sequences are there? <http://mindyourdecisions.com/
blog/2014/04/21/monday-puzzle-how-many-odd-even-sequences-are-there/>)
* office_blocked.mzn <https://www.hakank.org/minizinc/
office_blocked.mzn>: Office blocked (Logic4Fun)
* office_blocked2.mzn <https://www.hakank.org/minizinc/
office_blocked2.mzn>: Office blocked, alternative approach (Logic4Fun)
* olympic.mzn <https://www.hakank.org/minizinc/olympic.mzn>: Olympic
problem (standard Prolog benchmark)
* one_off_digit.mzn <https://www.hakank.org/minizinc/
one_off_digit.mzn>: One off digit problem (Richard Wiseman)
* pair_divides_the_sum.mzn <https://www.hakank.org/minizinc/
pair_divides_the_sum.mzn>: Pair divides the sum problem
* pandigital_numbers.mzn <https://www.hakank.org/minizinc/
pandigital_numbers.mzn>: Pandigital numbers (any base <= 10)
* party_mixing.mzn <https://www.hakank.org/minizinc/party_mixing.mzn>:
Party mixing (mixing people at different tables),
* party_mixing2.mzn <https://www.hakank.org/minizinc/
party_mixing2.mzn>: simpler version (skipping the matrix)
* peaceableArmyOfQueens.mzn <https://www.hakank.org/minizinc/
peaceableArmyOfQueens.mzn>: Peaceable Army of Queens
* perfect_square_sequence.mzn <https://www.hakank.org/minizinc/
perfect_square_sequence.mzn>: Perfect square sequence
* permutation_symmetry.mzn <https://www.hakank.org/minizinc/
permutation_symmetry.mzn>: Permutation symmetry
* philosophical_railway.mzn <https://www.hakank.org/minizinc/
philosophical_railway.mzn>: Philosophical railway
* photo_hkj.mzn <https://www.hakank.org/minizinc/photo_hkj.mzn>: Photo
problem
* photo_hkj2_model.mzn <https://www.hakank.org/minizinc/
photo_hkj2_model.mzn>: Photo problem model
* photo_hkj2_data1.mzn <https://www.hakank.org/minizinc/
photo_hkj2_data1.mzn>: Data for photo problem
* photo_hkj2_data2.mzn <https://www.hakank.org/minizinc/
photo_hkj2_data2.mzn>: Data for photo problem
* photo_stackoverflow.mzn <https://www.hakank.org/minizinc/
photo_stackoverflow.mzn>: Another photo problem
* photo_stackoverflow2.mzn <https://www.hakank.org/minizinc/
photo_stackoverflow2.mzn>: Another photo problem, version 2
* photo_stackoverflow3.mzn <https://www.hakank.org/minizinc/
photo_stackoverflow3.mzn>: Another photo problem, version 3
* place_number.mzn <https://www.hakank.org/minizinc/place_number.mzn>:
Placing Number Puzzle
* place_number2.mzn <https://www.hakank.org/minizinc/
place_number2.mzn>: Placing Number Puzzle, alternative approach.
Also includes a 12-number problem.
* place_number3.mzn <https://www.hakank.org/minizinc/
place_number3.mzn>: Placing Number Puzzle, a more general approach
than place_number.mzn and place_number2.mzn
* planet_colonization_puzzlor.mzn <https://www.hakank.org/minizinc/
planet_colonization_puzzlor.mzn>: Planet Colonization (PuzzlOR problem)
* primes_in_a_circle.mzn <https://www.hakank.org/minizinc/
primes_in_a_circle.mzn>: Primes in a circle
* puzzle1.mzn <https://www.hakank.org/minizinc/puzzle1.mzn>: Yet
another column/row sum problem
* pyramid_of_numbers.mzn <https://www.hakank.org/minizinc/
pyramid_of_numbers.mzn>: Pyramid of numbers (Rosetta code)
* queens3.mzn <https://www.hakank.org/minizinc/queens3.mzn>: n-queens
problem
* queens4.mzn <https://www.hakank.org/minizinc/queens4.mzn>: n-queens
problem, using alldifferent
* queens_and_knights.mzn <https://www.hakank.org/minizinc/
queens_and_knights.mzn>: Queens and Knights
* queens_diversity.mzn <https://www.hakank.org/minizinc/
queens_diversity.mzn>: n-queens diversity problem
* queens_ip.mzn <https://www.hakank.org/minizinc/queens_ip.mzn>: n-
queens problem, integer programming model (GLPK)
* queens_viz.mzn <https://www.hakank.org/minizinc/queens_viz.mzn>: n-
queens problem, using CP-Viz
* raven_puzzle.mzn <https://www.hakank.org/minizinc/raven_puzzle.mzn>:
"Polyglot puzzle" (from Raven <http://www.raven.nu/blog/2008/02/29/
internationellt-pa-kontoret/>, Swedish)
* reindeer_ordering.mzn <https://www.hakank.org/minizinc/
reindeer_ordering.mzn>: Reindeer ordering (Decision Management
Community problem)
* remarkable_sequence.mzn <https://www.hakank.org/minizinc/
remarkable_sequence.mzn>: Remarkable sequence (from an Alma-0
model), i.e Langford problem n=9, k=3.
* reveal_the_mapping.mzn <https://www.hakank.org/minizinc/
reveal_the_mapping.mzn>: Reveal the mapping (from David Bolton:
Programming Contest 46 - Reveal the Mapping <http://cplus.about.com/
od/programmingchallenges/a/Programming-Contest-46-explain-rings.htm>)
* reverse_multiples.mzn <https://www.hakank.org/minizinc/
reverse_multiples.mzn>: Reverse multiples
* rock_star_dressing_problem.mzn <https://www.hakank.org/minizinc/
rock_star_dressing_problem.mzn>: Rock star dressing problem
* rogo.mzn <https://www.hakank.org/minizinc/rogo.mzn>: Rogo grid
puzzle, rogo2.mzn <https://www.hakank.org/minizinc/rogo2.mzn>
(faster version with symmetry breaking)
Problem instances:
o rogo_mike_trick.dzn <https://www.hakank.org/minizinc/
rogo_mike_trick.dzn>: The example from Mike Trick (Operations
Research, Sudoko, Rogo, and Puzzles <http://mat.tepper.cmu.edu/
blog/?p=1302>)
o rogo_20110106.dzn <https://www.hakank.org/minizinc/
rogo_20110106.dzn>: Daily paper problem from 20110106
o rogo_20110107.dzn <https://www.hakank.org/minizinc/
rogo_20110107.dzn>: Daily paper problem from 20110107
* rogo3.mzn <https://www.hakank.org/minizinc/rogo3.mzn>: Rogo grid
puzzle, a yet faster version using |table| constraint for the
connections and some other improvements. Note that this version also
use the "Best" points (which has been added to the problem files).
Data files:
rogo_mike_trick.dzn <https://www.hakank.org/minizinc/
rogo_mike_trick.dzn>: The example from Mike Trick (Operations
Research, Sudoko, Rogo, and Puzzles <http://mat.tepper.cmu.edu/
o blog/?p=1302>) rogo_20110106.dzn <https://www.hakank.org/
minizinc/rogo_20110106.dzn>: Problem from 20110106
o rogo_20110107.dzn <https://www.hakank.org/minizinc/
rogo_20110107.dzn>
o rogo_20110709.dzn <https://www.hakank.org/minizinc/
rogo_20110709.dzn>
o rogo_20110709.dzn <https://www.hakank.org/minizinc/
rogo_20110709.dzn>
o rogo_20110710.dzn <https://www.hakank.org/minizinc/
rogo_20110710.dzn>
o rogo_20110711.dzn <https://www.hakank.org/minizinc/
rogo_20110711.dzn>
o rogo_20110712.dzn <https://www.hakank.org/minizinc/
rogo_20110712.dzn>
o rogo_20110713.dzn <https://www.hakank.org/minizinc/
rogo_20110713.dzn>
o rogo_intro1.dzn <https://www.hakank.org/minizinc/
rogo_intro1.dzn>: Intro problem 1
o rogo_intro2.dzn <https://www.hakank.org/minizinc/
rogo_intro2.dzn>: Intro problem 2
o rogo_intro3.dzn <https://www.hakank.org/minizinc/
rogo_intro3.dzn>: Intro problem 3
o rogo_intro4.dzn <https://www.hakank.org/minizinc/
rogo_intro4.dzn>: Intro problem 4
o rogo_intro5.dzn <https://www.hakank.org/minizinc/
rogo_intro5.dzn>: Intro problem 5
o rogo_intro6.dzn <https://www.hakank.org/minizinc/
rogo_intro6.dzn>: Intro problem 6
o rogo_intro7.dzn <https://www.hakank.org/minizinc/
rogo_intro7.dzn>: Intro problem 7
o rogo_intro8.dzn <https://www.hakank.org/minizinc/
rogo_intro8.dzn>: Intro problem 8
* rook_path.mzn <https://www.hakank.org/minizinc/rook_path.mzn>: Rook
path (on a square matrix)
* rotating_discs.mzn <https://www.hakank.org/minizinc/
rotating_discs.mzn>: Rotating discs (from Jean-Luis Lauriere's ALICE
paper, page 84f)
* rotation.mzn <https://www.hakank.org/minizinc/rotation.mzn>: Nokia's
"rotation puzzle"
* rotation2.mzn <https://www.hakank.org/minizinc/rotation2.mzn>:
Nokia's "rotation puzzle", using just permutation arrays.
* rubiks_cube.mzn <https://www.hakank.org/minizinc/rubiks_cube.mzn>:
Rubik's cube, find the optimal number of moves. Using only the 6
permutations representing the moves, and their inverses.
* safe_cracking.mzn <https://www.hakank.org/minizinc/
safe_cracking.mzn>: Safe cracking
* samurai_puzzle.mzn <https://www.hakank.org/minizinc/
samurai_puzzle.mzn>: Samuraï grid puzzle
* seating_plan.mzn <https://www.hakank.org/minizinc/seating_plan.mzn>:
Seating plan (Daniel L. Dudley, The Nut Cracker suit #1)
* secret_santa.mzn <https://www.hakank.org/minizinc/secret_santa.mzn>:
Secret Santa problem
* secret_santa2.mzn <https://www.hakank.org/minizinc/
secret_santa2.mzn>: Another Secret Santa problem
* self_referential_quiz.mzn <https://www.hakank.org/minizinc/
self_referential_quiz.mzn>: Self-referential quiz
* self_referential_sentence.mzn <https://www.hakank.org/minizinc/
self_referential_sentence.mzn>: Self-referential sentence
* send_more_money.mzn <https://www.hakank.org/minizinc/
send_more_money.mzn>: Alphametic puzzle: SEND + MORE = MONEY
* send_more_money2.mzn <https://www.hakank.org/minizinc/
send_more_money2.mzn>: Alphametic puzzle: SEND + MORE = MONEY,
alternative model
* send_more_money_any_base.mzn <https://www.hakank.org/minizinc/
send_more_money_any_base.mzn>: Alphametic puzzle: SEND + MORE =
MONEY, in any base
* send_more_money_ip.mzn <https://www.hakank.org/minizinc/
send_more_money_ip.mzn>: Alphametic puzzle: SEND + MORE = MONEY,
integer programming model (GLPK)
* send_most_money.mzn <https://www.hakank.org/minizinc/
send_most_money.mzn>: Alphametic puzzle: SEND + MOST = MONEY
(maximize MONEY)
* sequence_2_3.mzn <https://www.hakank.org/minizinc/sequence_2_3.mzn>:
Simple permutation puzzle
* sequence_puzzle.mzn <https://www.hakank.org/minizinc/
sequence_puzzle.mzn>: Sequence puzzle (from StackOverflow: What's a
more efficient implementation of this puzzle? <http://
stackoverflow.com/questions/27089772/whats-a-more-efficient-
implementation-of-this-puzzle>)
* seseman.mzn <https://www.hakank.org/minizinc/seseman.mzn>: Seseman
Convent problem (see Seseman Convent problem) <http://
www.hakank.org/seseman/seseman.cgi>
* <http://www.hakank.org/seseman/seseman.cgi>seseman2.mzn <https://
www.hakank.org/minizinc/seseman2.mzn>: Seseman Convent problem,
generalized model
* set_puzzle.mzn <https://www.hakank.org/minizinc/set_puzzle.mzn>:
Solving SET Puzzles <http://www.nytimes.com/ref/crosswords/
setpuzzle.html>
* skyscraper.mzn <https://www.hakank.org/minizinc/skyscraper.mzn>:
Skyscraper puzzle
* special_6_digit_number.mzn <https://www.hakank.org/minizinc/
special_6_digit_number.mzn>: Special 6 digit number problem (Mind
Your Decisions)
* spy_girls.mzn <https://www.hakank.org/minizinc/spy_girls.mzn>: Spy
girls problem
* smullyan_knights_knaves.mzn <https://www.hakank.org/minizinc/
smullyan_knights_knaves.mzn>: Raymond Smullyan's Knights and Knaves
problems
* smullyan_knights_knaves_normals.mzn <https://www.hakank.org/
minizinc/smullyan_knights_knaves_normals.mzn>: Raymond Smullyan's
Knights, Knaves, and Normals problems
* smullyan_knights_knaves_normals_bahava.mzn <https://www.hakank.org/
minizinc/smullyan_knights_knaves_normals_bahava.mzn>: Raymond
Smullyan's Knights, Knaves, and Normals at the Island of Bahava
problems
* smullyan_lion_and_unicorn.mzn <https://www.hakank.org/minizinc/
smullyan_lion_and_unicorn.mzn>: Raymond Smullyan's Lion and Unicorn
problems
* smullyan_portia.mzn <https://www.hakank.org/minizinc/
smullyan_portia.mzn>: Raymond Smullyan's Portia problems
* soccer_puzzle.mzn <https://www.hakank.org/minizinc/
soccer_puzzle.mzn>: Soccer puzzle
* sokoban.mzn <https://www.hakank.org/minizinc/sokoban.mzn>: Sokoban
problem
* solitaire_battleship.mzn <https://www.hakank.org/minizinc/
solitaire_battleship.mzn>: Solitaire Battleship
* spinning_disks.mzn <https://www.hakank.org/minizinc/
spinning_disks.mzn>: The spinning disks problem from Skeptic's Play
<http://skepticsplay.blogspot.com/2010/03/spinning-disks.html>
* state_name_puzzle.mzn <https://www.hakank.org/minizinc/
state_name_puzzle.mzn>: State name puzzle (from Rosetta Code:
<http://rosettacode.org/wiki/State_name_puzzle>)
* strata.mzn <https://www.hakank.org/minizinc/strata.mzn>: Strata grid
puzzle
* strimko.mzn <https://www.hakank.org/minizinc/strimko.mzn>: Strimko
<http://www.strimko.com/> puzzle (Latin squares with "streams")
Some data files:
o strimko_002.dzn <https://www.hakank.org/minizinc/strimko_002.dzn>
o strimko_067.dzn <https://www.hakank.org/minizinc/strimko_067.dzn>
o strimko_068.dzn <https://www.hakank.org/minizinc/strimko_068.dzn>
o strimko_070.dzn <https://www.hakank.org/minizinc/strimko_070.dzn>
* strimko2.mzn <https://www.hakank.org/minizinc/strimko2.mzn>: Strimko
<http://www.strimko.com/> puzzle (Latin squares with "streams").
This variant uses an easier instance representation than strimko.mzn
Some data files:
o strimko2_002.dzn <https://www.hakank.org/minizinc/strimko2_002.dzn>
o strimko2_067.dzn <https://www.hakank.org/minizinc/strimko2_067.dzn>
o strimko2_068.dzn <https://www.hakank.org/minizinc/strimko2_068.dzn>
o strimko2_069.dzn <https://www.hakank.org/minizinc/strimko2_069.dzn>
o strimko2_070.dzn <https://www.hakank.org/minizinc/strimko2_070.dzn>
* students_and_languages.mzn <https://www.hakank.org/minizinc/
students_and_languages.mzn>: Students and Languages problem (Antoni
Niederlinski)
* subsets_100.mzn <https://www.hakank.org/minizinc/subsets_100.mzn>:
Subsets 100 (rec.puzzles FAQ)
* successive_number_problem.mzn <https://www.hakank.org/minizinc/
successive_number_problem.mzn>: Successive number problem (from God
Plays Dice: A cute number theory puzzle <http://
godplaysdice.blogspot.com/2011/07/cute-number-theory-puzzle.html>)
* sudoku_alldifferent.mzn <https://www.hakank.org/minizinc/
sudoku_alldifferent.mzn>: Sudoku, using the global constraint |
alldifferent|.
In the directory sudoku problems2 <https://www.hakank.org/minizinc/
sudoku_problems2/index.html> are all the 91 Sudoku problems (of
different dimensions: 9x9, 16x16, and 25x25) from Gecode <http://
www.gecode.org/>'s Sudoku model sudoku.cpp <http://www.gecode.org/
gecode-doc-latest/sudoku_8cpp_source.html>.
* sudoku_gcc.mzn <https://www.hakank.org/minizinc/sudoku_gcc.mzn>:
Sudoku, using the global cardinality constraint.
sudoku_gcc_model.mzn <https://www.hakank.org/minizinc/
sudoku_gcc_model.mzn>, this is a general Sudoku to be included from
a Sudoku problem instance. In the directory sudoku problems
<https://www.hakank.org/minizinc/sudoku_problems/index.html> are all
the 91 Sudoku problems (of different dimensions: 9x9, 16x16, and
25x25) from Gecode <http://www.gecode.org/>'s Sudoku model
sudoku.cpp <http://www.gecode.org/gecode-doc-latest/
sudoku_8cpp_source.html>.
* sudoku_ip.mzn <https://www.hakank.org/minizinc/sudoku_ip.mzn>:
Sudoku, integer programming (GLPK)
* sudoku_multi.mzn <https://www.hakank.org/minizinc/sudoku_multi.mzn>:
Multi-Sudoku (two connected Sudokus)
* sudoku_multi2.mzn <https://www.hakank.org/minizinc/
sudoku_multi2.mzn>: Multi-Sudoku (two connected Sudokus), a slightly
different approach of connecting the two grids
* sudoku_pi_2008.mzn <https://www.hakank.org/minizinc/
sudoku_pi_2008.mzn>: Pi Day Sudoku 2008
* sudoku_pi.mzn <https://www.hakank.org/minizinc/sudoku_pi.mzn>: Pi
Day Sudoku 2009
* sudoku_pi_2010.mzn <https://www.hakank.org/minizinc/
sudoku_pi_2010.mzn>: Pi Day Sudoku 2010
* sudoku_pi_2011.mzn <https://www.hakank.org/minizinc/
sudoku_pi_2011.mzn>: Pi Day Sudoku 2011
* sudoku_pi_day_2015.mzn <https://www.hakank.org/minizinc/
sudoku_pi_day_2015.mzn>: Pi Day Sudoku 2015
* sudoku_25x25_250.mzn <https://www.hakank.org/minizinc/
sudoku_25x25_250.mzn>: Sudoku 25 x 25 problen (very hardcoded, from
a Prolog benchmark)
* sultans_children.mzn <https://www.hakank.org/minizinc/
sultans_children.mzn>: Sultan's children problem
* sum_first_and_last.mzn <https://www.hakank.org/minizinc/
sum_first_and_last.mzn>: Sum first and last (grid puzzle) Requires
MiniZinc 2.0
* sum_to_100.mzn <https://www.hakank.org/minizinc/sum_to_100.mzn>:
Five numbers should sum to 100, and all numbers must be divisible by
2 or 5
* sumbrero.mzn <https://www.hakank.org/minizinc/sumbrero.mzn>:
Sumbrero puzzle
* super_number.mzn <https://www.hakank.org/minizinc/super_number.mzn>:
Super number puzzle (the first i digits of a 10 digit number is
divisible by i)
* survo_puzzle.mzn <https://www.hakank.org/minizinc/survo_puzzle.mzn>:
Survo puzzle
* table_of_numbers.mzn <https://www.hakank.org/minizinc/
table_of_numbers.mzn>: Table of numbers problem (from Fun With
Num3ers Table of numbers with 5 rows and 5 columns <http://
benvitalenum3ers.wordpress.com/2012/03/15/table-of-numbers-with-5-
rows-and-5-columns/>)
* takuzu.mzn <https://www.hakank.org/minizinc/takuzu.mzn>: Takuzu grid
puzzle
* talisman_square.mzn <https://www.hakank.org/minizinc/
talisman_square.mzn>: Talisman Square
* tantalizer_487_number_system.mzn <https://www.hakank.org/minizinc/
tantalizer_487_number_system.mzn>: Tantalizer 487: Number System
* ten_statements.mzn <https://www.hakank.org/minizinc/
ten_statements.mzn>: From Richard Wiseman It's the Friday Puzzle!
<http://richardwiseman.wordpress.com/2012/07/20/its-the-friday-
puzzle-169/> (2012-07-20)
* tents_puzzle.mzn <https://www.hakank.org/minizinc/tents_puzzle.mzn>:
Tents puzzle
* the_athletics_committee.mzn <https://www.hakank.org/minizinc/
the_athletics_committee.mzn>: The athletics committee problem (Peter
Winkler)
* the_bomb.mzn <https://www.hakank.org/minizinc/the_bomb.mzn>: The
bomb, logical puzzle (Janko "Die Bombe")
* the_family_puzzle.mzn <https://www.hakank.org/minizinc/
the_family_puzzle.mzn>: The family puzzle (from Drools Puzzle Round
2: The Family Puzzle <http://blog.athico.com/2007/08/drools-puzzle-
round-2-familiy-puzzle.html>)
* the_interns.mzn <https://www.hakank.org/minizinc/the_interns.mzn>:
The Interns problem (theorem proving problem, TPTP #18)
* three_in_a_row_puzzle.mzn <https://www.hakank.org/minizinc/
three_in_a_row_puzzle.mzn>: 3-in-a-row puzzle
* tennis_problem.mzn <https://www.hakank.org/minizinc/
tennis_problem.mzn>: Tennis problem (Jean-Loius Laurière)
* tennis_tournament.mzn <https://www.hakank.org/minizinc/
tennis_tournament.mzn>: Tennis tournament scheduling
* thick_as_thieves.mzn <https://www.hakank.org/minizinc/
thick_as_thieves.mzn>: Thick as thieves (Logic4Fun)
* thirteen_link_chain_puzzle.mzn <https://www.hakank.org/minizinc/
thirteen_link_chain_puzzle.mzn>: The 13-Link Chain Puzzle (just
additions) (inpired by NY Times 'Wordplay' The 13-Link Chain Puzzle
<http://wordplay.blogs.nytimes.com/2012/10/29/chain/>), Second
approach (still just additions): thirteen_link_chain_puzzle2.mzn
<https://www.hakank.org/minizinc/thirteen_link_chain_puzzle2.mzn>,
Third approach: thirteen_link_chain_puzzle3.mzn <https://
www.hakank.org/minizinc/thirteen_link_chain_puzzle3.mzn> (both
additions and subtractions which is closer to the stated problem)
* three_consecutive_numbers.mzn <https://www.hakank.org/minizinc/
three_consecutive_numbers.mzn>: Three consecutive numbers (Mind Your
Decisions problem)
* three_consecutive_numbers2.mzn <https://www.hakank.org/minizinc/
three_consecutive_numbers2.mzn>: Three consecutive numbers, variant
(Mind Your Decisions problem)
* three_digit.mzn <https://www.hakank.org/minizinc/three_digit.mzn>:
Three digit problem
* tickTackToe.mzn <https://www.hakank.org/minizinc/tickTackToe.mzn>:
Tick Tack Toe (Tic Tac Toe)
* tictactoe_avoidance.mzn <https://www.hakank.org/minizinc/
tictactoe_avoidance.mzn>: Tic-tac-toe avoidance (on a NxN board,
place NxN-N 'X's without making three-in-a-row in any direction.
Inspired by Richard Wiseman's It's the Friday Puzzle 20131115
<http://richardwiseman.wordpress.com/2013/11/15/its-the-friday-
puzzle-233/>)
* timeslots_for_songs. <https://www.hakank.org/minizinc/
timeslots_for_songs.mzn>: Timeslot problem (from Stack Overflow:
What category of combinatorial problems appear on the logic games
section of the LSAT? <http://stackoverflow.com/questions/2707619/
what-category-of-combinatorial-problems-appear-on-the-logic-games-
section-of-the>)
* timpkin.mzn <https://www.hakank.org/minizinc/timpkin.mzn>: Mrs
Timpkin's age problem (Dudeney)
* tomography.mzn <https://www.hakank.org/minizinc/tomography.mzn>:
Discrete Tomography (one color model)
* tomography_n_colors.mzn <https://www.hakank.org/minizinc/
tomography_n_colors.mzn>: Discrete Tomography (n color model)
* torn_number.mzn <https://www.hakank.org/minizinc/torn_number.mzn>:
Torn number puzzle (Dudeney)
* triangles.mzn <https://www.hakank.org/minizinc/triangles.mzn>:
Triangles problem
* tricky_multiple_question.mzn <https://www.hakank.org/minizinc/
tricky_multiple_question.mzn>: Tricky multiple question
* tunapalooza.mzn <https://www.hakank.org/minizinc/tunapalooza.mzn>:
Tunapalooza puzzle (Dell Logic Puzzles)
* twelve_statements.mzn <https://www.hakank.org/minizinc/
twelve_statements.mzn>: Twelve statements puzzle
* twin_letters.mzn <https://www.hakank.org/minizinc/twin_letters.mzn>:
Twin letters
* uzbekian_puzzle.mzn <https://www.hakank.org/minizinc/
uzbekian_puzzle.mzn>: Uzbekian puzzle
* virtual_chess_tournament.mzn <https://www.hakank.org/minizinc/
virtual_chess_tournament.mzn>: Virtual Chess Tournament problem
(from OpenRules Blog (Jacob Feldman) Fisher vs. Kasparov vs. Karpov
<http://openrules.wordpress.com/2012/04/27/fisher-vs-kasparov-vs-
karpov/>
* war_or_peace.mzn <https://www.hakank.org/minizinc/war_or_peace.mzn>:
War or peace problem (Alma-0)
* water_buckets1.mzn <https://www.hakank.org/minizinc/
water_buckets1.mzn>: Water bucket problem (generalized)
* who_killed_agatha.mzn <https://www.hakank.org/minizinc/
who_killed_agatha.mzn>: Who killed agatha? (The Dreadsbury Mansion
Murder Mystery, a automated reasoning problem, TPTP #1)
* wijuko.mzn <https://www.hakank.org/minizinc/wijuko.mzn>: Wijuko grid
puzzle
* wiseman_problem_20131129.mzn <https://www.hakank.org/minizinc/
wiseman_problem_20131129.mzn>: Problem from Richard Wiseman 20131129
* wolf_goat_cabbage_lp.mzn <https://www.hakank.org/minizinc/
wolf_goat_cabbage_lp.mzn>: Wolf, goat, cabbage problem (a.k.a. river
crossing problem) using a LP model. Shows all (2) solutions.
* word_golf.mzn <https://www.hakank.org/minizinc/word_golf.mzn>: Word
golf (word chain)
* word_golf_n3.mzn <https://www.hakank.org/minizinc/word_golf_n3.mzn>:
3 letter words for Word golf
* word_golf_n4.mzn <https://www.hakank.org/minizinc/word_golf_n4.mzn>:
4 letter words for Word golf
* word_square.mzn <https://www.hakank.org/minizinc/word_square.mzn>:
Word square: square matrix cross words (fill the whole square with
unique words). (Data files: word_len3.mzn <https://www.hakank.org/
minizinc/word_len3.mzn>, word_len4.mzn <https://www.hakank.org/
minizinc/word_len4.mzn>, word_len5.mzn <https://www.hakank.org/
minizinc/word_len5.mzn>)
* wwr.mzn <https://www.hakank.org/minizinc/wwr.mzn>: alphametic
problem: WRONG + WRONG = RIGHT
* xkcd.mzn <https://www.hakank.org/minizinc/xkcd.mzn>: xkcd's knapsack
problem (see the xkcd strip <http://xkcd.com/287/> for the problem)
* xkcd_among_diff_0.mzn <https://www.hakank.org/minizinc/
xkcd_among_diff_0.mzn>: xkcd's knapsack problem using the global
constraint |among_diff_0| (inspired by Helmut Simonis presentation
Acquiring Global Constraint Models <http://www.4c.ucc.ie/~hsimonis/
freuderfest.pdf> on CP2011)
* zebra_inverse.mzn <https://www.hakank.org/minizinc/
zebra_inverse.mzn>: Zebra puzzle, using global constraint |inverse|
instead of |all_different|
* zebra_icecream.mzn <https://www.hakank.org/minizinc/
zebra_icecream.mzn>: "Zebra like" logic puzzle Icecream
* zebra_ip.mzn <https://www.hakank.org/minizinc/zebra_ip.mzn>: Zebra
puzzle, integer programming model (GLPK)
* zoo_buses_and_kids.mzn <https://www.hakank.org/minizinc/
zoo_buses_and_kids.mzn>: Zoo, buses, and kids (DM Community)
Operations research, linear programming, integer programming,
scheduling
* assignment.mzn <https://www.hakank.org/minizinc/assignment.mzn>:
Assignment problem (Winston)
* assignment2.mzn <https://www.hakank.org/minizinc/assignment2.mzn>:
Assignment problem (Winston's swimming team example)
* assignment2_2.mzn <https://www.hakank.org/minizinc/
assignment2_2.mzn>: Assignment problem (Winston's swimming team
example, expanded)
* assignment3.mzn <https://www.hakank.org/minizinc/assignment3.mzn>:
Assigment problem (Winston, celebreties on an island)
* assignment4.mzn <https://www.hakank.org/minizinc/assignment4.mzn>:
Yet another assigment problem
* assignment5.mzn <https://www.hakank.org/minizinc/assignment5.mzn>:
Yet another assigment problem
* assignment6.mzn <https://www.hakank.org/minizinc/assignment6.mzn>:
Assigment problem (GLPK:s example assign.mod)
* assignment_model.mzn <https://www.hakank.org/minizinc/
assignment_model.mzn>: Assigment problem (model)
* best_host.mzn <https://www.hakank.org/minizinc/best_host.mzn>: Best
host problem (from PuzzlOR)
* blending_problem.mzn <https://www.hakank.org/minizinc/
blending_problem.mzn>: Blending problem
* bridges_to_somewhere.mzn <https://www.hakank.org/minizinc/
bridges_to_somewhere.mzn>: Bridges to Somewhere (from PuzzlOR)
* building_a_house.mzn <https://www.hakank.org/minizinc/
building_a_house.mzn>: Simple scheduling problem: building a house
(from OPL)
* building_a_house2.mzn <https://www.hakank.org/minizinc/
building_a_house2.mzn>: Simple scheduling problem: building a house
(from Mozart/Oz)
* building_a_house_model.mzn <https://www.hakank.org/minizinc/
building_a_house_model.mzn>: Simple scheduling problem: building a
house, generalized model of the two examples above. Data files:
o building_a_house_opl.dzn <https://www.hakank.org/minizinc/
building_a_house_opl.dzn>: The scheduling problem from OPL
o building_a_house_mozart_oz.dzn <https://www.hakank.org/minizinc/
building_a_house_mozart_oz.dzn>: The scheduling problem from
Mozart/Oz
* bus_scheduling.mzn <https://www.hakank.org/minizinc/
bus_scheduling.mzn>: Bus scheduling (Taha)
* bus_scheduling_csplib.mzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib.mzn>: Bus driver scheduling (CSPLib problem
22). Data files:
o bus_scheduling_csplib_c1.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_c1.dzn>
o bus_scheduling_csplib_c1a.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_c1a.dzn>
o bus_scheduling_csplib_c2.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_c2.dzn>
o bus_scheduling_csplib_r1.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_r1.dzn>
o bus_scheduling_csplib_r1a.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_r1a.dzn>
o bus_scheduling_csplib_r2.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_r2.dzn>
o bus_scheduling_csplib_r3.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_r3.dzn>
o bus_scheduling_csplib_r4.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_r4.dzn>
o bus_scheduling_csplib_r5.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_r5.dzn>
o bus_scheduling_csplib_r5a.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_r5a.dzn>
o bus_scheduling_csplib_t1.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_t1.dzn>
o bus_scheduling_csplib_t2.dzn <https://www.hakank.org/minizinc/
bus_scheduling_csplib_t2.dzn>
* capital_budget2.mzn <https://www.hakank.org/minizinc/
capital_budget2.mzn>: Capital Budget (Winston)
* chessset.mzn <https://www.hakank.org/minizinc/chessset.mzn>: Chess
set problem (XPress)
* classify_department_employees.mzn <https://www.hakank.org/minizinc/
classify_department_employees.mzn>: Classify Department Employees
(Decision Management Community problem)
* choose_your_crew.mzn <https://www.hakank.org/minizinc/
choose_your_crew.mzn>: Choose your crew (from PuzzlOR)
* coloring_ip.mzn <https://www.hakank.org/minizinc/coloring_ip.mzn>:
Map coloring, integer programming (inspired by the GLPK model
color.mod)
* company_competition.mzn <https://www.hakank.org/minizinc/
company_competition.mzn>: (Christmas) Company Competition Problem:
Mixing teams
* constraint.mzn <https://www.hakank.org/minizinc/constraint.mzn>:
Optimizing a constraint (Williams)
* contiguity_mip.mzn <https://www.hakank.org/minizinc/
contiguity_mip.mzn>: Contiguity constraint (MIP, using floats)
* contiguity_mip2.mzn <https://www.hakank.org/minizinc/
contiguity_mip2.mzn>: Contiguity constraint (using random 0/1)
* contractor_costs.mzn <https://www.hakank.org/minizinc/
contractor_costs.mzn>: Contractor costs (Sam Loyd)
* crew.mzn <https://www.hakank.org/minizinc/crew.mzn>: Crew scheduling
(Gecode)
* crew_overlapping_flights.mzn <https://www.hakank.org/minizinc/
crew_overlapping_flights.mzn>: Crew scheduling with overlapping
flights (StackOverflow)
* crossbar.mzn <https://www.hakank.org/minizinc/crossbar.mzn>:
Crossbar problem (Prolog benchmark problem)
* critical_path1.mzn <https://www.hakank.org/minizinc/
critical_path1.mzn>: Critical Path (Winston)
* cutting_stock_winston.mzn <https://www.hakank.org/minizinc/
cutting_stock_winston.mzn>: Cutting stock problem (Winston)
* diet1.mzn <https://www.hakank.org/minizinc/diet1.mzn>: Diet problem
(standard OR example)
* eyedrop_optimize.mzn <https://www.hakank.org/minizinc/
eyedrop_optimize.mzn>: Optimize the time (hour) a number of
different eye drops should be taken on a day (disperse each type as
much as possible)
* eyedrop_optimize2.mzn <https://www.hakank.org/minizinc/
eyedrop_optimize2.mzn>: Optimize the time (hour) a number of
different eye drops should be taken on a day (disperse each type as
much as possible). This version don't use temporary varibles which
makes it (much) faster for some solvers.
* fixed_charge.mzn <https://www.hakank.org/minizinc/fixed_charge.mzn>:
Fixed charged problem (OPL)
* facility_location_problem.mzn <https://www.hakank.org/minizinc/
facility_location_problem.mzn>: Facility location problem
* football.mzn <https://www.hakank.org/minizinc/football.mzn>: Buying
soccer players (lp_solve mailing list)
* freight_transfer.mzn <https://www.hakank.org/minizinc/
freight_transfer.mzn>: Freight Transfer (John Hooker)
* furniture.mzn <https://www.hakank.org/minizinc/furniture.mzn>:
Furniture problem (best combination of offers to buy furnitures)
* furniture_moving.mzn <https://www.hakank.org/minizinc/
furniture_moving.mzn>: Optimizing furniture moving (Marriott and
Stuckey)
* gap.mzn <https://www.hakank.org/minizinc/gap.mzn>: Generalized
Assignment Problem (GLPK, AMPL)
* giapetto.mzn <https://www.hakank.org/minizinc/giapetto.mzn>: Simple
optimization problem of maximizing profit
* hitchcock_transporation_problem.mzn <https://www.hakank.org/
minizinc/hitchcock_transporation_problem.mzn>: Hitchcock-Koopmans
transportation problem
* home_improvement.mzn <https://www.hakank.org/minizinc/
home_improvement.mzn>: Home improvement (from PuzzlOR)
* ice_cream.mzn <https://www.hakank.org/minizinc/ice_cream.mzn>: Ice
cream production given monthly demand.
* integer_programming1.mzn <https://www.hakank.org/minizinc/
integer_programming1.mzn>: Simple integer programming problem
* investment_problem.mzn <https://www.hakank.org/minizinc/
investment_problem.mzn>: Investment problem (constraint programming
version)
* investment_problem_mip.mzn <https://www.hakank.org/minizinc/
investment_problem_mip.mzn>: Investment problem (MIP version)
* jobshop.mzn <https://www.hakank.org/minizinc/jobshop.mzn>: Job-Shop
Scheduling Problem, general approach. jobshop2.mzn <https://
www.hakank.org/minizinc/jobshop2.mzn> outputs more informations.
Data files
o jobshop_abz6.dzn <https://www.hakank.org/minizinc/
jobshop_abz6.dzn>: Instance ABZ6
o jobshop_mt06.dzn <https://www.hakank.org/minizinc/
jobshop_mt06.dzn>: Instance MT06
o jobshop_mt10.dzn <https://www.hakank.org/minizinc/
jobshop_mt10.dzn>: Instance MT10
o jobshop_newspaper.dzn <https://www.hakank.org/minizinc/
jobshop_newspaper.dzn> (Classic Newspaper problem from French.
Cf newspaper.mzn <https://www.hakank.org/minizinc/newspaper.mzn>
and newspaper0.mzn <https://www.hakank.org/minizinc/
newspaper0.mzn>)
o More instances: jobshop_data <https://www.hakank.org/minizinc/
jobshop_data> (converted from Google or-tools' SVN repo)
* jssp.mzn <https://www.hakank.org/minizinc/jssp.mzn>: Job-Shop
Scheduling Problem (GLPK) (this is the MT06 problem instance)
* knapsack_investments.mzn <https://www.hakank.org/minizinc/
knapsack_investments.mzn>: Knapsack (investment) problem (Lundgren,
R�nnqvist, V�rbrand: Optimeringsl�ra)
* kraftwerk_ticket_problem.mzn <https://www.hakank.org/minizinc/
kraftwerk_ticket_problem.mzn>: Kraftwerk ticket problem
* lager.mzn <https://www.hakank.org/minizinc/lager.mzn>: Stock model
(Swedish)
* least_square_optimeringslara_286.mzn <https://www.hakank.org/
minizinc/least_square_optimeringslara_286.mzn>: Least sqauare
(Lundgren, R�nnqvist, V�rbrand: Optimeringsl�ra)
* lightmeal.mzn <https://www.hakank.org/minizinc/lightmeal.mzn>:
Lightmeal problem (Colmerauer)
* lightmeal2.mzn <https://www.hakank.org/minizinc/lightmeal2.mzn>:
Lightmeal problem (Colmerauer), integer programming version (and
more general than lightmeal.mzn)
* make_a_good_burger.mzn <https://www.hakank.org/minizinc/
make_a_good_burger.mzn>: Make a Good Burger problem
* matchmaker.mzn <https://www.hakank.org/minizinc/matchmaker.mzn>:
Matchmaker problem (from PuzzlOr)
* max_activity.mzn <https://www.hakank.org/minizinc/max_activity.mzn>:
Scheduling activities for kids (from StackOverflow Need help for
defining appropriate constraints <http://stackoverflow.com/
questions/25806906/need-help-for-defining-appropriate-constraints>)
* max_activity2.mzn <https://www.hakank.org/minizinc/
max_activity2.mzn>: Scheduling activities for kids, added 0 scores
(from StackOverflow Need help for defining appropriate constraints
<http://stackoverflow.com/questions/25806906/need-help-for-defining-
appropriate-constraints>)
* max_cut.mzn <https://www.hakank.org/minizinc/max_cut.mzn>: Maximum
cut problem (GLPK)
* max_flow_taha.mzn <https://www.hakank.org/minizinc/
max_flow_taha.mzn>: Maximum flow problem (Taha)
* max_flow_winston1.mzn <https://www.hakank.org/minizinc/
max_flow_winston1.mzn>Maximum flow problem (Winston)
* maxflow.mzn <https://www.hakank.org/minizinc/maxflow.mzn>: Maximum
flow problem (GLPK)
* mceverywhere.mzn <https://www.hakank.org/minizinc/mceverywhere.mzn>:
McEverywhere problem (PuzzlOR)
* mfasp.mzn <https://www.hakank.org/minizinc/mfasp.mzn>: Minimum
Feedback Arc Set Problem (GLPK)
* mfvsp.mzn <https://www.hakank.org/minizinc/mfvsp.mzn>: Minimum
Feedback Vertex Set Problem (GLPK)
* misp.mzn <https://www.hakank.org/minizinc/misp.mzn>: Maximum
Independent Set Problem (GLPK) (cf maximal_independent_sets.mzn
<https://www.hakank.org/minizinc/maximal_independent_sets.mzn>)
* movie_stars.mzn <https://www.hakank.org/minizinc/movie_stars.mzn>:
Movie Stars (from PuzzlOR)
* mvcp.mzn <https://www.hakank.org/minizinc/mvcp.mzn>: Minimum Vertex
Cover Problem (GLPK)
* nadel.mzn <https://www.hakank.org/minizinc/nadel.mzn>: B.A. Nadel's
construction problem
* newspaper0.mzn <https://www.hakank.org/minizinc/newspaper0.mzn>:
Scheduling newspapers reading (French '82, Duncan '90), this is a
simplified version of newspaper.mzn <https://www.hakank.org/
minizinc/newspaper.mzn> since it's quite overloaded with
presentations stuff.
* newspaper.mzn <https://www.hakank.org/minizinc/newspaper.mzn>:
Scheduling newspapers reading (French '82, Duncan '90)
* number_of_days.mzn <https://www.hakank.org/minizinc/
number_of_days.mzn>: Number of days problem (knapsack)
* nurse_rostering_with_availability.mzn <https://www.hakank.org/
minizinc/nurse_rostering_with_availability.mzn>: Scheduling (here
nurse rostering) with an availability matrix (from Reconciling
Scheduled shifts with availabilities <http://stackoverflow.com/
questions/22238698/reconciling-scheduled-shifts-with-availabilities>)
* online_dating_service.mzn <https://www.hakank.org/minizinc/
online_dating_service.mzn>: Online Dating Service (Decision
Management Community problem)
* or_matching.mzn <https://www.hakank.org/minizinc/or_matching.mzn>:
Matching of OR'ers (problem from the Nigel Lewis' Cupids with
Computers <http://blogs.uk.capgemini.com/orblog/2011/02/25/cupids-
with-computers/>)
* or_matching2.mzn <https://www.hakank.org/minizinc/or_matching2.mzn>:
Matching of OR'ers (see above), MIP model.
* or_seating.mzn <https://www.hakank.org/minizinc/or_seating.mzn>:
Seating placement of OR'ers (inspired by Nigel Lewis' Cupids with
Computers <http://blogs.uk.capgemini.com/orblog/2011/02/25/cupids-
with-computers/>)
* organize_day.mzn <https://www.hakank.org/minizinc/organize_day.mzn>:
Scheduling, organizing a day (ECLiPSe)
* patient_no_21.mzn <https://www.hakank.org/minizinc/
patient_no_21.mzn>: Patient No. 21 (From PuzzlOR)
* pert.mzn <https://www.hakank.org/minizinc/pert.mzn>: PERT problem
(van Hentenryck)
* popsicle_stand.mzn <https://www.hakank.org/minizinc/
popsicle_stand.mzn>: Popsicle stand problem (PuzzlOR)
* post_office_problem.mzn <https://www.hakank.org/minizinc/
post_office_problem.mzn>: Post office problem (Winston)
* post_office_problem2.mzn <https://www.hakank.org/minizinc/
post_office_problem2.mzn>: Post office problem, generalized model
(Winston)
* post_office_problem3.mzn <https://www.hakank.org/minizinc/
post_office_problem3.mzn>: Post office problem, even more
generalized model (Winston)
* product_configuration.mzn <https://www.hakank.org/minizinc/
product_configuration.mzn>: Product configuration (John Hooker)
* relief_mission.mzn <https://www.hakank.org/minizinc/
relief_mission.mzn>: Relief mission (from PuzzlOR)
* rostering.mzn <https://www.hakank.org/minizinc/rostering.mzn>:
Rostering problem (Regin)
* schedule1.mzn <https://www.hakank.org/minizinc/schedule1.mzn>:
Scheduling using cumulative constraint (Sicstus)
* schedule2.mzn <https://www.hakank.org/minizinc/schedule2.mzn>:
Scheduling problem, yet another (from Shasha "Puzzles for
Programmers and Pros", page 131f)
* scheduling_bratko.mzn <https://www.hakank.org/minizinc/
scheduling_bratko.mzn>: Scheduling problem from Ivan Bratko "Prolog
- programming for Artificial Intelligence", example 1
* scheduling_bratko2.mzn <https://www.hakank.org/minizinc/
scheduling_bratko2.mzn>: Scheduling problem from Ivan Bratko "Prolog
- programming for Artificial Intelligence", example 2
* scheduling_chip.mzn <https://www.hakank.org/minizinc/
scheduling_chip.mzn>: Scheduling problem from Nicolas Beldiceanu &
Evelyne Contejean "Introducing Global Constraints in CHIP", page 3
* scheduling_with_assignments.mzn <https://www.hakank.org/minizinc/
scheduling_with_assignments.mzn>: Scheduling with assignments of the
workers (and a lot of different outputs such as assignment matrices,
schedules, and timelines for jobs as well as for the workers in a
Gantt-like manner). It also supports precedences, enforcing non-
idleness for the workers (flag |allow_idle=false|, see #10, Graham's
bicycle assembly problem), and also enforce that the tasks must be
done by "nearby" workers (|collect_workers=true|, see #14, perfect
square placement).
Data files:
o scheduling_with_assignments1.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments1.dzn>: From Marriot &
Stuckey "Programming with Constraints", page 112f (furniture
moving)
o scheduling_with_assignments2.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments2.dzn>: From Ivar Bratko:
"Prolog - - Programming for Artificial Intelligence", 3rd
edition, page 329ff. Includes precedences.
o scheduling_with_assignments3.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments3.dzn>: Problem from Global
constraints catalog (cumulative <http://www.emn.fr/x-info/
sdemasse/gccat/Ccumulative.html>)
o scheduling_with_assignments4.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments4.dzn>: From SICStus'
documentation
o scheduling_with_assignments5.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments5.dzn>: A harder test.
o scheduling_with_assignments6.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments6.dzn>: From the OPL
scheduling model (sched_intro.mod, building a house). Includes
precedences.
o scheduling_with_assignments7.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments7.dzn>: Another hard test.
o scheduling_with_assignments8.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments8.dzn>: Much harder test.
o scheduling_with_assignments8b.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments8b.dzn>: Variant of
scheduling_with_assignments8.dzn with precedences (is solved
much faster).
o scheduling_with_assignments9.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments9.dzn>: From Andreas Schutt,
Thibaut Feydy, Peter J. Stuckey, Mark G. Wallace: "Explaining
the cumulative propagator", page 2 (with precedences)
o scheduling_with_assignments10.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments10.dzn>: Bicycle assembly
problem (from R.L. Graham "Combinatorial Scheduling Theory")
o scheduling_with_assignments10b.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments10b.dzn>: Bicycle assembly
problem (from R.L. Graham "Combinatorial Scheduling Theory"),
variant: we don't allow idleness of the workers
o scheduling_with_assignments10c.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments10c.dzn>: Bicycle assembly
problem (from R.L. Graham "Combinatorial Scheduling Theory"),
variant: we don't allow idleness of the workers and increase to
3 teams
o scheduling_with_assignments10d.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments10d.dzn>: Bicycle assembly
problem (from R.L. Graham "Combinatorial Scheduling Theory"),
variant: we don't allow idleness of the workers and decrease the
duration times with one units each
o scheduling_with_assignments11.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments11.dzn>: Another problem
from R.L. Graham "Combinatorial Scheduling Theory"
o scheduling_with_assignments12.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments12.dzn>: Scheduling a dinner
party (from Robert A. McGuigan: "Scheduling Problems and Bin
Packing")
o scheduling_with_assignments13.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments13.dzn>: Service of a plane
(from Joseph Malkevitch: "Is it on Time?")
o scheduling_with_assignments14.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments14.dzn>: A small perfect
square placement problem, 14x14 (using |collect_workers=true|)
o scheduling_with_assignments14b.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments14b.dzn>: Harder perfect
square placement problem, 112x112 (using |collect_workers=true|)
o scheduling_with_assignments15.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments15.dzn>: Yet another problem
from R.L. Graham "Combinatorial Scheduling Theory"
o scheduling_with_assignments16.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments16.dzn>: Bin packing as a
scheduling problem.
o scheduling_with_assignments16b.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments16b.dzn>: Bin packing as a
scheduling problem (larger example).
o scheduling_with_assignments16c.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments16c.dzn>: Bin packing as a
scheduling problem (simpler variant of
scheduling_with_assignments16b.dzn).
o scheduling_with_assignments16d.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments16d.dzn>: Bin packing as a
scheduling problem
o scheduling_with_assignments16e.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments16e.dzn>: Bin packing as a
scheduling problem (minimize the number of disks for backup
files); smaller variant where the sizes has been divided by 10:
scheduling_with_assignments16e2.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments16e2.dzn>
o scheduling_with_assignments16f.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments16f.dzn>: Bin packing as a
scheduling problem (from R.L. Graham "Combinatorial Scheduling
Theory")
o scheduling_with_assignments16g.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments16g.dzn>: Bin packing as a
scheduling problem (printing business cards, from Stack Overflow)
o scheduling_with_assignments17.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments17.dzn>: Simple scheduling
example
o scheduling_with_assignments18.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments18.dzn>: Scheduling of ship
loading (from CHIP)
o scheduling_with_assignments19.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments19.dzn>: Rectangle placement
problem
o scheduling_with_assignments20.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments20.dzn>: Grilling hamburgers
problem
o scheduling_with_assignments21.dzn <https://www.hakank.org/
minizinc/scheduling_with_assignments21.dzn>: Small example from
"Handbook of Scheduling" (8 jobs and 3 workers)
* scheduling_with_multiple_workers.mzn <https://www.hakank.org/
minizinc/scheduling_with_multiple_workers.mzn>: Scheduling with
parallel machines.
* scheduling_speakers.mzn <https://www.hakank.org/minizinc/
scheduling_speakers.mzn>: Scheduling speakers (Rina Dechter)
* scheduling_speakers_optimize.mzn <https://www.hakank.org/minizinc/
scheduling_speakers_optimize.mzn>: Scheduling speakers with
optimization objective (from Stack Overflow Optimizing working
scheduling MiniZinc code - constraint programming <http://
stackoverflow.com/questions/20747059/optimizing-working-scheduling-
minizinc-code-constraint-programming>)
* scheduling_speakers_optimize2.mzn <https://www.hakank.org/minizinc/
scheduling_speakers_optimize2.mzn>: Scheduling speakers with
optimization objective, faster model (from Stack Overflow Optimizing
working scheduling MiniZinc code - constraint programming <http://
stackoverflow.com/questions/20747059/optimizing-working-scheduling-
minizinc-code-constraint-programming>)
* scheduling_speakers_optimize3.mzn <https://www.hakank.org/minizinc/
scheduling_speakers_optimize3.mzn>: Scheduling speakers with
optimization objective, faster model with dual matrix (from Stack
Overflow Optimizing working scheduling MiniZinc code - constraint
programming <http://stackoverflow.com/questions/20747059/optimizing-
working-scheduling-minizinc-code-constraint-programming>)
* shopping_basket.mzn <https://www.hakank.org/minizinc/
shopping_basket.mzn>: Optimize a shopping basket with delivery
costs. (Problem from StackOverflow How to use constraint programming
for optimizing shopping baskets? <http://stackoverflow.com/
questions/2822082/how-to-use-constraint-programming-for-optimizing-
shopping-baskets>)
* shopping_basket2.mzn <https://www.hakank.org/minizinc/
shopping_basket2.mzn>: Optimize a shopping basked with delivery
costs. Different representation where to buy the items. (Problem
from StackOverflow How to use constraint programming for optimizing
shopping baskets? <http://stackoverflow.com/questions/2822082/how-
to-use-constraint-programming-for-optimizing-shopping-baskets>)
* shopping_basket5.mzn <https://www.hakank.org/minizinc/
shopping_basket5.mzn>: Optimize a shopping basket with delivery
costs. A variant of shopping_basket2.mzn <https://www.hakank.org/
minizinc/shopping_basket2.mzn> with a larger example (29 items and
37 shops) and other improvements. (Problem from StackOverflow How to
use constraint programming for optimizing shopping baskets? <http://
stackoverflow.com/questions/2822082/how-to-use-constraint-
programming-for-optimizing-shopping-baskets>)
* shopping_basket6.mzn <https://www.hakank.org/minizinc/
shopping_basket6.mzn>: Optimize a shopping basket with delivery
costs. A much faster variant of shopping_basket5.mzn <https://
www.hakank.org/minizinc/shopping_basket5.mzn>. (Problem from
StackOverflow How to use constraint programming for optimizing
shopping baskets? <http://stackoverflow.com/questions/2822082/how-
to-use-constraint-programming-for-optimizing-shopping-baskets>)
* shopping_with_delivery_costs.mzn <https://www.hakank.org/minizinc/
shopping_with_delivery_costs.mzn>: Shopping with delivery costs.
* ski_assignment_problem.mzn <https://www.hakank.org/minizinc/
ski_assignment_problem.mzn>: Ski assignment problem
* smallest_winning_electoral.mzn <https://www.hakank.org/minizinc/
smallest_winning_electoral.mzn>: Least amount of land that will make
you President (2012 USA election) (From David Curran What is the
least amount of land that will make you President? <http://
liveatthewitchtrials.blogspot.ie/2012/11/a-search-for-smallest-
winning-electoral.html> and Matthew Yglesias (Slate) The
Geographically Smallest Winning Electoral College Map <http://
www.slate.com/blogs/moneybox/2012/10/31/
geographically_smallest_electoral_college_map.html>)
* smallest_winning_electoral2.mzn <https://www.hakank.org/minizinc/
smallest_winning_electoral2.mzn>: Becoming President with 22% of the
Votes (From David Curran Becoming President with 22% of the Votes
<http://liveatthewitchtrials.blogspot.ie/2012/11/becoming-president-
with-22-of-votes.html>
* social_golfers1.mzn <https://www.hakank.org/minizinc/
social_golfers1.mzn>: Social golfers (OPL)
* sportsScheduling.mzn <https://www.hakank.org/minizinc/
sportsScheduling.mzn>: Sport scheduling
* spp.mzn <https://www.hakank.org/minizinc/spp.mzn>: Shortest path
problem, integer programming (GLPK)
* stable_marriage.mzn <https://www.hakank.org/minizinc/
stable_marriage.mzn>: Stable marriage
* stuckey_assignment.mzn <https://www.hakank.org/minizinc/
stuckey_assignment.mzn>: Assignment problem (Marriott and Stuckey)
* stuckey_seesaw.mzn <https://www.hakank.org/minizinc/
stuckey_seesaw.mzn>: Balancing on a seesaw (Marriot and Stuckey)
* survivor.mzn <https://www.hakank.org/minizinc/survivor.mzn>:
Survivor problem (from PuzzlOr)
* talent.mzn <https://www.hakank.org/minizinc/talent.mzn>: Talent
example (OPL)
* teambuilding.mzn <https://www.hakank.org/minizinc/teambuilding.mzn>:
Teambuilding (OPL)
* timetable.mzn <https://www.hakank.org/minizinc/timetable.mzn>:
Timetable of courses (from Alma-0)
* transportation.mzn <https://www.hakank.org/minizinc/
transportation.mzn>: Transportation problem (ECLiPSe)
* transportation2.mzn <https://www.hakank.org/minizinc/
transportation2.mzn>: Transportation problem, generalized model
* tsp.mzn <https://www.hakank.org/minizinc/tsp.mzn>: Travelling
Salesman Problem, integer programming (GLPK)
* transshipment.mzn <https://www.hakank.org/minizinc/
transshipment.mzn>: Transshipment problem (Winston)
* urban_planning.mzn <https://www.hakank.org/minizinc/
urban_planning.mzn>: Urban planning (from PuzzlOr August 2013 Urban
Planning <http://www.puzzlor.com/2013-08_UrbanPlanning.html>)
* weights.mzn <https://www.hakank.org/minizinc/weights.mzn>: Combine
barbell/dumbbell weight plates.
Data files (for my current home gym):
o weights_barbell.dzn <https://www.hakank.org/minizinc/
weights_barbell.dzn>: Barbell
o weights_dumbbell.dzn <https://www.hakank.org/minizinc/
weights_dumbbell.dzn>: Dumbbell (a pair)
o weights_dumbbell_one.dzn <https://www.hakank.org/minizinc/
weights_dumbbell_one.dzn>: Dumbbell (just one)
* work_shift_problem.mzn <https://www.hakank.org/minizinc/
work_shift_problem.mzn>: Work shift scheduling problem (from SAS/OR
9.22 User's Guide)
Non linear and/or float variables problems
Thus includes some MIP problems. Note: Not all CP solvers can handle
float variables. As of writing (2014-05-20) these solvers are the one
I've tested and that can manage some/many/most of these models:
* G12/mip (not all non linear constraints
* ECLiPSe/ic, ECLiPSe/eplex
* Gecode
* JaCoP
* 1RM.mzn <https://www.hakank.org/minizinc/1RM.mzn>: Weight training:
Calculations of 1RM and comparing reps x weights.
* ages.mzn <https://www.hakank.org/minizinc/ages.mzn>: Ages problem
from Tony Hurlimann
* aprice.mzn <https://www.hakank.org/minizinc/agprice.mzn>:
Agricultural pricing (Willams: "Model building in MP")
* arbitrage_loops.mzn <https://www.hakank.org/minizinc/
arbitrage_loops.mzn>: Arbitrage loops (currencies)
Data files:
o arbitrage_loops1.dzn <https://www.hakank.org/minizinc/
arbitrage_loops1.dzn>
o arbitrage_loops2.dzn <https://www.hakank.org/minizinc/
arbitrage_loops2.dzn>
o arbitrage_loops3.dzn <https://www.hakank.org/minizinc/
arbitrage_loops3.dzn>
o arbitrage_loops4.dzn <https://www.hakank.org/minizinc/
arbitrage_loops4.dzn>
o arbitrage_loops5.dzn <https://www.hakank.org/minizinc/
arbitrage_loops5.dzn>
* birthday_paradox.mzn <https://www.hakank.org/minizinc/
birthday_paradox.mzn>: Birthday paradox (birthday problem)
* blending.mzn <https://www.hakank.org/minizinc/blending.mzn>:
Blending problem (OPL)
* box.mzn <https://www.hakank.org/minizinc/box.mzn>: Design a box
* building_design.mzn <https://www.hakank.org/minizinc/
building_design.mzn>: Building design
* catenary.mzn <https://www.hakank.org/minizinc/catenary.mzn>:
Catenary (shape of hanging chain)
* celsius_fahrenheit.mzn <https://www.hakank.org/minizinc/
celsius_fahrenheit.mzn>: Conversion from/to degree Celsius to/from
degree Fahrenheit
* circle_intersection.mzn <https://www.hakank.org/minizinc/
circle_intersection.mzn>: Circle intersection (ECLiPSe)
* circling_squares.mzn <https://www.hakank.org/minizinc/
circling_squares.mzn>: Circling the Squares (Dudeney)
* cookie_bake_off2.mzn <https://www.hakank.org/minizinc/
cookie_bake_off2.mzn>: Cookie bake off (PuzzlOr)
* curve_fitting1.mzn <https://www.hakank.org/minizinc/
curve_fitting1.mzn>: Curve fitting 1 (Williams)
* curve_fitting2.mzn <https://www.hakank.org/minizinc/
curve_fitting2.mzn>: Curve fitting 2 (Williams)
* curve_fitting3.mzn <https://www.hakank.org/minizinc/
curve_fitting3.mzn>: Curve fitting 3, least squares (Williams)
* cyclohexane.mzn <https://www.hakank.org/minizinc/cyclohexane.mzn>:
Cyclohexane problem (Dudeney)
* dea.mzn <https://www.hakank.org/minizinc/dea.mzn>: Data Envelopment
Analysis (DEA) model (GLPK example)
* decent.mzn <https://www.hakank.org/minizinc/decent.mzn>:
Decentralization (Williams)
* diet2.mzn <https://www.hakank.org/minizinc/diet2.mzn>: Diet problem,
larger (GLPK example)
* dirichlet.mzn <https://www.hakank.org/minizinc/dirichlet.mzn>:
Dirichlet problem (triangle problem)
* dynamical_optimization1.mzn <https://www.hakank.org/minizinc/
dynamical_optimization1.mzn>: Dynamical optimization
* eq10.mzn <https://www.hakank.org/minizinc/eq10.mzn>: Problem with 10
equation (standard constraint programming problem)
* fixed_charged_transportation_problem.mzn <https://www.hakank.org/
minizinc/fixed_charged_transportation_problem.mzn>: Fixed charged
transportation problem
* food.mzn <https://www.hakank.org/minizinc/food.mzn>: Food
manufacture problem (GLPK, AMPL)
* food2.mzn <https://www.hakank.org/minizinc/food2.mzn>: Food
manufacture problem, with extra constraints (GLPK, AMPL)
* game_theory_taha.mzn <https://www.hakank.org/minizinc/
game_theory_taha.mzn>: Game theory, zero sum game (Taha, Operations
Research)
* games.mzn <https://www.hakank.org/minizinc/games.mzn>: Simple game
theory example (Vanderbei "Linear Programming - Foundations - and
Extensions", page 147ff)
* golden_search.mzn <https://www.hakank.org/minizinc/
golden_search.mzn>: Golden search
* golden_spiral.mzn <https://www.hakank.org/minizinc/
golden_spiral.mzn>: Golden spiral (logarithmic spiral, Gecode)
* grocery_float.mzn <https://www.hakank.org/minizinc/
grocery_float.mzn>: Grocery problem (7/11 problem) using floats.
* laplace.mzn <https://www.hakank.org/minizinc/laplace.mzn>: Laplace
problem (from CLP(R))
* markov_chains.mzn <https://www.hakank.org/minizinc/
markov_chains.mzn>: Markov chain of market shares (from "Statistisk
Dataanalys")
* markov_chains_taha.mzn <https://www.hakank.org/minizinc/
markov_chains_taha.mzn>: Markov chains (fertlizer example from Taha
"Operations Research")
* mortgage.mzn <https://www.hakank.org/minizinc/mortgage.mzn>:
Mortgage (standard constraint programming problem)
* multiplication_addition.mzn <https://www.hakank.org/minizinc/
multiplication_addition.mzn>: When multiplication is the same as
addition.
* nonlin2.mzn <https://www.hakank.org/minizinc/nonlin2.mzn>: Non
linear problem (Taha)
* nonlin_cylider.mzn <https://www.hakank.org/minizinc/
nonlin_cylinder.mzn>: Creating a cylinder (from the ECLiPSe book)
* numerica_p19.mzn <https://www.hakank.org/minizinc/numerica_p19.mzn>:
From Numerica book, page 19
* numerica_p20.mzn <https://www.hakank.org/minizinc/numerica_p20.mzn>:
From Numerica book, page 20 (finding intersection)
* numerica_p21.mzn <https://www.hakank.org/minizinc/numerica_p21.mzn>:
From Numerica book, page 21 (array version of intersection problem)
* numerica_p23.mzn <https://www.hakank.org/minizinc/numerica_p23.mzn>:
From Numerica book, page 23 (a robot kinematic application)
* numerica_p24.mzn <https://www.hakank.org/minizinc/numerica_p24.mzn>:
From Numerica book, page 24 (neurophysiology)
* option_trading.mzn <https://www.hakank.org/minizinc/
option_trading.mzn>: Option trading
* p_median.mzn <https://www.hakank.org/minizinc/p_median.mzn>: P-
median problem (OPL)
* plan.mzn <https://www.hakank.org/minizinc/plan.mzn>: Planning model
(GLPK)
* polygon.mzn <https://www.hakank.org/minizinc/polygon.mzn>: Polygon
(OPL)
* portfolio_optimization.mzn <https://www.hakank.org/minizinc/
portfolio_optimization.mzn>: Portfolio optimization (SAS)
* prod0.mzn <https://www.hakank.org/minizinc/prod0.mzn>: Optimization
problem (AMPL)
* rosenbrock.mzn <https://www.hakank.org/minizinc/rosenbrock.mzn>:
Rosenbrock function
* spreadsheet.mzn <https://www.hakank.org/minizinc/spreadsheet.mzn>:
Simple spreadsheet problem
* stigler.mzn <https://www.hakank.org/minizinc/stigler.mzn>: Original
Stigler's 1939 diet problem (GLPK)
* stuckey_finite_element.mzn <https://www.hakank.org/minizinc/
stuckey_finite_element.mzn>: Finite element (Marriott, Stuckey:
Programming in Constraint, 191ff)
* the_birthday.mzn <https://www.hakank.org/minizinc/the_birthday.mzn>:
Birthday game theory problem
* transp.mzn <https://www.hakank.org/minizinc/transp.mzn>:
Transportation problem (GLPK)
* transp1.mzn <https://www.hakank.org/minizinc/transp1.mzn>:
Transportation problem (OPL)
* two_circles.mzn <https://www.hakank.org/minizinc/two_circles.mzn>:
Two Circles problem
* volsay.mzn <https://www.hakank.org/minizinc/volsay.mzn>: Volsay
problem (OPL)
* volsay2.mzn <https://www.hakank.org/minizinc/volsay2.mzn>: Volsay
problem, with arrays (OPL)
* volsay3.mzn <https://www.hakank.org/minizinc/volsay3.mzn>: Volsay
problem, with components (OPL)
* voltage_divider.mzn <https://www.hakank.org/minizinc/
voltage_divider.mzn>: Voltage divider problem problem from Marriott
& Stuckey "Programming in Constraints"
* wilkinson.mzn <https://www.hakank.org/minizinc/wilkinson.mzn>:
Wilkinson problem
Combinatorial problems
* 3sum.mzn <https://www.hakank.org/minizinc/3sum.mzn>: 3SUM problem
(general approach)
* all_interval.mzn <https://www.hakank.org/minizinc/all_interval.mzn>:
All interval problem (series), (CSPLib problem 7)
* all_interval1.mzn <https://www.hakank.org/minizinc/
all_interval1.mzn>: All interval problem, different approach
* all_interval2.mzn <https://www.hakank.org/minizinc/
all_interval2.mzn>: All interval problem, different approach
* all_interval3.mzn <https://www.hakank.org/minizinc/
all_interval3.mzn>: All interval problem, different approach
* all_interval4.mzn <https://www.hakank.org/minizinc/
all_interval4.mzn>: All interval problem, different approach
* all_interval5.mzn <https://www.hakank.org/minizinc/
all_interval5.mzn>: All interval problem, different approach
* all_interval6.mzn <https://www.hakank.org/minizinc/
all_interval6.mzn>: All interval problem, different approach
* all_paths_graph.mzn <https://www.hakank.org/minizinc/
all_paths_graph.mzn>: (All) paths from a graph presentation (cf
message_sending.mzn)
* appointment_scheduling.mzn <https://www.hakank.org/minizinc/
appointment_scheduling.mzn>: Appointment scheduling, matrix approach
(see Stack Overflow Q: Appointment scheduling algorithm (N people
with N free-busy slots, constraint-satisfaction) <http://
stackoverflow.com/questions/11143439/appointment-scheduling-
algorithm-n-people-with-n-free-busy-slots-constraint-sa> ).
* appointment_scheduling_set.mzn <https://www.hakank.org/minizinc/
appointment_scheduling_set.mzn>: A set based approach to the
appoiintment scheduling problem (see above).
appointment_scheduling_set2.mzn <https://www.hakank.org/minizinc/
appointment_scheduling_set2.mzn> is a version which use data files:
o appointment_scheduling_10.dzn <https://www.hakank.org/minizinc/
appointment_scheduling_set_10.dzn>: N = 10
o appointment_scheduling_100.dzn <https://www.hakank.org/minizinc/
appointment_scheduling_set_100.dzn>: N = 100
o appointment_scheduling_1000.dzn <https://www.hakank.org/
minizinc/appointment_scheduling_set_1000.dzn>: N = 1000 (1.5Mb)
o appointment_scheduling_2000.dzn <https://www.hakank.org/
minizinc/appointment_scheduling_set_2000.dzn>: N = 2000 (7Mb)
(Perl one-liner to generate data files ($n is N, $c is the limit for
including a person in the time slot):
|$ perl -e '$n = 10; $c = 0.6; print "n=$n;\ns=[\n"; for (1..$n)
{ print "{"; for (1..$n) { if (rand(1)>=$c) { print "$_," } } print
"},\n"}; print "];\n"' |)
* average_avoiding.mzn <https://www.hakank.org/minizinc/
average_avoiding.mzn>: Average avoiding (from StackOverflow Arrange
an array such that the average of 2 numbers does not lie between
them <http://stackoverflow.com/questions/19345090/arrange-an-array-
such-that-the-average-of-2-numbers-does-not-lie-between-them>)
* balanced_brackets.mzn <https://www.hakank.org/minizinc/
balanced_brackets.mzn>: Generate balanced brackets
* balanced_matrix.mzn <https://www.hakank.org/minizinc/
balanced_matrix.mzn>: Balanced matrix
* bin_packing_me.mzn <https://www.hakank.org/minizinc/
bin_packing_me.mzn>: Bin packing (2010-10-12: this was called
*bin_packing.mzn* but renamed due to name clash with a file with the
same name in the MiniZinc distribution)
* bin_packing2.mzn <https://www.hakank.org/minizinc/bin_packing2.mzn>:
Bin packing (different from the one above)
* bpp.mzn <https://www.hakank.org/minizinc/bpp.mzn>: Bin packing (GLPK
example, but not using the "z heuristic")
* bracket_partitioning.mzn <https://www.hakank.org/minizinc/
bracket_partitioning.mzn>: Bracket partitioning, optimize the number
of brackets (problem from StackOverflow: Set partitioning with
constraints java <http://stackoverflow.com/questions/21489938/set-
partitioning-with-constraints-java>)
* car.mzn <https://www.hakank.org/minizinc/car.mzn>: Car sequencing
problem (OPL)
* car.mzn <https://www.hakank.org/minizinc/car_painting.mzn>: Car
painting problem (from SAS/OR User's Guide)
* carpool_fairness.mzn <https://www.hakank.org/minizinc/
carpool_fairness.mzn>: Carpool fairness
Problem instances:
carpool_fairness1.dzn <https://www.hakank.org/minizinc/
carpool_fairness1.dzn> carpool_fairness2.dzn <https://
www.hakank.org/minizinc/carpool_fairness2.dzn>
carpool_fairness3.dzn <https://www.hakank.org/minizinc/
carpool_fairness3.dzn> carpool_fairness4.dzn <https://
www.hakank.org/minizinc/carpool_fairness4.dzn>
carpool_fairness5.dzn <https://www.hakank.org/minizinc/
carpool_fairness5.dzn>
* checker_puzzle.mzn <https://www.hakank.org/minizinc/
checker_puzzle.mzn>: Checker puzzle (from MathOverflow Placing
checkers with some restrictions <http://mathoverflow.net/
questions/1947/placing-checkers-with-some-restrictions>)
* choosing_teams.mzn <https://www.hakank.org/minizinc/
choosing_teams.mzn>: Choosing teams (inspired by Enumerating the
ways of choosing teams in a group of players <http://blogs.msdn.com/
b/oldnewthing/archive/2014/08/04/10547079.aspx>)
* choosing_teams2.mzn <https://www.hakank.org/minizinc/
choosing_teams2.mzn>: Choosing teams (inspired by Enumerating the
ways of choosing teams in a group of players <http://blogs.msdn.com/
b/oldnewthing/archive/2014/08/04/10547079.aspx>), different - and
somewhat faster - approach than choosing_teams.mzn
* color_simple.mzn <https://www.hakank.org/minizinc/color_simple.mzn>:
Simple coloring of a map (Murty)
* combinatorial_auction.mzn <https://www.hakank.org/minizinc/
combinatorial_auction.mzn>: Simple combinatorial auction problem
(compare with the set covering/set partition problem in
set_covering4b.mzn <https://www.hakank.org/minizinc/
set_covering4b.mzn>)
* conference.mzn <https://www.hakank.org/minizinc/conference.mzn>:
Conference problem (from "Constraint Programming with Alice")
* config.mzn <https://www.hakank.org/minizinc/config.mzn>:
Configuration problem (from OPL)
* cookie_monster_problem.mzn <https://www.hakank.org/minizinc/
cookie_monster_problem.mzn>: Cookie Monster Problem (from Richard
Green The Cookie Monster Problem <https://plus.google.com/
u/0/101584889282878921052/posts/8qWvSaLJVGD> at Google+)
* costas_array.mzn <https://www.hakank.org/minizinc/costas_array.mzn>:
Costas array (based on Barry O'Sullivan's model)
* decision_tree_binary.mzn <https://www.hakank.org/minizinc/
decision_tree_binary.mzn>: Binary decision tree
* debruijn_binary.mzn <https://www.hakank.org/minizinc/
debruijn_binary.mzn>: de Bruijn sequence (graph)
* debruijn2d.mzn <https://www.hakank.org/minizinc/debruijn2d.mzn>: 2D
de Bruijn torus/arrays/matrices
* debruijn2d_2.mzn <https://www.hakank.org/minizinc/debruijn2d_2.mzn>:
2D de Bruijn torus/arrays/matrices, improved version
* debruijn2d_3.mzn <https://www.hakank.org/minizinc/debruijn2d_3.mzn>:
2D de Bruijn torus/arrays/matrices, can handle non-square matrices
and sub-matrices
* debruijn_no_repetition.mzn <https://www.hakank.org/minizinc/
debruijn_no_repetition.mzn>: de Bruijn sequence with no repeating
values (a.k.a Kautz sequences)
* dominating_set.mzn <https://www.hakank.org/minizinc/
dominating_set.mzn>: Dominating set problem
* exact_cover_dlx.mzn <https://www.hakank.org/minizinc/
exact_cover_dlx.mzn>: Implements the exact set cover example in
Wikipedia's and <http://en.wikipedia.org/wiki/
Exact_cover>Knuth's_Algorithm_X <http://en.wikipedia.org/wiki/
Knuth%27s_Algorithm_X#Example>
* exact_cover_dlx_matrix.mzn <https://www.hakank.org/minizinc/
exact_cover_dlx_matrix.mzn>: Implements the exact set cover example
in Wikipedia's and <http://en.wikipedia.org/wiki/
Exact_cover>Knuth's_Algorithm_X <http://en.wikipedia.org/wiki/
Knuth%27s_Algorithm_X#Example>. This version use a matrix
representation instead of sets.
* examination_scheduling.mzn <https://www.hakank.org/minizinc/
examination_scheduling.mzn>: Examination scheduling (from Noppon
Choosri: "Using grid puzzle to solve constraint-based scheduling
problem")
* fair_split_into_3_groups.mzn <https://www.hakank.org/minizinc/
fair_split_into_3_groups.mzn>: Fair split into 3 groups (from Stack
Overflow What is an algorithm to split a group of items into 3
separate groups fairly? <http://stackoverflow.com/questions/8762230/
what-is-an-algorithm-to-split-a-group-of-items-into-3-separate-
groups-fairly>)
* finding_celebrities.mzn <https://www.hakank.org/minizinc/
finding_celebrities.mzn>: Finding celebrities at a party (indicence
matrix).
* finding_celebrities2.mzn <https://www.hakank.org/minizinc/
finding_celebrities2.mzn>: Finding celebrities at a party, using
only set constraints.
* fix_points.mzn <https://www.hakank.org/minizinc/fix_points.mzn>:
Number of fix points in an array
* generalized_knapsack_problem.mzn <https://www.hakank.org/minizinc/
generalized_knapsack_problem.mzn>: Generalized knapsack problem
* graceful_labeling.mzn <https://www.hakank.org/minizinc/
graceful_labeling.mzn>: Graceful labeling problem
* graph_degree_sequence.mzn <https://www.hakank.org/minizinc/
graph_degree_sequence.mzn>: Degree sequence for graphs, both matrix
and edge representation
* graph_partition.mzn <https://www.hakank.org/minizinc/
graph_partition.mzn>: Graph partitioning (example from Pascal Van
Hentenryck, Laurent Michel: "Constraint-based local search", page 6f)
* gray_code.mzn <https://www.hakank.org/minizinc/gray_code.mzn>: Gray
code
* hamming_distance.mzn <https://www.hakank.org/minizinc/
hamming_distance.mzn>: Hamming distance
* hitting_set.mzn <https://www.hakank.org/minizinc/hitting_set.mzn>:
Hitting set
* itemset_mining.mzn <https://www.hakank.org/minizinc/
itemset_mining.mzn>: Itemset mining (both Closed and Maximal
Frequent Itemset Mining)
* maximal_independent_sets.mzn <https://www.hakank.org/minizinc/
maximal_independent_sets.mzn>: Maximal independent sets (cf misp.mzn
<https://www.hakank.org/minizinc/misp.mzn>)
* K4P2GracefulGraph.mzn <https://www.hakank.org/minizinc/
K4P2GracefulGraph.mzn>: K4P2 Graceful Graph
* K4P2GracefulGraph2.mzn <https://www.hakank.org/minizinc/
K4P2GracefulGraph2.mzn>: K4P2 Graceful Graph (more general model)
* k_consecutive_integers.mzn <https://www.hakank.org/minizinc/
k_consecutive_integers.mzn>: k consecutive integers (Stack Overflow:
k consecutive integers constraint <http://stackoverflow.com/
questions/18550915/k-consecutive-integers-constraint>)
* kidney_exchange.mzn <https://www.hakank.org/minizinc/
kidney_exchange.mzn>: Simple kidney exchange model (inspired by
Pascal Van Hentenryck's introduction to the Coursera Course
"Discrete Optimization")
* kidney_exchange2.mzn <https://www.hakank.org/minizinc/
kidney_exchange2.mzn>: Kidney exchange model
Faster version: kidney_exchange_model.mzn <https://www.hakank.org/
minizinc/kidney_exchange_model.mzn>:
Data files:
o kidney_exchange_pascal.dzn <https://www.hakank.org/minizinc/
kidney_exchange_pascal.dzn>
o kidney_exchange_roth.dzn <https://www.hakank.org/minizinc/
kidney_exchange_roth.dzn>
o kidney_exchange_10_0.4_fz.dzn <https://www.hakank.org/minizinc/
kidney_exchange_10_0.4_fz.dzn>
o kidney_exchange_20_0.1_fz.dzn <https://www.hakank.org/minizinc/
kidney_exchange_20_0.1_fz.dzn>
o kidney_exchange_20_0.3_fz.dzn <https://www.hakank.org/minizinc/
kidney_exchange_20_0.3_fz.dzn>
o kidney_exchange_20_0.4_fz_1.dzn <https://www.hakank.org/
minizinc/kidney_exchange_20_0.4_fz_1.dzn>
o kidney_exchange_20_0.4_fz.dzn <https://www.hakank.org/minizinc/
kidney_exchange_20_0.4_fz.dzn>
o kidney_exchange_20_0.6_fz.dzn <https://www.hakank.org/minizinc/
kidney_exchange_20_0.6_fz.dzn>
o kidney_exchange_40_0.05.dzn <https://www.hakank.org/minizinc/
kidney_exchange_40_0.05.dzn>
o kidney_exchange_40_0.1.dzn <https://www.hakank.org/minizinc/
kidney_exchange_40_0.1.dzn>
o kidney_exchange_40_0.6_fz.dzn <https://www.hakank.org/minizinc/
kidney_exchange_40_0.6_fz.dzn>
o kidney_exchange_100_0.05.dzn <https://www.hakank.org/minizinc/
kidney_exchange_100_0.05.dzn>
o kidney_exchange_100_0.1_2.dzn <https://www.hakank.org/minizinc/
kidney_exchange_100_0.1_2.dzn>
o kidney_exchange_100_0.1.dzn <https://www.hakank.org/minizinc/
kidney_exchange_100_0.1.dzn>
o kidney_exchange_100_0.3_fz_1.dzn <https://www.hakank.org/
minizinc/kidney_exchange_100_0.3_fz_1.dzn>
o kidney_exchange_100_0.3_fz.dzn <https://www.hakank.org/minizinc/
kidney_exchange_100_0.3_fz.dzn>
o kidney_exchange_500_0.1.dzn <https://www.hakank.org/minizinc/
kidney_exchange_500_0.1.dzn>
o kidney_exchange_1000_0.05_1.dzn <https://www.hakank.org/
minizinc/kidney_exchange_1000_0.05_1.dzn>
o kidney_exchange_1000_0.1_1.dzn <https://www.hakank.org/minizinc/
kidney_exchange_1000_0.1_1.dzn>
o kidney_exchange_2000_0.1.dzn <https://www.hakank.org/minizinc/
kidney_exchange_2000_0.1.dzn>
* kiselman_semigroup_problem.mzn <https://www.hakank.org/minizinc/
kiselman_semigroup_problem.mzn>: Kiselman's Semigroup problem.
* knapsack_problem.mzn <https://www.hakank.org/minizinc/
knapsack_problem.mzn>: Knapsack problem
* knapsack1.mzn <https://www.hakank.org/minizinc/knapsack1.mzn>:
Knapsack problem
* knapsack2.mzn <https://www.hakank.org/minizinc/knapsack2.mzn>:
Another knapsack problem
* knapsack_rosetta_code_01.mzn <https://www.hakank.org/minizinc/
knapsack_rosetta_code_01.mzn>: Knapsack problem, 0/1 (Rosetta code)
* knapsack_rosetta_code_unbounded.mzn <https://www.hakank.org/
minizinc/knapsack_rosetta_code_unbounded.mzn>: Knapsack problem
(float), Unbounded (Rosetta code)
* knapsack_rosetta_code_unbounded_int.mzn <https://www.hakank.org/
minizinc/knapsack_rosetta_code_unbounded_int.mzn>: Knapsack problem
Unbounded, integer version of knapsack_rosetta_code_unbounded.mzn
<https://www.hakank.org/minizinc/
knapsack_rosetta_code_unbounded.mzn> (Rosetta code)
* knapsack_rosetta_code_bounded.mzn <https://www.hakank.org/minizinc/
knapsack_rosetta_code_bounded.mzn>: Knapsack problem, bounded
(Rosetta code)
* lams_problem.mzn <https://www.hakank.org/minizinc/lams_problem.mzn>:
Lam's problem (CSPLib problem 25)
* langford2.mzn <https://www.hakank.org/minizinc/langford2.mzn>:
Langford's number problem (k=2) (CSPLib problem 24)
* langford_generalized.mzn <https://www.hakank.org/minizinc/
langford_generalized.mzn>: Langford's number problem, (k >= 2)
(CSPLib problem 24)
* latin_square.mzn <https://www.hakank.org/minizinc/latin_square.mzn>:
Latin squares
* lehmer_code_from_permutation.mzn <https://www.hakank.org/minizinc/
lehmer_code_from_permutation.mzn>: Lehmer code from permutation
* lectures.mzn <https://www.hakank.org/minizinc/lectures.mzn>:
Lectures, schedule problem from Biggs "Discrete Mathematics"
* lichtenstein_coloring.mzn <https://www.hakank.org/minizinc/
lichtenstein_coloring.mzn>: Coloring problem: Lichtenstein's
communes and exclaves
* logical_design.mzn <https://www.hakank.org/minizinc/
logical_design.mzn>: Logical design (Williams)
* map.mzn <https://www.hakank.org/minizinc/map.mzn>: Simple coloring
of a map
* map2.mzn <https://www.hakank.org/minizinc/map2.mzn>: Simple coloring
of a map (using symmetry breaking with precedence/1)
* map_stuckey.mzn <https://www.hakank.org/minizinc/map_stuckey.mzn>:
Another coloring of a map (Marriott and Stuckey)
* map_coloring_with_costs.mzn <https://www.hakank.org/minizinc/
map_coloring_with_costs.mzn>: Map coloring (of South America) where
each color has a cost
* maximal_nonsegment_sum.mzn <https://www.hakank.org/minizinc/
maximal_nonsegment_sum.mzn>: Maximal subsegment sum
* maximal_nonsegment_sum_regular.mzn <https://www.hakank.org/minizinc/
maximal_nonsegment_sum_regular.mzn>: Maximal subsegment sum (using |
regular| constraint)
* minimal_subset_of_columns.mzn <https://www.hakank.org/minizinc/
minimal_subset_of_columns.mzn>: Finding minimal subset of columns
that make rows in a matrix unique (Stack Overflow)
* maximum_density_still_life.mzn <https://www.hakank.org/minizinc/
maximum_density_still_life.mzn>: Maximum density still life
* maximum_subarray.mzn <https://www.hakank.org/minizinc/
maximum_subarray.mzn>: Maximum subarray (Rosetta code)
* minsum.mzn <https://www.hakank.org/minizinc/minsum.mzn>: Minsum problem
* movie_scheduling.mzn <https://www.hakank.org/minizinc/
movie_scheduling.mzn>: Movie scheduling (Steven Skiena)
* modulo_partition.mzn <https://www.hakank.org/minizinc/
modulo_partition.mzn>: Function partitioning
* nontransitive_dice.mzn <https://www.hakank.org/minizinc/
nontransitive_dice.mzn>: Nontransitive dice
* one_to_many.mzn <https://www.hakank.org/minizinc/one_to_many.mzn>:
One to Many problem (StackOverflow)
* ordering_a_list_of_lists.mzn <https://www.hakank.org/minizinc/
ordering_a_list_of_lists.mzn>: Ordering a list of lists (from Stack
Overflow Ordering a list of lists subject to constraints <http://
stackoverflow.com/questions/18581924/ordering-a-list-of-lists-
subject-to-constraints>)
* ormat_game.mzn <https://www.hakank.org/minizinc/ormat_game.mzn>:
Ormat game (from bit-player The Ormat game <http://bit-
player.org/2010/the-ormat-game>).
Data files with all the overlays of appropriate size. There are n!
overlay matrices for problems of size n x n. (These files has been
generated by ormat_game_generate.mzn <https://www.hakank.org/
minizinc/ormat_game_generate.mzn> and some post-processing.)
o ormat_game_n3.dzn <https://www.hakank.org/minizinc/
ormat_game_n3.dzn>: For n = 3
o ormat_game_n4.dzn <https://www.hakank.org/minizinc/
ormat_game_n4.dzn>: For n = 4
o ormat_game_n5.dzn <https://www.hakank.org/minizinc/
ormat_game_n5.dzn>: For n = 5
o ormat_game_n6.dzn <https://www.hakank.org/minizinc/
ormat_game_n6.dzn>: For n = 6
o ormat_game_n7.dzn <https://www.hakank.org/minizinc/
ormat_game_n7.dzn>: For n = 7
ormat_game_nodel.mzn <https://www.hakank.org/minizinc/
ormat_game_model.mzn>: Ormat game model, which is included in the
follling problem instances from the bit-player article.
o ormat_game_problem1.mzn <https://www.hakank.org/minizinc/
ormat_game_problem1.mzn>: Problem 1 (3x3)
o ormat_game_problem2.mzn <https://www.hakank.org/minizinc/
ormat_game_problem2.mzn>: Problem 2 (3x3)
o ormat_game_problem3.mzn <https://www.hakank.org/minizinc/
ormat_game_problem3.mzn>: Problem 3 (3x3)
o ormat_game_problem4.mzn <https://www.hakank.org/minizinc/
ormat_game_problem4.mzn>: Problem 4 (4x4)
o ormat_game_problem5.mzn <https://www.hakank.org/minizinc/
ormat_game_problem5.mzn>: Problem 5 (5x5)
o ormat_game_problem6.mzn <https://www.hakank.org/minizinc/
ormat_game_problem6.mzn>: Problem 6 (6x6)
ormat_game_mip_nodel.mzn <https://www.hakank.org/minizinc/
ormat_game_mip_model.mzn>: Ormat game model, MIP version (quite fast
for the optimization problem with a MIP solver). These following
problem instances includes this MIP model.
o ormat_game_mip_problem1.mzn <https://www.hakank.org/minizinc/
ormat_game_mip_problem1.mzn>: Problem 1 (3x3)
o ormat_game_mip_problem2.mzn <https://www.hakank.org/minizinc/
ormat_game_mip_problem2.mzn>: Problem 2 (3x3)
o ormat_game_mip_problem3.mzn <https://www.hakank.org/minizinc/
ormat_game_mip_problem3.mzn>: Problem 3 (3x3)
o ormat_game_mip_problem4.mzn <https://www.hakank.org/minizinc/
ormat_game_mip_problem4.mzn>: Problem 4 (4x4)
o ormat_game_mip_problem5.mzn <https://www.hakank.org/minizinc/
ormat_game_mip_problem5.mzn>: Problem 5 (5x5)
o ormat_game_mip_problem6.mzn <https://www.hakank.org/minizinc/
ormat_game_mip_problem6.mzn>: Problem 6 (6x6)
* parallel_resistors.mzn <https://www.hakank.org/minizinc/
parallel_resistors.mzn>: Parallel resistors problem problem from
Marriott & Stuckey "Programming in Constraints"
* partial_latin_square.mzn <https://www.hakank.org/minizinc/
partial_latin_square.mzn>: Partial Latin squares
* partitions.mzn <https://www.hakank.org/minizinc/partitions.mzn>:
Integer partitions
* partition_into_subset_of_equal_values.mzn <https://www.hakank.org/
minizinc/partition_into_subset_of_equal_values.mzn>: Subset
partitions (problem from the Stack Exchange Q: Partitioning set into
subsets with respect to equality of sum among subsets <http://
programmers.stackexchange.com/questions/153184/partitioning-set-
into-subsets-with-respect-to-equality-of-sum-among-subsets>).
* partition_into_subset_of_equal_values2.mzn <https://www.hakank.org/
minizinc/partition_into_subset_of_equal_values2.mzn>, a version with
some larger problem instances.
* partition_into_subset_of_equal_values3.mzn <https://www.hakank.org/
minizinc/partition_into_subset_of_equal_values3.mzn>, pre-calculate
the sum in the subsets (somewhat faster)
* perfect_shuffle.mzn <https://www.hakank.org/minizinc/
perfect_shuffle.mzn>: Perfect shuffle
* pigeon_hole.mzn <https://www.hakank.org/minizinc/pigeon_hole.mzn>:
Pigeon hole problem (CLP-FD)
* picking_teams.mzn <https://www.hakank.org/minizinc/
picking_teams.mzn>: Picking teams (where the objective is to
minimize the differences in total strength of each team).
picking_teams2.mzn <https://www.hakank.org/minizinc/
picking_teams2.mzn>: This version takes a data file as input.
picking_teams_rand.dzn <https://www.hakank.org/minizinc/
picking_teams_rand.dzn>: A data file with random strengths (for n =
300). picking_teams_generate.pl <https://www.hakank.org/minizinc/
picking_teams_generate.pl>: Perl program for generating a data file
with a strength array.
* pigeon_hole2.mzn <https://www.hakank.org/minizinc/pigeon_hole2.mzn>:
Another pigeon hole problem
* portfolio_optimization2.mzn <https://www.hakank.org/minizinc/
portfolio_optimization2.mzn>: Portfolio optimization (from Xpress-
Mosel)
* powerset_param.mzn <https://www.hakank.org/minizinc/
powerset_param.mzn>: Power set as a fixed calculation (not decision
variables)
* power_set.mzn <https://www.hakank.org/minizinc/power_set.mzn>: Power
set
* power_set2.mzn <https://www.hakank.org/minizinc/power_set2.mzn>:
Power set as a predicate (alternative version)
* power_set3.mzn <https://www.hakank.org/minizinc/power_set3.mzn>:
Power set as a predicate (alternative versions)
* quasiGroup3Idempotent.mzn <https://www.hakank.org/minizinc/
quasiGroup3Idempotent.mzn>: Quasigroup existence problem 3(CSPLib)
* quasiGroup3NonIdempotent.mzn <https://www.hakank.org/minizinc/
quasiGroup3NonIdempotent.mzn>: Quasigroup existence problem 3 (CSPLib)
* quasiGroup4Idempotent.mzn <https://www.hakank.org/minizinc/
quasiGroup4Idempotent.mzn>: Quasigroup existence problem 4(CSPLib)
* quasiGroup4NonIdempotent.mzn <https://www.hakank.org/minizinc/
quasiGroup4NonIdempotent.mzn>: Quasigroup existence problem 4(CSPLib)
* quasiGroup5Idempotent.mzn <https://www.hakank.org/minizinc/
quasiGroup5Idempotent.mzn>: Quasigroup existence problem 5(CSPLib)
* quasiGroup5NonIdempotent.mzn <https://www.hakank.org/minizinc/
quasiGroup5NonIdempotent.mzn>: Quasigroup existence problem 5(CSPLib)
* quasiGroup6.mzn <https://www.hakank.org/minizinc/quasiGroup6.mzn>:
Quasigroup existence problem 6 (CSPLib)
* quasiGroup7.mzn <https://www.hakank.org/minizinc/quasiGroup7.mzn>:
Quasigroup existence problem 7 (CSPLib)
* quasigroup_completion.mzn <https://www.hakank.org/minizinc/
quasigroup_completion.mzn>: Quasigroup completion problem
* quasigroup_completion_model.mzn <https://www.hakank.org/minizinc/
quasigroup_completion_model.mzn>: Quasigroup completion problem,
model used by the following instances:
o quasigroup_completion_gomes_shmoys_p3.mzn <https://
www.hakank.org/minizinc/quasigroup_completion_gomes_shmoys_p3.mzn>
o quasigroup_completion_gomes_shmoys_p7.mzn <https://
www.hakank.org/minizinc/quasigroup_completion_gomes_shmoys_p7.mzn>
o quasigroup_completion_martin_lynce.mzn <https://www.hakank.org/
minizinc/quasigroup_completion_martin_lynce.mzn>
o quasigroup_completion_gcc.mzn <https://www.hakank.org/minizinc/
quasigroup_completion_gcc.mzn>
o quasigroup_completion_gomes_demo1.mzn <https://www.hakank.org/
minizinc/quasigroup_completion_gomes_demo1.mzn>
o quasigroup_completion_gomes_demo2.mzn <https://www.hakank.org/
minizinc/quasigroup_completion_gomes_demo2.mzn>
o quasigroup_completion_gomes_demo3.mzn <https://www.hakank.org/
minizinc/quasigroup_completion_gomes_demo3.mzn>
o quasigroup_completion_gomes_demo4.mzn <https://www.hakank.org/
minizinc/quasigroup_completion_gomes_demo4.mzn>
o quasigroup_completion_gomes_demo5.mzn <https://www.hakank.org/
minizinc/quasigroup_completion_gomes_demo5.mzn>
* ramsey_partition.mzn <https://www.hakank.org/minizinc/
ramsey_partition.mzn>: Ramsey partition problem
* random_function.mzn <https://www.hakank.org/minizinc/
random_function.mzn>: Random generator function, defines |
random_int| and |random_float| which returns arrays of "random"
ints/floats. Requires MiniZinc v2.*
* random_function_test.mzn <https://www.hakank.org/minizinc/
random_function_test.mzn>: Tests |random_int| and |random_float|
defined in random_function.mzn <https://www.hakank.org/minizinc/
random_function.mzn>. Requires MiniZinc v2.*
* random_generator.mzn <https://www.hakank.org/minizinc/
random_generator.mzn>: Random generator, generates a |var int| array
of random integers given a seed
* random_generator2.mzn <https://www.hakank.org/minizinc/
random_generator2.mzn>: Random generator II, generates an |int|
array of random integers given a seed (i.e. it can be used directly
in the array declaration)
* random_set.mzn <https://www.hakank.org/minizinc/random_set.mzn>:
Random generator III, generates a random set of int (either as |var
set of int| or via array/set comprehension)
* rehearsal.mzn <https://www.hakank.org/minizinc/rehearsal.mzn>:
Rehearsal problem (Barbara M. Smith)
o rehearsal_smith.dzn <https://www.hakank.org/minizinc/
rehearsal_smith.dzn>: Data from Barbara M. Smith's paper
o rehearsal_choco.dzn <https://www.hakank.org/minizinc/
rehearsal_choco.dzn>: Data from Choco (sample.scheduling.Rehearsal)
* restaurant_scheduling.mzn <https://www.hakank.org/minizinc/
restaurant_scheduling.mzn>: Restaurant scheduling (PuzzlOR)
* runs.mzn <https://www.hakank.org/minizinc/runs.mzn>: Number of runs
in an array (sequence)
* sat.mzn <https://www.hakank.org/minizinc/sat.mzn>: Satisfiability
Problem, integer programming (GLPK)
* satisfy.mzn <https://www.hakank.org/minizinc/satisfy.mzn>:
Satisfiability Problem (Alma-0)
* seating_arrangements.mzn <https://www.hakank.org/minizinc/
seating_arrangements.mzn>: Seating arrangements problem. Problem
from Texas Action Group <http://www.cs.utexas.edu/users/vl/tag/>:
Seating arrangements: Problem <http://www.cs.utexas.edu/users/vl/
tag/seating_problem>
Problem instances from Texas Action Group Seating arrangements:
Solutions <http://www.cs.utexas.edu/users/vl/tag/seating_solutions>
(the solutions are in Answer Set Programming)
o seating_arrangements_1.dzn <https://www.hakank.org/minizinc/
seating_arrangements_1.dzn>
o seating_arrangements_2.dzn <https://www.hakank.org/minizinc/
seating_arrangements_2.dzn>
o seating_arrangements_3.dzn <https://www.hakank.org/minizinc/
seating_arrangements_2.dzn>
* seating_row.mzn <https://www.hakank.org/minizinc/seating_row.mzn>:
Seating placement, row (e.g. "movie theater seating") (a "minimal
code" version: seating_row1.mzn <https://www.hakank.org/minizinc/
seating_row1.mzn>)
* seating_table.mzn <https://www.hakank.org/minizinc/
seating_table.mzn>: Seating placement, table (circular)
* scanner_problem.mzn <https://www.hakank.org/minizinc/
scanner_problem.mzn>: Scanner problem
* scp41.mzn <https://www.hakank.org/minizinc/scp41.mzn>: Set covering
problem (orlib #41)
* set_covering.mzn <https://www.hakank.org/minizinc/set_covering.mzn>:
Set covering, placing of firestations (Winston)
* set_covering2.mzn <https://www.hakank.org/minizinc/
set_covering2.mzn>: Set covering, number of security telephons on a
campus (Taha)
* set_covering3_model.mzn <https://www.hakank.org/minizinc/
set_covering3_model.mzn>: Set covering model
* set_covering3.mzn <https://www.hakank.org/minizinc/
set_covering3.mzn>: Set covering, senators making a committe (Murty)
* set_covering4.mzn <https://www.hakank.org/minizinc/
set_covering4.mzn>: Set covering problem (Lundgren, R�nnqvist,
V�rbrand "Optimeringsl�ra")
* set_covering4b.mzn <https://www.hakank.org/minizinc/
set_covering4b.mzn>: Set covering problem, generalized version of
set_covering4.mzn
* set_covering5.mzn <https://www.hakank.org/minizinc/
set_covering5.mzn>: Set covering, work scheduling (Lundgren,
R�nnqvist, V�rbrand "Optimeringsl�ra")
* set_covering6.mzn <https://www.hakank.org/minizinc/
set_covering6.mzn>: Set covering, problem from Nathan Brixius' blog
post Don't be a hero when trying to solve set covering problems
<http://blogs.msdn.com/b/natbr/archive/2010/06/19/don-t-be-a-hero-
when-trying-to-solve-set-covering-problems.aspx> (2010-06-19)
* set_covering_deployment.mzn <https://www.hakank.org/minizinc/
set_covering_deployment.mzn>: Set covering deployment
* set_covering_opl.mzn <https://www.hakank.org/minizinc/
set_covering_opl.mzn>: Set covering (OPL)
* set_covering_skiena.mzn <https://www.hakank.org/minizinc/
set_covering_skiena.mzn>: Set covering (Skiena)
* set_packing.mzn <https://www.hakank.org/minizinc/set_packing.mzn>:
Set packing
* set_partition.mzn <https://www.hakank.org/minizinc/
set_partition.mzn>: Set partitioning
* set_partition_stackoverflow.mzn <https://www.hakank.org/minizinc/
set_partition_stackoverflow.mzn>: Set partition problem (from
StackOverflow fast and simple constraint programming involving
vectors (arrays) <http://stackoverflow.com/questions/16430091/fast-
and-simple-constraint-programming-involving-vectors-arrays>)
* shortest_path1.mzn <https://www.hakank.org/minizinc/
shortest_path1.mzn>: Shortest path problem, selling/buying a car
(Winston)
* shortest_path2.mzn <https://www.hakank.org/minizinc/
shortest_path2.mzn>: Shortest path problem (Winston)
* shortest_path_graph.mzn <https://www.hakank.org/minizinc/
shortest_path_graph.mzn>: Shortest path problem (3 jugs problem as a
graph, a bit experimental)
* shortest_path_model.mzn <https://www.hakank.org/minizinc/
shortest_path_model.mzn>: Model for shortest path
* shortest_path_model_all.mzn <https://www.hakank.org/minizinc/
shortest_path_model_all.mzn>: Model for shortest path, for showing
all solutions (assuming an added constraint in the calling model)
* sicherman_dice.mzn <https://www.hakank.org/minizinc/
sicherman_dice.mzn>: Sicherman dice problem
* smuggler_knapsack.mzn <https://www.hakank.org/minizinc/
smuggler_knapsack.mzn>: Smuggler's knapsack (Marriott and Stuckey:
"Programming with Constraints")
* sonet_problem.mzn <https://www.hakank.org/minizinc/
sonet_problem.mzn>: SONET problem
* steiner.mzn <https://www.hakank.org/minizinc/steiner.mzn>: Steiner
triplet problem
* subset_plus_2.mzn <https://www.hakank.org/minizinc/
subset_plus_2.mzn>: Subset problem: How many subsets S={1..10} union
S+2 == {1..12} (from God plays dice Bitwise set trickery <http://
gottwurfelt.wordpress.com/2012/07/13/bitwise-set-trickery/%22>)
* subset_sum.mzn <https://www.hakank.org/minizinc/subset_sum.mzn>:
Subset sum (Murty)
* superpermutations.mzn <https://www.hakank.org/minizinc/
superpermutations.mzn>: Superpermutation problem
Instances:
o superpermutation_n3.dzn <https://www.hakank.org/minizinc/
superpermutation_n3.dzn>: N=3
o superpermutation_n4.dzn <https://www.hakank.org/minizinc/
superpermutation_n4.dzn>: N=4
o superpermutation_n5.dzn <https://www.hakank.org/minizinc/
superpermutation_n5.dzn>: N=5
* temporal_reasoning.mzn <https://www.hakank.org/minizinc/
temporal_reasoning.mzn>: Temporal reasoning (Apt)
* tourist_site_competition.mzn <https://www.hakank.org/minizinc/
tourist_site_competition.mzn>: Tourist site competition (Pierre Flener)
* traffic_lights.mzn <https://www.hakank.org/minizinc/
traffic_lights.mzn>: Traffic lights problem (CSPLib problem 16)
* traffic_lights_table.mzn <https://www.hakank.org/minizinc/
traffic_lights_table.mzn>: Traffic lights problem (CSPLib problem
16), same as traffic_lights.mzn except that is use the global
constraint tabl
* transpose.mzn <https://www.hakank.org/minizinc/transpose.mzn>:
(Square) matrix operations, transpose, scalar addition, scalar
multiplication
* tsp_circuit.mzn <https://www.hakank.org/minizinc/tsp_circuit.mzn>:
Travelling salesperson problem, using circuit predicate
* tsptw.mzn <https://www.hakank.org/minizinc/tsptw.mzn>: Travelling
salesperson problem with time windows
* two_dimensional_channels.mzn <https://www.hakank.org/minizinc/
two_dimensional_channels.mzn>: Two-dimensional constrained channels
(all interiour cells must have m 1 neighbours in a NxN 0/1 matrix)
* uniform_dice.mzn <https://www.hakank.org/minizinc/uniform_dice.mzn>:
Uniform dice
* uniform_dice2.mzn <https://www.hakank.org/minizinc/
uniform_dice2.mzn>: Uniform dice (Mind Your Decisions)
* wedding_optimal_chart.mzn <https://www.hakank.org/minizinc/
wedding_optimal_chart.mzn>: Finding an optimal seating chart for a
wedding (see Improbable Research: Finding an optimal seating chart
for a wedding <http://www.improbable.com/2012/02/12/finding-an-
optimal-seating-chart-for-a-wedding>)
* young_tableaux.mzn <https://www.hakank.org/minizinc/
young_tableaux.mzn> Young tableaux
* young_tableaux_stack_overflow.mzn <https://www.hakank.org/minizinc/
young_tableaux_stack_overflow.mzn> Young tableaux, model adapted to
answer the Stack Overflow question Young tableaux in C <http://
stackoverflow.com/questions/15705001/young-tableaux-in-c>
Global constraints (mostly decompositions)
Here are some implementations of the global constraints (mostly as
decompositions) which are not already implemented in the MiniZinc
globals.mzn, described in the great collection Global Constraint Catalog
<http://www.emn.fr/x-info/sdemasse/gccat/index.html>. Here are also some
decompositions not in the catalogue or test of built-in constraints.
*Name clashes*: If there exists a file in default directory with the
same name as one of the global constraints defined in "global.mzn",
there will be a name clash. If that happens, just rename the file in the
default directory to something else, e.g. constraint_me.mzn.
* all_differ_from_at_least_k_pos.mzn <https://www.hakank.org/minizinc/
all_differ_from_at_least_k_pos.mzn>: all_differ_from_at_least_k_pos,
all rows in a matrix has values that differs in at least k positions
* all_equal_me.mzn <https://www.hakank.org/minizinc/all_equal_me.mzn>:
all_equal
* all_min_dist.mzn <https://www.hakank.org/minizinc/all_min_dist.mzn>:
all_min_dist, all values must have a minimum distance to each other
* alldifferent_consecutive_values.mzn <https://www.hakank.org/
minizinc/alldifferent_consecutive_values.mzn>:
alldifferent_consecutive_values
* alldifferent_cst.mzn <https://www.hakank.org/minizinc/
alldifferent_cst.mzn>: alldifferent_cst, and alldifferent_cst using
multiplication instead of addition
* alldifferent_except_0_me.mzn <https://www.hakank.org/minizinc/
alldifferent_except_0_me.mzn>: alldifferent except 0 (This predicate
is now included in the MiniZinc distribution)
* alldifferent_explain.mzn <https://www.hakank.org/minizinc/
alldifferent_explain.mzn>: alldifferent with "explanations" (with a
set of duplicated values)
* alldifferent_interval.mzn <https://www.hakank.org/minizinc/
alldifferent_interval.mzn>: alldifferent_modulo, all values modulo k
shall be different
* alldifferent_modulo.mzn <https://www.hakank.org/minizinc/
alldifferent_modulo.mzn>: alldifferent_modulo, all values modulo k
shall be different
* alldifferent_on_intersection.mzn <https://www.hakank.org/minizinc/
alldifferent_on_intersection.mzn>: alldifferent_on_intersection
* alldifferent_pairs.mzn <https://www.hakank.org/minizinc/
alldifferent_pairs.mzn>: defines all_different_pairs,
increasing_pairs, decreasing_pairs, and the function pairs
* alldifferent_partition.mzn <https://www.hakank.org/minizinc/
alldifferent_partition.mzn>: alldifferent_partition
* alldifferent_same_value.mzn <https://www.hakank.org/minizinc/
alldifferent_same_value.mzn>: alldifferent_same_value
* alldifferent_soft.mzn <https://www.hakank.org/minizinc/
alldifferent_soft.mzn>: alldifferent_soft (alldifferent_soft_ctr and
alldifferent_soft_var)
* allperm.mzn <https://www.hakank.org/minizinc/allperm.mzn>: allperm,
ensures that the first rows in a matrix is lexically less than all
permutation of all other rows
* among_diff_0.mzn <https://www.hakank.org/minizinc/among_diff_0.mzn>:
among_diff_0, number of values different from 0
* among_interval.mzn <https://www.hakank.org/minizinc/
among_interval.mzn>: among_interval, number of values in a certain
interval
* among_low_up.mzn <https://www.hakank.org/minizinc/among_low_up.mzn>:
among_low_up, the number values in an array matched another array
shoule be constrained to low and up
* among_modulo.mzn <https://www.hakank.org/minizinc/among_modulo.mzn>:
among_modulo, the number values in an array where a value modulo
quotient = remainder
* among_seq.mzn <https://www.hakank.org/minizinc/among_seq.mzn>:
among_seq
* and.mzn <https://www.hakank.org/minizinc/and.mzn>: and, generalized
and (array)
* arith.mzn <https://www.hakank.org/minizinc/arith.mzn>: arith,
enforces that all values in an array is RELOP (equal, not equal,
less than, etc) some VALUE
* arith_or.mzn <https://www.hakank.org/minizinc/arith_or.mzn>: arith_or
* arith_sliding.mzn <https://www.hakank.org/minizinc/
arith_sliding.mzn>: arith_sliding, all sliding sums from 1..j must
satisfy RELOP VALUE
* assign_and_counts.mzn <https://www.hakank.org/minizinc/
assign_and_counts.mzn>: assign_and_counts
* assign_and_nvalue.mzn <https://www.hakank.org/minizinc/
assign_and_nvalues.mzn>: assign_and_nvalues
* atleast_nvalue.mzn <https://www.hakank.org/minizinc/
atleast_nvalue.mzn>: atleast_nvalue, at least NVAL values are
different in an array
* atmost1_me.mzn <https://www.hakank.org/minizinc/atmost1_me.mzn>:
atmost1
* atmost_nvalue.mzn <https://www.hakank.org/minizinc/
atmost_nvalue.mzn>: atmost_nvalue, at most NVAL values are different
in an array
* balance.mzn <https://www.hakank.org/minizinc/balance.mzn>: balance,
difference between the least and largest number of occurrences in an
array
* balance_interval.mzn <https://www.hakank.org/minizinc/
balance_interval.mzn>: balance_interval, difference between the
least and largest number of occurrences in intervals in an array
* balance_modulo.mzn <https://www.hakank.org/minizinc/
balance_modulo.mzn>: balance_modulo, difference between the least
and largest number of occurrences of the equivalience classes modulo
an integer
* balance_partition.mzn <https://www.hakank.org/minizinc/
balance_partition.mzn>: balance_partition, difference between the
least and largest number of occurrences in partitions
* between_min_max.mzn <https://www.hakank.org/minizinc/
between_min_max.mzn>: between_min_max, a specific number is between
the minimum and maximum value of an array
* binary_tree.mzn <https://www.hakank.org/minizinc/binary_tree.mzn>:
Binary tree
* bipartite.mzn <https://www.hakank.org/minizinc/bipartite.mzn>:
Bipartite graph
* cardinality_atleast <https://www.hakank.org/minizinc/
cardinality_atleast.mzn>: cardinality_atleast
* cardinality_atmost <https://www.hakank.org/minizinc/
cardinality_atmost.mzn>: cardinality_atmost
* cardinality_atmost_partition <https://www.hakank.org/minizinc/
cardinality_atmost_partition.mzn>: cardinality_atmost_partition
* change.mzn <https://www.hakank.org/minizinc/change.mzn>: circular
change, number of changes in an array
* change_pair.mzn <https://www.hakank.org/minizinc/change_pair.mzn>:
change_pair
* change_partition.mzn <https://www.hakank.org/minizinc/
change_partition.mzn>: change_partition
* circular.mzn <https://www.hakank.org/minizinc/circular.mzn>:
circular: ensure that an array of length |m| with domain |1..n| are
circular ordered (and can start on any value of |1..n|).
* circular_except_0.mzn <https://www.hakank.org/minizinc/
circular_except_0.mzn>: circular: ensure that an array of length |m|
with domain |1..5| are circular ordered (and can start on any value
of |1..5|), and supports dummy values (= 0).
* circular_change.mzn <https://www.hakank.org/minizinc/
circular_change.mzn>: circular change, number of changes in an array
(as change but with wrapping around the corner)
* circuit_test.mzn <https://www.hakank.org/minizinc/circuit_test.mzn>:
circuit
* circuit_path.mzn <https://www.hakank.org/minizinc/circuit_path.mzn>:
Extracting the path from a circuit
* clique.mzn <https://www.hakank.org/minizinc/clique.mzn>: clique
* common.mzn <https://www.hakank.org/minizinc/common.mzn>: common,
also used_by
* common_interval.mzn <https://www.hakank.org/minizinc/
common_interval.mzn>: common_interval
* common_modulo.mzn <https://www.hakank.org/minizinc/
common_modulo.mzn>: common_modulo
* common_partition.mzn <https://www.hakank.org/minizinc/
common_partition.mzn>: common_partition
* cond_lex_cost.mzn <https://www.hakank.org/minizinc/
cond_lex_cost.mzn>: cond_lex_cost
* cond_lex_less.mzn <https://www.hakank.org/minizinc/
cond_lex_less.mzn>: cond_lex_less, cond_lex_lesseq,
cond_lex_greater, cond_lex_greatereq
* consecutive_values.mzn <https://www.hakank.org/minizinc/
consecutive_values.mzn>: consecutive_values
* contains_array.mzn <https://www.hakank.org/minizinc/
contains_array.mzn>: contains ("in" for arrays)
* contiguity_regular.mzn <https://www.hakank.org/minizinc/
contiguity_regular.mzn>: global_contiguity (using regular constraint)
* contiguity_regular_regexp.mzn <https://www.hakank.org/minizinc/
contiguity_regular_regexp.mzn>: global_contiguity (using regular
constraint with regular expressions)
* count_ctr.mzn <https://www.hakank.org/minizinc/count_ctr.mzn>:
count, more general than count in MiniZinc's globals.mzn
* counts.mzn <https://www.hakank.org/minizinc/counts.mzn>: counts
* correspondence.mzn <https://www.hakank.org/minizinc/
correspondence.mzn>: correspondence
* cumulative_test.mzn <https://www.hakank.org/minizinc/
cumulative_test.mzn>: Test of cumulative (defined in globals.mzn)
* cumulative_test_mats_carsson.mzn <https://www.hakank.org/minizinc/
cumulative_test_mats_carlsson.mzn>: Another test of cumulative
(small example from one of Mats Carlsson's lecture)
* cycle_test2.mzn <https://www.hakank.org/minizinc/cycle_test2.mzn>:
Cycle constraint (counts the number of cycles in an array)
* cycle_test3.mzn <https://www.hakank.org/minizinc/cycle_test3.mzn>:
Cycle constraint (requires MiniZinc 2.0)
* decreasing_me.mzn <https://www.hakank.org/minizinc/
decreasing_me.mzn>: decreasing
* derangement.mzn <https://www.hakank.org/minizinc/derangement.mzn>:
derangement
* differs_from_at_least_k_pos.mzn <https://www.hakank.org/minizinc/
differs_from_at_least_k_pos.mzn>: differs_from_at_least_k_pos
* diffn_me.mzn <https://www.hakank.org/minizinc/diffn_me.mzn>: diffn,
(with three different representations of the orthotopes)
* discrepancy.mzn <https://www.hakank.org/minizinc/discrepancy.mzn>:
discrepancy
* discjuntive.mzn <https://www.hakank.org/minizinc/disjunctive.mzn>:
disjunctive
* distance_between.mzn <https://www.hakank.org/minizinc/
distance_between.mzn>: distance_between
* distance_change.mzn <https://www.hakank.org/minizinc/
distance_change.mzn>: distance_change
* domain.mzn <https://www.hakank.org/minizinc/domain.mzn>: domain
* domain_constraint.mzn <https://www.hakank.org/minizinc/
domain_constraint.mzn>: domain_constraint
* element_greatereq.mzn <https://www.hakank.org/minizinc/
element_greatereq.mzn>: element_greatereq
* element_lesseq.mzn <https://www.hakank.org/minizinc/
element_lesseq.mzn>: element_lesseq
* element_matrix.mzn <https://www.hakank.org/minizinc/
element_matrix.mzn>: element_matrix
* element_product.mzn <https://www.hakank.org/minizinc/
element_product.mzn>: element_product
* element_sparse.mzn <https://www.hakank.org/minizinc/
element_sparse.mzn>: element_sparse
* elementn.mzn <https://www.hakank.org/minizinc/elementn.mzn>: elementn
* elements.mzn <https://www.hakank.org/minizinc/elements.mzn>: elements
* elements_alldifferent.mzn <https://www.hakank.org/minizinc/
elements_alldifferent.mzn>: elements_alldifferent
* equivalent.mzn <https://www.hakank.org/minizinc/equivalent.mzn>:
equivalent
* gcd_lcm.mzn <https://www.hakank.org/minizinc/gcd_lcm.mzn>:
Decomposition of |gcd(a,b,GCD)| and |lcm(a,b,LCM)| (not very
efficient if all variables are decision variables)
* geost_test.mzn <https://www.hakank.org/minizinc/geost_test.mzn>:
Test of built-in |geost| constraint (requires MiniZinc 2.0)
* global_cardinality_no_loop.mzn <https://www.hakank.org/minizinc/
global_cardinality_no_loop.mzn>: global_cardinality_no_loop
* global_cardinality_with_costs.mzn <https://www.hakank.org/minizinc/
global_cardinality_with_costs.mzn>: global_cardinality_with_costs
* global_cardinality_table.mzn <https://www.hakank.org/minizinc/
global_cardinality_table.mzn>: global_cardinality, using a table
with the occurrences
* global_contiguity.mzn <https://www.hakank.org/minizinc/
global_contiguity.mzn>: global_contiguity
* global_contiguity2.mzn <https://www.hakank.org/minizinc/
global_contiguity2.mzn>: global_contiguity (different approach)
* imply.mzn <https://www.hakank.org/minizinc/imply.mzn>: imply
* inflexions.mzn <https://www.hakank.org/minizinc/inflexions.mzn>:
inflexions, number of peaks in a sequence
* in_interval.mzn <https://www.hakank.org/minizinc/in_interval.mzn>:
in_interval
* in_relation.mzn <https://www.hakank.org/minizinc/in_relation.mzn>:
in_relation
* in_same_partition.mzn <https://www.hakank.org/minizinc/
in_same_partition.mzn>: in_same_partition
* in_set.mzn <https://www.hakank.org/minizinc/in_set.mzn>: in_set (cf
the built in "in")
* increasing_except_0.mzn <https://www.hakank.org/minizinc/
increasing_except_0.mzn>: increasing_except_0
* indexed_sum.mzn <https://www.hakank.org/minizinc/indexed_sum.mzn>:
indexed_sum
* int_value_precede.mzn <https://www.hakank.org/minizinc/
int_value_precede.mzn>: int_value_precede
* inter_distance.mzn <https://www.hakank.org/minizinc/
inter_distance.mzn>: inter-distance (from Quimper)
* inverse_within_range.mzn <https://www.hakank.org/minizinc/
inverse_within_range.mzn>: inverse within range
* ith_pos_different_from_0.mzn <https://www.hakank.org/minizinc/
ith_pos_different_from_0.mzn>: ith pos different from 0
* k_alldifferent.mzn <https://www.hakank.org/minizinc/
k_alldifferent.mzn>: k alldifferent (all rows satisfy the
alldifferent constraint)
* k_same.mzn <https://www.hakank.org/minizinc/k_same.mzn>: k_same
* k_same_modulo.mzn <https://www.hakank.org/minizinc/
k_same_modulo.mzn>: k_same_modulo
* lex2_me.mzn <https://www.hakank.org/minizinc/lex2_me.mzn>: lex2
* lex_alldifferent.mzn <https://www.hakank.org/minizinc/
lex_alldifferent.mzn>: lex_alldifferent
* lex_between.mzn <https://www.hakank.org/minizinc/lex_between.mzn>:
lex_between
* lex_chain_less.mzn <https://www.hakank.org/minizinc/
lex_chain_less.mzn>: lex_chain_less
* lex_different.mzn <https://www.hakank.org/minizinc/
lex_different.mzn>: lex_different
* lex_greater_me.mzn <https://www.hakank.org/minizinc/
lex_greater_me.mzn>: lex_greater
* longest_change.mzn <https://www.hakank.org/minizinc/
longest_change.mzn>: longest change, size of the longest sub
sequence which satisfy a comparison operator (such as !=, <, > etc)
* max_index.mzn <https://www.hakank.org/minizinc/max_index.mzn>:
max_index, (also the extension max_index_val)
* max_m_in_row.mzn <https://www.hakank.org/minizinc/max_m_in_row.mzn>:
Max m in row (ensure that there are max m consecutive values in an
array) [Note: This is a simpler variant of stretch_path, see below.]
* max_n.mzn <https://www.hakank.org/minizinc/max_n.mzn>: max_n
* max_nvalue.mzn <https://www.hakank.org/minizinc/max_nvalue.mzn>:
max_nvalue
* max_size_set_of_consecutive_var.mzn <https://www.hakank.org/
minizinc/max_size_set_of_consecutive_var.mzn>:
max_size_set_of_consecutive_var
* maximum_modulo.mzn <https://www.hakank.org/minizinc/
maximum_modulo.mzn>: maximum_modulo
* min_index.mzn <https://www.hakank.org/minizinc/min_index.mzn>:
min_index, (also the extension min_index_val)
* min_max_sets.mzn <https://www.hakank.org/minizinc/min_max_sets.mzn>:
Minimum and maximum of a set
* min_n.mzn <https://www.hakank.org/minizinc/min_n.mzn>: min_n
* min_nvalue.mzn <https://www.hakank.org/minizinc/min_nvalue.mzn>:
min_nvalue
* minimum_except_0.mzn <https://www.hakank.org/minizinc/
minimum_except_0.mzn>: minimum_except_0
* minimum_greater_than.mzn <https://www.hakank.org/minizinc/
minimum_greater_than.mzn>: minimum_greater_than
* minimum_modulo.mzn <https://www.hakank.org/minizinc/
minimum_modulo.mzn>: minimum_modulo
* minimum_weight_alldifferent.mzn <https://www.hakank.org/minizinc/
minimum_weight_alldifferent.mzn>: minimum_weight_alldifferent
* nchange.mzn <https://www.hakank.org/minizinc/nchange.mzn>: nchange,
(also a generalized version nchange_cmp with choice of operators)
* nclass.mzn <https://www.hakank.org/minizinc/nclass.mzn>: nclass
* n_partitioning.mzn <https://www.hakank.org/minizinc/
n_partitioning.mzn>: n_partitioning
* n_change.mzn <https://www.hakank.org/minizinc/n_change.mzn>: n_change
* my_nvalue.mzn <https://www.hakank.org/minizinc/my_nvalue.mzn>:
nvalue, also: atleast_nvalue and atmost_nvalue (note: nvalue is
defined in globals.mzn, hence the name my_nvalue)
* next_greater_element.mzn <https://www.hakank.org/minizinc/
next_greater_element.mzn>: next_greater_element
* next_element.mzn <https://www.hakank.org/minizinc/next_element.mzn>:
next_element
* not_all_equal.mzn <https://www.hakank.org/minizinc/
not_all_equal.mzn>: not_all_equal
* not_in.mzn <https://www.hakank.org/minizinc/not_in.mzn>: not_in
* npair.mzn <https://www.hakank.org/minizinc/npair.mzn>: npair
* nvalue_on_intersection.mzn <https://www.hakank.org/minizinc/
nvalue_on_intersection.mzn>: nvalue_on_intersection
* nvalues.mzn <https://www.hakank.org/minizinc/nvalues.mzn>: nvalues
* nvalues_except_0.mzn <https://www.hakank.org/minizinc/
nvalues_except_0.mzn>: nvalues_except_0
* open_alldifferent.mzn <https://www.hakank.org/minizinc/
open_alldifferent.mzn>: open_alldifferent
* open_among.mzn <https://www.hakank.org/minizinc/open_among.mzn>:
open_among
* open_atleast.mzn <https://www.hakank.org/minizinc/open_atleast.mzn>:
open_atleast
* open_atmost.mzn <https://www.hakank.org/minizinc/open_atmost.mzn>:
open_atmost
* open_global_cardinality.mzn <https://www.hakank.org/minizinc/
open_global_cardinality.mzn>: open_global_cardinality
* open_global_cardinality_low_up.mzn <https://www.hakank.org/minizinc/
open_global_cardinality_low_up.mzn>: open_global_cardinality_low_up
* orth_link_ori_siz_end.mzn <https://www.hakank.org/minizinc/
orth_link_ori_siz_end.mzn>: orth_link_ori_siz_end
* orth_on_the_ground.mzn <https://www.hakank.org/minizinc/
orth_on_the_ground.mzn>: orth_on_the_ground
* path_from_to.mzn <https://www.hakank.org/minizinc/path_from_to.mzn>:
path_from_to, find a path from FROM to TO in a graph (incidence matrix)
* period.mzn <https://www.hakank.org/minizinc/period.mzn>: period (a
sequence must have a period of a specific length)
* permutation3.mzn <https://www.hakank.org/minizinc/permutation3.mzn>:
permutation3(a,p,b) and permutation3(a,b): ensure that array b is a
permutation of array a (via a permutation p)
* my_precedence.mzn <https://www.hakank.org/minizinc/
my_precedence.mzn>: |precedence| (the first time we use j is before
the first time we use k, for j < k). Also includes the variant |
precedence_all| with the extra constraint that all values in |
lb(a)..ub(a)| must be in |a|.
* product_ctr.mzn <https://www.hakank.org/minizinc/product_ctr.mzn>:
product_ctr
* range_ctr.mzn <https://www.hakank.org/minizinc/range_ctr.mzn>:
range_ctr
* roots_test.mzn <https://www.hakank.org/minizinc/roots_test.mzn>:
Test of roots (defined in globals.mzn)
* same.mzn <https://www.hakank.org/minizinc/same.mzn>: same
* same_and_global_cardinality.mzn <https://www.hakank.org/minizinc/
same_and_global_cardinality.mzn>: same_and_global_cardinality
* same_and_global_cardinality_low_up.mzn <https://www.hakank.org/
minizinc/same_and_global_cardinality_low_up.mzn>:
same_and_global_cardinality_low_up
* same_interval.mzn <https://www.hakank.org/minizinc/
same_interval.mzn>: same_interval
* same_modulo.mzn <https://www.hakank.org/minizinc/same_modulo.mzn>:
same_modulo
* same_modulo.mzn <https://www.hakank.org/minizinc/
scalar_product.mzn>: Scalar product
* separate_zeros.mzn <https://www.hakank.org/minizinc/
separate_zeros.mzn>: Copy an array but place all zeros (or some
specific value) first (or last)
* shift.mzn <https://www.hakank.org/minizinc/shift.mzn>: shift
* sliding_sum_me.mzn <https://www.hakank.org/minizinc/
sliding_sum_me.mzn>: sliding_sum
* sliding_time_window.mzn <https://www.hakank.org/minizinc/
sliding_time_window.mzn>: sliding_time_window
* sliding_time_window_from_start.mzn <https://www.hakank.org/minizinc/
sliding_time_window_from_start.mzn>: sliding_time_window_from_start
* smooth.mzn <https://www.hakank.org/minizinc/smooth.mzn>: smooth
* soft_all_equal_ctr.mzn <https://www.hakank.org/minizinc/
soft_all_equal_ctr.mzn>: soft_all_equal_ctr
* soft_same_var.mzn <https://www.hakank.org/minizinc/
soft_same_var.mzn>: soft_same_var
* sort_permutation.mzn <https://www.hakank.org/minizinc/
sort_permutation.mzn>: sort_permutation
* sortedness.mzn <https://www.hakank.org/minizinc/sortedness.mzn>:
sortedness (Note: MiniZinc 2 has a |sort/1| function)
* stretch_circuit.mzn <https://www.hakank.org/minizinc/
stretch_circuit.mzn>: stretch_circuit
* stretch_path.mzn <https://www.hakank.org/minizinc/stretch_path.mzn>:
stretch_path
* strictly_decreasing.mzn <https://www.hakank.org/minizinc/
strictly_decreasing.mzn>: strictly_decreasing. Also
strictly_increasing and decreasing
* subsequence.mzn <https://www.hakank.org/minizinc/subsequence.mzn>:
subsequence
* subsequence_sum.mzn <https://www.hakank.org/minizinc/
subsequence_sum.mzn>: subsequence sum
* sum_ctr.mzn <https://www.hakank.org/minizinc/sum_ctr.mzn>: sum ctr
* sum_free.mzn <https://www.hakank.org/minizinc/sum_free.mzn>: sum
free, also: product_free
* sum_of_weights_of_distinct_values.mzn <https://www.hakank.org/
minizinc/sum_of_weights_of_distinct_values.mzn>:
sum_of_weights_of_distinct_values
* sum_set.mzn <https://www.hakank.org/minizinc/sum_set.mzn>: sum set
* symmetric.mzn <https://www.hakank.org/minizinc/symmetric.mzn>:
symmetric
* symmetric_alldifferent.mzn <https://www.hakank.org/minizinc/
symmetric_alldifferent.mzn>: symmetric_alldifferent
* to_num.mzn <https://www.hakank.org/minizinc/to_num.mzn>: Channeling
a number and an array of digits (for some base, default 10).
Requires MiniZinc 2 (|to_num| is a function).
* twin.mzn <https://www.hakank.org/minizinc/twin.mzn>: twin
* weighted_sum.mzn <https://www.hakank.org/minizinc/weighted_sum.mzn>:
weighted_sum (as |scalar_product| in the catalogue)
Martin Gardner's Puzzles and Problems
Here are some models based on Martin Gardner's problem and puzzles (or
presented/popularized by him), or related to Martin Garder festivities
such as Gathering 4 Gardner, Celebration Of Mind etc.
* clock_triplets.mzn <https://www.hakank.org/minizinc/
clock_triplets.mzn>: Clock Triplets
* color.mzn <https://www.hakank.org/minizinc/color.mzn>: Map coloring,
Martin Gardner's coloring problem (BProlog)
* consecutive_digits.mzn <https://www.hakank.org/minizinc/
consecutive_digits.mzn>: Consecutive digits
* curious_set_of_integers.mzn <https://www.hakank.org/minizinc/
curious_set_of_integers.mzn>: Curious set of integers
* divisible_by_unit_digits.mzn <https://www.hakank.org/minizinc/
divisible_by_unit_digits.mzn>: Divisible by unit digits
* ein_ein_ein_ein_vier.mzn <https://www.hakank.org/minizinc/
ein_ein_ein_ein_vier.mzn>: EIN+EIN+EIN+EIN=VIER
* g4g_matrix.mzn <https://www.hakank.org/minizinc/g4g_matrix.mzn>:
Bernardo Recamán's 10x10 matrix puzzle (from CelebrationOfMind
Google Hangout 20131021)
* gardner_dinner.mzn <https://www.hakank.org/minizinc/
gardner_dinner.mzn>: Dinner problem
* gardner_prime_puzzle.mzn <https://www.hakank.org/minizinc/
gardner_prime_puzzle.mzn>: Martin Gardner's prime puzzle
* gardner_sum_square.mzn <https://www.hakank.org/minizinc/
gardner_sum_square.mzn>: Martin Gardner's Sum Square problem (from
Scampi)
* gather_homage_martin.mzn <https://www.hakank.org/minizinc/
gather_homage_martin.mzn>: GATHER+HOMAGE=MARTIN (from
CelebrationOfMind Google Hangout 20131021)
* magic_squares_and_cards.mzn <https://www.hakank.org/minizinc/
magic_squares_and_cards.mzn>: Magic squares and cards
* monkey_coconuts.mzn <https://www.hakank.org/minizinc/
monkey_coconuts.mzn>: The Monkey and Coconuts problem
* nine_digit_arrangement.mzn <https://www.hakank.org/minizinc/
nine_digit_arrangement.mzn>: Nine digit arrangement
* nine_to_one_equals_100.mzn <https://www.hakank.org/minizinc/
nine_to_one_equals_100.mzn>: Nine to one equals 100
* persistent_numbers.mzn <https://www.hakank.org/minizinc/
persistent_numbers.mzn>: Persistent numbers
* pool_ball_triangles.mzn <https://www.hakank.org/minizinc/
pool_ball_triangles.mzn>: Pool-ball triangles
* prime_looking.mzn <https://www.hakank.org/minizinc/
prime_looking.mzn>: Prime-looking number (from Scampi/OscaR)
* prime_multiplication.mzn <https://www.hakank.org/minizinc/
prime_multiplication.mzn>: Prime multiplication
* rookwise_chain.mzn <https://www.hakank.org/minizinc/
rookwise_chain.mzn>: Rookwise Chain
* square_root_of_wonderful.mzn <https://www.hakank.org/minizinc/
square_root_of_wonderful.mzn>: Square Root of Wonderful
* two_cube_calendar.mzn <https://www.hakank.org/minizinc/
two_cube_calendar.mzn>: Two cube calendar
* gardner_two_plus_two.mzn <https://www.hakank.org/minizinc/
gardner_two_plus_two.mzn>: TWO+TWO=FOUR problem
* vingt_cinq_cinq_trente.mzn <https://www.hakank.org/minizinc/
vingt_cinq_cinq_trente.mzn>: VINGT+ CINQ + CINQ = TRENTE
Martin Chlond's Integer Programming Puzzles
Below are MiniZinc models of almost all puzzles from Martin Chlond's
wonderful collections at *Integer Programming Puzzles* [Note: the web
page is gone but can be found via Wayback machine: https://
web.archive.org/web/*/http://www.chlond.demon.co.uk/academic/
puzzles.html <https://web.archive.org/web/*/http://
www.chlond.demon.co.uk/academic/puzzles.html>].
The collection is separated in four sections where the problems is presented
* Integer Programming Puzzles section 1
* Integer Programming Puzzles section 2
* Integer Programming Puzzles section 3
* Integer Programming Puzzles section 4
The models below are presented first with a link to my MiniZinc model,
and then to Martin Chlond's solution (in XPress Mosel, or for later
solutions AMPL).
*Problems from* *Integer Programming Puzzles section 1*
*Models:*
Twelve draughts puzzle <https://www.hakank.org/minizinc/twelve.mzn>
Description : Twelve draughts puzzle
Source : Boris Kordemsky - The Moscow Puzzles (P36)
Coin puzzle <https://www.hakank.org/minizinc/coins.mzn> Description :
Coin puzzle
Source : Mathematical Puzzles of Sam Loyd (P111)
Egg basket puzzle <https://www.hakank.org/minizinc/egg_basket.mzn>
Description : Egg basket puzzle
Source : Boris Kordemsky - The Moscow Puzzles (P136)
Evens puzzle <https://www.hakank.org/minizinc/evens.mzn> (slightly
different approach: Evens puzzle 2 <https://www.hakank.org/minizinc/
evens2.mzn> ) Description : Evens puzzle
Source : Boris Kordemsky - The Moscow Puzzles (P8)
Fifty puzzle <https://www.hakank.org/minizinc/50_puzzle.mzn>
Description : Fifty puzzle
Source : The Puzzles of Sam Loyd (P 54)
Honey division puzzle <https://www.hakank.org/minizinc/
honey_division.mzn> Description : Honey division puzzle
Source : H E Dudeney - Amusements in Mathematics
Wine cask puzzle <https://www.hakank.org/minizinc/wine_cask_puzzle.mzn>
Description : Wine cask puzzle
Source : M Kraitchik - Mathematical Recreations (p 31)
Knight domination puzzle - all squares threatened <https://
www.hakank.org/minizinc/kntdom.mzn> Description : Knight domination
puzzle - all squares threatened
Source : M Kraitchik - Mathematical Recreations (P256)
Mango puzzle <https://www.hakank.org/minizinc/mango_puzzle.mzn>
Description : Mango puzzle
Source : M Kraitchik - Mathematical Recreations (P32)
Remainder puzzle <https://www.hakank.org/minizinc/remainder_puzzle.mzn>
(alternative model: Remainder puzzle 2 <https://www.hakank.org/minizinc/
remainder_puzzle2.mzn>) Description : Remainder puzzle
Source : Boris Kordemsky - The Moscow Puzzles (P136)
5 X 5 puzzle <https://www.hakank.org/minizinc/five.mzn> (alternative
model: 5 X 5 puzzle v 2 <https://www.hakank.org/
minizinc/5x5_puzzle.mzn>) Description : 5 X 5 puzzle
Source : Unknown
Lights on puzzle <https://www.hakank.org/minizinc/lights.mzn>
Description : Lights on puzzle
Source : Unknown
*Problems from* *Integer Programming Puzzles section 2*
*Models:*
Clarke's tobacconist <https://www.hakank.org/minizinc/tobacco.mzn>
Description : Clarke's tobacconist
Source : Clarke, L.H., (1954), Fun with Figures, William Heinemann Ltd.
Tommy's Birthday Coins <https://www.hakank.org/minizinc/
birthdays_coins.mzn> Description : Tommy's Birthday Coins
Source : Clarke, L.H., (1954), Fun with Figures, William Heinemann Ltd.
Lewis Carroll coin puzzle <https://www.hakank.org/minizinc/lccoin.mzn>
Description : Lewis Carroll coin puzzle
Source : Wakeling, E., (1995), Rediscovered Lewis Carroll Puzzles, Dover.
Dudeney's tea mixing problem <https://www.hakank.org/minizinc/
tea_mixing.mzn> Description : Dudeney's tea mixing problem
Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson
and Sons.
Jive turkeys <https://www.hakank.org/minizinc/jive_turkeys.mzn>
Description : Jive turkeys
Source : rec.puzzles
Public School Problem <https://www.hakank.org/minizinc/
public_school_problem.mzn> Description : Public School Problem
Source : Clarke, L.H., (1954), Fun with Figures, William Heinemann Ltd.
Dudeney's bishop placement problem I <https://www.hakank.org/minizinc/
dudeney_bishop_placement1.mzn> Description : Dudeney's bishop placement
problem I
Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson
and Sons.
Dudeney's bishop placement problem II <https://www.hakank.org/minizinc/
dudeney_bishop_placement2.mzn> Description : Dudeney's bishop placement
problem II
Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson
and Sons.
Kraitchik's queen placement problem <https://www.hakank.org/minizinc/
kqueens.mzn> Description : Kraitchik's queen placement problem
Source : Kraitchik, M., (1942), Mathematical Recreations, W.W. Norton
and Company, Inc.
Schuh's queen placement problem <https://www.hakank.org/minizinc/
squeens.mzn> Description : Schuh's queen placement problem
Source : Schuh, F., (1943), Wonderlijke Problemen; Leerzam Tijdverdrijf
Door Puzzle en Speel, W.J. Thieme & Cie, Zutphen.
Dudeney's queen placement problem Description : Dudeney's queen
placement problem
Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson
and Sons.
<https://www.hakank.org/minizinc/dqueens.mzn>Joshua and his rats
<https://www.hakank.org/minizinc/joshua.mzn> Description : Joshua and
his rats
Source : Sole, T., (1988), The Ticket to Heaven, Penguin Books
*Problems from* *Integer Programming Puzzles section 3*
*Models:*
The Abbott's Puzzle <https://www.hakank.org/minizinc/abpuzzle.mzn>
Description : The Abbott's Puzzle
Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson
and Sons.
The Abbott's Window <https://www.hakank.org/minizinc/abbott.mzn>
Description : The Abbott's Window
Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson
and Sons.
The First Trial <https://www.hakank.org/minizinc/trial1.mzn>
Description : The First Trial
Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University
Press
The Second Trial <https://www.hakank.org/minizinc/trial2.mzn>
Description : The Second Trial
Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University
Press
The Third Trial <https://www.hakank.org/minizinc/trial3.mzn>
Description : The Third Trial
Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University
Press
The Fourth Trial <https://www.hakank.org/minizinc/trial4.mzn>
Description : The Fourth Trial
Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University
Press
The Fifth Trial <https://www.hakank.org/minizinc/trial5.mzn>
Description : The Fifth Trial
Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University
Press
The Sixth Trial <https://www.hakank.org/minizinc/trial6.mzn>
Description : The Sixth Trial
Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University
Press
Werewolves II <https://www.hakank.org/minizinc/were2.mzn> Description :
Werewolves II
Source : Smullyan, R., (1978), What is the Name of this Book?, Prentice-Hall
Werewolves IV <https://www.hakank.org/minizinc/were4.mzn> Description :
Werewolves IV
Source : Smullyan, R., (1978), What is the Name of this Book?, Prentice-Hall
Earthlings <https://www.hakank.org/minizinc/earthlin.mzn> Description :
Earthlings
Source : Poniachik, J. & L., (1998), Hard-to-solve Brainteasers, Sterling
Equal Vision <https://www.hakank.org/minizinc/evision.mzn> Description :
Equal Vision
Source : Poniachik, J. & L., (1998), Hard-to-solve Brainteasers, Sterling
*Problems from Integer Programming Puzzles section 4*
*Models:*
On the road <https://www.hakank.org/minizinc/onroad.mzn> Description :
On the road
Source : Poniachik, J. & L, (1998), Hard-to-solve Brainteasers, Sterling
The Riddle of the Pilgrims <https://www.hakank.org/minizinc/pilgrim.mzn>
Description : The Riddle of the Pilgrims
Source : Dudeney, H.E., (1949), The Canterbury Puzzles, 7th ed., Thomas
Nelson and Sons.
The Logical Labyrinth <https://www.hakank.org/minizinc/trial12.mzn>
Description : The Logical Labyrinth
Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University
Press
The gentle art of stamp-licking <https://www.hakank.org/minizinc/
stamp_licking.mzn> Description : The gentle art of stamp-licking
Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson
and Sons.
The crowded board <https://www.hakank.org/minizinc/crowd.mzn>
Description : The crowded board
Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson
and Sons.
Non-dominating queens problem <https://www.hakank.org/minizinc/
non_dominating_queens.mzn> Description : Non-dominating queens problem
Source : http://www.cli.di.unipi.it/~velucchi/queens.txt
Enigma <https://www.hakank.org/minizinc/enigma.mzn> Description : Enigma
Source : Herald Tribune circa November 1979 - courtesy of Dr Tito A. Ciriani
Price change puzzle <https://www.hakank.org/minizinc/pchange.mzn>
Source: M Kraitchik, Mathematical Recreations (p 33-35), Dover
Book buy puzzle <https://www.hakank.org/minizinc/book_buy.mzn> Source: M
Kraitchik, Mathematical Recreations(p37), Dover
Shopping puzzle <https://www.hakank.org/minizinc/shopping.mzn> Source: M
Kraitchik, Mathematical Recreations(p37), Dover
Book discount problem <https://www.hakank.org/minizinc/
book_discount.mzn> Source: J. & L. Poniachik, Hard-to-Solve Brainteasers
(p16), Sterling
Seven 11 <https://www.hakank.org/minizinc/seven11.mzn>
Source: alt.math.recreational
Models based on Martin Chlond's Puzzle articles in Informs
Transations on Education
And here is some other models of recreational mathematics created by
Martin Chlond, published in the Puzzle section of Informs Transations on
Education <http://archive.ite.journal.informs.org/> (an open operations
research journal).
* Alien tiles <https://www.hakank.org/minizinc/alien.mzn> (from An
Alien IP <http://archive.ite.journal.informs.org/Vol7No1/Chlond>)
* Elevator puzzle model <https://www.hakank.org/minizinc/
elevator_model.mzn> (from A Tokyo Elevator Puzzle <http://
ite.pubs.informs.org/Vol6No3/Chlond>)
* Elevator 6 3 puzzle <https://www.hakank.org/minizinc/
elevator_6_3.mzn> (from A Tokyo Elevator Puzzle <http://
ite.pubs.informs.org/Vol6No3/Chlond>)
* Elevator 8 4 puzzle <https://www.hakank.org/minizinc/
elevator_8_4.mzn> (from A Tokyo Elevator Puzzle <http://
ite.pubs.informs.org/Vol6No3/Chlond>)
* Fairies problem <https://www.hakank.org/minizinc/fairies.mzn> (from
PuzzlO.R. with the Fairies <http://www.informs.org/site/ITE/
article.php?id=58>)
* Gunport problem 1 <https://www.hakank.org/minizinc/
gunport_problem1.mzn> (from The Gunport Problem <http://
archive.ite.journal.informs.org/Vol6No2/ChlondBosch/index.php>)
* Gunport problem 2 <https://www.hakank.org/minizinc/
gunport_problem2.mzn> (from The Gunport Problem <http://
archive.ite.journal.informs.org/Vol6No2/ChlondBosch/index.php>)
* Nimatron problem <https://www.hakank.org/minizinc/nim.mzn> (from A
Nimatron <http://ite.pubs.informs.org/Vol3No3/ChlondAkyol/>)
* Sangraal <https://www.hakank.org/minizinc/sangraal.mzn> (from
Fantasy OR <http://archive.ite.journal.informs.org/Vol4No3/Chlond/
index.php>) CP version: sangraal_cp.mzn <https://www.hakank.org/
minizinc/sangraal_cp.mzn>
* Tank Attack Puzzle <https://www.hakank.org/minizinc/tank.mzn> (from
A Tank Attack Puzzle <http://www.informs.org/site/ITE/article.php?
id=70>)
* Touching numbers puzzle <https://www.hakank.org/minizinc/
touching_numbers.mzn> (from The Traveling Space Telescope Problem
<http://archive.ite.journal.informs.org/Vol3No1/Chlond/index.php>)
* Tripuzzle 1 <https://www.hakank.org/minizinc/tripuzzle1.mzn> (from
Tri-Puzzle: A Three-Cornered Conundrum <http://ite.pubs.informs.org/
Vol6No1/Chlond/index.php>)
* Tripuzzle 2 <https://www.hakank.org/minizinc/tripuzzle2.mzn> (from
Tri-Puzzle: A Three-Cornered Conundrum <http://ite.pubs.informs.org/
Vol6No1/Chlond/index.php>)
Other models
Math, utils, etc.
* 99_bottles_of_beer.mzn <https://www.hakank.org/
minizinc/99_bottles_of_beer.mzn>: 99 bottles of beer (Rosetta code)
* adjacency_matrix_from_degrees.mzn <https://www.hakank.org/minizinc/
adjacency_matrix_from_degrees.mzn>: Adjacency matrix from degree
sequence (from Stack Overflow: Anyone has the logic for the
following puzzle <http://stackoverflow.com/questions/6789797/anyone-
has-the-logic-for-the-following-puzzle>)
* antisymmetric.mzn <https://www.hakank.org/minizinc/
antisymmetric.mzn>: Antisymmetric relation (matrix)
* argmax.mzn <https://www.hakank.org/minizinc/argmax.mzn>: Predicates
argmax_gt, argmax_ge, argmin_lt, argmin_le. E.g. argmax_gt(pos, x):
pos is the position in array x for the maximum value. The other
predicates is defined accordingly.
* best_shuffle.mzn <https://www.hakank.org/minizinc/best_shuffle.mzn>:
From Rosetta code Best shuffle <http://rosettacode.org/wiki/
Best_shuffle>
* binary_matrix2array.mzn <https://www.hakank.org/minizinc/
binary_matrix2array.mzn>: Converts a binary matrix to/from the
corresponding array
* bit_vector1.mzn <https://www.hakank.org/minizinc/bit_vector1.mzn>: A
small bit vector problem
* catalan_numbers.mzn <https://www.hakank.org/minizinc/
catalan_numbers.mzn>: Catalan numbers
* chinese_remainder_problem.mzn <https://www.hakank.org/minizinc/
chinese_remainder_problem.mzn>: Chinese remainder problem
* collatz.mzn <https://www.hakank.org/minizinc/collatz.mzn>: Collatz
problem
* copy_arrays2.mzn <https://www.hakank.org/minizinc/copy_arrays2.mzn>:
Copy arrays (1d and 2d). Requires MiniZinc v 2.
* equal_sized_groups.mzn <https://www.hakank.org/minizinc/
equal_sized_groups.mzn>: Dividing into roughly equal sized groups
(from OR-Exchange: dividing into roughly equal sized groups, with a
sorted list <http://www.or-exchange.com/questions/4398/dividing-
into-roughly-equal-sized-groups-with-a-sorted-list>)
* factorial.mzn <https://www.hakank.org/minizinc/factorial.mzn>:
Factorial (alternative version not using the prod predicate)
* family.mzn <https://www.hakank.org/minizinc/family.mzn>: Family
database
* fib_test2.mzn <https://www.hakank.org/minizinc/fib_test2.mzn>:
Fibonacci sequence, as an array since MiniZinc don't handle recursion
* filling_table_with_ticks.mzn <https://www.hakank.org/minizinc/
filling_table_with_ticks.mzn>: Filling a table (matrix) with ticks
(from Stack Overflow: puzzle of filling 4*6 table with 18 ticks
<http://stackoverflow.com/questions/5739538/puzzle-of-filling-46-
table-with-18-ticks>
* fizz_buzz.mzn <https://www.hakank.org/minizinc/fizz_buzz.mzn>: Fizz
buzz problem
* four_power.mzn <https://www.hakank.org/minizinc/four_power.mzn>:
Simple math problem
* full_adder.mzn <https://www.hakank.org/minizinc/full_adder.mzn>:
Full adder (digital circuit)
* is_prime.mzn <https://www.hakank.org/minizinc/is_prime.mzn>: Check
for primality
* isbn.mzn <https://www.hakank.org/minizinc/isbn.mzn>: Some
explorations in ISBN-13
* leap_year.mzn <https://www.hakank.org/minizinc/leap_year.mzn>: Leap
year
* life.mzn <https://www.hakank.org/minizinc/life.mzn>: The Game of Life
* matrix2num.mzn <https://www.hakank.org/minizinc/matrix2num.mzn>:
Converts a binary matrix to/frm a list of integers.
* optimal_picking_elements_from_each_list.mzn <https://www.hakank.org/
minizinc/optimal_picking_elements_from_each_list.mzn>: Optimal
picking one element from each list (from Stack Overflow: Optimally
picking one element from each list <http://stackoverflow.com/
questions/5645342/optimally-picking-one-element-from-each-list>)
* pairwise_sum_of_n_numbers.mzn <https://www.hakank.org/minizinc/
pairwise_sum_of_n_numbers.mzn>: Pairwise sum of n numbers in non
increasing order (from Stack Overflow Converts a binary matrix to/
frm a list of integers <http://stackoverflow.com/questions/8566534/
pairwise-sum-of-n-numbers-in-non-increasing-order>)
* penguin.mzn <https://www.hakank.org/minizinc/penguin.mzn>:
Nonmonotonic reasoning: can Tweety - a penguin - fly? (Alma-0)
* permutation_number.mzn <https://www.hakank.org/minizinc/
permutation_number.mzn>: Permutation number
* power.mzn <https://www.hakank.org/minizinc/power.mzn>: my_pow(var
int, int) which is not builtin in MiniZinc
* prime.mzn <https://www.hakank.org/minizinc/prime.mzn>: Some number
theory
* primes.mzn <https://www.hakank.org/minizinc/primes.mzn>: Some more
number theory, primes with set representation.
* primes_param.mzn <https://www.hakank.org/minizinc/primes_param.mzn>:
Generating a (par) set of primes (and a simple prime problem)
* product_test.mzn <https://www.hakank.org/minizinc/product_test.mzn>:
simply defined the predicate product() since as of MiniZinc version
<= 0.8.1 the predicate prod() is yet implemented
* pythagoras.mzn <https://www.hakank.org/minizinc/pythagoras.mzn>:
Pythagoras number
* rectangle_from_line_segments.mzn <https://www.hakank.org/minizinc/
rectangle_from_line_segments.mzn>: Largest rectange from line
segments (From Stack Overflow: Construct the largest possible
rectangle out of line segments of given lengths <http://
stackoverflow.com/questions/7294548/construct-the-largest-possible-
rectangle-out-of-line-segments-of-given-lengths>)
* rot13.mzn <https://www.hakank.org/minizinc/rot13.mzn>: Rot 13
(Caesar) cipher
* rot13_2.mzn <https://www.hakank.org/minizinc/rot13_2.mzn>: Rot N
(Caesar) cipher (where N is a decision variable as well)
* sieve.mzn <https://www.hakank.org/minizinc/sieve.mzn>: Another
number theory stuff
* sum_of_next_natural_numbers.mzn <https://www.hakank.org/minizinc/
sum_of_next_natural_numbers.mzn>: Sum of next (increasing) natural
numbers
* sum_sets.mzn <https://www.hakank.org/minizinc/sum_sets.mzn>: sum the
integers in a set
* symmetry_breaking.mzn <https://www.hakank.org/minizinc/
symmetry_breaking.mzn>: Example of symmetry breaking for a math problem
* unique_set_puzzle.mzn <https://www.hakank.org/minizinc/
unique_set_puzzle.mzn>: Unique set representing puzzle (from Stack
Overflow: Choosing unique set representing number puzzle <http://
stackoverflow.com/questions/6689147/choosing-unique-set-
representing-number-puzzle>)
------------------------------------------------------------------------
Also, see my other pages about constraint programming systems:
* My Constraint Programming Blog <https://www.hakank.org/
constraint_programming_blog/>, especially the MiniZinc/Zinc <http://
www.hakank.org/constraint_programming_blog/minizinczinc/> category
* Constraint Programming <https://www.hakank.org/constraint_programming/>
* Common constraint programming problems <https://www.hakank.org/
common_cp_models/>
* My Zinc page <https://www.hakank.org/minizinc/index_zinc.html>
* My JaCoP page <https://www.hakank.org/jacop/>
* My JaCoP/Scala page <https://www.hakank.org/jacop/jacop_scala.html>
* My Choco page <https://www.hakank.org/choco/>
* My Gecode/R page <https://www.hakank.org/gecode_r/>
* My Comet page <https://www.hakank.org/comet/>
* My Gecode page <https://www.hakank.org/gecode/>
* My ECLiPSe page <https://www.hakank.org/eclipse/>
* My Tailor/Essence' page <https://www.hakank.org/tailor/>
* My SICStus Prolog page <https://www.hakank.org/sicstus/>
* My Google CP Solver page <https://www.hakank.org/google_or_tools/>
* My OscaR page <https://www.hakank.org/oscar/>
* My JSR-331 page <https://www.hakank.org/jsr_331/>
* My Numberjack page <https://www.hakank.org/numberjack/>
* My AIMMS+CP page <https://www.hakank.org/aimms/>
* My B-Prolog page <https://www.hakank.org/bprolog/>
* My Choco3 page <https://www.hakank.org/choco3/>
* My Picat page <https://www.hakank.org/picat/>
* My Z3 page <https://www.hakank.org/z3/>
* My SWI-Prolog page <https://www.hakank.org/swi_prolog/>
Back to my homepage <https://www.hakank.org/>
Created by Hakan Kjellerstrand hakank@gmail.com <mailto:hakank@gmail.com>