Changelog

2026-05-25

Updated MPG for Gecode 6.4.0: the build instructions now use the source release, and validation can target a selected Gecode branch, tag, or commit.

2020-11-04

Fixed description of weakly monotonic propagators in Recomputation is not deterministic.

Thanks to Pierre Flener.

2020-09-29

Added tip about not using the copy constructor directly (see Do not use the copy constructor directly).

2019-08-22

Fixed symmetry breaking when using CDBF Bin packing.

Thanks to Florian Fontan.

2019-05-28

Fixed opaque colors

2019-04-12

Released for Gecode 6.2.0

2019-04-10

Fixed description of LNS in Large Neighborhood Search.

Thanks to Marco Correia.

2019-02-13

Released for Gecode 6.1.1

2018-10-17

Released for Gecode 6.1.0

2018-10-15

Added tip about memory alignment (see Memory alignment).

2018-05-22

Released for Gecode 6.0.1

2018-02-05

Released for Gecode 6.0.0

2017-11-06

Explained how to use CPProfiler (see Using the CPProfiler).

2017-11-06

Documented commandline options for CPProfiler (see Commandline options).

2017-05-10

Updated explanation of regions for memory management (see Region.).

2017-05-10

Updated explanation of shared handles and objects management (see Shared objects and handles).

2017-04-18

Released for Gecode 5.1.0

2017-03-20

Explained general tracing (see General tracing and Programming general tracers).

2017-02-28

Explained CHB for branching (see Selection using CHB).

2017-02-21

Changed all functions for branching to functions based on std::function (see Branching).

2017-02-21

Explained new variable and value selection for Boolean variables (see Branching on integer and Boolean variables).

2017-02-21

Explained that function for wait() and when() can be of a type derived from std::function (see Synchronized execution, Synchronized execution, and Synchronized execution).

2016-10-25

Released for Gecode 5.0.0

2016-10-23

Added a description of how to relax variables (see Relaxing variable assignments.).

2016-05-27

Added a discussion of how propagators using advisors are re-scheduled (see Advisors).

2016-05-27

Added a discussion of: how propagators are disabled and enabled; the now required schedule() function of a propagator; and the GECODE_POST post macro (see Getting started).

2016-05-23

Added new chapter on propagator and brancher groups and tracing (see Groups and tracing).

2016-04-25

Documented how Boolean expressions and relations can be extended by new reified constraints (see Extending Boolean expressions and relations).

2016-04-19

Documented how to use a different memory allocator (see Using a different memory allocator.).

2015-10-14

Documented portfolio search (see Portfolio search).

2015-09-17

Explained when =SCHEDULE modification events are needed (see Base definitions).

Thanks to Joseph Scott.

2015-09-17

Documented new integer propagation levels (see Selecting the propagation level).

2015-03-31

Fixed typo in example of Programming variables.

Thanks to Joseph Scott.

2015-03-20

Released for Gecode 4.4.0

2015-03-18

Improved and update documentation of optimization spaces and scripts (see Support for cost-based optimization and Scripts).

2015-02-26

Improved explanation of activity.

Thanks to Roberto Castañeda Lozano.

2015-01-20

Released for Gecode 4.3.3

2015-01-19

Documented the argument of minimum and maximum constraints (see Arithmetic constraints)

2014-11-06

Released for Gecode 4.3.2

2014-10-22

Released for Gecode 4.3.1

2014-10-20

Documented changed restart-based search in Restart-based search and added information on how to use it for LNS (see Large Neighborhood Search)

2014-09-01

Released for Gecode 4.3.0

2014-07-27

Documented multi-dimensional bin-packing constraints (see Bin-packing constraints)

2014-06-30

Added missing edges in Representing edges and propagating circuit and Representing edges and propagating circuit with cost

Thanks to Léonard Benedetti.

2013-11-05

Released for Gecode 4.2.1

2013-07-19

Released for Gecode 4.2.0

2013-07-10

Explained support for no-goods for variable-value branchers (see Value selection and commit creation)

2013-07-10

Explained how to add support for no-goods to branchers (see Supporting no-goods)

2013-07-10

Explained how to use no-goods from restarts (see No-goods from restarts)

