My Comet page
Comet (created and distributed by Dynadec) is a system for solving problem using:
- constraint-based local search
- "classic" constraint programming
- linear programming and (mixed) integer programming
* Download Comet
* The distribution includes many examples and a great tutorial explaing Comet as well as the three paradigms which Comet uses: constraint programming, constraint-based local search and mathematical programming.
* Comet forums (Dynadec)
* Comet online (older documentation)
* Publications, which contains many publications about Comet
* Wiki. Note: the wiki have not been updated for a while. For documentation about the API of the latest version, see the documentation in the distribution.
An earlier version of Comet, featuring constraint-based local search, is described in the great book Constraint-Based Local Search (ISBN 9780262220774) by Pascal Van Hentenryck and Laurent Michel, the main developers of Comet.
My Comet models
Below are some of my Comet models. Explanation and references are in each specific file. Some of these models are translated from my MiniZinc models.
- 17_b.co: Model for 17x17x4 problem (see William Gasarch's The 17x17 challenge. Worth $289.00. This is not a joke.)
- 3_jugs.co: 3 jugs problem, MIP mode. Also see water_buckets1.co below.
- a_round_of_golf.co: A round of golf puzzle (Dell Logic Puzzles)
- added_corner.co: Added corner puzzle
- all_interval.co: All interval problem (series), (CSPLib problem 7)
- alldifferent_except_0.co: Global constraint all_different except 0
- among.co: Global constraint among
- among_seq.co: Global constraint among_seq
- assignment.co: Assignment problem (Winston, "Operations Research", page 393f)
- assignment2.co: Assignment problem, swimming team exam (Winston, "Operations Research", page 398)
- assignment3.co: Assignment problem, desert island example (Winston, "Operations Research", page 399, problem 3)
- assignment6.co: Assignment problem (GLPK)
- averbach_1.2.co: Example 1.2 in Averbach & Chein "Problem Solving Through Recreational Mathematics"
- averbach_1.3.co: Example 1.3 in Averbach & Chein "Problem Solving Through Recreational Mathematics"
- averbach_1.4.co: Example 1.4 in Averbach & Chein "Problem Solving Through Recreational Mathematics"
- bales_of_hay.co: Bales of hay puzzle, from The Math Less Traveled
- blending.co: Blending problem (OPL example)
- broken_weights.co: Broken weights problem
- building_a_house.co: Building a house (scheduling example from OPL)
- building_blocks.co: Building blocks (Dell logic puzzle)
- bus_schedule.co: Bus scheduling (Taha)
- calculs_d_enfer.co: Calculs d'enfer puzzle (from the NCL manual)
- car.co: Car sequencing (OPL)
- coins3.co: Minimum mumber of coins that allows one to pay exactly any amount smaller than one Euro (ECLiPSe)
- coins_grid.co: Placing coins on a grid (Tony Hurlimann)
- constraint_test.co: Example of how to write some simple "syntactical" user defined constraints (i.e. there is no special propagations etc): all_different_except_0, increasing, decreasing, toNum, and correspondence.
- country_cp.co: Simple map coloring problem.
- covering_opl.co: Set covering, selecting workers (from OPL example covering.mod)
- crew.co: Crew scheduling.
- crossfigure.co: Crossfigure problem (CSPLib problem 21)
- crossword.co: Crossword (standard CP problem)
- crypta.co: crypta, alphametic problem (standard Prolog benchmark)
- crypto.co: crypto, alphametic problem (standard Prolog benchmark), constraint programming model.
- cumulative.co: Global constraint cumulative
- cur_num.co: Curious Number (Dudeney)
- debruijn.co: de Bruijn sequences, both "classic" and "arbitrary"
- debruijn_gui.co: de Bruijn sequences, both "classic" and "arbitrary". As debruijn.co with animation of the solutions progress.
- diet.co: simple diet problem (operations research), using the linear programming module
- diet_gui.co: as diet.co with animation of the solution progress.
- discrete_tomography.co: Discrete tomography
- distribute.co: Global constraint distribute.
- divisible_by_9_through_1.co: divisible by 9 through 1 for a "truncated" number
- donald_gerald.co: Alphametic puzzle DONALD + GERALD = ROBERT
- einstein_opl.co: Einstein's puzzle. Comet variant of the OPL model presented in Daniel Selman's Einstein's Puzzle - Or, 'The Right Tool for the Job'
- extensional_support.co: Global constraint extensional support/conflict (a.k.a. in_relation, forbidden/allowed assignments etc)
- fill_in_the_squares.co: Fill in the squares (Brainjammer)
- fixed_charge.co: Fixed-charge problem (OPL example)
- fixed_charge2.co: Fixed-charge problem (OPL example), alternative way of using the tuple
- four_islands.co: Four islands puzzle (Dell Logic Puzzles)
- furniture_moving.co: Optimizing furniture moving, simple scheduling problem, using Schedule (Marriott and Stuckey)
- furniture_moving_cumulative.co: Optimizing furniture moving, simple scheduling problem, using cumulative constraint (Marriott and Stuckey)
- game_theory_taha.co: Game theory, zero sum game (Taha, Operations Research)
- global_contiguity.co: Global constraint global contiguity
- golomb_ruler.co: Golomb ruler (CSPLib problem 6)
- grocery.co: Grocery problem
- heterosquare_cp.co: Heterosquare problem (CP module)
- hidato.co: Hidato puzzle
- house2.co: House problem, scheduling problem (Van Hentenryck, OPL book)
- inverse.co: Global constraint inverse
- isbn.co: Some explorations of ISBN13
- kakuro.co: Kakuro grid puzzle.
- kenken.co: KenKen, a grid puzzle.
- kenken2.co: KenKen, a grid puzzle. A more general solution than kenken.co .
- killer_sudoku.co: Killer sudoku.
- knights_path.co: Knight's path (on a chessboard)
- labeled_dice.co: Labeled dice problem, from Jim Orlin "Colored letters, labeled dice: a logic puzzle"
- langford.co: Langford's number problem (CSPLib problem 24)
- least_diff.co: Least diff problem, an alphametic puzzle, minimize the difference ABCDE-FGHIJ where A..J is integers 0..9 (all different)
- least_diff_gui.co: As least_diff.co (see above) with an animation of the solutions as well as the search tree
- least_square.co: Least square problem
- lichtenstein_coloring.co: Coloring the communes of Lichtenstein
- magic1.co: Magic sequence, CSPLib problem 19 (Van Hentenryck, OPL book)
- magic2.co: Magic sequence, CSPLib problem 19 (Van Hentenryck, OPL book)
- magic_sequence.co: Magic sequence, CSPLib problem 19 (Van Hentenryck, OPL book)
- map.co: Map coloring problem (Van Hentenryck, OPL book)
- map_gui.co: Map coloring problem (Van Hentenryck, OPL book) with animation of the solution.
- max_flow_winston1.co: Maximum flow problem (Winston "Operations Research")
- minAssignment_test.co: Minimum assignment problem, using the builtin constraint minAssignment
- minesweeper.co: Minesweeper problem.
Problem files for the Minesweeper program.
comet minesweeper.co problem file
- nonogram.co: Nonogram (paint by numbers).
nonogram_regular.co: Nonogram (paint by numbers), using my home-brewn regular constraint (much faster than nonogram.mzn).
Nonogram (paint by numbers), using the built-in regular constraint and Automaton.
Problem files for the Nonogram models (to be
Also, see the collection Nonogram problem instances (from JaCoP's distribution).
- nontransitive_dice.co: Nontransitive dice
- number_sqare.co: Finding a eight digit square which remains a square when 1 is concatenated in from of it. (Van Hentenryck, OPL book)
- organize_day.co: Organizing a day, simple scheduling problem
- p_median.co: P-median problem (from OPL)
- pair_divides_the_sum.co: Find a set of four distinct positive integers such that, for every pair of them, their difference divides their sum. (comp.lang.prolog, 2009028, Nick Wedd)
- pandigital_numbers.co: Pandigital numbers, in any base < ~ 12
- partition_function.co: Partitions a set of integers (represented as a boolean matrix) according to a function.
- pentominoes_model.co: Pentominoes, model (MiniZinc)
- photo_problem.co: Photo problem
- pigeon_hole.co: Pigeon hole problem
- place_number_puzzle.co: Place number puzzle
- production.co: Production planning (from OPL)
- production2.co: Production planning, using tuple (from OPL)
- production3.co: Production planning, alternative way of using tuple (from OPL)
- quasigroup_completion.co: Quasigroup completion problem.
- queens8.co: 8-queens problem (Van Hentenryck, OPL book)
- queensn.co: n-queens problem (Van Hentenryck, OPL book)
- rabbits.co: Rabbits problem (Van Hentenryck, OPL book)
- regular.co: Global constraint regular
- rot13.co: Rot 13 (ceasar cipher)
- runs.co: Number of runs in a sequence
- sat.co: Satisfiability Problem (GLPK)
- send_more_money_any_base.co: SEND+MORE=MONEY in any base
- send_most_money.co: SEND+MOST=MONEY, finding the max value of MONEY.
- send_most_money2.co: SEND+MOST=MONEY, finding all solutions of the max value for MONEY.
- seseman.co: simple recreational mathematics puzzle. See the CGI-program Seseman convent problem
- set_covering.co: Set covering: placing of firestations (Winston "Operations Research")
- set_covering2.co: Set covering: security telephone on campus (Taha "Operations Research", example 9.1-2)
- set_covering3.co: Set covering: assigning senators to committees (Murty "Optimization Models for Decision Making")
- set_covering4.co: Set covering/partition problem (Lundgren, Rönnqvist, Värbrand "Optimeringslära", page 408)
- set_covering5.co: Set covering, work scheduling (Lundgren, Rönnqvist, Värbrand "Optimeringslära", page 410)
- set_covering_deployment.co: Set covering deployment
- set_covering_skiena.co: Set covering (Skiena)
- set_partition.co: Set partition problem (using boolean matrix as representation of the sets)
- ski_assignment.co: Ski assignment problem
- sliding_sum.co: Global constraint sliding sum
- social_golfer1.co: Social golfer problem (CSPLib problem 10)
- sonet_problem.co: SONET problem
- spreadsheet.co: Simple "spreadsheet" example (Apt)
- stable_marriage.co: Stable marriage problem (Van Hentenryck, OPL book)
- stable_marriage2.co: Stable marriage problem, example from MathWorld Stable Marriage Problem
- steiner_sets.co: Steiner triplets, using var sets (new in Comet version 2.0)
- steiner_triplets.co: Steiner triplets (using arrays of booleans to represent the sets)
- stigler.co: Original Stigler's 1939 diet problem (from GLPK). This is a MIP model.
- subset_sum.co: Subset sum problem (Murty)
- sudoku_gcc.co: Sudoku solver using global cardinality constraint.
- sudoku_generate.co: Simple generation of Sudoku puzzles (given the number of unknowns), a randomized approach.
- survo_puzzle.co: Survo puzzle
- temporal_reasoning.co: Temporal reasoning (Apt)
- the_family_puzzle.co: The family puzzle
- toNum.co: Demonstrates
toNum for converting an array to number or vice versa
- tourist_site_competition.co: Tourist site competition (Flener)
- traffic_lights.co: Traffic lights problem (CSPLib problem 16)
- transp1.co: Transportation problem (Van Hentenryck, OPL book)
- young_tableaux.co: Young tableaux and partitions
- volsay.co: Volsay problem (Van Hentenryck, OPL book)
- volsay2.co: Volsay problem, using an array (Van Hentenryck, OPL book)
- volsay3.co: Volsay problem, using array, and data in array/matrix (Van Hentenryck, OPL book)
- warehouse.co: Warehouse location problem (OPL example)
- water_buckets1.co: Water buckets problem, CP model. Also see 3_jugs.co above.
- who_killed_agatha.co: Who killed agatha? (The Dreadsbury Mansion Murder Mystery, an automated reasoning problem)
- word_design_dna1.co: Word design for DNA computing on surfaces (CSPLib 033)
- word_golf.co: Word golf (aka Word chain or Word ladder).
Data file for word_golf.co: word_golf_len3.co: 2044 3-letter words from
- word_square1.co: Word square: square matrix cross words (fill the whole square with unique words). Data files: word_len3.co, word_len4.co, word_len5.co, word_len6.co .
- word_square2.co: Word square: square matrix cross words (fill the whole square with unique words). Reads from a word list file (
- xkcd.co: XKCD's knapsack problem. See the xkcd strip for the problem
* My Constraint Programming Blog, especially the Comet category
* My Constraint Programming page
* Common constraint programming problems
* My MiniZinc page
* My Zinc page
* My Choco page
* My JaCoP page
* My JaCoP/Scala page
* My Gecode/R 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 email@example.com