My ECLiPSe page
This page is maintained by Hakan Kjellerstrand (hakank@gmail.com)
ECLiPSe, the ECLiPSe Constraint Programming System, is a Prolog based Constraint Programming System. Compared to traditional Prolog systems, ECLiPSe has a lot of extensions which makes constraint modelling easier:
- many constraint programming libraries, e.g. ic, eplex, suspend, Propia, etc.
- arrays
- logical loops
- structs
- etc.
More info about ECLiPSe
My ECLiPSe models
Here are some of my ECLiPSe models. Each model contains more information and references about the problem.
- 3_jugs.ecl: 3 jugs problem, MIP solution (eplex)
- 3_jugs2.ecl: 3 jugs problem, CP solution
- a_round_of_golf.ecl: A Round of Golf (Dell Logic Puzzles)
- a_round_of_golf_propia.ecl: A Round of Golf (Dell Logic Puzzles), using arrays and Propia
- abbots_puzzle.ecl: Abbott's puzzle
- added_corner.ecl: Added corner puzzle
- alldifferent_cst.ecl: Global constraint
alldifferent_cst
(decomposition)
- alldifferent_except_0.ecl: Global constraint
all different except 0
(decomposition)
- alldifferent_modulo.ecl: Global constraint
alldifferent_modulo
(decomposition)
- alldifferent_on_intersection.ecl: Global constraint
alldifferent_on_intersection
(decomposition)
- all_differ_from_at_least_k_pos.ecl: Global constraint
all_differ_from_at_least_k_pos
(decomposition)
- all_equal.ecl: Global constraint
all_equal
(decomposition)
- all_interval.ecl: All interval problem (series), (CSPLib problem 7)
- all_min_dist.ecl: Global constraint
all_min_dist
(decomposition)
- allpartitions.ecl: All partitions
- alpha.ecl: alphametic problem (cf. crypto.ecl)
- among.ecl: (Decomposition of) global constraint
among
- among_seq.ecl: (Decomposition of) global constraint
among_seq
- arch_friends.ecl: Arch friends (Dell Logic Puzzles)
- assignment.ecl: Different assignment problems (from Winston, GLPK, etc)
- averbach_1.2.ecl: Seating puzzle, Problem 1.2 from Averbach & Chein "Problem Solving Through Recreational Mathematics"
- averbach_1.3.ecl: Problem 1.3 from Averbach & Chein "Problem Solving Through Recreational Mathematics"
- averbach_1.4.ecl: Seating puzzle, using a home-brewed propagator for modulo (Problem 1.4, from Averbach & Chein "Problem Solving Through Recreational Mathematics")
- babysitting.ecl: Babysitting puzzle (Dell Logic Puzzles)
- bin_packing.ecl: Some bin packing problems
- bin_packing2.ecl: (Decomposition of the) global constraint
bin_packing
(not exactly like the traditional bin packing))
- blending.ecl: Blending problem (from OPL)
- broken_weights.ecl: Broken weights problem
- build_a_house.ecl: Build a house (scheduling)
- building_blocks.ecl: Building blocks puzzle (for a more general solution see labeled_dice.ecl below
- building_blocks_propia.ecl: Building blocks puzzle, array version
- breaking_news.ecl: Breaking news puzzle (Dell Logic Puzzles)
- bus_schedule.ecl: Bus scheduling (Taha)
- calculs_d_enfer.ecl: Calculs d'enfer
- changes.ecl: Coin changes
- circling_squares.ecl: Circling squares
- circuit.ecl:(Decomposition of) global constraint
circuit
- clique.ecl: (Decomposition of) global constraint
clique
- clock_triplet.ecl: Dean Clark's Clock Triplets Problem
- coins_grid.ecl: Coins grid, CP version (Hubermann)
- coins_grid_eplex.ecl: Coins grid, MIP version (Huberman)
- contracting_costs.ecl: Contracting costs
- covering_opl.ecl: Set covering, selecting workers (from OPL example covering.mod)
- crew.ecl: Crew allocation problem
- crossword2.ecl: Crossword solving (standard constraint programming example)
- crypta.ecl: crypta, alphametic problem (standard Prolog/CLP benchmark)
- crypto.ecl: crypto, alphametic problem (standard Prolog/CLP benchmark)
- cumulative_test.ecl: Test of the built in cumulative constraint
- cur_num.ecl: Curious number
- curious_set_of_integers.ecl: Curious set of integers (Martin Gardner)
- debruijn.ecl: de Bruijn sequences (both "traditional" and "arbitrary"
- devils_word.ecl: Devil's word
- diet.ecl: Diet problem
- dinner.ecl: Dinner problem
- discrete_tomography.ecl: Discrete tomography problem
- distribute.ecl: (Decomposition of) global constraint
distribute
- divisible_by_9_through_1.ecl: Divisible by 9 through 1 (truncated numbers). In any base. (And with a modulo propagator.)
- donald_gerald.ecl: DONALD + ROBERT = GERALD (classic alphametic problem)
- eq10.ecl: Standard benchmark problem
- eq20.ecl: Standard benchmark problem
- exactly.ecl: (Decomposition of) global constraint
exactly
- exodus.ecl: Exodus puzzle (Dell Logic Puzzles)
- fancy.ecl: Mr Greenguest puzzle (Fancy dress problem, from LPL)
- fill_a_pix.ecl: Fill-a-pix problem
- five_brigands.ecl: Five bridands problem
- four_islands.ecl: Four islands puzzle (Dell Logic Puzzles)
- fractions.ecl: Fractions problem (standard Prolog benchmark)
- furniture_moving.ecl: Furniture moving
- futoshiki.ecl: Futoshiki puzzle
- game_theory_taha.ecl: Game theory, zero sum game using eplex (Taha, Operations Research)
- general_store.ecl: General store problem
- global_cardinality.ecl: (Decomposition of) global constraint
global cardinality count
(somewhat limited)
- global_cardinality3.ecl: (Decomposition of) global constraint
global cardinality/3 (gcc(?VarArray, +Values, ?Occurrences)
- global_contiguity.ecl: (Decomposition of) global constraint
global_contiguity
- global_contiguity_gecode.ecl: (Decomposition of) global constraint
global_contiguity
using Gecode's regular
- greatest_subsequential_sum.ecl: Greatest subsequential sum
- greatest_subsequential_sum_gecode.ecl: Greatest subsequential sum, using Gecode's
regular
- hamming_distance.ecl: Hamming distance
- hanging_weights.ecl: Hanging weights problem
- heterosquare.ecl: Heterosquare problem
- hidato.ecl: Hidato puzzle
- huey_dewey_louie.ecl: Huey Dewey Louie logical puzzle
- isbn.ecl: Some explorations of ISBN13
- inverse.ecl: (Decomposition of) global constraint
inverse
i
- jobs_puzzle.ecl: Jobs puzzle (standard problem from Automatic Reasoning
- just_forgotten.ecl: Just forgotten (Enigma puzzle #1517)
- K4P2GracefulGraph2.ecl: K4P2 GracefulGraph
- kakuro.ecl: Kakuro, a grid puzzle
- kenken2.ecl: KenKen, a grid puzzle
- killer_sudoku.ecl: Killer Sudoku
- knapsack_investments.ecl: Knapsack investments (from Lundgren, Rönnqvist, Värbrand "Optimeringslära")
- knapsack_rosetta_code_01.ecl: Knapsack problem 0/1 (from Rosetta code)
- knapsack_rosetta_code_bounded.ecl: Knapsack problem, Bounded (from Rosetta code)
- knapsack_rosetta_code_unbounded.ecl: Knapsack problem, Unbounded (from Rosetta code)
- knapsack_rosetta_code_unbounded_int.ecl: Knapsack problem, Unbounded, finite domain version (from Rosetta code)
- knights_path.ecl: Knights_path
- labeled_dice.ecl: Labeled dice puzzle, more general approach (and contains the building_blocks.ecl as an instance). From Jim Orlin "Colored letters, labeled dice: a logic puzzle"
- langford.ecl: Langford's number problem (using lists)
- langford_propia.ecl: Langford's number problem (using arrays and Propia)
- latin_squares.ecl: Latin squares
- least_diff2.ecl: Least diff problem
- lectures.ecl: Lectures puzzle (from Biggs "Discrete Mathematics")
- lecture_series.ecl: Lecture series puzzle (Dell Logic Puzzles)
- lichtenstein_coloring.ecl: Coloring problem: coloring Lichtenstein's communes and exclaves)
- mamas_age.ecl: Mama's age problem
- mankell.ecl: Generating all (mis) spelling of "Henrik Mankell" and "Kjellerstrand"
- map.ecl: Map coloring
- marathon2.ecl: Marthon problem (problem from XPress)
- mineswepper.ecl: Minesweeper (with 14 problems, some from Gecode collections)
- modulo_propagator.ecl: Propagator (bounds consistency) for modulo (used for example in averbach_1.4.ecl, and divisible_by_9_through_1.ecl)
- monks_and_doors.ecl: Monks and doors
- mortgage.ecl: Mortgage, experiments
- mr_smith.ecl: Mr Smith problem
- music_men.ecl: Music men problem
- nadel.ecl: B.A. Nadel's construction problem (From Rina Dechter "Constraint Processing", page 5)
- number_of_days.ecl: Number of days problem (knapsack)
- nvalue.ecl: (Decomposition of) global constraint
nvalue
- nvalues.ecl: (Decomposition of) global constraint
nvalues
(generalization of nvalue)
- olympic.ecl: Olympic puzzle (standard Prolog problem)
- pandigital_numbers.ecl: Pandigital numbers
- pert.ecl: Scheduling, simple PERT problem (van Hentenryck)
- photo_problem.ecl: Photo problem
- pigeon_hole.ecl: Pigeon hole problem
- place_number_puzzle.ecl: Place number puzzle
- post_office_problem2.ecl: Post office problem (from Winston "Operations Research")
- pythagoras.ecl: Pythagoras number
- quasigroup_completion.ecl: Quasigroup completion
- rabbits.ecl: Rabbits problem (Van Hentenryck, OPL Book)
- remainders.ecl: Remainders problem
- remarkable_sequence.ecl: Remarkable sequence
- safe_cracking.ecl: Safe cracking problem
- schedule1.ecl: Simple sceduling problem
- schedule2.ecl: Simple sceduling problem
- scheduling_speakers.ecl: Scheduling speakers (Rina Dechter "Constraint Processing", page 72)
- send_more_money_any_base.ecl: SEND + MORE = MONEY (any base)
- send_most_money.ecl: SEND + MOST = MONEY, maximizes MONEY. All solutions.
- sequence.ecl: (Decomposition of) global constraint
sequence
- seseman.ecl: Seseman problem
- set_covering.ecl: Set covering problem (Winston, placing firestations)
- set_covering2.ecl: Set covering problem (Taha, placing of telephones on a campus)
- set_covering3.ecl: Set covering problem (Murty, select senators for committees)
- set_covering4.ecl: Set covering and set partition (Lundgren, Rönnqvist, Värbrand: "Optimeringslära"
- set_covering_deployment.ecl: Set covering deployment problem (placing armies in the Roman Empire)
- set_covering_skiena.ecl: Set covering problem (Skiena)
- set_partition.ecl: Set partition problem
- seven1.ecl: Seven eleven problem
- ski_assignment.ecl: Ski assignment problem
- sliding_sum.ecl: (Decomposition of) global constraint
sliding_sum
- smuggler_knapsack.ecl: Smuggler's knapsack
- spreadsheet.ecl: Simple "spreadsheet" example (Apt)
- square_root_of_wonderful.ecl: Square root of wonderful (Martin Gardner)
- stable_marriage.ecl: Stable marriage problem (examples from Van Hentenryck's OPL book, and MathWorld)
- strimko2.ecl: Strimko puzzles (Latin squares with "streams")
- subset_sum.ecl: Subset sum problem (Murty)
- sudoku_gcc.ecl: Sudoku, comparison of using ic_global:alldifferent and my decompositions of global cardinality and alldifferent (the rest of the code is from ECLiPSe's Sudoku example)
- survo_puzzle.ecl: Survo puzzle
- table.ecl: (Decomposition of) global constraint
table
- talisman_square.ecl: Talisman square
- timpkin.ecl: Mr Timpkin problem
- tonum.ecl: toNum, converts a number to array (and vice versa)
- torn_numbers.ecl: Torn numbers problem
- tourist_site_competition.ecl: Tourist site competition (P. Flener)
- traffic_lights.ecl: Traffic lights problem (CSPLib problem 16)
- tunapalooza.ecl: Tunapalooza puzzle (Dell Logic Puzzles)
- twin_letters.ecl: Twin letters problem
- who_killed_agatha.ecl: Who killed agatha? (a.k.a. The Dreadsbury Mansion Murder Mystery, an automated reasoning problem)
- volsay1.ecl: Volsay production problem (Van Hentenryck, The OPL Book), eplex model
- volsay2.ecl: Volsay production problem (Van Hentenryck, The OPL Book), eplex model, slightly different from volsay1.ecl
- volsay3.ecl: Volsay production problem (Van Hentenryck, The OPL Book), eplex model, more general than volsay1.ecl and volsay2.ecl
- warehouse.ecl: Warehouse location problem (OPL example)
- young_tableaux.ecl: Young tableaux and partitions
- xkcd.ecl: XKCD knapsack problem
Also, see information about other constraint programming systems:
* My Constraint Programming Blog, especially the ECLiPSe category
* Constraint Programming
* Common constraint programming problems
* My MiniZinc page
* My Zinc page
* My JaCoP page
* My JaCoP page
* My Choco page
* My Gecode/R page
* My Comet page
* My Gecode 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
* My Picat page
* My z3/python page
* My SWI-Prolog page
Back to my homepage
Created by Hakan Kjellerstrand hakank@gmail.com