My MiniZinc page

(The original of this file is http://www.hakank.org/minizinc/index.html.)

This page was created by Hakan Kjellerstrand (hakank@gmail.com).

Also, see my My Zinc page which includes information about and models for G12 Zinc.

MiniZinc constraint programming system

[MiniZinc]

MiniZinc is a very interesting constraint programming system/modeling language with a high level syntax. From the MiniZinc page:
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:
Solvers
In order to solve a problem stated in the MiniZinc modeling language, a solver must be used. The following solvers were available as of 2010-03-16.

Utilities

mzn_show.pl

Perl program
mzn_show.pl
Since version 1.0 MiniZinc don't support the output [] anymore in the external solvers (e.g. all except the minizinc solver), and it can be hard to see structured output, e.g. matrices. This program gives the result somewhat nicer output. I blogged about the program (first version) here: Miscellaneous news.

Usage: solver problem.mzn | mzn_show.pl "{parameter}"

The parameters are:
- {tr:from:to:}: translate digit to another digit/character
- {trvar:var:from:to:}: translate digit to another digit/character for a specific variable var
- {trtr:from_string:replacement_string:}: translates all digits in from_string to the corresponding digit/character in replacement_string (inspired from the Unix tr command)
- {trtrvar:var:from_string:replacement_string:}: as trtr but for a specific variable var - {nospaces}: don't show space after character
- {noprintf}: don't try to be clever with printf stuff
- {noresult}: don't print the numerical result (just the translations)
- {nonogram}: shortcut for {trtr:12: #} {nospace} {noresult}

Example: for showing a nicer picture of a Nonogram:
flatzinc nonogram_create_automaton2.fzn | mzn_show.pl "{tr:1: :} {tr:2:#:} {nospace}"
Where the {tr:from:to:} means translate digit from to character to, and {nospace} means that no spaces are shown after each digit/character.

This is now probably better written with trtr:
flatzinc nonogram_create_automaton2.fzn | mzn_show.pl "{trtr:12: #:} {nospace}"

mzn.pl

I have also created a Perl program for handling all the different solvers from the command line, as well as changing the model parameters etc. The program may be obtained upon request by mailing me (hakank@gmail.com).

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 G12 SVN repository: www.g12.cs.mu.oz.au/mzn/hakank/.

Contents

The models are collected in the following categories:

Puzzles, small, and large

  • exodus.mzn: Exodus problem (Dell Logic Puzzle)
  • family_riddle.mzn: Family riddle
  • fancy.mzn: Mr Greenguest puzzle (Fancy dress puzzle)
  • farm_puzzle0.mzn: Farm puzzle, simple model
  • farm_puzzle.mzn: Farm puzzle, more general model
  • fill_a_pix.mzn: Fill-a-pix puzzle.
    Data files:
  • fill_in_the_squares.mzn: Fill in the squares (Brainjammer problem)
  • five_brigades.mzn: Five brigades (Dudeney)
  • five_floors.mzn: Five floors problem (Dinesman)
  • five_statements.mzn: Five statements problem (logic problem)
  • four_same_friends.mzn: Four same friends problem
  • four_islands.mzn: Four islands puzzle (Dell Logic Puzzles)
  • fractions.mzn: Fractions, alphametic problem (standard Prolog benchmark)
  • franklin_8x8_magic_square.mzn: Benjamin Franklin's 8x8 Magic Square
  • futoshiki.mzn: Futoshiki puzzle
  • gardner_dinner.mzn: Dinner problem (Martin Gardner)
  • gardner_prime_puzzle.mzn: Martin Gardner's prime puzzle
  • gardner_sum_square.mzn: Martin Gardner's Sum Square problem (from Scampi)
  • general_store.mzn: General store problem (Sam Loyd)
  • greatest_combination.mzn: Greatest combination problem (from StackOverflow Solving Prolog puzzle)
  • grid_puzzle.mzn: Grid puzzle (from StackOverflow Riddle in Prolog)
  • grime_puzzle.mzn: See Travels in a Mathematical World Blog A puzzle from James Grime about abcdef)
  • grocery2.mzn: Grocery problem, alternative version
  • guards_and_apples.mzn: Guards and apple problem
  • guards_and_apples2.mzn: Guards and apple problem (variant)
  • handshaking.mzn: Halmo's handshake problem
  • hanging_weights.mzn: Hanging weights puzzle
  • hardy_1729.mzn: Hardy's 1729 problem
  • hidato.mzn: Hidato puzzle
  • hidato_exists.mzn: Hidato puzzle, same as above but it use exists which is less efficient
  • hidato_table.mzn: Hidato puzzle, using a table constraint.
  • hidato_table2.mzn Hidato puzzle, can also solve non-rectangular problems.
  • houses.mzn (from Algebra 1, Glencoe/McGraw-Hill, 1998 via kanren)
  • huey_dewey_louie.mzn: Huey, Dewey, Louie, logical problem from Marriott & Stuckey "Programming in Constraints"
  • heterosquare.mzn: Heterosquare problem
  • how_old_am_i.mzn: How old am I (from Choco)
  • hundred_doors_unoptimized.mzn: 100 doors problem, unoptimized (array version) (Rosetta code)
  • hundred_doors_unoptimized2.mzn: 100 doors problem, unoptimized (array version, alternative model) (Rosetta code)
  • hundred_doors_optimized.mzn: 100 doors problem, optimized (set version) (Rosetta code)
  • hundred_doors_optimized_array.mzn: 100 doors problem, optimized (array version) (Rosetta code)
  • hundred_fowls.mzn: Hundred Fowls puzzle
  • high_iq_problem.mzn: "High IQ problem"
  • jobs_puzzle.mzn: Jobs puzzle (an automated reasoning problem)
  • kakuro.mzn: Kakuro puzzle
  • kakuro2.mzn: Kakuro puzzle, alternative representation of the hints.
  • kakuro3.mzn: Kakuro puzzle, simple version (inspired by BProlog's model)
  • kaprekars_constant.mzn: Kaprekar's Constant
  • kaprekars_constant2.mzn: Kaprekar's Constant (calculate the fixpoint for different lengths)
  • kenken2.mzn: KenKen puzzle
  • killer_sudoku.mzn: Killer Sudoku puzzle
  • killer_sudoku2.mzn: Killer Sudoku puzzle, alternative representation of the hints
  • labeled_dice.mzn: Labeled dice, from Jim Orlin "Colored letters, labeled dice: a logic puzzle"
  • language_round_table.mzn: Languages spoken at a round table (from Stack overflow: A prolog program that reflects people sitting at a round table)
  • latin_square_card_puzzle.mzn: Latin square card puzzle
  • 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?
  • lecture_series.mzn: Lecture series puzzle (Dell Logic Puzzles)
  • letter_square.mzn: Letter square problem (Vaderlind).
    Data files:
  • limerick_primes.mzn: Limerick Primes (see John D. Cook: Limerick Primes). A more declarative version: limerick_primes2.mzn
  • locker.mzn: Locker puzzle.
  • logic_puzzle_aop.mzn: Logic puzzle (from The Art of Prolog)
  • lucky_number.mzn: Lucky numbers (see God Plays Dice What is the origin of Kirillov's lucky number problem)
  • M12b.mzn: Solving the M12 puzzle. A variant using just permutations.
  • magic.mzn: Magic square, integer programming (GLPK)
  • magic3.mzn: Magic sequence, 3 x 3 (this formulations is from a standard Prolog benchark)
  • magic4.mzn: Magic sequence, 4 x 4 (this formulations is from a standard Prolog benchark)
  • magic_modulo_number.mzn: Magic modulo number (from Scampi)
  • magic_sequence.mzn: Magic sequence (CSPLib)
  • magic_sequence2.mzn: Magic sequence (CSPLib), alternative model
  • magic_sequence3.mzn: Magic sequence (CSPLib), alternative model
  • magic_sequence4.mzn: Magic sequence (CSPLib), alternative model
  • magic_square.mzn: Magic squares
  • magic_square_associate.mzn: Associative Magic squares
  • magic_square_frenicle_form.mzn: Magic squares with symmetry breaking (Frénicle standard form)
  • magic_square_water_retention.mzn: Magic squares water retention problem
  • magic_squares_and_cards.mzn: Magic squares and cards (Martin Gardner)
  • mamas_age.mzn: Mama's age (Dudeney)
  • marathon.mzn: Marathon puzzle (XPress example), MIP model
  • marathon2.mzn: Marathon puzzle (XPress example), CP model
  • message_sending.mzn: Message sending puzzle (cf all_paths_graph.mzn)
  • minesweeper.mzn: Minesweeper puzzle
  • minesweeper_inverse.mzn: Minesweeper "inverse" problem (given the bombs, calculate the number of neighbours)
  • minesweeper_model.mzn: Minesweeper puzzle, general model to be used with the following problems:
  • miss_manners.mzn: Miss Manners' seating problem (standard benchmark for rule engines). Data:
  • missing_digit.mzn: Missing digit probblem
  • money_change.mzn: Simple money change problem
  • monkey_coconuts.mzn: The Monkey and Coconuts problem
  • monks_and_doors.mzn: Eight monks and four doors
  • monorail.mzn: Monorail puzzle (Grand Tour).
    Data:
  • mr_smith.mzn: Mr Smith problem (IF Prolog)
  • multipl.mzn: Unknown multiplication (standard Prolog benchmark)
  • murder.mzn: Murder puzzle
  • music_men.mzn: Music men puzzle
  • n_puzzle.mzn: N-puzzle, e.g. 8-puzzle, 15-puzzle
  • narcissistic_numbers.mzn: Narcissistic numbers
  • number_of_regions.mzn: Number of regions (Vaderlind, Guy, Larson: "The Inquisitive Problem Solver", problem 21)
  • number_puzzle.mzn: A number puzzle (of some kind)
  • numeric_keypad.mzn: Numeric keypad problem
  • nine_digit_arrangement.mzn: Nine digit arrangement (Martin Gardner)
  • nine_to_one_equals_100.mzn: Nine to one equals 100 (Martin Gardner)
  • nonogram.mzn: Nonogram, a.k.a. Painting by numbers. Also, see "nonogram_regular.mzn" and "nonogram_create_automaton.mzn" below.
  • nonogram_regular.mzn: Nongoram, a.k.a. Painting by numbers. This version uses the regular constraints and is much faster than 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. 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.
  • nonogram_create_automaton.mzn: Nonogram solver. This version uses the regular constraints and is much faster than nonogram.mzn.
    In contract to 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: Nonogram solver. A version of 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) .
  • number_generation.mzn: Number generation (cf Devil's word)
  • number_square.mzn: Recreational mathematics (Pascal Van Hentenryck: "The OPL Optimization Programming Language")
  • OandX.mzn: Three Dimensional Nought and Crosses (Tic-Tac-Toe) (Williams)
  • olympic.mzn: Olympic problem (standard Prolog benchmark)
  • one_off_digit.mzn: One off digit problem (Richard Wiseman)
  • pair_divides_the_sum.mzn: Pair divides the sum problem
  • pandigital_numbers.mzn: Pandigital numbers (any base <= 10)
  • peacableArmyOfQueens.mzn: Peacable Army of Queens
  • perfect_square_sequence.mzn: Perfect square sequence
  • photo_hkj.mzn: Photo problem
  • photo_hkj2_model.mzn: Photo problem model
  • photo_hkj2_data1.mzn: Data for photo problem
  • photo_hkj2_data2.mzn: Data for photo problem
  • place_number.mzn: Placing Number Puzzle
  • place_number2.mzn: Placing Number Puzzle, alternative approach. Also includes a 12-number problem.
  • place_number3.mzn: Placing Number Puzzle, a more general approach than place_number.mzn and place_number2.mzn
  • pool_ball_triangles.mzn: Pool-ball triangles (Martin Gardner)
  • prime_looking.mzn: Prime-looking number (Martin Gardner, from Scampi)
  • puzzle1.mzn: Yet another column/row sum problem
  • pyramid_of_numbers.mzn: Pyramid of numbers (Rosetta code)
  • queens_viz.mzn: n-queens problem, using CP-Viz
  • queens3.mzn: n-queens problem
  • queens4.mzn: n-queens problem, using alldifferent
  • queens_ip.mzn: n-queens problem, integer programming model (GLPK)
  • raven_puzzle.mzn: "Polyglot puzzle" (from Raven, swedish)
  • remarkable_sequence.mzn: Remarkable sequence (from an Alma-0 model)
  • reveal_the_mapping.mzn: Reveal the mapping (from David Bolton: Programming Contest 46 - Reveal the Mapping)
  • rock_star_dressing_problem.mzn: Rock star dressing problem
  • rogo.mzn: Rogo grid puzzle, rogo2.mzn (faster version with symmetry breaking)
    Problem instances:
  • 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:
  • rook_path.mzn: Rook path (on a square matrix)
  • rookwise_chain.mzn: Rookwise Chain (Martin Gardner)
  • rotation.mzn: Nokia's "rotation puzzle"
  • rotation2.mzn: Nokia's "rotation puzzle", using just permutation arrays.
  • 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: Safe cracking
  • samurai_puzzle.mzn: Samuraï grid puzzle
  • seating_plan.mzn: Seating plan (Daniel L. Dudley, The Nut Cracker suit #1)
  • secret_santa.mzn: Secret Santa problem
  • secret_santa2.mzn: Another Secret Santa problem
  • self_referential_quiz.mzn: Self-referential quiz
  • send_more_money.mzn: Alphametic puzzle: SEND + MORE = MONEY
  • send_more_money2.mzn: Alphametic puzzle: SEND + MORE = MONEY, alternative model
  • send_more_money_any_base.mzn: Alphametic puzzle: SEND + MORE = MONEY, in any base
  • send_more_money_ip.mzn: Alphametic puzzle: SEND + MORE = MONEY, integer programming model (GLPK)
  • send_most_money.mzn: Alphametic puzzle: SEND + MOST = MONEY (maximize MONEY)
  • sequence_2_3.mzn: Simple permutation puzzle
  • seseman.mzn: Seseman Convent problem (see Seseman Convent problem)
  • seseman2.mzn: Seseman Convent problem, generalized model
  • skyscraper.mzn: Skyscraper puzzle
  • spy_girls.mzn: Spy girls problem
  • set_puzzle.mzn: Solving SET Puzzles
  • smullyan_knights_knaves.mzn: Raymond Smullyan's Knights and Knaves problems
  • smullyan_knights_knaves_normals.mzn: Raymond Smullyan's Knights, Knaves, and Normals problems
  • smullyan_knights_knaves_normals_bahava.mzn: Raymond Smullyan's Knights, Knaves, and Normals at the Island of Bahava problems
  • smullyan_lion_and_unicorn.mzn: Raymond Smullyan's Lion and Unicorn problems
  • smullyan_portia.mzn: Raymond Smullyan's Portia problems
  • soccer_puzzle.mzn: Soccer puzzle
  • solitaire_battleship.mzn: Solitaire Battleship
  • spinning_disks.mzn: The spinning disks problem from Skeptic's Play
  • square_root_of_wonderful.mzn: Square Root of Wonderful (Martin Gardner)
  • state_name_puzzle.mzn: State name puzzle (from Rosetta Code: )
  • strimko.mzn: Strimko puzzle (Latin squares with "streams")
    Some data files:
  • strimko2.mzn: Strimko puzzle (Latin squares with "streams"). This variant uses an easier instance representation than strimko.mzn
    Some data files:
  • successive_number_problem.mzn: Successive number problem (from God Plays Dice: A cute number theory puzzle)
  • sudoku_alldifferent.mzn: Sudoku, using the global constraint alldifferent.
    In the directory sudoku problems2 are all the 91 Sudoku problems (of different dimensions: 9x9, 16x16, and 25x25) from Gecode's Sudoku model sudoku.cpp.
  • sudoku_gcc.mzn: Sudoku, using the global cardinality constraint.
    sudoku_gcc_model.mzn, this is a general Sudoku to be included from a Sudoku problem instance. In the directory sudoku problems are all the 91 Sudoku problems (of different dimensions: 9x9, 16x16, and 25x25) from Gecode's Sudoku model sudoku.cpp.
  • sudoku_ip.mzn: Sudoku, integer programming (GLPK)
  • sudoku_pi_2008.mzn: Pi Day Sudoku 2008
  • sudoku_pi.mzn: Pi Day Sudoku 2009
  • sudoku_pi_2010.mzn: Pi Day Sudoku 2010
  • sudoku_pi_2011.mzn: Pi Day Sudoku 2011
  • sudoku_25x25_250.mzn: Sudoku 25 x 25 problen (very hardcoded, from a Prolog benchmark)
  • subsets_100.mzn: Subsets 100 (rec.puzzles FAQ)
  • sum_to_100.mzn: Five numbers should sum to 100, and all numbers must be divisible by 2 or 5
  • survo_puzzle.mzn: Survo puzzle
  • table_of_numbers.mzn: Table of numbers problem (from Fun With Num3ers Table of numbers with 5 rows and 5 columns)
  • takuzu.mzn: Takuzu grid puzzle
  • talisman_square.mzn: Talisman Square
  • ten_statements.mzn: From Richard Wiseman It's the Friday Puzzle! (2012-07-20)
  • the_bomb.mzn: The bomb, logical puzzle (Janko "Die Bombe")
  • the_family_puzzle.mzn: The family puzzle (from Drools Puzzle Round 2: The Family Puzzle)
  • thirteen_link_chain_puzzle.mzn: The 13-Link Chain Puzzle (just additions) (inpired by NY Times 'Wordplay' The 13-Link Chain Puzzle), Second approach (still just additions): thirteen_link_chain_puzzle2.mzn, Third approach: thirteen_link_chain_puzzle3.mzn (both additions and subtractions which is closer to the stated problem)
  • three_digit.mzn: Three digit problem
  • tickTackToe.mzn: Tick Tack Toe (Tic Tac Toe)
  • timeslots_for_songs.: Timeslot problem (from Stack Overflow: What category of combinatorial problems appear on the logic games section of the LSAT?)
  • timpkin.mzn: Mrs Timpkin's age problem (Dudeney)
  • tomography.mzn: Discrete Tomography (one color model)
  • tomography_n_colors.mzn: Discrete Tomography (n color model)
  • torn_number.mzn: Torn number puzzle (Dudeney)
  • tunapalooza.mzn: Tunapalooza puzzle (Dell Logic Puzzles)
  • twin_letters.mzn: Twin letters
  • two_cube_calendar.mzn: Two cube calendar (Martin Gardner)
  • uzbekian_puzzle.mzn: Uzbekian puzzle
  • vingt_cinq_cinq_trente.mzn: VINGT+ CINQ + CINQ = TRENTE (Martin Gardner)
  • war_or_peace.mzn: War or peace problem (Alma-0)
  • water_buckets1.mzn: Water bucket problem (generalized)
  • virtual_chess_tournament.mzn: Virtual Chess Tournament problem (from OpenRules Blog (Jacob Feldman) Fisher vs. Kasparov vs. Karpov
  • who_killed_agatha.mzn: Who killed agatha? (The Dreadsbury Mansion Murder Mystery, a automated reasoning problem)
  • 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: Word golf (word chain)
  • word_golf_n3.mzn: 3 letter words for Word golf
  • word_golf_n4.mzn: 4 letter words for Word golf
  • word_square.mzn: Word square: square matrix cross words (fill the whole square with unique words). (Data files: word_len3.mzn, word_len4.mzn, word_len5.mzn)
  • wwr.mzn: alphametic problem: WRONG + WRONG = RIGHT
  • xkcd.mzn: xkcd's knapsack problem (see the xkcd strip for the problem)
  • 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 on CP2011)
  • zebra_inverse.mzn: Zebra puzzle, using global constraint inverse instead of all_different
  • zebra_ip.mzn: Zebra puzzle, integer programming model (GLPK)

    Operations research, linear programming, integer programming, scheduling

    Non linear problems

    Combinatorial problems

    Global constraints (decompositions)

    Here are some implementations of the global constraints (as decompositions) which are not already implemented in the MiniZinc globals.mzn, described in the great collection
    Global Constraint Catalog. Here are also some decompositions not in the catalogue.

    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.

    Martin Chlond's Integer Programming Puzzles

    Below are MiniZinc models of (almost) all puzzles of Martin Chlond's wonderful collections of
    Integer Programming Puzzles. 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 (Chlond's solution)
    Description : Twelve draughts puzzle
    Source : Boris Kordemsky - The Moscow Puzzles (P36)

    Coin puzzle (Chlond's solution)
    Description : Coin puzzle
    Source : Mathematical Puzzles of Sam Loyd (P111)

    Egg basket puzzle (Chlond's solution)
    Description : Egg basket puzzle
    Source : Boris Kordemsky - The Moscow Puzzles (P136)

    Evens puzzle (slightly different approach: Evens puzzle 2 ) (Chlond's solution)
    Description : Evens puzzle
    Source : Boris Kordemsky - The Moscow Puzzles (P8)

    Fifty puzzle (Chlond's solution)
    Description : Fifty puzzle
    Source : The Puzzles of Sam Loyd (P 54)

    Honey division puzzle (Chlond's solution)
    Description : Honey division puzzle
    Source : H E Dudeney - Amusements in Mathematics

    Wine cask puzzle (Chlond's solution)
    Description : Wine cask puzzle
    Source : M Kraitchik - Mathematical Recreations (p 31)

    Knight domination puzzle - all squares threatened (Chlond's solution)
    Description : Knight domination puzzle - all squares threatened
    Source : M Kraitchik - Mathematical Recreations (P256)

    Mango puzzle (Chlond's solution)
    Description : Mango puzzle
    Source : M Kraitchik - Mathematical Recreations (P32)

    Remainder puzzle (alternative model: Remainder puzzle 2) (Chlond's solution)
    Description : Remainder puzzle
    Source : Boris Kordemsky - The Moscow Puzzles (P136)
    5 X 5 puzzle (alternative model: 5 X 5 puzzle v 2) (Chlond's solution)
    Description : 5 X 5 puzzle
    Source : Unknown

    Lights on puzzle (Chlond's solution)
    Description : Lights on puzzle
    Source : Unknown

    Problems from Integer Programming Puzzles section 2
    Models:
    Clarke's tobacconist (Chlond's solution)
    Description : Clarke's tobacconist
    Source : Clarke, L.H., (1954), Fun with Figures, William Heinemann Ltd.

    Tommy's Birthday Coins (Chlond's solution)
    Description : Tommy's Birthday Coins
    Source : Clarke, L.H., (1954), Fun with Figures, William Heinemann Ltd.

    Lewis Carroll coin puzzle (Chlond's solution)
    Description : Lewis Carroll coin puzzle
    Source : Wakeling, E., (1995), Rediscovered Lewis Carroll Puzzles, Dover.

    Dudeney's tea mixing problem (Chlond's solution)
    Description : Dudeney's tea mixing problem
    Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson and Sons.

    Jive turkeys (Chlond's solution)
    Description : Jive turkeys
    Source : rec.puzzles

    Public School Problem (Chlond's solution)
    Description : Public School Problem
    Source : Clarke, L.H., (1954), Fun with Figures, William Heinemann Ltd.

    Dudeney's bishop placement problem I (Chlond's solution)
    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 (Chlond's solution)
    Description : Dudeney's bishop placement problem II
    Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson and Sons.

    Kraitchik's queen placement problem (Chlond's solution)
    Description : Kraitchik's queen placement problem
    Source : Kraitchik, M., (1942), Mathematical Recreations, W.W. Norton and Company, Inc.

    Schuh's queen placement problem (Chlond's solution)
    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 (Chlond's solution)
    Description : Dudeney's queen placement problem
    Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson and Sons.

    Joshua and his rats (Chlond's solution)
    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 (Chlond's solution)
    Description : The Abbott's Puzzle
    Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson and Sons.

    The Abbott's Window (Chlond's solution)
    Description : The Abbott's Window
    Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson and Sons.

    The First Trial (Chlond's solution)
    Description : The First Trial
    Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University Press

    The Second Trial (Chlond's solution)
    Description : The Second Trial
    Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University Press

    The Third Trial (Chlond's solution)
    Description : The Third Trial
    Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University Press

    The Fourth Trial (Chlond's solution)
    Description : The Fourth Trial
    Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University Press

    The Fifth Trial (Chlond's solution)
    Description : The Fifth Trial
    Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University Press

    The Sixth Trial (Chlond's solution)
    Description : The Sixth Trial
    Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University Press

    Werewolves II (Chlond's solution)
    Description : Werewolves II
    Source : Smullyan, R., (1978), What is the Name of this Book?, Prentice-Hall

    Werewolves IV (Chlond's solution)
    Description : Werewolves IV
    Source : Smullyan, R., (1978), What is the Name of this Book?, Prentice-Hall

    Earthlings (Chlond's solution)
    Description : Earthlings
    Source : Poniachik, J. & L., (1998), Hard-to-solve Brainteasers, Sterling

    Equal Vision (Chlond's solution)
    Description : Equal Vision
    Source : Poniachik, J. & L., (1998), Hard-to-solve Brainteasers, Sterling


    Problems from Integer Programming Puzzles section 4
    Models:
    On the road (Chlond's solution)
    Description : On the road
    Source : Poniachik, J. & L, (1998), Hard-to-solve Brainteasers, Sterling

    The Riddle of the Pilgrims (Chlond's solution)
    Description : The Riddle of the Pilgrims
    Source : Dudeney, H.E., (1949), The Canterbury Puzzles, 7th ed., Thomas Nelson and Sons.

    The Logical Labyrinth (Chlond's solution)
    Description : The Logical Labyrinth
    Source : Smullyan, R., (1991), The Lady or The Tiger, Oxford University Press

    The gentle art of stamp-licking (Chlond's solution)
    Description : The gentle art of stamp-licking
    Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson and Sons.

    The crowded board (Chlond's solution)
    Description : The crowded board
    Source : Dudeney, H.E., (1917), Amusements in Mathematics, Thomas Nelson and Sons.

    Non-dominating queens problem (Chlond's solution)
    Description : Non-dominating queens problem
    Source : http://www.cli.di.unipi.it/~velucchi/queens.txt

    Enigma (Chlond's solution)
    Description : Enigma
    Source : Herald Tribune circa November 1979 - courtesy of Dr Tito A. Ciriani

    Price change puzzle (Chlond's solution)
    Source: M Kraitchik, Mathematical Recreations (p 33-35), Dover

    Book buy puzzle (Chlond's solution)
    Source: M Kraitchik, Mathematical Recreations(p37), Dover

    Shopping puzzle (Chlond's solution)
    Source: M Kraitchik, Mathematical Recreations(p37), Dover

    Book discount problem (Chlond's solution)
    Source: J. & L. Poniachik, Hard-to-Solve Brainteasers (p16), Sterling

    Seven 11 (Chlond's solution)
    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 (an open operations research journal).

    Other models

    Math, utils, etc.

    Also, see my other pages about constraint programming systems:
    * My Constraint Programming Blog, especially the MiniZinc/Zinc category
    * Constraint Programming
    * Common constraint programming problems
    * My Zinc page
    * My JaCoP page
    * My JaCoP/Scala page
    * My Choco page
    * My Gecode/R page
    * My Comet page
    * My Gecode page
    * My ECLiPSe page
    * My Tailor/Essence' page
    * My SICStus Prolog page
    * My Google CP Solver page
    * My OscaR page
    * My JSR-331 page
    * My Numberjack page
    * My AIMMS+CP page
    * My B-Prolog page
    * My Choco3 page

    Back to my homepage
    Created by Hakan Kjellerstrand hakank@gmail.com