2013-06-13

Released for Gecode 4.1.0

2013-05-13

Documented display of branching information in Gist (see Inspecting and comparing nodes)

2013-05-03

Documented variable-value print functions for branching (see Using variable-value print functions)

2013-03-14

Released for Gecode 4.0.0

2013-04-12

Fixed documentation of user-defined variable selection (the _MERIT_ part was missing) (see User-defined variable selection)

Thanks to Roberto Castañeda Lozano.

2013-03-08

Documented LDSB (see Lightweight Dynamic Symmetry Breaking)

2013-02-22

Documented restart-based search (see Restart-based search), added example (see More information)

2013-02-22

Complete rewrite of how to branch (you should read it again), see Branching

2013-02-14

Added missing copy constructors and assignment operators in Shared objects and handles and Local objects and handles

Thanks to David Rijsman.

2013-02-04

Documented how to implement variable-value branchings (see Variable-value branchings)

2013-02-04

Documented how to implement constraints over float variables (see Propagators for float constraints)

2013-01-29

Documented modeling with floats (see Float variables and constraints, Float expressions and relations, Branching on float variables, and Compilation with support for trigonometric and transcendental float constraints.)

2013-01-25

Explain new search options for Gist in Options and preferences

2012-12-17

Fixed typo in Taking advantage of iterators

Thanks to Benjamin Negrevergne.

2012-10-19

Explained how to use half reification (see Half reification) and how to implement it (see Supporting both full and half reification)

2012-09-07

Properly explained regions (see Region.)

2012-08-29

Documented hardware-based random seed generation for random branchers (see Random variable and value selection)

2012-08-27

Documented pow and nroot constraints (see Arithmetic constraints and Integer expressions and relations)

2012-08-21

Fixed explanation of advisor deltas (see Delta information for integer views.)

Thanks to Max Ostrowski.

2012-03-06

Explained activity-based search and shared variable selection criteria (see Branching)

2012-03-20

Released for Gecode 3.7.3

2012-02-22

Released for Gecode 3.7.2

2011-11-10

Added tip that compilers for Qt and Gecode must match (see Compatible compilers and installations for Gecode and Qt)

Thanks to Pavel Bochman.

2011-10-10

Released for Gecode 3.7.1

2011-10-06

Explained semantics of \(n\)-ary implication (see Simple relation constraints over Boolean variables)

2011-08-31

Released for Gecode 3.7.0

2011-08-22

Added links to the Global Constraint Catalog (Global Constraint Catalog, [6])

2011-08-22

Documented membership constraints (see Membership constraints)

2011-08-17

Documented number of values constraints (see Number of values constraints)

2011-08-17

Fixed error in explanation of value precedence constraint for multiple values (see Value precedence constraints)

Thanks to Chris Mears.

2011-08-15

Added missing information on creating a variable implementation disposer (see Explicitly disposing variable implementations.)

Thanks to Gustavo Gutierrez.

2011-07-25

Fixed some typos

Thanks to Pierre Flener.

2011-07-15

Released for Gecode 3.6.0

2011-07-13

Documented precede constraint (see Value precedence constraints)

2011-07-08

Explained that constraint post functions are clever in that they select a good propagator (see Posting constraints)

Thanks to Kish Shen.

2011-06-30

Documented precede constraint (see Value precedence constraints)

2011-06-07

Documented nooverlap constraint (see Geometrical packing constraints)

2011-06-07

Documented path constraint for Hamiltonian paths (see Circuit and Hamiltonian path constraints)

2011-05-26

Moved graph and scheduling constraints to integer module (see Circuit and Hamiltonian path constraints and Scheduling constraints)

2011-05-03

Fixed example for count constraint

Thanks to Kish Shen.

2011-03-28

Added Do not forget the library path about the library path to the compilation instructions

Thanks to Gabriel Hjort Blindell, Flutra Osmani.

2011-03-24

Added pointers to MiniModel reference documentation

2011-03-14

Added archiving for choices and branchers

2011-02-22

Adapted to new names for set channeling constraints

2011-02-13

Added that Gecode on Windows requires Microsoft Visual C++ 2008 or better

2011-02-11

Added missing int.hh file

