CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer...
Transcript of CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer...
![Page 1: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/1.jpg)
DM826 – Spring 2014
Modeling and Solving Constrained Optimization Problems
Lecture 4CP Solvers
Gecode
Marco Chiarandini
Department of Mathematics & Computer ScienceUniversity of Southern Denmark
[The slides on Gecode are by Christian Schulte, KTH Royal Institute of Technology]
![Page 2: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/2.jpg)
Constraint LanguagesGecodeOutline
1. Constraint Languages
2. Gecode
2
![Page 3: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/3.jpg)
Constraint LanguagesGecodeConstraint Programming Systems
Expressiveness language stream(modelling)
+(efficient solvers)Algorithm stream
CP systems typically include
general purpose algorithms for constraint propagation(arc consistency on finite domains)
built-in constraint propagation for various constraints(eg, linear, boolean, global constraints)
built-in for constructing various forms of search
3
![Page 4: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/4.jpg)
Constraint LanguagesGecodeLogic Programming
Logic programming is the use of mathematical logic for computerprogramming.
First-order logic is used as a purely declarative representation language, and atheorem-prover or model-generator is used as the problem-solver.
Logic programming supports the notion of logical variables
Syntax – LanguageAlphabetWell-formed ExpressionsE.g., 4X + 3Y = 10; 2X - Y = 0
Semantics – MeaningInterpretationLogical Consequence
Calculi – DerivationInference RuleTransition System
4
![Page 5: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/5.jpg)
Constraint LanguagesGecodeLogic Programming
Example: PrologA logic program is a set of axioms, or rules, defining relationshipsbetween objects.
A computation of a logic program is a deduction of consequences ofthe program.
A program defines a set of consequences, which is its meaning.
Sterling and Shapiro: The Art of Prolog, Page 1.To deal with the other constraints one has to add other constraint solvers tothe language. This led to Constraint Logic Programming
5
![Page 6: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/6.jpg)
Constraint LanguagesGecodeProlog Approach
Prolog II till Prolog IV [Colmerauer, 1990]
CHIP V5 [Dincbas, 1988] http://www.cosytec.com (commercial)
CLP [Van Hentenryck, 1989]
Ciao Prolog (Free, GPL)
GNU Prolog (Free, GPL)
SICStus Prolog
ECLiPSe [Wallace, Novello, Schimpf, 1997] http://eclipse-clp.org/(Open Source)
Mozart programming system based on Oz language (incorporatesconcurrent constraint programming) http://www.mozart-oz.org/[Smolka, 1995]
6
![Page 7: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/7.jpg)
Constraint LanguagesGecodeOther Approaches
Libraries:Constraints are modelled as objects and are manipulated by means of specialmethods provided by the given class.
CHOCO (free) http://choco.sourceforge.net/
Kaolog (commercial) http://www.koalog.com/php/index.php
ILOG CP Optimizer www.cpoptimizer.ilog.com (ILOG, commercial)
Gecode (free) www.gecode.orgC++, Programming interfaces Java and MiniZinc
G12 Projecthttp://www.nicta.com.au/research/projects/constraint_programming_platform
7
![Page 8: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/8.jpg)
Constraint LanguagesGecodeOther Approaches
Modelling languages:
OPL [Van Hentenryck, 1999] ILOG CP Optimizerwww.cpoptimizer.ilog.com (ILOG, commercial)
MiniZinc [] (open source, works for various systems, ECLiPSe, Geocode)
Comet
AMPL
8
![Page 9: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/9.jpg)
Constraint LanguagesGecodeCP Languages
Greater expressive power than mathematical programming
constraints involving disjunction can be represented directly
constraints can be encapsulated (as predicates) and used in thedefinition of further constrains
However, CP models can often be translated into MIP model by
eliminating disjunctions in favor of auxiliary Boolean variables
unfolding predicates into their definitions
9
![Page 10: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/10.jpg)
Constraint LanguagesGecodeCP Languages
Fundamental difference to LPlanguage has structure (global constraints)
different solvers support different constraints
In its infancy
Key questions:what level of abstraction?
solving approach independent: LP, CP, ...?
how to map to different systems?
Modelling is very difficult for CPrequires lots of knowledge and tinkering
10
![Page 11: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/11.jpg)
Constraint LanguagesGecodeSummary
Model your problem via Constraint Satisfaction Problem
Decalre Constraints + Program Search
Constraint Propagation
Languages
11
![Page 12: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/12.jpg)
Constraint LanguagesGecodeOutline
1. Constraint Languages
2. Gecode
12
![Page 13: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/13.jpg)
Gecode an open constraint solving library
Christian Schulte KTH Royal Institute of Technology, Sweden
![Page 14: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/14.jpg)
Gecode People � Core team
� Christian Schulte, Guido Tack, Mikael Z. Lagerkvist.
� Code � contributions: Christopher Mears, David Rijsman, Denys Duchier, Filip Konvicka, Gabor
Szokoli, Gabriel Hjort Blindell, Gregory Crosswhite, Håkan Kjellerstrand, Joseph Scott, Lubomir Moric, Patrick Pekczynski, Raphael Reischuk, Stefano Gualandi, Tias Guns, Vincent Barichard.
� fixes: Alexander Samoilov, David Rijsman, Geoffrey Chu, Grégoire Dooms, Gustavo Gutierrez, Olof Sivertsson, Zandra Norman.
� Documentation � contributions: Christopher Mears. � fixes: Seyed Hosein Attarzadeh Niaki, Vincent Barichard, Pavel Bochman, Felix Brandt,
Markus Böhm, Roberto Castañeda Lozano, Gregory Crosswhite, Pierre Flener, Gustavo Gutierrez, Gabriel Hjort Blindell, Sverker Janson, Andreas Karlsson, Håkan Kjellerstrand, Chris Mears, Benjamin Negrevergne, Flutra Osmani, Max Ostrowski, David Rijsman, Dan Scott, Kish Shen.
Gec
ode,
Chr
isti
an S
chul
te
2
Sept
embe
r 201
3
![Page 15: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/15.jpg)
Gecode Generic Constraint Development Environment � open
� easy interfacing to other systems � supports programming of: constraints, branching strategies, search
engines, variable domains
� comprehensive � constraints over integers, Booleans, sets, and floats
� different propagation strength, half and full reification, …
� advanced branching heuristics (accumulated failure count, activity) � many search engines (parallel, interactive graphical, restarts) � automatic symmetry breaking (LDSB) � no-goods from restarts � MiniZinc support
Geco
de, C
hrist
ian
Schu
lte
3
Sept
embe
r 201
3
![Page 16: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/16.jpg)
Gecode Generic Constraint Development Environment � efficient
� all gold medals in all categories at all MiniZinc Challenges
� documented � tutorial (> 500 pages) and reference documentation
� free � MIT license, listed as free software by FSF
� portable � implemented in C++ that carefully follows the C++ standard
� parallel � exploits multiple cores of today's hardware for search
� tested � some 50000 test cases, coverage close to 100%
Geco
de, C
hrist
ian
Schu
lte
4
Sept
embe
r 201
3
![Page 17: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/17.jpg)
SOME BASIC FACTS
Sept
embe
r 201
3 Ge
code
, Chr
istia
n Sc
hulte
5
![Page 18: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/18.jpg)
Architecture
� Small domain-independent kernel � Modules
� per variable type: variables, constraint, branchings, … � search, FlatZinc support, …
� Modeling layer � arithmetic, set, Boolean operators; regular expressions; matrices, …
� All APIs are user-level and documented (tutorial + reference)
Sept
embe
r 201
3 Ge
code
, Chr
istia
n Sc
hulte
6
integers sets floats search engines
Gist interactive search
tool
modeling layer
Gecode kernel
![Page 19: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/19.jpg)
Openness � MIT license permits commercial, closed-source use
� motivation: public funding, focus on research � not a reason: attitude, politics, dogmatism
� More than a license � license restricts what users may do � code and documentation restrict what users can do
� Modular, structured, documented, readable � complete tutorial and reference documentation � new ideas from Gecode available as scientific publications
� Equal rights: Gecode users are first-class citizens � you can do what we can do: APIs � you can know what we know: documentation � on every level of abstraction
Geco
de, C
hrist
ian
Schu
lte
7
Sept
embe
r 201
3
![Page 20: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/20.jpg)
Constraints in Gecode � Constraint families
� arithmetics, Boolean, ordering, …. � alldifferent, count (global cardinality, …), element, scheduling, table
and regular, sorted, sequence, circuit, channel, bin-packing, lex, geometrical packing, nvalue, lex, value precedence, …
� Families � many different variants and different propagation strength
� All global constraints from MiniZinc have a native implementation
� Gecode Global Constraint Catalogue: > 70 constraints abs_value, all_equal, alldifferent, alldifferent_cst, among, among_seq, among_var, and, arith, atleast, atmost,
bin_packing, bin_packing_capa, circuit, clause_and, clause_or, count, counts, cumulative, cumulatives, decreasing, diffn, disjunctive, domain, domain_constraint, elem, element, element_matrix, eq, eq_set, equivalent, exactly, geq, global_cardinality, gt, imply, in, in_interval, in_intervals, in_relation, in_set, increasing, int_value_precede, int_value_precede_chain, inverse, inverse_offset, leq, lex, lex_greater, lex_greatereq, lex_less, lex_lesseq, link_set_to_booleans, lt, maximum, minimum, nand, neq, nor, not_all_equal, not_in, nvalue, nvalues, or, roots, scalar_product, set_value_precede, sort, sort_permutation, strictly_decreasing, strictly_increasing, sum_ctr, sum_set, xor
Gec
od
e, C
hri
stia
n S
chu
lte
8
Sep
tem
ber
20
13
![Page 21: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/21.jpg)
History � 2002
� development started
� 1.0.0 43 kloc, 21 klod � December 2005
� 2.0.0 77 kloc, 41 klod � November 2007
� 3.0.0 81 kloc, 41 klod � March 2009
� 4.0.0 164 kloc, 69 klod � March 2013
� 4.2.0 (current) 168 kloc, 71 klod � July 2013
Sept
embe
r 201
3 Ge
code
, Chr
istia
n Sc
hulte
9
34 releases
![Page 22: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/22.jpg)
Tutorial Documentation � 2002
� development started
� 1.0.0 43 kloc, 21 klod � December 2005
� 2.0.0 77 kloc, 41 klod � November 2007
� 3.0.0 81 kloc, 41 klod � March 2009
� 4.0.0 164 kloc, 69 klod � March 2013
� 4.2.0 (current) 168 kloc, 71 klod � July 2013
Sept
embe
r 201
3 Ge
code
, Chr
istia
n Sc
hulte
10
Modeling with Gecode (98 pages)
Modeling & Programming with Gecode (522 pages)
![Page 23: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/23.jpg)
Future � Large neighborhood search and other meta-heuristics
� contribution expected
� Simple temporal networks for scheduling � contribution expected
� More expressive modeling layer on top of libmzn � Grammar constraints
� contribution expected
� Propagator groups � …
� Contributions anyone?
Geco
de, C
hrist
ian
Schu
lte
11
Sept
embe
r 201
3
![Page 24: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/24.jpg)
Deployment & Distribution � Open source ≠ Linux only
� Gecode is native citizen of: Linux, Mac, Windows
� High-quality � extensive test infrastructure (around 16% of code base)
� Downloads from Gecode webpage � software: between 25 to 125 per day (total > 40000) � documentation: between 50 to 300 per day
� Included in � Debian, Ubuntu, Fedora, OpenSUSE, Gentoo, FreeBSD, …
Geco
de, C
hrist
ian
Schu
lte
18
Sept
embe
r 201
3
![Page 25: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/25.jpg)
Integration & Standardization � Why C++ as implementation language?
� good compromise between portability and efficiency � good for interfacing well demonstrated
� Integration with XYZ… � Gecode empowers users to do it � no “Jack of all trades, master of none” well demonstrated
� Standardization � any user can build an interface to whatever standard… � systems are the wrong level of abstraction for standardization � MiniZinc and AMPL are de-facto standards
Sept
embe
r 201
3 G
ecod
e, C
hris
tian
Sch
ulte
19
![Page 26: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/26.jpg)
!"#$%&'()*)+,"(,-..&'(
������������������� ���
![Page 27: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/27.jpg)
���
!"#$%&'#&("'
������������������������
�������������������
������� ���
����������������� �
���� �������
![Page 28: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/28.jpg)
� �
!"#$%&'#&("'
� ��� ����������������� ��
� ��������������� ��������������� ���� � �������� � ��
��������������� �� �
��� � � � �
��� ����������� ���
� ��� ��� � �
![Page 29: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/29.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< #=
>?9/?09@
� Program model as script� declare variables� post constraints (creates propagators)� define branching
� Solve script� basic search strategy� Gist: interactive visual search
![Page 30: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/30.jpg)
!"#$"%&'(#)*+'%,'-."/01
![Page 31: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/31.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< #=
56/0>2?,@A9/A09B
� Script is class inheriting from class Space� members store variables regarded as solution
� Script constructor� initialize variables� post propagators for constraints� define branching
� Copy constructor and copy function� copy a Script object during search
� Exploration takes Script object as input� returns object representing solution
� Main function� invokes search engine
![Page 32: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/32.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< #=
56/0>2,?@/,5AAB,52/7627/9
!"#$%&'()*+($,'(-"#./001!"#$%&'()*+($,'(-2(34$0/001
&2"#+)#35(263$()7($,'(8
$%322)9(#':,4(:,#(; <)6&=%"$)963$()>64,.($.('<?#.@34A443; %8)--)B"+".2)C,4).0()%(..(42
6&=%"$<--)D,#2.4&$.,4)C,4)2$4"6.9(#':,4(:,#(;� ������������--)D,#2.4&$.,4)C,4)$%,#"#+9(#':,4(:,#(;E=,,% 2034(F)9(#':,4(:,#(;������������--)G(4C,45)$,6;"#+)'&4"#+)$%,#"#+H"4.&3%)963$(I)$,6;E=,,% �����������--)G4"#.)2,%&.",# �������� ����������
J8
�
![Page 33: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/33.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !"
56/0=2,>?/,5@@A,52/7627/9
!"#$%&'()*+($,'(-"#./001!"#$%&'()*+($,'(-2(34$0/001
&2"#+)#35(263$()7($,'(8
$%322)9(#':,4(:,#(; <)6&=%"$)963$()>64,.($.('<?#.@34A443; %8)--)B"+".2)C,4).0()%(..(42
6&=%"$<--)D,#2.4&$.,4)C,4)2$4"6.9(#':,4(:,#(;� ������������--)D,#2.4&$.,4)C,4)$%,#"#+9(#':,4(:,#(;E=,,% 2034(F)9(#':,4(:,#(;������������--)G(4C,45)$,6;"#+)'&4"#+)$%,#"#+H"4.&3%)963$(I)$,6;E=,,% �����������--)G4"#.)2,%&.",# �������� ����������
J8
�
array of integer variables stores solution
![Page 34: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/34.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !#
56/0=2,>?/,5@@A,52/7627/9
!"#$%&'()*+($,'(-"#./001!"#$%&'()*+($,'(-2(34$0/001
&2"#+)#35(263$()7($,'(8
$%322)9(#':,4(:,#(; <)6&=%"$)963$()>64,.($.('<?#.@34A443; %8)--)B"+".2)C,4).0()%(..(42
6&=%"$<--)D,#2.4&$.,4)C,4)2$4"6.9(#':,4(:,#(;� ������������--)D,#2.4&$.,4)C,4)$%,#"#+9(#':,4(:,#(;E=,,% 2034(F)9(#':,4(:,#(;������������--)G(4C,45)$,6;"#+)'&4"#+)$%,#"#+H"4.&3%)963$(I)$,6;E=,,% �����������--)G4"#.)2,%&.",# �������� ����������
J8
�
constructor: initialize variables, post
constraints, define branching
![Page 35: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/35.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !!
56/0=2,>?/,5@@A,52/7627/9
!"#$%&'()*+($,'(-"#./001!"#$%&'()*+($,'(-2(34$0/001
&2"#+)#35(263$()7($,'(8
$%322)9(#':,4(:,#(; <)6&=%"$)963$()>64,.($.('<?#.@34A443; %8)--)B"+".2)C,4).0()%(..(42
6&=%"$<--)D,#2.4&$.,4)C,4)2$4"6.9(#':,4(:,#(;� ������������--)D,#2.4&$.,4)C,4)$%,#"#+9(#':,4(:,#(;E=,,% 2034(F)9(#':,4(:,#(;������������--)G(4C,45)$,6;"#+)'&4"#+)$%,#"#+H"4.&3%)963$(I)$,6;E=,,% �����������--)G4"#.)2,%&.",# �������� ����������
J8
�
copy constructor and copy function
![Page 36: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/36.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !%
56/0=2,>?/,5@@A,-?412/762?/
!"#$%&'"%&#"()*&+$,-.-/)012+34-54-64-7,-89#1:;' 3)/<6=,4-")/<>=,4-#)/<?=,4-$)/<@=,4
A)/<B=,4-&)/<C=,4-')/<D=,4-()/<E=,FGG-H&31-I';+#13�GG-H&31-J';#I2+#K3�
L
![Page 37: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/37.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !)
56/0=2,>?/,5@@A,-?412/762?/
!"#$%&'"%&#"()*&+$,-.-/)012+34-54-64-7,-89#1:;' 3)/<6=,4-")/<>=,4-#)/<?=,4-$)/<@=,4
A)/<B=,4-&)/<C=,4-')/<D=,4-()/<E=,FGG-H&31-I';+#13�GG-H&31-J';#I2+#K3�
L variables created in this script (space)
![Page 38: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/38.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !&
56/0=2,>?/,5@@A,-?412/762?/
!"#$%&'"%&#"()*&+$,-.-/)012+34-54-64-7,-89#1:;' 3)/<6=,4-")/<>=,4-#)/<?=,4-$)/<@=,4
A)/<B=,4-&)/<C=,4-')/<D=,4-()/<E=,FGG-H&31-I';+#13�GG-H&31-J';#I2+#K3�
L
8 variables
![Page 39: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/39.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !=
56/0>2,?@/,5AAB,-@412/762@/
!"#$%&'"%&#"()*&+$,-.-/)012+34-54-64-7,-89#1:;' 3)/<6=,4-")/<>=,4-#)/<?=,4-$)/<@=,4
A)/<B=,4-&)/<C=,4-')/<D=,4-()/<E=,FGG-H&31-I';+#13�GG-H&31-J';#I2+#K3�
L
take values between 0 and 9
(digits)
![Page 40: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/40.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !=
56/0>2,?@/,5AAB,-@412/762@/
!"#$%&'"%&#"()*&+$,-.-/)012+34-54-64-7,-89#1:;' 3)/<6=,4-")/<>=,4-#)/<?=,4-$)/<@=,4
A)/<B=,4-&)/<C=,4-')/<D=,4-()/<E=,FGG-H&31-I';+#13�GG-H&31-J';#I2+#K3�
L refer to variables by their letters
![Page 41: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/41.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !=
56/0>2,?@/,5AAB,-@412/762@/
!"#$%&'"%&#"()*&+$,-.-/)012+34-54-64-7,-89#1:;' 3)/<6=,4-")/<>=,4-#)/<?=,4-$)/<@=,4
A)/<B=,4-&)/<C=,4-')/<D=,4-()/<E=,FGG-H&-/";$+#I-J"'&3-)9KL.-+#1"I"'-'"/;1+&#-1(M",'"/)012+34-34-9KLNHO4-6,F-'"/)012+34-A4-9KLNHO4-6,FGG-P//-/"11"'3-AQ31-1;R"-$+31+#S1-$+I+13$+31+#S1)012+34-/,FGG-L2"-/+#";'-"TQ;1+&#-AQ31-2&/$�GG-U';#S2-&*"'-12"-/"11"'3�
V
![Page 42: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/42.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< !=
>?1204@,-?412/30421
� Defined in namespace !"#$%"
� Check documentation for available constraints
� Take script reference as first argument� where is the propagator for the constraint to be posted!� script is a subclass of Space (computation space)
![Page 43: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/43.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %"
*0493/,=>7320?41,34@,*0493/,-?412/30421
� Equations of the formc1�x1 ������cn�xn = d
� integer constants: ci and d� integer variables: xi
� In Gecode specified by arrays� integers (!"#$%&'( ci� variables (!"#)*%$%%*+,-!"#)*%$%&'( xi
� Not only equations� !./012,-!./032,-!./041,-!./05.,-!./042,-!./052� equality, disequality, inequality (less, greater, less or equal, greater or
equal)
![Page 44: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/44.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %#
56/0=2,>?/,5@@A,-?412/762?/
!"#$%&'"%&#"()*&+$,-.-/)012+34-54-64-7,-8�99-:2"-/+#";'-"<=;1+&#->=31-2&/$?#1@'A3 B)CDCDE,F-?#1G;'@'A3 H)CDCDE,FBI6JKL666F-BILJKL66F-BIMJKL6F-BINJKLFHI6JK3F----HILJK"F---HIMJK#F--HINJK$FBICJKL666F-BIEJKL66F-BIOJKL6F-BIPJKLFHICJK>F----HIEJK&F---HIOJK'F--HIPJK"FBI5JKQL6666F-BI7JKQL666F-BIL6JKQL66F-BILLJKQL6F-BILMJKQLFHI5JK>F------HI7JK&F-----HIL6JK#F----HILLJK"F---HILMJK(F/+#";')012+34-B4-H4-?R:STU4-6,F99-V';#B2-&*"'-12"-/"11"'3�
W
![Page 45: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/45.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %!
*0493/,=>?/9110@41
� Other options for posting linear constraints are available: minimodeling support
� linear expressions� Boolean expressions� matrix classes� �
� See the examples that come with Gecode
![Page 46: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/46.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %%
56/0=2,>?/,5@@A,-?412/762?/
�!"#$%&'()*+($,'(-."#".,'(%/001
�
2(#'3,4(3,#(567,"'8)9)%6:;0"<=)>=)?=)@8)A
�--)B0()%"#(C4)(D&C;",#).&<;)0,%'
E,<;6:;0"<=)))))))))))))F???:<)G)F??:()G)F?:#)G)'
G)F???:.)G)F??:,)G)F?:4)G)(
HH)F????:.)G)F???:,)G)F??:#)G)F?:()G)58I
--)J4C#$0),7(4);0()%(;;(4<
�K
![Page 47: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/47.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %)
56/0=2,>?/,5@@A,-?412/762?/
!"#$%&'"%&#"()*&+$,-.-/)012+34-54-64-7,-8�99-:';#<2-&*"'-12"-/"11"'3=';#<2)012+34-/4->?@ABCDA!>EFA%>?4->?@ABCGA%>?,H
I
![Page 48: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/48.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %&
=/346.04>
� Which variable to choose� given order !"#$%&'$"(")� smallest size !"#$%&'$*!+)$,!"� smallest minimum !"#$%&'$,!"$,!"� �
� How to branch: which value to choose� try smallest value !"#$%&-$,!"� split (lower first) !"#$%&-$*.-!#$,!"� �
![Page 49: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/49.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %=
56/0>2,?@/,5AAB,-@>C04D
!!"#$%&'()*'$("+$("*,$%-%./0%12$(02$%0345$$, &67(08"/0%12$(02$%039"&:";"/<7*04&67(08"&:"=
,>)<17'04?'6-&8"&67(08"&>,:@A!!"B0(+$(C"*$<3-%."1)(-%."*,$%-%.D-(')7,"/<7*0?"*$<345$$, &67(0:"=
(0')(%"%0E"/0%12$(02$%034&67(08?'6-&:@A
![Page 50: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/50.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %=
56/0>2,?@/,5AAB,-@>C04D
!!"#$%&'()*'$("+$("*,$%-%./0%12$(02$%0345$$, &67(08"/0%12$(02$%039"&:";"/<7*04&67(08"&:"=
,>)<17'04?'6-&8"&67(08"&>,:@A!!"B0(+$(C"*$<3-%."1)(-%."*,$%-%.D-(')7,"/<7*0?"*$<345$$, &67(0:"=
(0')(%"%0E"/0%12$(02$%034&67(08?'6-&:@A
update all variables needed
for solution
![Page 51: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/51.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %=
56/0>2,?@/,5AAB,-@>C04D
!!"#$%&'()*'$("+$("*,$%-%./0%12$(02$%0345$$, &67(08"/0%12$(02$%039"&:";"/<7*04&67(08"&:"=
,>)<17'04?'6-&8"&67(08"&>,:@A!!"B0(+$(C"*$<3-%."1)(-%."*,$%-%.D-(')7,"/<7*0?"*$<345$$, &67(0:"=
(0')(%"%0E"/0%12$(02$%034&67(08?'6-&:@A
create a new copy of the space
during cloning
![Page 52: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/52.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< %=
->?@04A
� Required during exploration� before starting to guess: make copy� when guess is wrong: use copy� discussed later
� Copy constructor and copy function needed� copy constructor is specific to script� updates (copies) variables in particular
![Page 53: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/53.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< )"
-=>?,-=412/762=/,@4A,-=>?,B74620=4
� Always same structure
� Important!� must update the variables of a script!� ���������������������������� ���
![Page 54: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/54.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< )#
56/0=2,>?/,5@@A,B/042,C74620?4
�!!"#$%&'"()*+'%)&,)%-".$%&'/,)%-0"1
('-223)+' 44"*"44"('-225&-*67
![Page 55: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/55.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< )!
57==3/>?,56/0@2
� Variables� declare as members� initialize in constructor� update in copy constructor
� Posting constraints� Create branching� Provide copy constructor and copy function
![Page 56: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/56.jpg)
!"#$%&'(!)*%+,-
![Page 57: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/57.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< ))
=>3083?89,593/6.,@4A0491
� Returning solutions one by one for script� !"# depth-first search� $%$ branch-and-bound� &'()*+),-.!#
� Interactive, visual search� /0()
![Page 58: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/58.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< )&
=304,=92.>?@,A0/12,5>8720>4
�
!"# $%!"&!"# %'()*+),%'-+%'(./01+234"567'467"48-+$+9+"4:+34"567'467"48;<=3>34"567'467"48?+4&$1;54@4#4+$;!A+&34"567'467"48-+B+9+4C"4D#&11+2
BE?F'!"#&1;+54@4#4+B;G'4#H'"+I;
G
![Page 59: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/59.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< )=
>304,>92.?@A,B0/12,5?8720?4
�
!"# $%!"&!"# %'()*+),%'-+%'(./01+234"567'467"48-+$+9+"4:+34"567'467"48;<=3>34"567'467"48?+4&$1;54@4#4+$;!A+&34"567'467"48-+B+9+4C"4D#&11+2
BE?F'!"#&1;+54@4#4+B;G'4#H'"+I;
G
create root space for search
![Page 60: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/60.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< )=
>304,>92.?@A,B0/12,5?8720?4
�
!"# $%!"&!"# %'()*+),%'-+%'(./01+234"567'467"48-+$+9+"4:+34"567'467"48;<=3>34"567'467"48?+4&$1;54@4#4+$;!A+&34"567'467"48-+B+9+4C"4D#&11+2
BE?F'!"#&1;+54@4#4+B;G'4#H'"+I;
G
create search engine (takes
clone of $)
![Page 61: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/61.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< )=
>304,>92.?@A,B0/12,5?8720?4
�
!"# $%!"&!"# %'()*+),%'-+%'(./01+234"567'467"48-+$+9+"4:+34"567'467"48;<=3>34"567'467"48?+4&$1;54@4#4+$;!A+&34"567'467"48-+B+9+4C"4D#&11+2
BE?F'!"#&1;+54@4#4+B;G'4#H'"+I;
G
root space not any longer
needed
![Page 62: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/62.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< )=
>304,>92.?@A,B0/12,5?8720?4
�
!"# $%!"&!"# %'()*+),%'-+%'(./01+234"567'467"48-+$+9+"4:+34"567'467"48;<=3>34"567'467"48?+4&$1;54@4#4+$;!A+&34"567'467"48-+B+9+4C"4D#&11+2
BE?F'!"#&1;+54@4#4+B;G'4#H'"+I;
G
search first solution and
print it
![Page 63: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/63.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< &"
=304,=92.>?@,A88,5>8720>41
�
!"# $%!"&!"# %'()*+),%'-+%'(./01+234"567'467"48-+$+9+"4:+34"567'467"48;<=3>34"567'467"48?+4&$1;54@4#4+$;:,!@4+&34"567'467"48-+A+9+4B"4C#&11+2
AD?E'!"#&1;+54@4#4+A;F'4#G'"+H;
F
![Page 64: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/64.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< &#
=96>?9,=012
� A graphical tool for exploring the search tree� explore tree step by step� tree can be scaled� double-clicking node prints information: inspection� search for next solution, all solutions� �
� Best to play a little bit by yourself� hide and unhide failed subtrees� �
![Page 65: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/65.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< &!
=304,>74620?4@,A012
!"#$%&'()*+($,'(-+"./0112
"#/ 34"#5"#/ 46+$7)$1468)46+9:;<)=>(#'?,6(?,#(@8)3)A)#(B)>(#'?,6(?,#(@CD"./EE'F.53<C'(%(/()3C6(/&6#)GC
H
![Page 66: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/66.jpg)
!"#$%&'())*#+,$
-./.0.10-2 34--.506.-7%8+("#$"9*%&'+:;$)7%38<7%=<> 21
![Page 67: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/67.jpg)
!"#$%&'()$*'+%&",-./
![Page 68: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/68.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< &&
=9>04?9/@,5AABB
� Find distinct digits for letters, such that
and !"#$% maximal
&$#'
( !"&)
* !"#$%
![Page 69: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/69.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< &=
56/0>2,?@/,5AABB
� Similar, please try it yourself at home� In the following, referred to by !"#$%&'(%&#")
![Page 70: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/70.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< &=
5>8?04@,5AABBC,D/E9/
� Principle� for each solution found, constrain remaining search for better
solution
� Implemented as additional method!"#$%&'(!)"*(+),-$#&",.+),-$(/0&+12(34(5�
6
� Argument 3 refers to so far best solution� only take values from 3� never mix variables!
� Invoked on object to be constrained
![Page 71: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/71.jpg)
!""#$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< &=
>/?9/,@A/,5BBCC
!"#$%&'(!)"*(+),-$#&",.+),-$(/0&+12(345(6
+),-$(/1,*7)-$7),182(4(9(
-$&$"+3+&-$:+),-$(/1,*7)-$7),182;.345<
=,$>&# 1.'?@A5B(,.'?CA5B(D.'?EA5B().'?FA5B(8.'?GA5<
=,$>&# 431.4H'?@A5B(43,.4H'?CA5B(43D.4H'?EA5B(
43).4H'?FA5B(438.4H'?GA5<
",$ D),18(9(.@IIIIJ43DH!&'.5K@IIIJ43)H!&'.5K@IIJ43,H!&'.5K
@IJ431H!&'.5K438H!&'.55<
0)-$.J$L"-B(@IIIIJDK@IIIJ)K@IIJ,K@IJ1K8 ;(D),185<
M
![Page 72: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/72.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< &=
>304,>92.?@A,B88,5?8720?41
�
!"# $%!"&!"# %'()*+),%'-+%'(./01+234"5678#67"49-+$+:+"4;+34"5678#67"49<=>=?34"5678#67"49@+4&$1<54A4#4+$<;,!A4+&34"5678#67"49-+8+:+4B"4C#&11+2
8D@E'!"#&1<+54A4#4+8<F'4#G'"+H<
F
![Page 73: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/73.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< ="
>304,?74620@4A,B012
!"#$%&'()*+($,'(-+"./0112
"#/ 34"#5"#/ 46+$7)$1468)46+9:;<)=>(#'?,./?,#(@8)3)A)#(B)>(#'?,./?,#(@CD"./EEF4F53<C'(%(/()3C6(/&6#)GC
H
![Page 74: CP Solvers Gecode - SDU · CP Solvers Gecode MarcoChiarandini Department of Mathematics & Computer Science ... 7. Constraint Languages Other Approaches Gecode Modellinglanguages:](https://reader030.fdocuments.in/reader030/viewer/2022040610/5ece22b61de8721bff1f8f01/html5/thumbnails/74.jpg)
!"#"$"%$!& '(!!")$*"!+,-./012034,56.7829+,'-:+,;:< =#
57>>3/?@,5A8B04C
� Result-only search engines� !"#$%&'&
� Interactive search engine� ()*+
� Best solution search uses constrain-method for posting constraint
� Search engine independent of script and constrain-method