Thanks to Gustavo Gutierrez.

2011-02-01

Released for Gecode 3.5.0

2011-01-28

Added bin packing case study (Bin packing)

2011-01-25

Documented STL-style array iterators (STL-style iterators)

Thanks to Gregory Crosswhite.

2010-10-09

Released for Gecode 3.4.2

2010-10-09

Removed discussion of limited discrepancy search

2010-10-06

Released for Gecode 3.4.1

2010-10-06

Documented the binpacking constraint (Bin-packing constraints)

2010-10-05

Added explanation how to initially schedule a propagator using advisors (see Getting a propagator started with advisors)

Thanks to Chris Mears.

2010-10-05

Added installation and compilation instructions (moved and eexpanded from the reference documentation) (Obtaining Gecode)

2010-09-02

Explain that variables are re-selected during branching (Variables are re-selected during branching)

Thanks to Kish Shen.

2010-08-31

Documented that variable implementation views are parametric with respect to variables (Variable implementation views: integer view)

2010-08-31

Documented that the variable base class is VarImpVar (Variables)

2010-07-30

Many small fixes everywhere (language, presentation, references)

2010-07-26

Released for Gecode 3.4.0 (first complete version)

2010-07-21

Added a how to read section (How to read this document?) and overview material to each chapter and part

2010-07-20

Added the part on programming search engines (Programming search engines)

2010-07-02

Added the part on programming variables (Programming variables)

2010-06-17

Explain that the compiler environment is set up on Windows (Visual Studio command prompts)

Thanks to Dan Scott.

2010-06-04

Explained that variables do not have init() functions as they are not needed.

2010-05-10

Fixed typo in Recomputation

Thanks to Andreas Karlsson.

2010-05-07

Documented new MiniModel for set constraints (Expressions and relations) and adapted to other MiniModel changes

2010-05-06

Added more case studies

2010-05-06

Documented new operations on argument arrays (Argument arrays)

2010-04-11

Only use absolute URLs as not all PDF viewers honor the base URL

2010-04-09

Released for Gecode 3.3.1 (first release of “Modeling and Programming with Gecode”)

2010-04-01

Fixed typo in A Gecode model for Send Most Money finding a best solution

Thanks to Seyed Hosein Attarzadeh Niaki.

2010-03-13

Released for Gecode 3.3.0

2010-02-01

Described that linear expressions can freely mix integer and Boolean variables and that also sum expressions are supported (Expressions and relations)

2010-01-18

Fixed typo in example (Recomputation)

Thanks to Vincent Barichard.

2010-01-18

Added tips for linking libraries (Linking against Gist and Linking against the driver)

2009-11-30

Released for Gecode 3.2.2

2009-11-24

Documented sequence constraints (Sequence constraints)

2009-11-04

Released for Gecode 3.2.1

2009-11-01

Explained integer shared arrays for element (Shared integer arrays)

2009-10-16

Explained Home (Space& versus Home)

2009-10-13

Documented AFC-based variable selection for branching (Branching on integer and Boolean variables)

2009-10-08

Fixed link for reporting bugs

2009-10-05

Released for Gecode 3.2.0

2009-06-15

Fixed some broken links

Thanks to Sverker Janson.

2009-06-08

Documented branching on single variables (Branching basics)

2009-06-08

Documented element constraint for matrix interface (Element constraints.)

2009-05-20

Released for Gecode 3.1.0

2009-05-12

Documented parallel search (Parallel search)

2009-05-08

Clarified the use of "<GECODEDIR>". (Microsoft Visual Studio)

Thanks to Markus Böhm.

2009-04-20

Documented script commandline driver (Using the script commandline driver, Script commandline driver)

2009-04-09

Documented wait post functions (Synchronized execution, Synchronized execution)

2009-03-26

Released for Gecode 3.0.2

2009-03-26

Fix for gcc compilation instructions in Linux and relatives

Thanks to Roberto Castañeda Lozano.

2009-03-24

Released for Gecode 3.0.1

2009-03-23

Generate shorter inter-document references to avoid problems with some PDF viewers

Thanks to Håkan Kjellerstrand.

2009-03-13

Initial release for Gecode 3.0.0