this repo has no description
1#
2# Main authors:
3# Christian Schulte <schulte@gecode.org>
4#
5# Copyright:
6# Christian Schulte, 2005
7#
8# This file is part of Gecode, the generic constraint
9# development environment:
10# http://www.gecode.org
11#
12# Permission is hereby granted, free of charge, to any person obtaining
13# a copy of this software and associated documentation files (the
14# "Software"), to deal in the Software without restriction, including
15# without limitation the rights to use, copy, modify, merge, publish,
16# distribute, sublicense, and/or sell copies of the Software, and to
17# permit persons to whom the Software is furnished to do so, subject to
18# the following conditions:
19#
20# The above copyright notice and this permission notice shall be
21# included in all copies or substantial portions of the Software.
22#
23# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30#
31
32#
33# This file contains entries for changelogs
34#
35# There are two kinds of entries: one marking releases and the others
36# being actual entries.
37#
38# All the lines for describing entries must start at the beginning.
39#
40# A release is described as follows:
41# [RELEASE]
42# Version: <version string>
43# Date: <when release>
44# [DESCRIPTION]
45# ... All the text up to the next [ENTRY] is included
46# as description
47#
48# An entry is described as follows:
49# [ENTRY]
50# Module:
51# kernel|search|int|set|cpltset|example|minimodel|iter|support|
52# driver|test|gist|flatzinc|other
53# What: bug|documentation|performance|new|removed|change
54# Rank: minor|major
55# Bug: <optional, for number from bugzilla>
56# Issue: <optional, for number from github>
57# Thanks: <optional, who reported etc>
58# [DESCRIPTION]
59# ... All the text up to the next [ENTRY] or [RELEASE] is included
60# as description
61# [MORE]
62# ... If a more section is included, then it will be displayed as an
63# optional section in the html page.
64#
65
66[RELEASE]
67Version: 6.3.1
68Date: 2020-??-??
69[DESCRIPTION]
70Let's see.
71
72[RELEASE]
73Version: 6.3.0
74Date: 2020-??-??
75[DESCRIPTION]
76Let's see.
77
78[ENTRY]
79Module: flatzinc
80What: change
81Rank: minor
82Thanks: Jip J. Dekker
83[DESCRIPTION]
84Automatically generate and install a MiniZinc solver configuration and
85install MiniZinc library into the share/minizinc/gecode standard location.
86
87[ENTRY]
88Module: int
89What: new
90Rank: minor
91[DESCRIPTION]
92Add versions of element constraints with offsets, to enable fast domain
93consistent index set transformations.
94
95[ENTRY]
96Module: flatzinc
97What: change
98Rank: minor
99[DESCRIPTION]
100Use element-with-offset and 2d element propagators instead of performing
101index transformations in MiniZinc.
102
103[ENTRY]
104Module: flatzinc
105What: change
106Rank: minor
107[DESCRIPTION]
108Accept combined -cp-profiler flag for activating CP-Profiler and always
109send information to profiler.
110
111[ENTRY]
112Module: driver
113What: change
114Rank: minor
115[DESCRIPTION]
116Accept combined -cp-profiler flag for activating CP-Profiler instead of
117using separate script mode.
118
119[ENTRY]
120Module: test
121What: bug
122Rank: minor
123[DESCRIPTION]
124Fix testing for IntAction, BoolAction, SetAction, FloatAction with
125merit functions.
126
127[ENTRY]
128Module: flatzinc
129What: change
130Issue: 77
131Rank: minor
132[DESCRIPTION]
133Move parser.tab.hh to parser.tab.hpp, Bison's standard location. This
134ensures that the generated implementation file is compatible with
135Bison 3.7.
136
137[ENTRY]
138Module: flatzinc
139What: bug
140Issue: 61
141Rank: minor
142[DESCRIPTION]
143Fix fzn_table_bool and fzn_table_bool_reif predicates, which had
144incorrect types.
145
146[ENTRY]
147Module: other
148What: change
149Rank: minor
150Issue: 63
151Thanks: Markus Elfring
152[DESCRIPTION]
153Remove usages of reserved identifiers such as __GECODE_KERNEL_HH__ and
154_View.
155[MORE]
156Gecode used to use include guards of the form __GECODE_KERNEL_HH__.
157Using a double underscore in an identifier is reserved, and thus
158undefined behaviour. Use guards of the form GECODE_KERNEL_HH instead.
159Similarly, names with a single leading underscore followed by a
160capital letter are also reserved, and usage is thus undefined
161behaviour, and are removed.
162
163[ENTRY]
164Module: flatzinc
165What: new
166Rank: minor
167[DESCRIPTION]
168Add MiniZinc constraint names to FlatZinc errors when applicable and
169available.
170[MORE]
171A constraint name is specified in MiniZinc using a string annotation
172"my name" on the constraint item, and is translated into FlatZinc
173using the mzn_constraint_name("my name").
174
175[ENTRY]
176Module: flatzinc
177What: bug
178Rank: minor
179[DESCRIPTION]
180The cumulative constraint now respects the semantics of the MiniZinc
181definition for 0-duration tasks.
182
183[ENTRY]
184Module: flatzinc
185What: bug
186Rank: minor
187[DESCRIPTION]
188The roots and int_set_channel constraints now work for empty sets and arrays.
189
190[ENTRY]
191Module: flatzinc
192What: change
193Rank: minor
194[DESCRIPTION]
195The MiniZinc global constraint library has been updated for MiniZinc
196version 2.3.0 and higher, taking advantage of the new library
197structure that separates the modelling-level definition of a predicate
198from the solver-level one.
199
200[ENTRY]
201Module: minimodel
202What: change
203Rank: minor
204Thanks: Marco Correia
205[DESCRIPTION]
206Do not require that cost for FloatMinimizeSpace (use the maximum
207instead) and FloatMaximizeSpace (use the minimum instead) must be
208assigned.
209
210[ENTRY]
211Module: kernel
212What: bug
213Rank: minor
214Thanks: Konstantin Popov
215[DESCRIPTION]
216Fixed crash when killing the last propagator in a space.
217
218[ENTRY]
219Module: example
220What: bug
221Rank: minor
222Thanks: Florian Fontan
223[DESCRIPTION]
224Do not use size-based symmetry breaking together with CDBF.
225
226[ENTRY]
227Module: kernel
228What: change
229Rank: minor
230Thanks: John W. Spirent
231[DESCRIPTION]
232Some small changes to compile with MSVC 2015 again.
233
234[ENTRY]
235Module: int
236What: change
237Rank: minor
238Thanks: John W. Spirent
239[DESCRIPTION]
240Some small changes to compile with MSVC 2015 again.
241
242[ENTRY]
243Module: set
244What: change
245Rank: minor
246Thanks: John W. Spirent
247[DESCRIPTION]
248Some small changes to compile with MSVC 2015 again.
249
250[ENTRY]
251Module: set
252What: bug
253Rank: minor
254Thanks: Mats Carlsson
255[DESCRIPTION]
256Fix bool-set channel propagator to work correctly when posted
257with a fixed set variable.
258
259[ENTRY]
260Module: flatzinc
261What: change
262Rank: minor
263Thanks: Jip J. Dekker
264[DESCRIPTION]
265Update the error produced by the FlatZinc parser when an integer
266literal is outside Gecode's integer limits.
267
268[ENTRY]
269Module: flatzinc
270What: change
271Rank: minor
272[DESCRIPTION]
273The number of nodes and failures is now of type unsigned long
274long int. Time is now consistently of type double.
275
276[ENTRY]
277Module: driver
278What: change
279Rank: minor
280[DESCRIPTION]
281The number of propagations, nodes, and failures is now of type
282unsigned long long int. Time is now consistently of type double.
283
284[ENTRY]
285Module: search
286What: change
287Rank: minor
288[DESCRIPTION]
289The number of nodes and failures in statistics is now of type
290unsigned long long int. Time is now consistently of type double.
291
292[ENTRY]
293Module: kernel
294What: change
295Rank: minor
296[DESCRIPTION]
297The number of propagations in statistics is now of type unsigned
298long long int.
299
300[ENTRY]
301Module: search
302What: bug
303Rank: minor
304[DESCRIPTION]
305The linear cutoff generator started at zero rather than at the
306scale factor.
307
308[ENTRY]
309Module: kernel
310What: new
311Rank: minor
312[DESCRIPTION]
313For action-based branching heuristics, one can now define whether
314failure, propagation, or both should be considered.
315
316
317[RELEASE]
318Version: 6.2.0
319Date: 2019-04-12
320[DESCRIPTION]
321The release enables half-reification in FlatZinc, fixes
322indeterminstic behavior for shared branching criteria, and fixes
323several aspects for general tracers. It is recommended to upgrade
324as soon as possible.
325
326[ENTRY]
327Module: flatzinc
328What: change
329Rank: minor
330Thanks: Jip J. Dekker
331[DESCRIPTION]
332Enable support for half-reified constraints in the Gecode MiniZinc
333library. Half-reified constraints are used when a MiniZinc
334expression has to be reified and is detected to be in a positive
335context. If no Half-reified constraint has been made available by
336solver, the full reification will be used. Half-reifed constraints
337in the MiniZinc solver library are declared in the same way as
338reified constraints, but are appended by "_imp" instead of "_reif".
339
340[ENTRY]
341Module: kernel
342What: bug
343Rank: major
344[DESCRIPTION]
345For the combination of some constraints (min, max, nvalues, and
346some constraints over Boolean variables) with shared variable
347selection branching (that is, AFC, Action, and CHB) the behavior
348of Gecode was indeterminstic. The indeterminism was based on
349using memory addresses for determining the order of variables in
350some propagators which in turn affected which propagator might
351record failure first and hence influenced the branching decisions.
352
353[ENTRY]
354Module: int
355What: bug
356Rank: major
357[DESCRIPTION]
358For the combination of binpacking and linear constraints with
359shared variable selection branching (that is, AFC, Action, and
360CHB) the behavior of Gecode was indeterminstic. The indeterminism
361was based on using memory addresses for determining the order of
362variables which in turn affected which propagator might record
363failure first and hence influenced the branching decisions.
364
365[ENTRY]
366Module: example
367What: new
368Rank: minor
369[DESCRIPTION]
370Added job-shop scheduling example.
371
372[ENTRY]
373Module: int
374What: new
375Rank: minor
376[DESCRIPTION]
377Added order constraint for two unary scheduling tasks.
378
379[ENTRY]
380Module: flatzinc
381What: new
382Rank: minor
383[DESCRIPTION]
384Support minimum_arg_bool and maximum_arg_bool constraints.
385
386[ENTRY]
387Module: flatzinc
388What: change
389Rank: minor
390[DESCRIPTION]
391Use native offset calculation instead of additional constraints
392for argmin/argmax constraints.
393
394[ENTRY]
395Module: int
396What: new
397Rank: minor
398[DESCRIPTION]
399Add BoolVar versions of argmax and argmin.
400
401[ENTRY]
402Module: kernel
403What: change
404Rank: major
405Thanks: Conrad Drescher
406[DESCRIPTION]
407The logic for recording events for general tracers was seriously
408broken as events after a call to status() have been ignored.
409
410[ENTRY]
411Module: float
412What: bug
413Rank: minor
414Thanks: Kurt Van Den Branden
415[DESCRIPTION]
416Restore floating point rounding mode under Windows.
417
418[ENTRY]
419Module: kernel
420What: change
421Rank: minor
422Thanks: Conrad Drescher
423[DESCRIPTION]
424Added TE_POST for default arguments for general tracers.
425
426[ENTRY]
427Module: search
428What: removed
429Rank: minor
430[DESCRIPTION]
431The special constructors for PBS with up to four SEB's have been
432removed. Use the SEBs class instead.
433
434[ENTRY]
435Module: int
436What: new
437Rank: major
438[DESCRIPTION]
439Variables to be assigned during search can now be selected with
440all available selection criteria available for branching.
441
442[ENTRY]
443Module: int
444What: new
445Rank: minor
446[DESCRIPTION]
447Omitting the variable selection criterion is equivalent to
448INT_VAR_NONE().
449
450[ENTRY]
451Module: set
452What: new
453Rank: major
454[DESCRIPTION]
455Variables to be assigned during search can now be selected with
456all available selection criteria available for branching.
457
458[ENTRY]
459Module: set
460What: new
461Rank: minor
462[DESCRIPTION]
463Omitting the variable selection criterion is equivalent to
464SET_VAR_NONE().
465
466[ENTRY]
467Module: float
468What: new
469Rank: major
470[DESCRIPTION]
471Variables to be assigned during search can now be selected with
472all available selection criteria available for branching.
473
474[ENTRY]
475Module: float
476What: new
477Rank: minor
478[DESCRIPTION]
479Omitting the variable selection criterion is equivalent to
480FLOAT_VAR_NONE().
481
482
483[RELEASE]
484Version: 6.1.1
485Date: 2019-02-14
486[DESCRIPTION]
487This release fixes a number of minor issues and adds post events
488to general tracers.
489
490[ENTRY]
491Module: flatzinc
492What: bug
493Rank: minor
494[DESCRIPTION]
495Change table and regular predicates to take 1d arrays as arguments.
496Otherwise the generated FlatZinc does not typecheck.
497
498[ENTRY]
499Module: flatzinc
500What: bug
501Rank: minor
502[DESCRIPTION]
503Add colon to statistics output to conform with FlatZinc specification.
504
505[ENTRY]
506Module: kernel
507What: bug
508Rank: minor
509Thanks: Conrad Drescher
510[DESCRIPTION]
511Use locks to guard mutexes in case tracers throw exceptions.
512
513[ENTRY]
514Module: search
515What: bug
516Rank: minor
517Thanks: Conrad Drescher
518[DESCRIPTION]
519Use locks to guard mutexes in case tracers throw exceptions.
520
521[ENTRY]
522Module: minimodel
523What: bug
524Rank: minor
525Thanks: Conrad Drescher
526[DESCRIPTION]
527exp(0.0) now correctly evaluates to 1.0 (and not 0.0).
528
529[ENTRY]
530Module: int
531What: changed
532Rank: minor
533Thanks: Jens Krueger
534[DESCRIPTION]
535All constructors and the bool test operator of IntSet have been
536made explicit to avoid unintended behavior.
537
538[ENTRY]
539Module: other
540What: new
541Rank: minor
542Thanks: Jip J. Dekker
543[DESCRIPTION]
544Added installation target to the CMake configuration.
545
546[ENTRY]
547Module: other
548What: change
549Rank: minor
550[DESCRIPTION]
551Fix compilation problems with the Microsoft Visual Studio IDE
552which uses -permissive- as default, rather than -permissive as
553cl.exe does.
554
555[ENTRY]
556Module: kernel
557What: new
558Rank: major
559[DESCRIPTION]
560General tracers now support post events, see MPG for details.
561
562[ENTRY]
563Module: other
564What: change
565Rank: minor
566Thanks: Jip J. Dekker
567[DESCRIPTION]
568Removed the use of glibc macros in the architecture selection
569process of the boost interval library. This allows for the
570compilation on unix machines based on a different implementation
571of the C library.
572
573[ENTRY]
574Module: example
575What: new
576Rank: minor
577Author: Samuel Gagnon
578[DESCRIPTION]
579Added example for magic squares with pre-filled instances.
580
581[ENTRY]
582Module: kernel
583What: bug
584Rank: minor
585Author: Conrad Drescher, Patrick Zimmer
586[DESCRIPTION]
587Fixed potential deadlock when memory has been exhausted.
588
589[RELEASE]
590Version: 6.1.0
591Date: 2018-10-17
592[DESCRIPTION]
593This release adds reified extensional constraints; support for
594negative tables; experimental support for counting-based search
595(thanks to Samuel Gagnon); and support for standard C++
596initializer lists. In addition, the release has lots of bug fixes
597and performance improvements. It is highly recommended to switch
598as soon as possible!
599
600[ENTRY]
601Module: search
602What: change
603Rank: minor
604[DESCRIPTION]
605Support for the CPProfiler is now enabled by default.
606
607[ENTRY]
608Module: int
609What: change
610Rank: minor
611Thanks: Sara Frimodig
612[DESCRIPTION]
613The default propagation for unary has been too weak (likely to
614hurt Gecode in the MiniZinc competitions of 2017 and 2018),
615now the default is back to maximal propagation.
616
617[ENTRY]
618Module: minimodel
619What: bug
620Rank: minor
621Thanks: Matthias Balzer
622[DESCRIPTION]
623Take exponent into account for float expressions with pow
624and nroot.
625
626[ENTRY]
627Module: kernel
628What: change
629Rank: minor
630Thanks: Rui Machado, Jens Krüger
631[DESCRIPTION]
632The alignment of memory allocated from a Region is now as
633prescribed by the maximum of std::max_align_t and
634GECODE_MEMORY_ALIGNMENT (which can be re-defined). Please also check
635MPG for a tip on alignment of memory handeled by Gecode.
636
637[ENTRY]
638Module: flatzinc
639What: new
640Rank: major
641[DESCRIPTION]
642Added native support for reified extensional table constraints.
643
644[ENTRY]
645Module: int
646What: new
647Rank: major
648[DESCRIPTION]
649Added support for reified extensional table constraints.
650
651[ENTRY]
652Module: int
653What: new
654Rank: major
655[DESCRIPTION]
656Added support for negative table for extensional table
657constraints.
658
659[ENTRY]
660Module: int
661What: bug
662Rank: major
663[DESCRIPTION]
664Fixed scheduling for Boolean variables (funnily, only occured
665with a newly added propagator).
666
667[ENTRY]
668Module: kernel
669What: bug
670Rank: minor
671[DESCRIPTION]
672Added missing definitions for declarations of creating Home
673objects from spaces with propagator and brancher groups.
674
675[ENTRY]
676Module: int
677What: new
678Rank: major
679Author: Samuel Gagnon
680[DESCRIPTION]
681Added experimental support for counting-based search. It can be
682enabled by running configure with --enable-cbs. See
683examples/qcp.cpp for an example.
684
685[ENTRY]
686Module: minimodel
687What: bug
688Rank: major
689Thanks: Robin Eklind
690[DESCRIPTION]
691Fixed fall through bug for set expressions.
692
693[ENTRY]
694Module: int
695What: performance
696Rank: minor
697[DESCRIPTION]
698Improved performance of tuple-set extensional constraints by
699maybe 15-20% through reordering loops.
700
701[ENTRY]
702Module: flatzinc
703What: change
704Rank: minor
705[DESCRIPTION]
706Add -t command line option to fzn-gecode, to support new unified
707time limit command line option for FlatZinc solvers.
708
709[ENTRY]
710Module: kernel
711What: change
712Rank: major
713[DESCRIPTION]
714The function shared() for testing whether a view occurs in an
715array or whether two arrays contain at least on shared view is no
716a simple function and not a member function (which means, use
717shared(x,y) instead of x.shared(y)).
718
719[ENTRY]
720Module: kernel
721What: removed
722Rank: major
723[DESCRIPTION]
724Variables cannot any longer be compared by same() and
725before(). If you want to compare two variables x and y whether
726they are identical, use x.varimp() == y.varimp().
727
728[ENTRY]
729Module: int
730What: removed
731Rank: major
732[DESCRIPTION]
733Variables cannot any longer be compared by same() and
734before(). If you want to compare two variables x and y whether
735they are identical, use x.varimp() == y.varimp().
736
737[ENTRY]
738Module: set
739What: removed
740Rank: major
741[DESCRIPTION]
742Variables cannot any longer be compared by same() and
743before(). If you want to compare two variables x and y whether
744they are identical, use x.varimp() == y.varimp().
745
746[ENTRY]
747Module: float
748What: removed
749Rank: major
750[DESCRIPTION]
751Variables cannot any longer be compared by same() and
752before(). If you want to compare two variables x and y whether
753they are identical, use x.varimp() == y.varimp().
754
755[ENTRY]
756Module: kernel
757What: change
758Rank: major
759[DESCRIPTION]
760Views now are compared by the standard C++ operators "==", "!=",
761and "<" (this replaces the same and before functions).
762
763[ENTRY]
764Module: int
765What: change
766Rank: major
767[DESCRIPTION]
768Views now are compared by the standard C++ operators "==", "!=",
769and "<" (this replaces the same and before functions).
770
771[ENTRY]
772Module: set
773What: change
774Rank: major
775[DESCRIPTION]
776Views now are compared by the standard C++ operators "==", "!=",
777and "<" (this replaces the same and before functions).
778
779[ENTRY]
780Module: float
781What: change
782Rank: major
783[DESCRIPTION]
784Views now are compared by the standard C++ operators "==", "!=",
785and "<" (this replaces the same and before functions).
786
787[ENTRY]
788Module: kernel
789What: bug
790Rank: minor
791[DESCRIPTION]
792The SharedArray class now has an equality operator. This fixes
793a problem in the FlatZinc interpreter, which is keeping a hash
794set of arrays that relies on the equality test.
795
796[ENTRY]
797Module: int
798What: change
799Rank: major
800[DESCRIPTION]
801The add function of TupleSet now supports standard initializer
802lists but do not any longer support variable argument lists (as
803the combination is really confusing).
804
805[ENTRY]
806Module: int
807What: change
808Rank: major
809[DESCRIPTION]
810IntArgs now support standard initializer lists but do not any
811longer support variable argument lists (as the combination is
812really confusing). Now one can write IntArgs c({1,2,3}) for
813example.
814
815[ENTRY]
816Module: int
817What: new
818Rank: minor
819[DESCRIPTION]
820DFAs now support standard initializer lists.
821
822[ENTRY]
823Module: int
824What: new
825Rank: minor
826[DESCRIPTION]
827IntSets now support standard initializer lists, for both
828individual elements (for example, IntSet s({1,2,3})) as well as
829ranges (for example, IntSet s({{1,2},{6,9}})).
830
831[ENTRY]
832Module: int
833What: new
834Rank: minor
835[DESCRIPTION]
836Integer and Boolean variable argument arrays now support standard
837initializer lists.
838
839[ENTRY]
840Module: set
841What: new
842Rank: minor
843[DESCRIPTION]
844Set variable argument arrays now support standard initializer
845lists.
846
847[ENTRY]
848Module: float
849What: new
850Rank: minor
851[DESCRIPTION]
852Float variable argument arrays now support standard initializer
853lists.
854
855[ENTRY]
856Module: search
857What: change
858Rank: major
859[DESCRIPTION]
860SEBs now support standard initializer lists but do not any
861longer support variable argument lists (as the combination is
862really confusing).
863
864
865[RELEASE]
866Version: 6.0.1
867Date: 2018-05-21
868[DESCRIPTION]
869Contains a number of small fixes and one large fix for float
870variables (basically, minimodel using float variables would
871always lead to overflow and hence throw an exception).
872
873[ENTRY]
874Module: float
875What: change
876Rank: major
877Thanks: Kurt Van Den Branden
878[DESCRIPTION]
879All constraints over float variables now constrain their
880variables when being posted to avoid overflow.
881
882[ENTRY]
883Module: float
884What: change
885Rank: minor
886[DESCRIPTION]
887The interval for a float value is now printed between "[" and
888"]", whereas the interval for a float variable is printed between
889"[[" and "]]".
890
891[ENTRY]
892Module: float
893What: bug
894Rank: minor
895[DESCRIPTION]
896Float values could not be printed.
897
898[ENTRY]
899Module: minimodel
900What: bug
901Rank: minor
902Thanks: Matthias Balzer
903[DESCRIPTION]
904Fixed strict inequalities for Float relations.
905
906[ENTRY]
907Module: support
908What: bug
909Rank: minor
910Thanks: Kari Pahula
911[DESCRIPTION]
912Fixed compilation problem on 32 bit platforms.
913
914[ENTRY]
915Module: flatzinc
916What: bug
917Rank: minor
918Thanks: Jip J. Dekker
919[DESCRIPTION]
920Fixed the initialisation of the random number generator for the
921FlatZinc executable. This fix ensures the generator is always
922initialised.
923
924[ENTRY]
925Module: support
926What: change
927Rank: minor
928[DESCRIPTION]
929Detect is os_unfair_lock is available at runtime, in order to be able
930to support older versions of macOS in the same binaries.
931
932[ENTRY]
933Module: flatzinc
934What: change
935Rank: minor
936[DESCRIPTION]
937Add support for annotations to control restart strategy.
938
939[RELEASE]
940Version: 6.0.0
941Date: 2018-02-23
942[DESCRIPTION]
943This major release fixes many bugs, adds quite some new
944functionality, and changes how cloning works (most likely the
945biggest change we ever did to %Gecode): the Boolean share argument
946is not any longer needed (see how to change your programs in
947\ref PageHowToChange_6 "How to Change to Gecode 6.0.0"). The added
948functionality includes experimental support for the CPProfiler,
949classes for lexicographic optimization (where the cost is defined
950by an array of variables), a new much faster implementation of
951extensional constraints using tuple sets, and support for tracing
952search engines.
953
954[ENTRY]
955Module: search
956What: bug
957Rank: minor
958[DESCRIPTION]
959The statistics for parallel search engines was wrong.
960
961[ENTRY]
962Module: search
963What: bug
964Rank: major
965[DESCRIPTION]
966Fixed several race conditions during the termination of parallel
967search engines.
968
969[ENTRY]
970Module: support
971What: change
972Rank: minor
973[DESCRIPTION]
974Replace deprecated OSSpinLock with os_unfair_lock on newer versions
975of macOS.
976
977[ENTRY]
978Module: search
979What: bug
980Rank: major
981[DESCRIPTION]
982A sequential portfolio ignored stop objects in certain cases.
983
984[ENTRY]
985Module: flatzinc
986What: change
987Rank: minor
988[DESCRIPTION]
989Share tables for extensional (table) constraints, DFAs for regular
990constraints, and arrays of constants for element constraints.
991
992[ENTRY]
993Module: flatzinc
994What: change
995Rank: minor
996[DESCRIPTION]
997Change default propagation level to bounds propagation for global
998cardinality constraints.
999
1000[ENTRY]
1001Module: support
1002What: change
1003Rank: minor
1004[DESCRIPTION]
1005Bitsets now use 64 bit integers on all 64 bit architectures.
1006
1007[ENTRY]
1008Module: search
1009What: new
1010Rank: major
1011Author: Kevin Leo, Maxim Shishmarev
1012[DESCRIPTION]
1013Added experimental support for the CPProfiler, see MPG for
1014details. This is only enabled, if Gecode has been configured with
1015the option --enable-cpprofiler.
1016
1017[ENTRY]
1018Module: driver
1019What: new
1020Rank: major
1021[DESCRIPTION]
1022A new mode "-mode cpprofiler" and several command-line arguments
1023-cpprofiler-* have been added to connect Gecode to the
1024CPProfiler. For more details, see MPG.
1025
1026[ENTRY]
1027Module: driver
1028What: change
1029Rank: major
1030[DESCRIPTION]
1031No hyphen must be given for a command line switch and both "-"
1032and "--" are automatically added.
1033
1034[ENTRY]
1035Module: int
1036What: change
1037Rank: minor
1038[DESCRIPTION]
1039When posting a simple linear constraint (only two variables with
1040unit coefficients) with default integer propagation level, a
1041domain consistent propagator is posted. Now a domain consistent
1042propagator is always posted if the right-hand side constant is
1043zero and otherwise if the computations required can be done with
1044normal integers.
1045
1046[ENTRY]
1047Module: float
1048What: bug
1049Rank: minor
1050Thanks: Matthias Balzer
1051[DESCRIPTION]
1052Linear constraints now check whether constant coefficients have
1053mixed signs (include zero) and throw an exception if yes.
1054
1055[ENTRY]
1056Module: float
1057What: bug
1058Rank: major
1059Thanks: Matthias Balzer
1060[DESCRIPTION]
1061Linear constraints now check properly for numerical overflow.
1062
1063[ENTRY]
1064Module: flatzinc
1065What: change
1066Rank: minor
1067[DESCRIPTION]
1068Add redefinition of disjunctive_strict in terms of cumulative.
1069
1070[ENTRY]
1071Module: driver
1072What: new
1073Rank: major
1074Thanks: Roberto Castañeda Lozano
1075[DESCRIPTION]
1076Added IntLexMinimizeScript and IntLexMaximizeScript for
1077lexicographic optimization.
1078
1079[ENTRY]
1080Module: minimodel
1081What: new
1082Rank: major
1083Thanks: Roberto Castañeda Lozano
1084[DESCRIPTION]
1085Added IntLexMinimizeSpace and IntLexMaximizeSpace for
1086lexicographic optimization.
1087
1088[ENTRY]
1089Module: driver
1090What: removed
1091Rank: minor
1092[DESCRIPTION]
1093Removed the deprecated classes MinimizeScript and MaximizeScript
1094(use IntMinimizeScript and IntMaximizeScript instead).
1095
1096[ENTRY]
1097Module: minimodel
1098What: removed
1099Rank: minor
1100[DESCRIPTION]
1101Removed the deprecated classes MinimizeSpace and MaximizeSpace
1102(use IntMinimizeSpace and IntMaximizeSpace instead).
1103
1104[ENTRY]
1105Module: int
1106What: new
1107Rank: major
1108Author: Linnea Ingmar
1109[DESCRIPTION]
1110Tuple sets can be initialized from DFAs (and hence regular
1111expressions).
1112
1113[ENTRY]
1114Module: int
1115What: bug
1116Rank: minor
1117Thanks: Peter Stuckey
1118[DESCRIPTION]
1119Perform unsharing even in failed spaces to avoid exceptions in
1120later constraint posting.
1121
1122[ENTRY]
1123Module: minimodel
1124What: new
1125Rank: major
1126Author: Matthias Balzer
1127[DESCRIPTION]
1128Added reified dom-expressions.
1129
1130[ENTRY]
1131Module: minimodel
1132What: new
1133Rank: major
1134Author: Matthias Balzer
1135[DESCRIPTION]
1136Added relations between integer and set expressions.
1137
1138[ENTRY]
1139Module: flatzinc
1140What: bug
1141Rank: major
1142Thanks: Andreas Schutt
1143[DESCRIPTION]
1144Fix syntax errors in definitions of global cardinality predicates.
1145
1146[ENTRY]
1147Module: flatzinc
1148What: change
1149Rank: minor
1150[DESCRIPTION]
1151Make mzn-gecode script use mzn-fzn if minizinc driver is not present.
1152
1153[ENTRY]
1154Module: flatzinc
1155What: change
1156Rank: minor
1157Thanks: Andreas Schutt
1158[DESCRIPTION]
1159Add support for int_pow predicate.
1160
1161[ENTRY]
1162Module: int
1163What: change
1164Rank: minor
1165[DESCRIPTION]
1166Changed accuracy of delta information for integer views (now, all
1167values between new and old lower/upper bound are reported as
1168being discarded).
1169
1170[ENTRY]
1171Module: int
1172What: bug
1173Rank: minor
1174[DESCRIPTION]
1175Tuple sets used for Boolean variables are allowed to contain only
1176zeros and ones as values.
1177
1178[ENTRY]
1179Module: int
1180What: removed
1181Rank: major
1182[DESCRIPTION]
1183Removed IPL_SPEED and IPL_MEMORY as they are not any longer needed.
1184
1185[ENTRY]
1186Module: int
1187What: change
1188Rank: major
1189[DESCRIPTION]
1190Re-implemented tuple sets for simplicity and ease of use. Please
1191see MPG for details.
1192
1193[ENTRY]
1194Module: int
1195What: change
1196Rank: major
1197Author: Linnea Ingmar
1198[DESCRIPTION]
1199Replaced extensional implementation by a single implementation
1200based on the compact-table propagator described in:
1201J. Demeulenaere et. al., Compact-Table: Efficiently filtering
1202table constraints with reversible sparse bit-sets, CP 2016. Pages
1203207-223, LNCS, Springer, 2016. The extensional propagator runs up
1204to ten times faster than the old implementations.
1205
1206[ENTRY]
1207Module: kernel
1208What: bug
1209Rank: major
1210[DESCRIPTION]
1211Fixed virtual method table overwrite bug for Action and CHB.
1212
1213[ENTRY]
1214Module: search
1215What: bug
1216Rank: major
1217[DESCRIPTION]
1218Fixed double deletion bug in parallel portfolio-based search.
1219
1220[ENTRY]
1221Module: int
1222What: bug
1223Rank: minor
1224Thanks: Massimo Morara
1225[DESCRIPTION]
1226Fixed printing of group information for tracing.
1227
1228[ENTRY]
1229Module: float
1230What: bug
1231Rank: minor
1232Thanks: Massimo Morara
1233[DESCRIPTION]
1234Fixed printing of group information for tracing.
1235
1236[ENTRY]
1237Module: set
1238What: bug
1239Rank: minor
1240Thanks: Massimo Morara
1241[DESCRIPTION]
1242Fixed printing of group information for tracing.
1243
1244[ENTRY]
1245Module: kernel
1246What: new
1247Rank: minor
1248[DESCRIPTION]
1249Now it can be controlled by an Boolean argument whether AFC
1250information between spaces is shared or not.
1251
1252[ENTRY]
1253Module: int
1254What: new
1255Rank: minor
1256[DESCRIPTION]
1257Now it can be controlled by an Boolean argument whether AFC
1258information between spaces is shared or not.
1259
1260[ENTRY]
1261Module: set
1262What: new
1263Rank: minor
1264[DESCRIPTION]
1265Now it can be controlled by an Boolean argument whether AFC
1266information between spaces is shared or not.
1267
1268[ENTRY]
1269Module: float
1270What: new
1271Rank: minor
1272[DESCRIPTION]
1273Now it can be controlled by an Boolean argument whether AFC
1274information between spaces is shared or not.
1275
1276[ENTRY]
1277Module: int
1278What: bug
1279Rank: major
1280Thanks: Conrad Drescher
1281[DESCRIPTION]
1282The bounds propagator for abs is now bounds consistent.
1283
1284[ENTRY]
1285Module: set
1286What: new
1287Rank: minor
1288Thanks: Conrad Drescher
1289[DESCRIPTION]
1290Added checks to avoid posting set relation propagators in case
1291their variables are in fact the same.
1292
1293[ENTRY]
1294Module: search
1295What: bug
1296Rank: minor
1297[DESCRIPTION]
1298Fixed a potential memory leak for restart-based search when the
1299root space was failed.
1300
1301[ENTRY]
1302Module: kernel
1303What: removed
1304Rank: minor
1305[DESCRIPTION]
1306Choices do not need to implement a size function.
1307
1308[ENTRY]
1309Module: flatzinc
1310What: change
1311Rank: major
1312Thanks: Maxim Shishmarev
1313[DESCRIPTION]
1314Added support for tracing search engines.
1315
1316[ENTRY]
1317Module: flatzinc
1318What: bug
1319Rank: minor
1320Thanks: Andreas Schutt
1321[DESCRIPTION]
1322Fixed declarations of table_int and table_bool constraints.
1323
1324[ENTRY]
1325Module: kernel
1326What: change
1327Rank: major
1328[DESCRIPTION]
1329Shared handles and objects used to implement most shared data
1330structures in Gecode are thread safe now. In most cases they are
1331lock free.
1332
1333[ENTRY]
1334Module: kernel
1335What: change
1336Rank: major
1337[DESCRIPTION]
1338The Boolean share argument during cloning is not any longer needed.
1339
1340[ENTRY]
1341Module: kernel
1342What: bug
1343Rank: minor
1344[DESCRIPTION]
1345During unsharing of AFC information also the propagator
1346identifiers were changed.
1347
1348[ENTRY]
1349Module: kernel
1350What: change
1351Rank: major
1352[DESCRIPTION]
1353The unsharing of AFC information during cloning is not any longer
1354needed as it happens automatically when a new AFC object is
1355created.
1356
1357[ENTRY]
1358Module: kernel
1359What: new
1360Rank: minor
1361[DESCRIPTION]
1362Regions can be freed without destroying them. Consult MPG for
1363details.
1364
1365[ENTRY]
1366Module: kernel
1367What: change
1368Rank: major
1369[DESCRIPTION]
1370Regions are now created independently of a space and the policy
1371using several regions simultaneously has changed. Consult MPG for
1372details.
1373
1374[ENTRY]
1375Module: search
1376What: bug
1377Rank: major
1378[DESCRIPTION]
1379Fixed a race condition in portfolio-based search.
1380
1381[ENTRY]
1382Module: int
1383What: bug
1384Rank: major
1385[DESCRIPTION]
1386For Boolean variables, an initialized BoolCHB in branching was ignored.
1387
1388[ENTRY]
1389Module: driver
1390What: bug
1391Rank: minor
1392[DESCRIPTION]
1393The -slice commandline option for sequential portfolios is not
1394ignored any longer.
1395
1396
1397[RELEASE]
1398Version: 5.1.0
1399Date: 2017-04-18
1400[DESCRIPTION]
1401This is a rather major release, fixing a number of bugs and
1402adding quite a number of new features. Some of the features
1403require changes to your models.
1404
1405In more detail: extended tracing so that all propagator
1406executions and commit operations can be traced; renamed activity
1407to action to avoid confusion with activity in SAT (and fixed that
1408action information is also recorded during failure); added CHB
1409(conflict-history based branching) heuristic; optimized AFC; all
1410functions taken as arguments by Gecode are now based on
1411std::function-types; instead of branching with INT_VAR_* and
1412INT_VAL_* for Boolean variables, BOOL_VAR_* and BOOL_VAL_* must
1413be used. There are a number of additional changes, so you might
1414want to read the whole changelog.
1415
1416[ENTRY]
1417Module: flatzinc
1418What: bug
1419Rank: minor
1420[DESCRIPTION]
1421Some FlatZinc constraints were not guarded with assertions, which could make
1422Gecode crash on incorrect models.
1423
1424[ENTRY]
1425Module: kernel
1426What: removed
1427Rank: minor
1428[DESCRIPTION]
1429Choices do not need to implement a size() member function (unused
1430since years).
1431
1432[ENTRY]
1433Module: float
1434What: bug
1435Rank: major
1436[DESCRIPTION]
1437The right-hand side of a linear constraint was a number rather
1438than a value (FloatNum rather than FloatVal) leading to rounding
1439errors.
1440
1441[ENTRY]
1442Module: search
1443What: bug
1444Rank: major
1445[DESCRIPTION]
1446Fixed crashes in sequential and parallel portfolios using
1447parallel or restart-based best solution search engines as assets.
1448
1449[ENTRY]
1450Module: kernel
1451What: new
1452Rank: major
1453[DESCRIPTION]
1454Trace recorders have been renamed to variable (or view) trace
1455recorders. New trace recorders have been added that can trace
1456all propagate and commit operations. See MPG for details.
1457
1458[ENTRY]
1459Module: kernel
1460What: new
1461Rank: minor
1462[DESCRIPTION]
1463Tracing now also records failure-events, see MPG for details.
1464
1465[ENTRY]
1466Module: int
1467What: new
1468Rank: minor
1469[DESCRIPTION]
1470Tracing now also records failure-events, see MPG for details.
1471
1472[ENTRY]
1473Module: float
1474What: new
1475Rank: minor
1476[DESCRIPTION]
1477Tracing now also records failure-events, see MPG for details.
1478
1479[ENTRY]
1480Module: set
1481What: new
1482Rank: minor
1483[DESCRIPTION]
1484Tracing now also records failure-events, see MPG for details.
1485
1486[ENTRY]
1487Module: int
1488What: changed
1489Rank: minor
1490Thanks: Conrad Drescher
1491[DESCRIPTION]
1492When posting a simple linear constraint (only two variables with
1493unit coefficients) with default integer propagation level, a
1494domain consistent propagator is posted.
1495
1496[ENTRY]
1497Module: int
1498What: removed
1499Rank: minor
1500[DESCRIPTION]
1501The integer value selections INT_VAL_NEAR_MIN(),
1502INT_VAL_NEAR_MAX(), INT_VAL_NEAR_INC(), and INT_VAL_NEAR_DEC()
1503have been removed. It is much better to use LNS (large
1504neighbourhood search), see MPG for details.
1505
1506[ENTRY]
1507Module: set
1508What: new
1509Rank: minor
1510[DESCRIPTION]
1511Added reified versions of relation constraints between a set and
1512an integer variable.
1513
1514[ENTRY]
1515Module: example
1516What: change
1517Rank: minor
1518[DESCRIPTION]
1519The Social golfers example now includes a model variant that uses
1520integer distinct for ensuring all player-pairs are distinct.
1521
1522[ENTRY]
1523Module: kernel
1524What: change
1525Rank: minor
1526[DESCRIPTION]
1527Replaced initialized() function by operator bool() for RND,
1528Action, AFC, CHB.
1529
1530[ENTRY]
1531Module: set
1532What: new
1533Rank: minor
1534[DESCRIPTION]
1535Added reified cardinality() constraint.
1536
1537[ENTRY]
1538Module: kernel
1539What: change
1540Rank: minor
1541[DESCRIPTION]
1542Disabled propagators can be disabled again (convenience).
1543
1544[ENTRY]
1545Module: other
1546What: change
1547Rank: major
1548[DESCRIPTION]
1549Gecode requires now at least the Microsoft Visual Studio 2013 compiler.
1550
1551[ENTRY]
1552Module: kernel
1553What: new
1554Rank: major
1555[DESCRIPTION]
1556Added support for CHB (conflict-history based branching)
1557heuristic for branching.
1558
1559[ENTRY]
1560Module: int
1561What: new
1562Rank: major
1563[DESCRIPTION]
1564Added support for CHB (conflict-history based branching)
1565heuristic for branching. See MPG for details.
1566
1567[ENTRY]
1568Module: set
1569What: new
1570Rank: major
1571[DESCRIPTION]
1572Added support for CHB (conflict-history based branching)
1573heuristic for branching. See MPG for details.
1574
1575[ENTRY]
1576Module: float
1577What: new
1578Rank: major
1579[DESCRIPTION]
1580Added support for CHB (conflict-history based branching)
1581heuristic for branching. See MPG for details.
1582
1583[ENTRY]
1584Module: kernel
1585What: changed
1586Rank: minor
1587[DESCRIPTION]
1588Do not count number of weakly monotonic propagators, nobody used
1589it anyway.
1590
1591[ENTRY]
1592Module: kernel
1593What: bug
1594Rank: major
1595[DESCRIPTION]
1596Computing the afc for an assigned variable would crash.
1597
1598[ENTRY]
1599Module: kernel
1600What: change
1601Rank: major
1602[DESCRIPTION]
1603Reimplemented the infrastructure to record AFC, much simpler and
1604much faster.
1605
1606[ENTRY]
1607Module: kernel
1608What: change
1609Rank: major
1610[DESCRIPTION]
1611Renamed Activity to Action to avoid confusion with activity in SAT.
1612
1613[ENTRY]
1614Module: int
1615What: change
1616Rank: major
1617[DESCRIPTION]
1618Renamed Activity to Action to avoid confusion with activity in SAT.
1619
1620[ENTRY]
1621Module: set
1622What: change
1623Rank: major
1624[DESCRIPTION]
1625Renamed Activity to Action to avoid confusion with activity in SAT.
1626
1627[ENTRY]
1628Module: float
1629What: change
1630Rank: major
1631[DESCRIPTION]
1632Renamed Activity to Action to avoid confusion with activity in SAT.
1633
1634[ENTRY]
1635Module: kernel
1636What: change
1637Rank: major
1638[DESCRIPTION]
1639Variable implementations are not allowed to return a failed
1640modification event directly (such as in return ME_INT_FAILED;),
1641they need to call the function fail() instead (such as in return
1642fail(home);).
1643
1644[ENTRY]
1645Module: kernel
1646What: change
1647Rank: major
1648[DESCRIPTION]
1649Activity for branching was not counted when propagation lead to a
1650failed space, this is done now. The activity of a variable is now
1651by default initialized to 1. That makes activity actually
1652useful...
1653
1654[ENTRY]
1655Module: kernel
1656What: change
1657Rank: major
1658[DESCRIPTION]
1659Variable implementations do not need to define cancel()
1660functions, the kernel provides generic implementations (this only
1661matters for users implementing their own variables). Also cleaned
1662up some inlining mess which reduces object code size by around
166310%.
1664
1665[ENTRY]
1666Module: kernel
1667What: bug
1668Rank: major
1669[DESCRIPTION]
1670In certain situations the AFC could be incremented twice (could
1671only have occured for linear constraints with Boolean variables
1672and sequence constraints).
1673
1674[ENTRY]
1675Module: int
1676What: changed
1677Rank: major
1678[DESCRIPTION]
1679All branching functions (merit, value, commit, tie-breaking
1680limit, filter, print) can now be of std::function type.
1681
1682[ENTRY]
1683Module: set
1684What: changed
1685Rank: major
1686[DESCRIPTION]
1687All branching functions (merit, value, commit, tie-breaking
1688limit, filter, print) can now be of std::function type.
1689
1690[ENTRY]
1691Module: float
1692What: changed
1693Rank: major
1694[DESCRIPTION]
1695All branching functions (merit, value, commit, tie-breaking
1696limit, filter, print) can now be of std::function type.
1697
1698[ENTRY]
1699Module: kernel
1700What: changed
1701Rank: major
1702[DESCRIPTION]
1703All branching functions (merit, value, commit, tie-breaking
1704limit, filter, print) can now be of std::function type.
1705
1706[ENTRY]
1707Module: int
1708What: change
1709Rank: major
1710[DESCRIPTION]
1711Branching on Boolean variables now requires to use BOOL_VAR_...()
1712and BOOL_VAL_...() functions instead of the INT_... variants.
1713
1714[ENTRY]
1715Module: int
1716What: change
1717Rank: major
1718[DESCRIPTION]
1719Functions passed to wait() and when() can now be of std::function type.
1720
1721[ENTRY]
1722Module: float
1723What: change
1724Rank: major
1725[DESCRIPTION]
1726Functions passed to wait() can now be of std::function type.
1727
1728[ENTRY]
1729Module: set
1730What: change
1731Rank: major
1732[DESCRIPTION]
1733Functions passed to wait() can now be of std::function type.
1734
1735[ENTRY]
1736Module: flatzinc
1737What: bug
1738Rank: minor
1739[DESCRIPTION]
1740Add assertions to regular constraint definition to avoid posting with
1741invalid arguments.
1742
1743[ENTRY]
1744Module: flatzinc
1745What: bug
1746Rank: minor
1747Thanks: David Hotham
1748[DESCRIPTION]
1749Fix parser to work with newer versions of GCC compiler.
1750
1751[ENTRY]
1752Module: support
1753What: new
1754Rank: minor
1755[DESCRIPTION]
1756Added an abstraction RunJobs for executing several jobs in
1757parallel (not officially supported).
1758
1759[ENTRY]
1760Module: float
1761What: new
1762Rank: minor
1763[DESCRIPTION]
1764Added if-then-else constraint (called ite) also for float
1765variables.
1766
1767[ENTRY]
1768Module: set
1769What: new
1770Rank: minor
1771[DESCRIPTION]
1772Added if-then-else constraint (called ite) also for set
1773variables.
1774
1775[ENTRY]
1776Module: int
1777What: new
1778Rank: minor
1779[DESCRIPTION]
1780Added if-then-else constraint (called ite) also for Boolean
1781variables.
1782
1783[ENTRY]
1784Module: int
1785What: new
1786Rank: minor
1787[DESCRIPTION]
1788Relations between arrays now support also a mix between integer
1789(or Boolean) variable array and integer array.
1790
1791[ENTRY]
1792Module: other
1793What: change
1794Rank: minor
1795[DESCRIPTION]
1796Enable C++11 standard on compilers that need an explicit switch. Can be
1797switched off using --disable-cpp11 during configuration.
1798
1799
1800[RELEASE]
1801Version: 5.0.0
1802Date: 2016-10-25
1803[DESCRIPTION]
1804This release adds a number of new features and fixes many bugs
1805(some rather serious), so it is recommended to switch as soon as
1806possible to this release. Some highlights are: re-added limited
1807discrepancy search (LDS); added sequential and parallel
1808portfolio-based search (PBS); added support for groups of
1809propagators and branchers; added extensive tracing functionality
1810based on groups; propagators can be disabled and re-enabled;
1811support for arbitrary memory allocators; changed the notion of
1812"integer consistency level" to the more expressive concept
1813"integer propagation level".
1814
1815It is recommended to read the new Chapter in MPG on groups and
1816tracing.
1817
1818As the interfaces has changed, please consult
1819\ref PageHowToChange_5 "How to Change to Gecode 5.0.0".
1820
1821[ENTRY]
1822Module: set
1823What: bug
1824Rank: minor
1825[DESCRIPTION]
1826Fixed some idempotency problems in the n-ary union and weight propagators.
1827
1828[ENTRY]
1829Module: float
1830What: new
1831Rank: minor
1832[DESCRIPTION]
1833Added relax() function for relaxed assignment of float variables
1834from a previous solution, see MPG for details.
1835
1836[ENTRY]
1837Module: set
1838What: new
1839Rank: minor
1840[DESCRIPTION]
1841Added relax() function for relaxed assignment of set variables
1842from a previous solution, see MPG for details.
1843
1844[ENTRY]
1845Module: int
1846What: new
1847Rank: minor
1848[DESCRIPTION]
1849Added relax() function for relaxed assignment of integer and
1850Boolean variables from a previous solution, see MPG for details.
1851
1852[ENTRY]
1853Module: driver
1854What: new
1855Rank: minor
1856[DESCRIPTION]
1857The probability for relaxing variables in LNS can be passed with
1858the -relax commandline option.
1859
1860[ENTRY]
1861Module: int
1862What: bug
1863Rank: major
1864Thanks: Roberto Castañeda Lozano
1865[DESCRIPTION]
1866The domain consistent dom() constraint for integer ranges was
1867only bounds consistent...
1868
1869[ENTRY]
1870Module: minimodel
1871What: bug
1872Rank: minor
1873Thanks: Matthias Balzer
1874[DESCRIPTION]
1875Export BoolExpr::Misc for linking.
1876
1877[ENTRY]
1878Module: kernel
1879What: change
1880Rank: minor
1881Thanks: Matthias Balzer
1882[DESCRIPTION]
1883Do not declare new and delete of ArgArrayBase as private to
1884support the use of placement new.
1885
1886[ENTRY]
1887Module: driver
1888What: new
1889Rank: minor
1890[DESCRIPTION]
1891The discrepancy limit for Limited Discrepancy Search (LDS) can be
1892passed with the -d-l commandline option.
1893
1894[ENTRY]
1895Module: search
1896What: new
1897Rank: major
1898[DESCRIPTION]
1899Limited Discrepancy Search (LDS) added. Please see MPG for
1900details.
1901
1902[ENTRY]
1903Module: flatzinc
1904What: bug
1905Rank: major
1906Thanks: Mats Carlsson
1907[DESCRIPTION]
1908Fix the FlatZinc parser for cases where variables were aliased to a fixed
1909variable.
1910
1911[ENTRY]
1912Module: kernel
1913What: bug
1914Rank: major
1915Thanks: Matthias Balzer
1916[DESCRIPTION]
1917Fixed memory leak for regions (occured for many large allocation
1918requests).
1919
1920[ENTRY]
1921Module: float
1922What: bug
1923Rank: major
1924Thanks: Filip Konvicka
1925[DESCRIPTION]
1926Enable optimized rounding only if MSVC does not use SSE,
1927otherwise things really go wrong (necessary for MSVC 2015).
1928
1929[ENTRY]
1930Module: kernel
1931What: new
1932Rank: minor
1933[DESCRIPTION]
1934Added additional propagation cost level record() which is
1935reserved for propagators that record information but do not
1936propagate.
1937
1938[ENTRY]
1939Module: float
1940What: new
1941Rank: minor
1942[DESCRIPTION]
1943Added channeling constraint between float and Boolean variable.
1944
1945[ENTRY]
1946Module: float
1947What: bug
1948Rank: minor
1949Thanks: Matthias Balzer
1950[DESCRIPTION]
1951FloatValArgs erroneously inherited from PrimArgArray, now it
1952inherits from ArgArray.
1953
1954[ENTRY]
1955Module: minimodel
1956What: bug
1957Rank: minor
1958Thanks: Matthias Balzer
1959[DESCRIPTION]
1960Fixed memory leak in constructor for Boolean element expression.
1961
1962[ENTRY]
1963Module: minimodel
1964What: bug
1965Rank: minor
1966Thanks: Matthias Balzer
1967[DESCRIPTION]
1968Fixed special case handling for sqr and pow functions.
1969
1970[ENTRY]
1971Module: minimodel
1972What: bug
1973Rank: minor
1974Thanks: Matthias Balzer
1975[DESCRIPTION]
1976Removed bogus declarations of comparison operators between
1977Boolean variables and float expressions.
1978
1979[ENTRY]
1980Module: kernel
1981What: new
1982Rank: minor
1983[DESCRIPTION]
1984Propagators and branchers now have a fixed identity available by
1985id() member functions.
1986
1987[ENTRY]
1988Module: kernel
1989What: new
1990Rank: minor
1991Thanks: Gilles Pesant
1992[DESCRIPTION]
1993Added an iterator SubscribedPropagators that iterates over the
1994subscribed propagators of views and variable implementations.
1995
1996[ENTRY]
1997Module: kernel
1998What: change
1999Rank: minor
2000Thanks: Mirko Rahn
2001[DESCRIPTION]
2002Do not use local classes as this would require C++-11.
2003
2004[ENTRY]
2005Module: int
2006What: bug
2007Rank: minor
2008[DESCRIPTION]
2009Fix n-ary lq/le propagator when used on arrays with variables occurring
2010multiply.
2011
2012[ENTRY]
2013Module: kernel
2014What: removed
2015Rank: major
2016[DESCRIPTION]
2017Removed brancher handles, they are subsumed by brancher groups.
2018
2019[ENTRY]
2020Module: other
2021What: bug
2022Rank: minor
2023[DESCRIPTION]
2024Fixed many small quirks in propagator rewriting, where the
2025information on which propagator is rewritten was omitted.
2026
2027[ENTRY]
2028Module: driver
2029What: new
2030Rank: minor
2031[DESCRIPTION]
2032Trace flags can be passed on the commandline.
2033
2034[ENTRY]
2035Module: float
2036What: new
2037Rank: major
2038[DESCRIPTION]
2039Added support for tracing propagation, please see MPG for details.
2040
2041[ENTRY]
2042Module: set
2043What: new
2044Rank: major
2045[DESCRIPTION]
2046Added support for tracing propagation, please see MPG for details.
2047
2048[ENTRY]
2049Module: int
2050What: new
2051Rank: major
2052[DESCRIPTION]
2053Added support for tracing propagation, please see MPG for details.
2054
2055[ENTRY]
2056Module: kernel
2057What: new
2058Rank: major
2059[DESCRIPTION]
2060Added support for tracing propagation, please see MPG for details.
2061
2062[ENTRY]
2063Module: kernel
2064What: new
2065Rank: major
2066[DESCRIPTION]
2067All constraint post functions should now use the macro
2068GECODE_POST at their start: it will check for failure but also
2069will set group information useful for tracing.
2070
2071[ENTRY]
2072Module: kernel
2073What: bug
2074Rank: minor
2075[DESCRIPTION]
2076Some Gecode macros made the assumption that they can only be used
2077inside the Gecode namespace. Fixed.
2078
2079[ENTRY]
2080Module: kernel
2081What: new
2082Rank: major
2083[DESCRIPTION]
2084Added groups of branchers (class BrancherGroup) by which
2085groups of branchers can be controlled. See MPG for details.
2086
2087[ENTRY]
2088Module: kernel
2089What: new
2090Rank: major
2091[DESCRIPTION]
2092Added groups of propagators (class PropagatorGroup) by which
2093groups of propagators can be controlled. See MPG for details.
2094
2095[ENTRY]
2096Module: kernel
2097What: new
2098Rank: major
2099[DESCRIPTION]
2100Propagators can now be disabled and enabled (through
2101PropagatorGroups). See MPG for details.
2102
2103[ENTRY]
2104Module: kernel
2105What: new
2106Rank: major
2107[DESCRIPTION]
2108All propagators must implement a virtual member function
2109reschedule() that can be used to reschedule a propagator according
2110to its subscriptions. See MPG for more details.
2111
2112[ENTRY]
2113Module: kernel
2114What: new
2115Rank: major
2116[DESCRIPTION]
2117All variable implementation must implement an additional
2118reschedule() function that can be used to reschedule a propagator
2119according to its subscriptions. See MPG for more details.
2120
2121[ENTRY]
2122Module: kernel
2123What: change
2124Rank: minor
2125[DESCRIPTION]
2126The iterators over all propagators and branchers of a space are
2127not any longer accessible. Please use group iterators instead.
2128
2129[ENTRY]
2130Module: kernel
2131What: change
2132Rank: minor
2133[DESCRIPTION]
2134The member functions propagators() and branchers() of the class
2135Space have been removed as they can be expressed with groups.
2136
2137[ENTRY]
2138Module: other
2139What: bug
2140Rank: minor
2141Thanks: Mirko Rahn
2142[DESCRIPTION]
2143Made copy constructor for search engines private to trigger
2144compiler error when trying to copy a search engine.
2145
2146[ENTRY]
2147Module: other
2148What: bug
2149Rank: minor
2150Thanks: Mirko Rahn
2151[DESCRIPTION]
2152Fixed some linking issues for static linking.
2153
2154[ENTRY]
2155Module: support
2156What: new
2157Rank: major
2158[DESCRIPTION]
2159Gecode supports now arbitrary memory allocators (the behavior can
2160be controlled by the commandline options -enable-allocator and
2161-disable-allocator). For more details, please see MPG.
2162
2163[ENTRY]
2164Module: kernel
2165What: change
2166Rank: minor
2167Thanks: Conrad Drescher
2168[DESCRIPTION]
2169Added destructor to NGL class to avoid warnings.
2170
2171[ENTRY]
2172Module: kernel
2173What: bug
2174Rank: minor
2175Thanks: Matthias Balzer
2176[DESCRIPTION]
2177Fixed wrong type declaration in region_allocator::deallocate().
2178
2179[ENTRY]
2180Module: float
2181What: bug
2182Rank: minor
2183Thanks: Conrad Drescher, Patrick Berg
2184[DESCRIPTION]
2185Fixed two infinite recursion bugs in related to use of hull().
2186
2187[ENTRY]
2188Module: flatzinc
2189What: bug
2190Rank: minor
2191[DESCRIPTION]
2192Add missing declaration for bool_clause_reif builtin.
2193
2194[ENTRY]
2195Module: flatzinc
2196What: bug
2197Rank: minor
2198Thanks: Tommy Persson
2199[DESCRIPTION]
2200FlatZinc interpreter now does not try to post constraints if there was a
2201syntax error during parsing.
2202
2203[ENTRY]
2204Module: minimodel
2205What: bug
2206Rank: minor
2207Thanks: Roberto Castañeda Lozano, Matthias Balzer
2208[DESCRIPTION]
2209Fixed posting of Boolean element expressions and relations.
2210
2211[ENTRY]
2212Module: minimodel
2213What: bug
2214Rank: minor
2215Thanks: Joseph Scott
2216[DESCRIPTION]
2217Fixed printing of regular expressions.
2218
2219[ENTRY]
2220Module: int
2221What: new
2222Rank: minor
2223[DESCRIPTION]
2224Added distinct-except-constant constraint.
2225
2226[ENTRY]
2227Module: int
2228What: new
2229Rank: minor
2230[DESCRIPTION]
2231Added distinct with optional variables.
2232
2233[ENTRY]
2234Module: flatzinc
2235What: change
2236Rank: minor
2237[DESCRIPTION]
2238Add support for the alldifferent_except_0 constraint by rewriting to a
2239global cardinality constraint.
2240
2241[ENTRY]
2242Module: flatzinc
2243What: change
2244Rank: minor
2245[DESCRIPTION]
2246The simple LNS using relax_and_reconstruct can now take an optional third
2247argument that is used as an initial solution.
2248
2249[ENTRY]
2250Module: search
2251What: change
2252Rank: minor
2253[DESCRIPTION]
2254The restart meta search engine must be used with the
2255branch-and-bound engine for best solution search.
2256
2257[ENTRY]
2258Module: search
2259What: change
2260Rank: minor
2261[DESCRIPTION]
2262For meta search engines, the order of template arguments has been
2263changed: the first is the script type, the second is the engine
2264type.
2265
2266[ENTRY]
2267Module: kernel
2268What: new
2269Rank: minor
2270[DESCRIPTION]
2271All branchers of a space can be killed by
2272BrancherGroup::all.kill(home). This is the default for the master()
2273function when using portfolio search.
2274
2275[ENTRY]
2276Module: kernel
2277What: new
2278Rank: major
2279[DESCRIPTION]
2280The clone() function takes an additional optional argument that defines
2281whether AFC information is shared among clones.
2282
2283[ENTRY]
2284Module: driver
2285What: new
2286Rank: minor
2287[DESCRIPTION]
2288The number of assets to use for portfolio-based search can be
2289passed on the commandline as -assets.
2290
2291[ENTRY]
2292Module: search
2293What: new
2294Rank: major
2295[DESCRIPTION]
2296Portfolio-based search has been added (both sequential and
2297parallel). Please see "Modeling and Programming with Gecode" for
2298details.
2299
2300[ENTRY]
2301Module: kernel
2302What: change
2303Rank: major
2304[DESCRIPTION]
2305The master() and slave() configuration functions has been changed
2306as they are now also used for portfolio-based search. Please see
2307"Modeling and Programming with Gecode" for details.
2308
2309[ENTRY]
2310Module: support
2311What: new
2312Rank: minor
2313[DESCRIPTION]
2314Classes can now inherit from HeapAllocated when using the Gecode
2315heap object for memory management.
2316
2317[ENTRY]
2318Module: search
2319What: bug
2320Rank: minor
2321[DESCRIPTION]
2322The restart engine would not properly delete some data structures
2323when being deleted.
2324
2325[ENTRY]
2326Module: int
2327What: new
2328Rank: minor
2329[DESCRIPTION]
2330Added some additional propagation to circuit and path
2331constraints, based on: Kathryn Glenn Francis, Peter Stuckey,
2332Explaining Circuit Propagation, Constraints (2014) 19:1-29.
2333
2334[ENTRY]
2335Module: kernel
2336What: new
2337Rank: minor
2338Thanks: Joseph Scott
2339[DESCRIPTION]
2340Missing = SUBSCRIBE annotations for modification events are
2341properly reported.
2342
2343[ENTRY]
2344Module: int
2345What: new
2346Rank: major
2347[DESCRIPTION]
2348The unary constraint now can also perform time-tabling propagation.
2349
2350[ENTRY]
2351Module: int
2352What: new
2353Rank: major
2354[DESCRIPTION]
2355The level of propagation of the cumulative constraint can now be
2356controlled via the integer propagation level argument. Please
2357consult Modeling and Programming with Gecode for details.
2358
2359[ENTRY]
2360Module: int
2361What: new
2362Rank: major
2363[DESCRIPTION]
2364The level of propagation of the unary constraint can now be
2365controlled via the integer propagation level argument. Please
2366consult Modeling and Programming with Gecode for details.
2367
2368[ENTRY]
2369Module: int
2370What: change
2371Rank: minor
2372[DESCRIPTION]
2373The selection for extensional table constraints whether to
2374optimize for speed or memory is now controlled by the integer
2375propagation level argument. The old argument of type
2376ExtensionalPropKind has been removed (the type has been removed
2377as well).
2378
2379[ENTRY]
2380Module: driver
2381What: change
2382Rank: major
2383[DESCRIPTION]
2384The commandline option -icl (for integer consistency level) has
2385been replaced by -ipl (for integer propagation level). All new
2386levels can be specified by a comma separated list as argument to
2387-ipl.
2388
2389[ENTRY]
2390Module: int
2391What: change
2392Rank: major
2393[DESCRIPTION]
2394The integer consistency level (IntConLevel) has been renamed to
2395integer propagation level (IntPropLevel). Additional levels for
2396speed, memory, basic, and advanced propagation have been added.
2397See Modeling and Programming with Gecode for details.
2398
2399[ENTRY]
2400Module: int
2401What: bug
2402Rank: major
2403Thanks: Kish Shen
2404[DESCRIPTION]
2405The count constraint with INT_GR relation was broken (off-by-one error).
2406
2407[ENTRY]
2408Module: example
2409What: change
2410Rank: minor
2411Thanks: Ananja Muddukrishna
2412[DESCRIPTION]
2413The bin-packing model did not use a best-fit solution for the
2414upper bound, but only a first-fit.
2415
2416[ENTRY]
2417Module: int
2418What: performance
2419Rank: minor
2420Thanks: Kish Shen
2421[DESCRIPTION]
2422Some count constraints are now optimized in case its arguments are
2423assigned.
2424
2425[ENTRY]
2426Module: other
2427What: change
2428Rank: minor
2429[DESCRIPTION]
2430Compiles with Visual Studio 2015.
2431
2432[ENTRY]
2433Module: int
2434What: bug
2435Rank: minor
2436Thanks: Kish Shen
2437[DESCRIPTION]
2438The binpacking constraint works even if all items are of size zero.
2439
2440[ENTRY]
2441Module: int
2442What: bug
2443Rank: minor
2444Thanks: Kish Shen
2445[DESCRIPTION]
2446Constrain bin variables even for zero-sized items in binpacking constraint.
2447
2448[ENTRY]
2449Module: flatzinc
2450What: bug
2451Rank: minor
2452[DESCRIPTION]
2453Fix a bug in the parser when parsing float variable domains.
2454
2455[ENTRY]
2456Module: int
2457What: new
2458Rank: minor
2459Thanks: Kish Shen
2460[DESCRIPTION]
2461Added variant of argmin and argmax with offset.
2462
2463[ENTRY]
2464Module: flatzinc
2465What: change
2466Rank: minor
2467Thanks: Pete Nightingale
2468[DESCRIPTION]
2469Make bounds propagation the default for global cardinality constraints
2470in FlatZinc.
2471
2472[ENTRY]
2473Module: flatzinc
2474What: change
2475Rank: minor
2476[DESCRIPTION]
2477Add support for generating the FlatZinc parser using bison version 3.
2478
2479[ENTRY]
2480Module: flatzinc
2481What: bug
2482Rank: major
2483Thanks: Andrea Rendl
2484[DESCRIPTION]
2485Fix branching on introduced variables, which could sometimes lead to
2486unassigned variables appearing in the output.
2487
2488[ENTRY]
2489Module: flatzinc
2490What: bug
2491Rank: minor
2492Thanks: Jean-Noël Monette
2493[DESCRIPTION]
2494Improve error messages in FlatZinc for some type errors.
2495
2496
2497[RELEASE]
2498Version: 4.4.0
2499Date: 2015-03-20
2500[DESCRIPTION]
2501This release fixes some bugs and improves some search-related aspects.
2502
2503Note that you will have to change all scripts that inherit from
2504the pre-defined script classes (Script, IntMinimizeScript,
2505IntMaximizeScript, FloatMinimizeScript, FloatMaximizeScript). The
2506change is easy: in your constructor you have to add a call to the
2507constructor of the pre-defined script class with the command line
2508options as argument. Just check any of the Gecode example for how
2509it is done.
2510
2511
2512[ENTRY]
2513Module: flatzinc
2514What: new
2515Rank: minor
2516Thanks: Mark Manser
2517[DESCRIPTION]
2518An option -step now can pass an improvement step for
2519optimization of float problems.
2520
2521[ENTRY]
2522Module: driver
2523What: change
2524Rank: major
2525[DESCRIPTION]
2526All scripts now must call the constructor of their base class
2527with an option argument.
2528
2529Note that you will have to change your models by a call to the
2530constructor of the script class with an option argument!
2531
2532[ENTRY]
2533Module: driver
2534What: new
2535Rank: minor
2536Thanks: Mark Manser
2537[DESCRIPTION]
2538An option -step now can pass an improvement step to scripts of
2539type FloatMinimizeScript and FloatMaximizeScript.
2540
2541[ENTRY]
2542Module: minimodel
2543What: new
2544Rank: minor
2545Thanks: Mark Manser
2546[DESCRIPTION]
2547The classes FloatMinimizeSpace and FloatMaximizeSpace can be
2548created with an improvement step for optimization.
2549
2550[ENTRY]
2551Module: flatzinc
2552What: bug
2553Rank: minor
2554Thanks: Ahmed Kamal
2555[DESCRIPTION]
2556Added support for missing builtins array_float_element
2557(by decomposition), float_lin_lt and float_lin_lt_reif.
2558
2559[ENTRY]
2560Module: search
2561What: new
2562Rank: minor
2563[DESCRIPTION]
2564Added functions to Stop class that can create common stop objects.
2565
2566[ENTRY]
2567Module: search
2568What: new
2569Rank: minor
2570[DESCRIPTION]
2571Exposed class definitions for common cutoff generators.
2572
2573[ENTRY]
2574Module: flatzinc
2575What: bug
2576Rank: minor
2577Thanks: Håkan Kjellerstrand
2578[DESCRIPTION]
2579LNS could fail when the search was restarted before finding the first solution.
2580
2581[ENTRY]
2582Module: search
2583What: bug
2584Rank: major
2585Thanks: Håkan Kjellerstrand
2586[DESCRIPTION]
2587Fix memory leak in the DFS and BAB search engines that could make restart-based
2588search run out of memory very quickly.
2589
2590[ENTRY]
2591Module: driver
2592What: new
2593Rank: minor
2594[DESCRIPTION]
2595Added option -seed for passing a seed to random number generators.
2596
2597[ENTRY]
2598Module: example
2599What: new
2600Rank: minor
2601[DESCRIPTION]
2602Added quasigroup completion benchmarks.
2603
2604[ENTRY]
2605Module: search
2606What: performance
2607Rank: minor
2608[DESCRIPTION]
2609Delay efforts for restarting until it is really needed after a
2610solution has been found.
2611
2612
2613[RELEASE]
2614Version: 4.3.3
2615Date: 2015-01-20
2616[DESCRIPTION]
2617This release adds support for LNS to FlatZinc, adds support for
2618MiniZinc 2, fixes a number of bugs and some new constraints.
2619
2620[ENTRY]
2621Module: flatzinc
2622What: new
2623Rank: minor
2624[DESCRIPTION]
2625Added support for arg_min and arg_max constraints.
2626
2627[ENTRY]
2628Module: int
2629What: new
2630Rank: minor
2631[DESCRIPTION]
2632Added argmin and argmax constraints.
2633
2634[ENTRY]
2635Module: search
2636What: bug
2637Rank: major
2638Thanks: Zichen Zhu
2639[DESCRIPTION]
2640Now no-goods are extracted properly in case a solution is found.
2641
2642[ENTRY]
2643Module: flatzinc
2644What: change
2645Rank: minor
2646[DESCRIPTION]
2647Add support for the MiniZinc 2 min/max builtins. The Gecode MiniZinc library
2648is now compatible with both MiniZinc 1.6 and 2.0.
2649
2650[ENTRY]
2651Module: search
2652What: change
2653Rank: minor
2654[DESCRIPTION]
2655Change the slave function for meta search engines to return whether the search
2656in the slave is going to be complete. This is necessary for example in LNS,
2657where completing the search in the slave does not mean that the overall search
2658is finished.
2659
2660[ENTRY]
2661Module: flatzinc
2662What: new
2663Rank: major
2664[DESCRIPTION]
2665Make a simple form of LNS accessible from FlatZinc. To use it, include
2666gecode.mzn and add the relax_and_reconstruct search annotation defined in
2667that file.
2668
2669[ENTRY]
2670Module: set
2671What: bug
2672Rank: minor
2673Thanks: Farshid Hassani Bijarbooneh
2674[DESCRIPTION]
2675The channeling propagator between a SetVar and an array of BoolVars
2676propagated incorrectly when posted on a fixed SetVar.
2677
2678[ENTRY]
2679Module: flatzinc
2680What: new
2681Rank: minor
2682[DESCRIPTION]
2683Support dom_w_deg search annotation.
2684
2685[ENTRY]
2686Module: flatzinc
2687What: change
2688Rank: minor
2689[DESCRIPTION]
2690Search on objective function variable after all other variables (but
2691still before introduced variables).
2692
2693[ENTRY]
2694Module: flatzinc
2695What: bug
2696Rank: minor
2697Thanks: Mats Carlsson
2698[DESCRIPTION]
2699Fix special case detection for cumulatives constraint, could sometimes
2700incorrectly turn a cumulatives into a disjunctive constraint.
2701
2702[ENTRY]
2703Module: flatzinc
2704What: bug
2705Rank: minor
2706Thanks: Björn Böttcher
2707[DESCRIPTION]
2708Fix behavior of -a command line option for satisfaction problems.
2709
2710[ENTRY]
2711Module: flatzinc
2712What: bug
2713Rank: minor
2714Thanks: Chris Mears
2715[DESCRIPTION]
2716Fix default search annotation for float objectives.
2717
2718[ENTRY]
2719Module: flatzinc
2720What: bug
2721Rank: minor
2722Thanks: Willem Van Onsem
2723[DESCRIPTION]
2724Install parser.tab.hh header.
2725
2726[ENTRY]
2727Module: flatzinc
2728What: new
2729Rank: minor
2730[DESCRIPTION]
2731Add support for gecode_schedule_cumulative_optional constraint.
2732
2733
2734[RELEASE]
2735Version: 4.3.2
2736Date: 2014-11-06
2737[DESCRIPTION]
2738Fixed major bug in and added extensive tests for the FlatZinc
2739interpreter. If you are using Gecode with FlatZinc you should
2740definitely upgrade!
2741
2742[ENTRY]
2743Module: test
2744What: new
2745Rank: major
2746[DESCRIPTION]
2747Added long-overdue tests for the FlatZinc interpreter.
2748
2749[ENTRY]
2750Module: other
2751What: bug
2752Rank: minor
2753Thanks: Alex Elliott
2754[DESCRIPTION]
2755Fix cmake build file to work better when building with Qt.
2756
2757[ENTRY]
2758Module: flatzinc
2759What: bug
2760Rank: major
2761Thanks: Jean-Noël Monette
2762[DESCRIPTION]
2763Fixed major bug that would cause the FlatZinc interpreter to crash
2764on most models.
2765
2766[RELEASE]
2767Version: 4.3.1
2768Date: 2014-10-22
2769[DESCRIPTION]
2770This release fixes some minor issues and a major bug for the
2771FlatZinc interpreter. It considerably extends restart-based
2772search so that it supports LNS (Large Neighborhood Search).
2773
2774[ENTRY]
2775Module: search
2776What: change
2777Rank: major
2778[DESCRIPTION]
2779The restart-based search engine has been made more powerful: the
2780master() and slave() configuration functions have been extended
2781and get more information about each restart and the engine always
2782maintains the last solution found. In particulae, the engine is
2783now powerful enough to support LNS (Large Neighborhood
2784Search). For details, please see MPG.
2785
2786[ENTRY]
2787Module: search
2788What: change
2789Rank: minor
2790[DESCRIPTION]
2791The interface of cutoff generators has been extended in that it
2792now offers current value access (operator()()) as well as
2793increment (operator++()).
2794
2795[ENTRY]
2796Module: search
2797What: new
2798Rank: minor
2799[DESCRIPTION]
2800Added a cutoff generator that merges the values of two cutoff generators.
2801
2802[ENTRY]
2803Module: other
2804What: bug
2805Rank: minor
2806Thanks: Pierre Talbot
2807[DESCRIPTION]
2808Gecode can now be used together with boost without conflicts.
2809
2810[ENTRY]
2811Module: other
2812What: new
2813Rank: minor
2814Thanks: Petter Strandmark
2815[DESCRIPTION]
2816Added support for building examples with CMake.
2817
2818[ENTRY]
2819Module: minimodel
2820What: bug
2821Rank: minor
2822Thanks: Léonard Benedetti
2823[DESCRIPTION]
2824Removed potentially undefined behavior for regular expressions.
2825
2826[ENTRY]
2827Module: flatzinc
2828What: bug
2829Rank: major
2830Thanks: Mats Carlsson
2831[DESCRIPTION]
2832Fixed FlatZinc aliasing detection on array variables that
2833introduced incorrect aliases between variables.
2834
2835[ENTRY]
2836Module: flatzinc
2837What: bug
2838Rank: minor
2839Thanks: Frank Imeson
2840[DESCRIPTION]
2841Fixed parser for integer literals to generate error message when
2842integers are out of bounds.
2843
2844[ENTRY]
2845Module: flatzinc
2846What: bug
2847Rank: minor
2848Thanks: Peter Nightingale
2849[DESCRIPTION]
2850Fixed the FlatZinc interpreter to accept empty arrays as arguments in
2851annotations.
2852
2853[ENTRY]
2854Module: flatzinc
2855What: bug
2856Rank: minor
2857Thanks: Carleton Coffrin
2858[DESCRIPTION]
2859Fixed the behaviour for the -n and -a command line options for
2860optimisation models.
2861
2862
2863[RELEASE]
2864Version: 4.3.0
2865Date: 2014-08-28
2866[DESCRIPTION]
2867This release fixes a large number of both minor and major bugs,
2868has some improvements for FlatZinc, and adds multi-dimensional
2869bin-packing.
2870
2871[ENTRY]
2872Module: other
2873What: bug
2874Rank: minor
2875Thanks: Victor Zverovich, Tony Kelman
2876[DESCRIPTION]
2877Various fixes for CMake:
2878 - Set the output directory for runtime target files (executables and DLLs) to bin/ subdirectory of the project's binary directory to avoid collisions when Gecode is used as a subproject.Improve suppression of warnings.
2879 - Add GECODE_USE_QT variable which specifies whether to use Qt. Qt is used if GECODE_USE_QT is TRUE or unset.
2880 - Prevent linker warnings on MSVC.
2881 - Use per-target instead of global include directories. This simplifies use of Gecode as a subproject because add_target_libraries(<target> <gecode-lib>) now sets the necessary include directories for <target> in addition to link dependencies.
2882 - Fix to fully link internal dependencies needed for creating DLLs: https://github.com/ampl/gecode/pull/2
2883 .
2884
2885[ENTRY]
2886Module: flatzinc
2887What: change
2888Rank: minor
2889[DESCRIPTION]
2890The --free command line option has been renamed to -f to comply with other
2891FlatZinc solvers.
2892
2893[ENTRY]
2894Module: flatzinc
2895What: performance
2896Rank: minor
2897[DESCRIPTION]
2898The diffn constraint now posts additional implied cumulative constraints
2899to strengthen propagation.
2900
2901[ENTRY]
2902Module: flatzinc
2903What: bug
2904Rank: minor
2905[DESCRIPTION]
2906Added unshare constraints to all constraints that need them. Without unsharing,
2907variables occurring multiply in the same FlatZinc arrays could lead to the
2908FlatZinc interpreter aborting with an error.
2909
2910[ENTRY]
2911Module: flatzinc
2912What: performance
2913Rank: minor
2914[DESCRIPTION]
2915Treat equality constraints in FlatZinc as aliases instead of posting
2916propagators, and post simple domain constraints before more complex
2917propagators to help post the most efficient versions.
2918
2919[ENTRY]
2920Module: example
2921What: new
2922Rank: minor
2923Thanks: Stefano Gualandi, Brian Kell, Willem-Jan Van Hoeve
2924[DESCRIPTION]
2925Added example for multi-dimensional bin-packing
2926constraint. Thanks to Brian and Willem-Jan for allowing us to use
2927their data set.
2928
2929[ENTRY]
2930Module: int
2931What: new
2932Rank: major
2933Author: Stefano Gualandi
2934[DESCRIPTION]
2935Added multi-dimensional bin-packing constraint.
2936
2937[ENTRY]
2938Module: kernel
2939What: change
2940Rank: minor
2941Thanks: Kish Shen
2942[DESCRIPTION]
2943Allow 0.0 as decay value.
2944
2945[ENTRY]
2946Module: other
2947What: bug
2948Rank: minor
2949Thanks: Roland Stigge
2950[DESCRIPTION]
2951Added patch for PowerPC (downstream patch from Debian).
2952
2953[ENTRY]
2954Module: other
2955What: bug
2956Rank: minor
2957Thanks: David Rijsman
2958[DESCRIPTION]
2959Added missing boost header files.
2960
2961[ENTRY]
2962Module: test
2963What: bug
2964Rank: minor
2965Thanks: Victor Zverovich
2966[DESCRIPTION]
2967Removed uninitialized access.
2968
2969[ENTRY]
2970Module: set
2971What: bug
2972Rank: minor
2973Thanks: Victor Zverovich
2974[DESCRIPTION]
2975Removed compiler warning.
2976
2977[ENTRY]
2978Module: float
2979What: bug
2980Rank: minor
2981Thanks: Victor Zverovich
2982[DESCRIPTION]
2983Removed compiler warning.
2984
2985[ENTRY]
2986Module: flatzinc
2987What: bug
2988Rank: minor
2989Thanks: Victor Zverovich
2990[DESCRIPTION]
2991Fixed FlatZinc interpreter to compile with clang in C++11 mode.
2992
2993[ENTRY]
2994Module: int
2995What: bug
2996Rank: minor
2997Thanks: Bauke Conijn
2998[DESCRIPTION]
2999Re-enabled parts of not-first-not-last propagation for unary with
3000optional tasks.
3001
3002[ENTRY]
3003Module: flatzinc
3004What: bug
3005Rank: minor
3006[DESCRIPTION]
3007Catch exceptions and print proper error message.
3008
3009[ENTRY]
3010Module: minimodel
3011What: bug
3012Rank: major
3013[DESCRIPTION]
3014Fixed posting of set relations involving constants.
3015
3016[ENTRY]
3017Module: int
3018What: bug
3019Rank: major
3020Thanks: Roberto Castañeda Lozano, Gabriel Hjort Blindell
3021[DESCRIPTION]
3022In extremely rare cases, the bounds-consistent distinct (and
3023hence all other distinct propagators as they use the
3024bounds-consistent one internally) propagator could suffer from
3025numerical overflow.
3026
3027[ENTRY]
3028Module: kernel
3029What: bug
3030Rank: minor
3031Thanks: Roberto Castañeda Lozano
3032[DESCRIPTION]
3033The function brancher did not return a handle.
3034
3035[ENTRY]
3036Module: int
3037What: bug
3038Rank: minor
3039Thanks: Duane Leslie
3040[DESCRIPTION]
3041No-good literals for greater-or-equal did not prune as much as they should.
3042
3043
3044[RELEASE]
3045Version: 4.2.1
3046Date: 2013-11-05
3047[DESCRIPTION]
3048This release fixes several major bugs and adds some minor
3049improvements.
3050
3051[ENTRY]
3052Module: other
3053What: change
3054Rank: minor
3055[DESCRIPTION]
3056Compiles with MSVC 2013.
3057
3058[ENTRY]
3059Module: search
3060What: bug
3061Rank: major
3062Thanks: Roberto Castañeda Lozano
3063[DESCRIPTION]
3064Fix for restart-based search when the master does not have a branching.
3065
3066[ENTRY]
3067Module: search
3068What: bug
3069Rank: major
3070Thanks: Roberto Castañeda Lozano
3071[DESCRIPTION]
3072Restart-based search did not work when the cutoff limit did not
3073strictly increase.
3074
3075[ENTRY]
3076Module: search
3077What: new
3078Rank: minor
3079Thanks: Roberto Castañeda Lozano
3080[DESCRIPTION]
3081Added support for a repeat cutoff generator.
3082
3083[ENTRY]
3084Module: int
3085What: performance
3086Rank: minor
3087Thanks: Anne Meyer
3088[DESCRIPTION]
3089Fix performance of domain consistent element for the case that the result
3090variable is assigned.
3091
3092[ENTRY]
3093Module: int
3094What: bug
3095Rank: major
3096Thanks: Bauke Conijn
3097[DESCRIPTION]
3098Fixed incorrect propagation in sortedness with permutation variables.
3099
3100[ENTRY]
3101Module: int
3102What: bug
3103Rank: major
3104Thanks: Duane Leslie
3105[DESCRIPTION]
3106Fixed cumulative constraint for 0-usage tasks.
3107
3108[ENTRY]
3109Module: int
3110What: bug
3111Rank: major
3112Thanks: Duane Leslie
3113[DESCRIPTION]
3114Fixed special case check for cumulative that would wrongly classify
3115some instances as disjunctive.
3116
3117[ENTRY]
3118Module: int
3119What: bug
3120Rank: major
3121Thanks: Kish Shen
3122[DESCRIPTION]
3123The nroot constraint now propagates correctly for negative
3124numbers when the exponent is odd.
3125
3126[ENTRY]
3127Module: other
3128What: bug
3129Rank: minor
3130[DESCRIPTION]
3131Fix CMake to also build FlatZinc and Driver correctly.
3132
3133[ENTRY]
3134Module: flatzinc
3135What: bug
3136Rank: minor
3137[DESCRIPTION]
3138Fixed bug in auxiliary variable branching.
3139
3140[ENTRY]
3141Module: minimodel
3142What: new
3143Rank: minor
3144Thanks: Philippe Kezirian
3145[DESCRIPTION]
3146The sum of IntArgs can now be computed similarly to the sum of
3147IntVarArgs.
3148
3149[ENTRY]
3150Module: kernel
3151What: new
3152Rank: minor
3153Thanks: Kish Shen
3154[DESCRIPTION]
3155Activity information can now be initialized with a branch merit function.
3156
3157[ENTRY]
3158Module: int
3159What: new
3160Rank: minor
3161Thanks: Kish Shen
3162[DESCRIPTION]
3163Activity information can now be initialized with a branch merit function.
3164
3165[ENTRY]
3166Module: set
3167What: new
3168Rank: minor
3169Thanks: Kish Shen
3170[DESCRIPTION]
3171Activity information can now be initialized with a branch merit function.
3172
3173[ENTRY]
3174Module: float
3175What: new
3176Rank: minor
3177Thanks: Kish Shen
3178[DESCRIPTION]
3179Activity information can now be initialized with a branch merit function.
3180
3181
3182
3183[RELEASE]
3184Version: 4.2.0
3185Date: 2013-07-19
3186[DESCRIPTION]
3187This release adds no-goods from restarts, removes memory
3188statistics (but Gecode can be configured for more accurate
3189statistics), and fixes a number of bugs.
3190
3191[ENTRY]
3192Module: iter
3193What: bug
3194Rank: minor
3195Thanks: Farshid Hassani Bijarbooneh, Joseph Scott
3196[DESCRIPTION]
3197Fixed segfault in NaryUnion iterator.
3198
3199[ENTRY]
3200Module: kernel
3201What: new
3202Rank: minor
3203[DESCRIPTION]
3204Added configure switch --enable-peakheap that adds support for
3205memory statistics to the kernel. This comes with a runtime overhead,
3206but provides more accurate information than the previous search
3207engine based statistics.
3208
3209[ENTRY]
3210Module: search
3211What: removed
3212Rank: major
3213[DESCRIPTION]
3214Removed memory statistics from the search engines. The reason is
3215that the figures were too inaccurate (memory for shared data
3216structure, caches, etc were not counted) and computing the
3217figures was complicated. This feature is replaced by a configure
3218switch that enables peak memory tracking based on operating system
3219information.
3220
3221[ENTRY]
3222Module: kernel
3223What: change
3224Rank: minor
3225Thanks: Kish Shen
3226[DESCRIPTION]
3227Low-level support for AFC is now public.
3228
3229[ENTRY]
3230Module: search
3231What: new
3232Rank: minor
3233[DESCRIPTION]
3234Search options have an additional field nogoods_limit that
3235defines too which depth a search tree is inspected for no-goods.
3236
3237[ENTRY]
3238Module: kernel
3239What: change
3240Rank: minor
3241[DESCRIPTION]
3242The master() member function used during restart-based search now
3243takes an additional no-goods argument. The default master()
3244function posts no-goods (only effective when enabled in
3245Search::Options). See MPG for details.
3246
3247[ENTRY]
3248Module: driver
3249What: new
3250Rank: minor
3251[DESCRIPTION]
3252When using restart-based search, the use of no-goods from
3253restarts can be switched on/off with the -nogoods command line
3254option and the depth limit for extraction of no-goods with the
3255-nogoods-limit command line option.
3256
3257[ENTRY]
3258Module: search
3259What: new
3260Rank: major
3261[DESCRIPTION]
3262Added support for no-goods from restarts, see Modeling and
3263Programming with Gecode for details.
3264
3265Note that also entails that the statistics will report different
3266a different peak depth than in previous releases of Gecode when
3267using no-goods.
3268
3269[ENTRY]
3270Module: flatzinc
3271What: new
3272Rank: minor
3273[DESCRIPTION]
3274Added support for value_precede_int and value_precede_set constraints.
3275
3276[ENTRY]
3277Module: flatzinc
3278What: bug
3279Rank: major
3280Thanks: Chris Mears
3281[DESCRIPTION]
3282Fixed a memory leak in FlatZincSpace and a few more in the FlatZinc
3283parser.
3284
3285[ENTRY]
3286Module: flatzinc
3287What: bug
3288Rank: minor
3289Thanks: Chris Mears
3290[DESCRIPTION]
3291Fixed a bug in implicit search heuristic that could lead to a
3292segmentation fault when minimizing an array element.
3293
3294[ENTRY]
3295Module: other
3296What: bug
3297Rank: minor
3298Thanks: Victor Zverovich
3299[DESCRIPTION]
3300Fixes link error for CMake with MSVC.
3301
3302
3303[RELEASE]
3304Version: 4.1.0
3305Date: 2013-07-01
3306[DESCRIPTION]
3307This release adds a really useful feature and the required
3308infrastructure to Gist (it now can show information on the
3309alternatives in a search tree), has some new features, and fixes
3310quite a number of bugs (some of which are quite serious, in
3311particular for: LDSB, restart-based search, and FlatZinc).
3312
3313[ENTRY]
3314Module: driver
3315What: bug
3316Rank: minor
3317Thanks: Vincent Barichard
3318[DESCRIPTION]
3319Fixed a race condition when using parallel search.
3320
3321[ENTRY]
3322Module: set
3323What: bug
3324Rank: minor
3325[DESCRIPTION]
3326Fixed SET_VAR_ACTIVITY_SIZE_MIN/MAX, which used to compute
3327size/activity instead of activity/size.
3328
3329[ENTRY]
3330Module: kernel
3331What: performance
3332Rank: minor
3333[DESCRIPTION]
3334Implement the AFC search heuristic using FastMutex, which greatly
3335improves parallel search performance on Mac OS X when using AFC.
3336
3337[ENTRY]
3338Module: support
3339What: new
3340Rank: minor
3341[DESCRIPTION]
3342Added FastMutex class that is implemented using spin locks on
3343some platforms.
3344
3345[ENTRY]
3346Module: int
3347What: bug
3348Rank: minor
3349Thanks: Victor Zverovich
3350[DESCRIPTION]
3351Fixed INT_VALUES_MAX() branching (INT_VALUES_MIN() was used instead).
3352
3353[ENTRY]
3354Module: float
3355What: bug
3356Rank: minor
3357[DESCRIPTION]
3358Fixed FLOAT_VAR_ACTIVITY_SIZE_MIN/MAX, which used to compute
3359size/activity instead of activity/size.
3360
3361[ENTRY]
3362Module: example
3363What: new
3364Rank: minor
3365Thanks: Stefano Gualandi
3366[DESCRIPTION]
3367Added LDSB-based symmetry breaking to graph coloring example.
3368
3369[ENTRY]
3370Module: flatzinc
3371What: bug
3372Rank: minor
3373Thanks: Peter Nightingale
3374[DESCRIPTION]
3375Fixed printing of float variables to be compatible with MiniZinc output.
3376
3377[ENTRY]
3378Module: flatzinc
3379What: bug
3380Rank: minor
3381Thanks: Peter Nightingale
3382[DESCRIPTION]
3383Fixed a segmentation fault when using FlatZinc with float variables
3384that have initializers.
3385
3386[ENTRY]
3387Module: set
3388What: bug
3389Rank: major
3390Thanks: Stefano Gualandi
3391[DESCRIPTION]
3392Fixed crash due to combination of LDSB and Activity.
3393
3394[ENTRY]
3395Module: int
3396What: bug
3397Rank: major
3398Thanks: Stefano Gualandi
3399[DESCRIPTION]
3400Fixed crash due to combination of LDSB and Activity.
3401
3402[ENTRY]
3403Module: int
3404What: bug
3405Rank: major
3406[DESCRIPTION]
3407The internal representation of integer variable domains could leak
3408memory to the space.
3409
3410[ENTRY]
3411Module: flatzinc
3412What: new
3413Rank: major
3414[DESCRIPTION]
3415The FlatZinc interpreter now supports float variables as objective
3416functions.
3417
3418[ENTRY]
3419Module: gist
3420What: new
3421Rank: major
3422[DESCRIPTION]
3423Gist now can show information on the alternatives in a search tree,
3424using the new menu options "Label branches" and "Label path".
3425
3426[ENTRY]
3427Module: float
3428What: bug
3429Rank: minor
3430[DESCRIPTION]
3431Random value selection for float branchings was not declared with
3432the right types.
3433
3434[ENTRY]
3435Module: set
3436What: new
3437Rank: major
3438[DESCRIPTION]
3439Set branchings now take an optional argument for a
3440user-defined print function. See MPG for details.
3441
3442[ENTRY]
3443Module: float
3444What: new
3445Rank: major
3446[DESCRIPTION]
3447Float branchings now take an optional argument for a
3448user-defined print function. See MPG for details.
3449
3450[ENTRY]
3451Module: int
3452What: new
3453Rank: major
3454[DESCRIPTION]
3455Integer and Boolean branchings now take an optional argument for a
3456user-defined print function. See MPG for details.
3457
3458[ENTRY]
3459Module: kernel
3460What: new
3461Rank: major
3462[DESCRIPTION]
3463Branchers now support a print() member function.
3464
3465[ENTRY]
3466Module: flatzinc
3467What: new
3468Rank: minor
3469[DESCRIPTION]
3470Added {int,bool,set,float}_default_search annotations. These can be used
3471on solve items to declare the default search strategy for the respective
3472variable types.
3473
3474[ENTRY]
3475Module: minimodel
3476What: bug
3477Rank: minor
3478Thanks: Roberto Castañeda Lozano
3479[DESCRIPTION]
3480Boolean expressions could lead to a segfault when initialized
3481with default constructor.
3482
3483[ENTRY]
3484Module: kernel
3485What: new
3486Rank: minor
3487[DESCRIPTION]
3488Both AFC and Activity can be changed by a set() function.
3489
3490[ENTRY]
3491Module: int
3492What: new
3493Rank: minor
3494[DESCRIPTION]
3495Added if-then-else constraint (called ite) for integer variables.
3496
3497[ENTRY]
3498Module: driver
3499What: new
3500Rank: minor
3501Thanks: Pascal Francq
3502[DESCRIPTION]
3503Added classes FloatMinimizeScript and FloatMaximizeScript for
3504cost-based optimization with a float cost variable.
3505
3506[ENTRY]
3507Module: driver
3508What: change
3509Rank: minor
3510[DESCRIPTION]
3511Added classes IntMinimizeScript and IntMaximizeScript for
3512cost-based optimization with an integer cost variable. While the
3513classes MinimizeScript and MaximizeSpcript are still available,
3514there use is deprecated and a later release might remove them.
3515
3516[ENTRY]
3517Module: int
3518What: change
3519Rank: minor
3520[DESCRIPTION]
3521Added classes IntMinimizeSpace and IntMaximizeSpace for
3522cost-based optimization with an integer cost variable. While the
3523classes MinimizeSpace and MaximizeSpace are still available,
3524there use is deprecated and a later release might remove them.
3525
3526[ENTRY]
3527Module: float
3528What: new
3529Rank: minor
3530Thanks: Pascal Francq
3531[DESCRIPTION]
3532Added classes FloatMinimizeSpace and FloatMaximizeSpace for
3533cost-based optimization with a float cost variable.
3534
3535[ENTRY]
3536Module: flatzinc
3537What: bug
3538Rank: minor
3539[DESCRIPTION]
3540Fixed the random search strategies to all use the same random number
3541generator instead of different generators all initialised with the same
3542seed (and therefore all producing the same sequences).
3543
3544[ENTRY]
3545Module: flatzinc
3546What: new
3547Rank: minor
3548Thanks: Tias Guns
3549[DESCRIPTION]
3550Added int2float constraint which was missing in the FlatZinc
3551interpreter.
3552
3553[ENTRY]
3554Module: int
3555What: bug
3556Rank: minor
3557Thanks: David Rijsman
3558[DESCRIPTION]
3559Fixed binpacking crash when the b and s arrays are empty.
3560
3561[ENTRY]
3562Module: other
3563What: change
3564Rank: minor
3565Thanks: Cliff Yapp
3566[DESCRIPTION]
3567CMake build system tweaked for out-of-source-dir building.
3568
3569[ENTRY]
3570Module: float
3571What: bug
3572Rank: minor
3573Thanks: Duong Khanh Chuong
3574[DESCRIPTION]
3575Fixed missing propagation in reified rel-constraints.
3576
3577[ENTRY]
3578Module: search
3579What: bug
3580Rank: major
3581Thanks: Chris Mears, Roberto Castañeda Lozano
3582[DESCRIPTION]
3583Fixed a bug in restart-based search, which would crash if the
3584problem is failed at the root or only had a single solution
3585during best-solution search.
3586
3587[RELEASE]
3588Version: 4.0.0
3589Date: 2013-03-14
3590[DESCRIPTION]
3591This release adds a multitude of new features, fixes many bugs,
3592and offers a number of performance improvements. There are too
3593many major improvements to even summarize them here all, so here
3594are just some highlights: LDSB as automatic symmetry breaking
3595during search; restart-based search; complete redesign and
3596reimplementation of branching enhancing the expressiveness
3597massively (AFC with decay, activity, user-defined variable and
3598value selection, tie-break control, better randomization, ...);
3599half-reification; addition of floating point constraints.
3600
3601It is recommended to read the new Chapter in MPG on branching as
3602the changes are substantial and require you to change your
3603programs, see also the full list of changes below.
3604
3605As the interfaces has changed, please consult \ref
3606PageHowToChange_4 "How to Change to Gecode 4.0.0".
3607
3608[ENTRY]
3609Module: flatzinc
3610What: change
3611Rank: minor
3612[DESCRIPTION]
3613Renamed the FlatZinc executable to fzn-gecode, to better distinguish
3614it when installed alongside other FlatZinc implementations.
3615
3616[ENTRY]
3617Module: int
3618What: new
3619Rank: major
3620Author: Christopher Mears
3621[DESCRIPTION]
3622Gecode now supports Lightweight Dynamic Symmetry Breaking (LDSB),
3623see MPG for details.
3624
3625[ENTRY]
3626Module: set
3627What: new
3628Rank: major
3629Author: Christopher Mears
3630[DESCRIPTION]
3631Gecode now supports Lightweight Dynamic Symmetry Breaking (LDSB),
3632see MPG for details.
3633
3634[ENTRY]
3635Module: int
3636What: new
3637Rank: major
3638Thanks: Manuel Loth
3639[DESCRIPTION]
3640Added value selection strategies for branching
3641INT_VAL_NEAR_MIN(), INT_VAL_NEAR_MAX(), INT_VAL_NEAR_INC(), and
3642INT_VAL_NEAR_DEC(). They can take a previous assignment to the
3643variables to branch on and try to choose values which are near
3644(see MPG for details).
3645
3646[ENTRY]
3647Module: int
3648What: new
3649Rank: minor
3650[DESCRIPTION]
3651Added domain constraint that constrains a variable (or an array)
3652according to the domain of another variable.
3653
3654[ENTRY]
3655Module: set
3656What: new
3657Rank: minor
3658[DESCRIPTION]
3659Added domain constraint that constrains a variable (or an array)
3660according to the domain of another variable.
3661
3662[ENTRY]
3663Module: set
3664What: new
3665Rank: minor
3666[DESCRIPTION]
3667Added domain constraints for arrays of set variables.
3668
3669[ENTRY]
3670Module: kernel
3671What: change
3672Rank: minor
3673[DESCRIPTION]
3674The default constrain() function for best-solution search now
3675does by default nothing (it used to throw an exception).
3676
3677[ENTRY]
3678Module: driver
3679What: new
3680Rank: major
3681[DESCRIPTION]
3682Added commandline options to control restart-based search, see
3683MPG for details.
3684
3685[ENTRY]
3686Module: search
3687What: new
3688Rank: major
3689[DESCRIPTION]
3690Added support for restart-based search, see MPG for details.
3691
3692[ENTRY]
3693Module: flatzinc
3694What: new
3695Rank: minor
3696[DESCRIPTION]
3697Added support for more search annotations (defined in gecode.mzn), and for
3698the restart and decay command line options.
3699
3700[ENTRY]
3701Module: other
3702What: new
3703Rank: minor
3704Thanks: Victor Zverovich
3705[DESCRIPTION]
3706Added CMake build script for Gecode (CMakeLists.txt).
3707
3708[ENTRY]
3709Module: int
3710What: new
3711Rank: minor
3712[DESCRIPTION]
3713Added variants of dom that copy the domain from one variable to
3714another.
3715
3716[ENTRY]
3717Module: driver
3718What: new
3719Rank: minor
3720[DESCRIPTION]
3721Decay values can now be passed on the command line using the
3722switch -decay.
3723
3724[ENTRY]
3725Module: search
3726What: change
3727Rank: major
3728[DESCRIPTION]
3729Variable selection for branching used the quotient of size
3730divided by degree, accumulated failure count, or activity. They
3731now use the inverse. That is, for example, it is not any longer
3732INT_VAR_SIZE_DEGREE_MIN() but INT_VAR_DEGREE_SIZE_MAX() (that is,
3733largest degree divided by size).
3734[MORE]
3735That looks like an annoying change but is in fact essential: the
3736strategies using accumulated failure count and activity now could
3737have run into division by zero issues. And just changing the
3738implementation is not good enough because the values of these
3739measures can now be exposed during tie-breaking.
3740
3741[ENTRY]
3742Module: other
3743What: new
3744Rank: major
3745[DESCRIPTION]
3746Variable selection using AFC now supports decay. Read more in MPG.
3747
3748[ENTRY]
3749Module: int
3750What: performance
3751Rank: major
3752[DESCRIPTION]
3753Arithmetic, linear, and cumulative constraints now resort to
3754internal operations using "long long int" rather than
3755"double". This improves performance but also extends the range
3756over integer coefficients that can be handled by linear
3757constraints.
3758
3759[ENTRY]
3760Module: flatzinc
3761What: bug
3762Rank: minor
3763[DESCRIPTION]
3764The mzn-gecode shell script now passes arguments correctly to the
3765FlatZinc interpreter.
3766
3767[ENTRY]
3768Module: other
3769What: change
3770Rank: minor
3771[DESCRIPTION]
3772Compiles with MSVC 2012.
3773
3774[ENTRY]
3775Module: gist
3776What: change
3777Rank: minor
3778[DESCRIPTION]
3779Updated to compile with Qt version 5.0 (still works with Qt >= 4.3 as well).
3780
3781[ENTRY]
3782Module: int
3783What: bug
3784Rank: minor
3785Thanks: Roberto Castañeda Lozano
3786[DESCRIPTION]
3787Fixed precede constraint with less than two values.
3788
3789[ENTRY]
3790Module: set
3791What: bug
3792Rank: minor
3793Thanks: Roberto Castañeda Lozano
3794[DESCRIPTION]
3795Fixed precede constraint with less than two values.
3796
3797[ENTRY]
3798Module: int
3799What: new
3800Rank: minor
3801[DESCRIPTION]
3802The nooverlap constraint now allows sharing of unassigned
3803variables in its argument arrays.
3804
3805[ENTRY]
3806Module: set
3807What: new
3808Rank: major
3809[DESCRIPTION]
3810Added half-reification for reified constraints (see Modeling and
3811Programming with Gecode for details).
3812
3813[ENTRY]
3814Module: int
3815What: new
3816Rank: major
3817[DESCRIPTION]
3818Added half-reification for reified constraints (see Modeling and
3819Programming with Gecode for details).
3820
3821[ENTRY]
3822Module: flatzinc
3823What: bug
3824Rank: minor
3825Thanks: Simon Ekvy
3826[DESCRIPTION]
3827Removed spurious debug output for among constraint.
3828
3829[ENTRY]
3830Module: int
3831What: bug
3832Rank: major
3833Thanks: Lin Yong
3834[DESCRIPTION]
3835Fixed a bug where bounds consistent distinct reported subsumption
3836instead of failure in certain cases.
3837
3838[ENTRY]
3839Module: support
3840What: bug
3841Rank: minor
3842[DESCRIPTION]
3843Fixed a concurrency problem that caused an exception to be thrown at
3844the end of a multi-threaded search on some platforms.
3845
3846[ENTRY]
3847Module: int
3848What: change
3849Rank: minor
3850[DESCRIPTION]
3851The coefficients for linear constraints are now divided by
3852their greatest common divisor. That means that some equations
3853can be handled now that previously threw an OutOfLimits exception,
3854and some equations can be handled with the more efficient integer
3855precision propagators that previously required double precision.
3856
3857[ENTRY]
3858Module: kernel
3859What: change
3860Rank: major
3861[DESCRIPTION]
3862The entire infrastructure for variable-value branchers has been
3863reimplemented from scratch. The new design makes a much better
3864compromise between code size, efficiency, and expressiveness:
3865the efficiency is about the same (for examples with no
3866propagation and just branching one can note a slowdown of 2-4%)
3867while code size shrinks drastically (the overall code size for
3868integer variables shrinks by 20%) and the architecture is much
3869more expressive (in particular, it supports tie-break limits, see
3870MPG).
3871
3872[ENTRY]
3873Module: int
3874What: change
3875Rank: minor
3876Thanks: Roberto Castañeda Lozano
3877[DESCRIPTION]
3878Generalized definition of no-overlap propagators for better reuse.
3879
3880[ENTRY]
3881Module: iter
3882What: documentation
3883Rank: minor
3884[DESCRIPTION]
3885Clarified for several iterators that when using the assignment
3886operator both iterators must be allocated from the very same
3887region.
3888
3889[ENTRY]
3890Module: int
3891What: change
3892Rank: major
3893[DESCRIPTION]
3894The interface for branching on integer and Boolean variables has
3895changed considerably (supporting user-defined variable and value
3896selection, tie-break limit functions, handlers to created
3897branchers, and more). In order to change, you have to add () to
3898all variants of INT_VAR, INT_VAL, and INT_ASSIGN. For example,
3899INT_VAR_SIZE_MIN becomes the function call INT_VAR_SIZE_MIN() and
3900INT_VAL_MIN_MIN becomes the function call INT_VAL_MIN_MIN(). Some
3901of these functions expect additional arguments and can take also
3902optional arguments (this replaces the VarBranchOptions and
3903ValBranchOptions). Please read the new "Branching" chapter
3904in MPG.
3905
3906[ENTRY]
3907Module: set
3908What: change
3909Rank: major
3910[DESCRIPTION]
3911The interface for branching on integer and Boolean variables has
3912changed considerably (supporting user-defined variable and value
3913selection, tie-break limit functions, handlers to created
3914branchers, and more). In order to change, you have to add () to
3915all variants of SET_VAR, SET_VAL, and SET_ASSIGN. For example,
3916SET_VAR_SIZE_MIN becomes the function call SET_VAR_SIZE_MIN() and
3917SET_VAL_MIN_INC becomes the function call SET_VAL_MIN_INC(). Some
3918of these functions expect additional arguments and can take also
3919optional arguments (this replaces the VarBranchOptions and
3920ValBranchOptions). Please read the new "Branching" chapter in
3921MPG.
3922
3923[ENTRY]
3924Module: kernel
3925What: new
3926Rank: minor
3927[DESCRIPTION]
3928The random seeds for variable and value branching options can now
3929be initialized from a hardware random number generator (see MPG
3930for details).
3931
3932[ENTRY]
3933Module: search
3934What: change
3935Rank: major
3936[DESCRIPTION]
3937The restart best solution search engine has been removed (it is
3938subsumed by the new restart-based meta search engine RBS).
3939
3940
3941[ENTRY]
3942Module: minimodel
3943What: new
3944Rank: minor
3945[DESCRIPTION]
3946Added pow and nroot expressions for integer variables.
3947
3948[ENTRY]
3949Module: int
3950What: new
3951Rank: major
3952[DESCRIPTION]
3953Added pow and nroot constraints.
3954
3955[ENTRY]
3956Module: int
3957What: bug
3958Rank: minor
3959[DESCRIPTION]
3960Fixed potential rounding issues in sqr and sqrt constraints.
3961
3962[ENTRY]
3963Module: search
3964What: performance
3965Rank: minor
3966[DESCRIPTION]
3967The search engines now do not allocate memory on the search stack for
3968the rightmost branch of each node. This means that the search tree
3969depth is now computed differently. It now represents the actual peak
3970depth required at any one time, taking into account that rightmost
3971branches reuse the stack entry of their parents.
3972
3973[ENTRY]
3974Module: int
3975What: bug
3976Rank: major
3977Thanks: Manuel Baclet
3978[DESCRIPTION]
3979Fixed copying of tuple sets in extensional constraints and IntSets in
3980sequence constraints (could lead to crashes when using parallel search).
3981
3982[ENTRY]
3983Module: support
3984What: bug
3985Rank: minor
3986Thanks: Max Ostrowski
3987[DESCRIPTION]
3988Fixed a bug in the allocation of very large bitsets.
3989
3990[ENTRY]
3991Module: kernel
3992What: performance
3993Rank: major
3994Thanks: Zandra Norman
3995[DESCRIPTION]
3996Fixed a bug in the main memory allocation routine: now heap block
3997sizes are decreased dynamically as they should be. Also changed
3998the memory configuration parameters as explained in: Zandra
3999Norman, Memory Management for Gecode. KTH Royal Institute of
4000Technology, Sweden, Bachelor thesis, TRITA-ICT-EX-2012:143, 2012.
4001
4002[ENTRY]
4003Module: driver
4004What: new
4005Rank: minor
4006Thanks: Andrea Pretto
4007[DESCRIPTION]
4008Added options -file-sol and -file-stat for writing solutions and
4009statistics to arbitrary files and streams.
4010
4011[ENTRY]
4012Module: flatzinc
4013What: bug
4014Rank: minor
4015Thanks: Jean-Noël Monette
4016[DESCRIPTION]
4017Exported registry and helper functions so that users can add
4018constraint handlers to the FlatZinc interpreter.
4019
4020[ENTRY]
4021Module: gist
4022What: new
4023Rank: minor
4024[DESCRIPTION]
4025Added option to invoke move cursors during the automatic search.
4026
4027[ENTRY]
4028Module: int
4029What: change
4030Rank: minor
4031[DESCRIPTION]
4032Respect IntConLevel argument for reified linear constraints with a
4033single integer variable.
4034
4035[ENTRY]
4036Module: int
4037What: bug
4038Rank: minor
4039Thanks: Jean-Noël Monette
4040[DESCRIPTION]
4041Added missing propagation for nary min/max constraint.
4042
4043[ENTRY]
4044Module: flatzinc
4045What: new
4046Rank: minor
4047[DESCRIPTION]
4048Added native support for lex_less_bool and lex_lesseq_bool.
4049
4050[ENTRY]
4051Module: int
4052What: bug
4053Rank: minor
4054Thanks: Peter Nightingale
4055[DESCRIPTION]
4056Make extensional constraints work with empty tuple sets.
4057
4058[ENTRY]
4059Module: int
4060What: bug
4061Rank: minor
4062Thanks: Peter Nightingale
4063[DESCRIPTION]
4064Fix count (global cardinality constraint) for multiple occurrences
4065of the same value in the cover array.
4066
4067[ENTRY]
4068Module: flatzinc
4069What: new
4070Rank: major
4071[DESCRIPTION]
4072Gecode/FlatZinc now supports float constraints and variables.
4073
4074[ENTRY]
4075Module: kernel
4076What: new
4077Rank: minor
4078[DESCRIPTION]
4079All ArgArrays now accept STL vectors and input iterators for construction.
4080
4081[ENTRY]
4082Module: flatzinc
4083What: new
4084Rank: major
4085Thanks: Gabriel Hjort Blindell
4086[DESCRIPTION]
4087The FlatZinc interpreter now supports comparing of nodes in Gist.
4088
4089[ENTRY]
4090Module: flatzinc
4091What: change
4092Rank: major
4093[DESCRIPTION]
4094The FlatZinc interpreter no longer performs a complete search on variables
4095annotated as var_is_introduced, but tries to extend a solution on the model
4096variables to a solution that includes the introduced variables. Each solution
4097on the model variables is therefore only reported once.
4098
4099[ENTRY]
4100Module: float
4101What: new
4102Rank: major
4103Author: Vincent Barichard
4104[DESCRIPTION]
4105Added support for float variables.
4106
4107[ENTRY]
4108Module: int
4109What: new
4110Rank: minor
4111Thanks: Kathrin Dannmann, Roberto Castañeda Lozano
4112[DESCRIPTION]
4113The binpacking constraint now also accepts items of size zero.
4114
4115[ENTRY]
4116Module: int
4117What: new
4118Rank: major
4119[DESCRIPTION]
4120Added activity-based branching strategies for integer and Boolean
4121variables: INT_VAR_ACTIVITY_MIN, INT_VAR_ACTIVITY_MAX,
4122INT_VAR_ACTIVITY_SIZE_MIN, INT_VAR_ACTIVITY_SIZE_MAX. For
4123details, see "Modeling and Programming with Gecode".
4124
4125[ENTRY]
4126Module: set
4127What: new
4128Rank: major
4129[DESCRIPTION]
4130Added activity-based branching strategies for set variables:
4131SET_VAR_ACTIVITY_MIN, SET_VAR_ACTIVITY_MAX,
4132SET_VAR_ACTIVITY_SIZE_MIN, SET_VAR_ACTIVITY_SIZE_MAX. For
4133details, see "Modeling and Programming with Gecode".
4134
4135[ENTRY]
4136Module: kernel
4137What: new
4138Rank: major
4139[DESCRIPTION]
4140The kernel now can record the activity of variables. The activity
4141of a variable is defined as how often the domain of a variable
4142has been pruned during search. For details, see "Modeling and
4143Programming with Gecode".
4144
4145[ENTRY]
4146Module: example
4147What: new
4148Rank: minor
4149[DESCRIPTION]
4150New example: Colored matrix without monochromatic rectangles.
4151
4152[ENTRY]
4153Module: driver
4154What: new
4155Rank: minor
4156Thanks: Josef Eisl
4157[DESCRIPTION]
4158The command line -print-last configures whether only the last
4159solution found is printed.
4160
4161[ENTRY]
4162Module: driver
4163What: change
4164Rank: minor
4165[DESCRIPTION]
4166Boolean options (BoolOption) can now be given a false or true argument
4167and hence are in-line with all other option types.
4168
4169[ENTRY]
4170Module: kernel
4171What: change
4172Rank: minor
4173[DESCRIPTION]
4174Throw exception when the user-defined copy constructor of a class
4175that inherits from Space does not call the Space copy constructor.
4176
4177[ENTRY]
4178Module: set
4179What: new
4180Rank: major
4181Author: Denys Duchier
4182[DESCRIPTION]
4183Added channeling constraint between arrays of set variables.
4184
4185[ENTRY]
4186Module: flatzinc
4187What: new
4188Rank: minor
4189[DESCRIPTION]
4190Added native support for the inverse_set constraint.
4191
4192[ENTRY]
4193Module: minimodel
4194What: change
4195Rank: minor
4196[DESCRIPTION]
4197Made implementations of MiniModel expressions private, so that the
4198MiniModel headers do not have to include propagator headers like
4199gecode/int/linear.hh any longer.
4200
4201
4202[RELEASE]
4203Version: 3.7.3
4204Date: 2012-03-23
4205[DESCRIPTION]
4206This release fixes some small bugs in the FlatZinc interpreter and library.
4207
4208[ENTRY]
4209Module: flatzinc
4210What: bug
4211Rank: minor
4212Thanks: Marco Correia
4213[DESCRIPTION]
4214Fixed "largest" variable selection strategy for set variables.
4215
4216[ENTRY]
4217Module: flatzinc
4218What: change
4219Rank: minor
4220[DESCRIPTION]
4221Removed the print command line option. Instead, for optimization problems,
4222using -a will print all solutions, while not using -a will only print the
4223last one. This is consistent with the G12 FlatZinc command line interface.
4224
4225[ENTRY]
4226Module: flatzinc
4227What: bug
4228Rank: minor
4229Thanks: Thibaut Feydy
4230[DESCRIPTION]
4231Fixed the parser for set literals.
4232
4233[ENTRY]
4234Module: flatzinc
4235What: new
4236Rank: minor
4237[DESCRIPTION]
4238Added mzn-gecode scripts for conveniently solving MiniZinc models
4239using the Gecode FlatZinc interpreter.
4240
4241[ENTRY]
4242Module: flatzinc
4243What: bug
4244Rank: minor
4245[DESCRIPTION]
4246Integer variables with empty domains result in unsatisfiable models
4247instead of an error message.
4248
4249[ENTRY]
4250Module: flatzinc
4251What: bug
4252Rank: minor
4253[DESCRIPTION]
4254Support 0-length array declarations.
4255
4256[RELEASE]
4257Version: 3.7.2
4258Date: 2012-02-27
4259[DESCRIPTION]
4260This release fixes several small bugs.
4261
4262[ENTRY]
4263Module: flatzinc
4264What: bug
4265Rank: minor
4266[DESCRIPTION]
4267Export RTTI symbols for the FlatZinc AST so that it can be used
4268by client code.
4269
4270[ENTRY]
4271Module: other
4272What: new
4273Rank: minor
4274Thanks: Adam Russell
4275[DESCRIPTION]
4276Gecode now compiles on NetBSD.
4277
4278[ENTRY]
4279Module: int
4280What: change
4281Rank: minor
4282[DESCRIPTION]
4283Throw exception of type OutOfLimits instead of Exception when
4284numerical arguments to sequence constraint are out of range.
4285
4286[ENTRY]
4287Module: int
4288What: bug
4289Rank: minor
4290Thanks: Joseph Scott
4291[DESCRIPTION]
4292Added missing pruning to cumulative edge finding propagator.
4293
4294[ENTRY]
4295Module: driver
4296What: bug
4297Rank: minor
4298Thanks: Serge Le Huitouze
4299[DESCRIPTION]
4300Fixed rounding for printing the runtime (for example,
43011:60:56.157 could be printed...).
4302
4303[ENTRY]
4304Module: set
4305What: bug
4306Rank: major
4307Thanks: Denys Duchier
4308[DESCRIPTION]
4309The element constraint with SOT_UNION and IntSetArgs reported
4310subsumption too early, resulting in incorrect propagation.
4311
4312[ENTRY]
4313Module: minimodel
4314What: bug
4315Rank: minor
4316[DESCRIPTION]
4317The BoolExpr default constructor did not properly initialize
4318its members, causing crashes.
4319
4320[ENTRY]
4321Module: int
4322What: performance
4323Rank: minor
4324[DESCRIPTION]
4325Posting a reified dom constraint on IntVars with an assigned control
4326variable does not create propagators any more, but updates the
4327domain immediately.
4328
4329[ENTRY]
4330Module: flatzinc
4331What: bug
4332Rank: minor
4333Thanks: Nicholas Tung
4334[DESCRIPTION]
4335Do not crash when encountering undefined identifier as constraint argument.
4336
4337[ENTRY]
4338Module: int
4339What: bug
4340Rank: minor
4341Thanks: Kish Shen
4342[DESCRIPTION]
4343Fixed sorted constraint to accept zero-length arrays.
4344
4345[ENTRY]
4346Module: int
4347What: bug
4348Rank: minor
4349Thanks: Kish Shen
4350[DESCRIPTION]
4351Added some missing propagation when posting a channel constraint
4352between an array of Boolean variables and an integer variable.
4353
4354[ENTRY]
4355Module: other
4356What: new
4357Rank: minor
4358Thanks: Denys Duchier
4359[DESCRIPTION]
4360Added a macro GECODE_VERSION_NUMBER that is defined as
4361x*1000000+y*100+z for Gecode version x.y.z.
4362
4363[ENTRY]
4364Module: driver
4365What: bug
4366Rank: minor
4367Thanks: Jan Kelbel
4368[DESCRIPTION]
4369Fixed time output for times with zero minutes but nonzero hours.
4370
4371[ENTRY]
4372Module: kernel
4373What: new
4374Rank: minor
4375[DESCRIPTION]
4376Added Archive operators for floats and doubles.
4377
4378[RELEASE]
4379Version: 3.7.1
4380Date: 2011-10-10
4381[DESCRIPTION]
4382This release fixes several bugs, upgrades to MiniZinc version
43831.4, and features some minor improvements.
4384
4385[ENTRY]
4386Module: int
4387What: change
4388Rank: minor
4389[DESCRIPTION]
4390The semantics of n-ary Boolean implication has been changed (to
4391the more convential reading): rel(home, BOT_IMP, x, y) where x is
4392an array of Boolean variable now assumes implication to be right
4393associative. See MPG for explanation.
4394
4395[ENTRY]
4396Module: int
4397What: new
4398Rank: minor
4399[DESCRIPTION]
4400Added efficient propagators for n-ary Boolean xor and equivalence
4401(as they are now primitive in MiniZinc).
4402
4403[ENTRY]
4404Module: flatzinc
4405What: change
4406Rank: minor
4407[DESCRIPTION]
4408The FlatZinc interpreter is now compatible with the G12 MiniZinc
4409distribution 1.4. This adds support for var and par identifiers that
4410begin with underscores, the array_bool_xor primitive, as well as the
4411command line option -r for specifying a random seed.
4412
4413[ENTRY]
4414Module: int
4415What: new
4416Rank: minor
4417Thanks: Kish Shen
4418[DESCRIPTION]
4419Domain consistency for simple counting constraints can be
4420switched off.
4421
4422[ENTRY]
4423Module: flatzinc
4424What: bug
4425Rank: major
4426Thanks: Håkan Kjellerstrand
4427[DESCRIPTION]
4428Fixed linear inequations over integer variables that are channeled
4429from Boolean variables.
4430
4431[ENTRY]
4432Module: support
4433What: bug
4434Rank: minor
4435[DESCRIPTION]
4436Compile again if threads are disabled.
4437
4438[ENTRY]
4439Module: int
4440What: performance
4441Rank: minor
4442[DESCRIPTION]
4443Domain consistent distinct runs 10-20% faster.
4444
4445[ENTRY]
4446Module: set
4447What: bug
4448Rank: major
4449[DESCRIPTION]
4450Do not use SharedArray<IntSet> in the set element constraints,
4451because it does not properly udpate the IntSet during copying.
4452This could cause memory corruption.
4453
4454[ENTRY]
4455Module: int
4456What: bug
4457Rank: major
4458[DESCRIPTION]
4459Fixed bugs in the computation of the required precision
4460(int or double) for linear propagation, and in division
4461operations of scale views. These could cause an incorrect
4462treatment of overflow in linear constraints.
4463
4464[ENTRY]
4465Module: search
4466What: bug
4467Rank: minor
4468[DESCRIPTION]
4469Fixed a bug that crashed the single-thread branch-and-bound
4470search engine when initialized with a failed space.
4471
4472[ENTRY]
4473Module: gist
4474What: bug
4475Rank: minor
4476[DESCRIPTION]
4477Fixed a crash that occurred when double-clicking an unexplored
4478node while move inspectors were active.
4479
4480
4481[RELEASE]
4482Version: 3.7.0
4483Date: 2011-08-31
4484[DESCRIPTION]
4485This release adds and improves quite a number of constraints
4486(total lexicographic order for set variables, membership
4487constraints for integer variables, counting constraints for
4488integer variables using integer sets, range, roots, set element
4489constraints for integer variables, number of values for integer
4490variables). All of these constraints (and some more) are now also
4491available in FlatZinc. Additionally, some fixes and improvements.
4492
4493This release is an important milestone as %Gecode now provides
4494native implementations for all important constraints available
4495in MiniZinc/FlatZinc.
4496
4497The documentation of constraints in "Modeling and Programming
4498with Gecode" now refers to the Global Constraint Catalog (for
4499those constraints that are listed in the catalog).
4500
4501[ENTRY]
4502Module: gist
4503What: bug
4504Rank: minor
4505[DESCRIPTION]
4506Call solution inspectors also when exploring manually.
4507
4508[ENTRY]
4509Module: gist
4510What: bug
4511Rank: minor
4512[DESCRIPTION]
4513Flush output to Gist console, so that output that is not ended by a
4514newline is not lost.
4515
4516[ENTRY]
4517Module: flatzinc
4518What: bug
4519Rank: major
4520[DESCRIPTION]
4521Added missing primitives set_le, set_lt, set_ge, and set_gt.
4522
4523[ENTRY]
4524Module: set
4525What: new
4526Rank: major
4527[DESCRIPTION]
4528Added set relations SRT_LQ, SRT_LE, SRT_GQ, SRT_GR for total
4529(lexicographic) order.
4530
4531[ENTRY]
4532Module: other
4533What: bug
4534Rank: minor
4535Thanks: Gustavo Gutierrez
4536[DESCRIPTION]
4537Install generated variable implementation headers instead of the shipped
4538versions (fixes a problem when building Gecode in a separate directory).
4539
4540[ENTRY]
4541Module: int
4542What: new
4543Rank: major
4544[DESCRIPTION]
4545Added normal and reified membership constraints for integer and
4546Boolean variables.
4547
4548[ENTRY]
4549Module: minimodel
4550What: new
4551Rank: minor
4552[DESCRIPTION]
4553Added a convenience function values that restricts the set of values
4554taken by an array of integer variables to a fixed set, using the nvalues
4555constraint. The channel constraints between IntVarArgs and a SetVar now
4556also use nvalues to increase propagation.
4557
4558[ENTRY]
4559Module: int
4560What: bug
4561Rank: minor
4562[DESCRIPTION]
4563Added some additional propagation for the count constraints (now,
4564for example, count(home, x, y, IRT_GQ, 1) also constrains y to
4565only take values supported by x).
4566
4567[ENTRY]
4568Module: int
4569What: new
4570Rank: major
4571[DESCRIPTION]
4572The count constraints now also support comparison to integer sets
4573in addition to integers and integer variables (which then implements among
4574from the GCCAT).
4575
4576[ENTRY]
4577Module: minimodel
4578What: new
4579Rank: minor
4580[DESCRIPTION]
4581Added range and roots, which decompose into set element constraints.
4582
4583[ENTRY]
4584Module: flatzinc
4585What: new
4586Rank: major
4587[DESCRIPTION]
4588Added native support for among, nvalues, int_set_channel,
4589member_bool, member_int, sum_pred, and the range and roots
4590constraints.
4591
4592[ENTRY]
4593Module: set
4594What: new
4595Rank: minor
4596[DESCRIPTION]
4597Added set element constraints with singleton integer variables
4598as arguments.
4599
4600[ENTRY]
4601Module: set
4602What: bug
4603Rank: minor
4604Thanks: Johannes Inführ
4605[DESCRIPTION]
4606Fixed a memory leak in the set weights constraint, and use
4607IntSharedArray instead of IntArgs as parameters for weights.
4608
4609[ENTRY]
4610Module: kernel
4611What: bug
4612Rank: minor
4613Thanks: Max Ostrowski
4614[DESCRIPTION]
4615Array slices can now be created from empty arrays.
4616
4617[ENTRY]
4618Module: int
4619What: new
4620Rank: major
4621[DESCRIPTION]
4622Added nvalues constraint.
4623
4624[ENTRY]
4625Module: example
4626What: new
4627Rank: minor
4628[DESCRIPTION]
4629Added Dominating %Queens puzzle.
4630
4631[ENTRY]
4632Module: kernel
4633What: new
4634Rank: minor
4635[DESCRIPTION]
4636View arrays can now also use region-allocated memory.
4637
4638[ENTRY]
4639Module: int
4640What: bug
4641Rank: major
4642[DESCRIPTION]
4643The estimation of bounds on linear terms did not handle overflow
4644correctly.
4645
4646[ENTRY]
4647Module: iter
4648What: change
4649Rank: minor
4650[DESCRIPTION]
4651Cached iterators such as n-ary union and intersection, minus, and
4652cache (of course) are not any longer template classes but take
4653template constructors and member functions. N-ary union and
4654intersection iterators can now also be initialized incrementaly
4655with iterators of different types.
4656
4657[ENTRY]
4658Module: flatzinc
4659What: change
4660Rank: minor
4661[DESCRIPTION]
4662The set_in and set_in_reif constraints now work for constant sets
4663even when %Gecode is compiled without support for set variables.
4664
4665
4666[RELEASE]
4667Version: 3.6.0
4668Date: 2011-07-15
4669[DESCRIPTION]
4670This release adds new constraints (value precedence constraints
4671for integer and set variables, no-overlap constraints for
4672rectangles, constraints for Hamiltonian paths), improves and
4673cleans up a number of existing constraints (scheduling,
4674channeling, relation, bin-packing, lexicographic relations), and
4675adds new functionality (support for externalization of choices
4676for distributed search, support for incremental propagation).
4677
4678Some models might have to be changed as the graph and scheduling
4679modules have been incorporated into the integer module (removing
4680the respective include directives is sufficient).
4681
4682On top, there are many small fixes, in particular for FlatZinc.
4683
4684[ENTRY]
4685Module: int
4686What: change
4687Rank: minor
4688[DESCRIPTION]
4689The cumulatives constraint now does not post the s+p=e constraints,
4690harmonizing its semantics with the cumulative and unary constraints.
4691
4692[ENTRY]
4693Module: int
4694What: new
4695Rank: minor
4696[DESCRIPTION]
4697The cumulative constraints now support an IntVar as the capacity
4698argument.
4699
4700[ENTRY]
4701Module: example
4702What: new
4703Rank: minor
4704[DESCRIPTION]
4705Added Schur's Lemma puzzle.
4706
4707[ENTRY]
4708Module: int
4709What: performance
4710Rank: minor
4711[DESCRIPTION]
4712Optimized channeling propagator between an array of Boolean
4713variables and an integer variables.
4714
4715[ENTRY]
4716Module: int
4717What: change
4718Rank: major
4719[DESCRIPTION]
4720Changed semantics of rel(home, x, IRT_NQ), enforces that not all
4721variables in x are equal. See "Modeling and Programming with
4722Gecode" for details.
4723
4724[ENTRY]
4725Module: flatzinc
4726What: new
4727Rank: major
4728[DESCRIPTION]
4729Added native support for the precedence constraint.
4730
4731[ENTRY]
4732Module: set
4733What: new
4734Rank: major
4735Author: Christopher Mears
4736[DESCRIPTION]
4737Added value precedence constraint.
4738
4739[ENTRY]
4740Module: int
4741What: new
4742Rank: major
4743Author: Christopher Mears
4744[DESCRIPTION]
4745Added value precedence constraint.
4746
4747[ENTRY]
4748Module: int
4749What: performance
4750Rank: minor
4751[DESCRIPTION]
4752The disequality constraint between variable arrays has an efficient
4753propagator now.
4754
4755[ENTRY]
4756Module: int
4757What: performance
4758Rank: major
4759[DESCRIPTION]
4760The ordering constraints rel(home, x, IRT_LE) (also for IRT_LQ,
4761IRT_GR, IRT_GQ) now have an optimal implementation (single
4762incremental propagator).
4763
4764[ENTRY]
4765Module: driver
4766What: bug
4767Rank: minor
4768Thanks: Jan Kelbel
4769[DESCRIPTION]
4770Fixed a small memory leak in the driver (stop objects were not deleted).
4771
4772[ENTRY]
4773Module: int
4774What: performance
4775Rank: major
4776[DESCRIPTION]
4777Increased performance of bin-packing propagator by 40 to 300
4778percent by using staging.
4779
4780[ENTRY]
4781Module: flatzinc
4782What: new
4783Rank: major
4784[DESCRIPTION]
4785Added native support for the no-overlap constraint (called diffn in
4786MiniZinc/FlatZinc).
4787
4788[ENTRY]
4789Module: int
4790What: new
4791Rank: major
4792[DESCRIPTION]
4793Added no-overlap constraint that enforces that rectangles do not
4794overlap (also known as diffn). See "Modeling and Programming with
4795Gecode" for details.
4796
4797[ENTRY]
4798Module: int
4799What: new
4800Rank: major
4801[DESCRIPTION]
4802Added constraints for Hamiltonian paths (called
4803path). See "Modeling and Programming with Gecode" for details.
4804
4805[ENTRY]
4806Module: flatzinc
4807What: new
4808Rank: minor
4809Thanks: Håkan Kjellerstrand
4810[DESCRIPTION]
4811Support indomain_middle and indomain_interval search annotation by
4812replacing them with indomain_median and indomain_split, respectively.
4813
4814[ENTRY]
4815Module: gist
4816What: change
4817Rank: minor
4818[DESCRIPTION]
4819Zoom-to-fit can now be selected during search.
4820
4821[ENTRY]
4822Module: graph
4823What: change
4824Rank: major
4825[DESCRIPTION]
4826The graph module has been removed and its constraints have been
4827added to the integer module.
4828
4829[ENTRY]
4830Module: scheduling
4831What: change
4832Rank: major
4833[DESCRIPTION]
4834The scheduling module has been removed and its constraints have been
4835added to the integer module.
4836
4837[ENTRY]
4838Module: int
4839What: bug
4840Rank: minor
4841[DESCRIPTION]
4842Fixed element and sequence propagators, which were only
4843correct by accident (incorrect use of GECODE_ME_CHECK instead of
4844GECODE_ES_CHECK).
4845
4846[ENTRY]
4847Module: set
4848What: bug
4849Rank: minor
4850[DESCRIPTION]
4851Fixed sequence, partition, and union propagators, which were only
4852correct by accident (incorrect use of GECODE_ME_CHECK instead of
4853GECODE_ES_CHECK).
4854
4855[ENTRY]
4856Module: scheduling
4857What: bug
4858Rank: minor
4859[DESCRIPTION]
4860Fixed scheduling code for mandatory flexible tasks, which was only
4861correct by accident (incorrect use of GECODE_ME_CHECK instead of
4862GECODE_ES_CHECK).
4863
4864[ENTRY]
4865Module: flatzinc
4866What: new
4867Rank: minor
4868[DESCRIPTION]
4869Added native support for link_set_to_booleans,
4870global_cardinality_low_up_closed, and decreasing_bool.
4871
4872[ENTRY]
4873Module: int
4874What: new
4875Rank: minor
4876Thanks: Kish Shen
4877[DESCRIPTION]
4878Generalized lexicographic constraint to arrays of different sizes.
4879
4880[ENTRY]
4881Module: search
4882What: bug
4883Rank: minor
4884[DESCRIPTION]
4885Fixed memory leak when passing a failed space to a search engine with cloning
4886option set to false.
4887
4888[ENTRY]
4889Module: kernel
4890What: new
4891Rank: minor
4892[DESCRIPTION]
4893Moved RangeList class, which is a list of ranges implemented as a FreeList,
4894from the set module into the kernel. Also added corresponding
4895Iter::Ranges::RangeList iterator.
4896
4897[ENTRY]
4898Module: int
4899What: new
4900Rank: major
4901[DESCRIPTION]
4902Added a CachedView that can cache the domain between propagator invocations
4903and provides an efficient test whether a view has changed since the previous
4904invocation as well as an iterator over the removed domain values. This makes
4905it easier to implement incremental propagation algorithms that need exact
4906delta information.
4907
4908[ENTRY]
4909Module: set
4910What: new
4911Rank: major
4912[DESCRIPTION]
4913Added a CachedView that can cache the domain between propagator invocations
4914and provides an efficient test whether a view has changed since the previous
4915invocation as well as an iterator over the removed domain values. This makes
4916it easier to implement incremental propagation algorithms that need exact
4917delta information.
4918
4919[ENTRY]
4920Module: set
4921What: performance
4922Rank: minor
4923[DESCRIPTION]
4924Use new cached views for a more efficient implementation of the channel constraint between IntVarArgs and SetVarArgs.
4925
4926[ENTRY]
4927Module: gist
4928What: bug
4929Rank: minor
4930[DESCRIPTION]
4931Changed keyboard shortcuts in Gist so that they work on all platforms: "Inspect"
4932is now Ctrl+number of inspector, for "Inspect before fixpoint" press Alt in
4933addition (on Mac OS, use the Command key instead of Ctrl).
4934
4935[ENTRY]
4936Module: other
4937What: bug
4938Rank: minor
4939Thanks: Martin Mann
4940[DESCRIPTION]
4941Fixed Makefile, now installation works when FlatZinc library is disabled.
4942
4943[ENTRY]
4944Module: other
4945What: new
4946Rank: minor
4947Thanks: Ruben Zilibowitz
4948[DESCRIPTION]
4949Added configure option --enable-small-codesize that results in
4950slightly less efficient but more compact code being generated for
4951non-debug builds.
4952
4953[ENTRY]
4954Module: set
4955What: bug
4956Rank: minor
4957[DESCRIPTION]
4958The constructors for set variable arrays and argument arrays threw incorrect
4959VariableEmptyDomain exceptions.
4960
4961[ENTRY]
4962Module: graph
4963What: new
4964Rank: minor
4965[DESCRIPTION]
4966Added circuit constraints with offsets.
4967
4968[ENTRY]
4969Module: int
4970What: performance
4971Rank: minor
4972[DESCRIPTION]
4973The channel constraints between two integer arrays are now more
4974memory efficient when offsets are used.
4975
4976[ENTRY]
4977Module: kernel
4978What: change
4979Rank: major
4980[DESCRIPTION]
4981Choices can now be written into an externalized form (called an Archive),
4982and reconstructed from it. This is necessary for serializing paths in
4983a distributed search engine.
4984
4985[ENTRY]
4986Module: flatzinc
4987What: change
4988Rank: minor
4989[DESCRIPTION]
4990Adapted the MiniZinc declarations and the command line options for
4991Gecode/FlatZinc to MiniZinc 1.3. The fz binary now works with the
4992minizinc driver script.
4993
4994[ENTRY]
4995Module: flatzinc
4996What: bug
4997Rank: minor
4998Thanks: Håkan Kjellerstrand
4999[DESCRIPTION]
5000Re-enabled the global cardinality constraint in the FlatZinc interpreter.
5001
5002[ENTRY]
5003Module: flatzinc
5004What: bug
5005Rank: minor
5006Thanks: Håkan Kjellerstrand
5007[DESCRIPTION]
5008Fixed the MiniZinc definition for the circuit constraints to work with
5009arbitrarily indexed arrays.
5010
5011[ENTRY]
5012Module: gist
5013What: change
5014Rank: minor
5015Thanks: Alin Gherman
5016[DESCRIPTION]
5017Compiles under MSVC 2005 SP1 again.
5018
5019[ENTRY]
5020Module: set
5021What: new
5022Rank: minor
5023Thanks: Marco Correia
5024[DESCRIPTION]
5025Added channel aliases for set union of an array of integer variables,
5026and renamed channel to channelSorted.
5027
5028[ENTRY]
5029Module: set
5030What: documentation
5031Rank: minor
5032Thanks: Marco Correia
5033[DESCRIPTION]
5034Fixed documentation for set channeling constraint.
5035
5036
5037[RELEASE]
5038Version: 3.5.0
5039Date: 2011-02-01
5040[DESCRIPTION]
5041This release fixes serious bugs in parallel search, FlatZinc,
5042fixes some DLL issues on Windows, adds support for FreeBSD, and
5043adds STL-style iterators for arrays.
5044
5045[ENTRY]
5046Module: search
5047What: bug
5048Rank: major
5049Thanks: Denys Duchier, Chris Mears
5050[DESCRIPTION]
5051Fixed a serious bug in parallel search (took over a year to
5052isolate the bug).
5053
5054[ENTRY]
5055Module: other
5056What: new
5057Rank: minor
5058Thanks: Peter Penchev
5059[DESCRIPTION]
5060Gecode now compiles on FreeBSD.
5061
5062[ENTRY]
5063Module: kernel
5064What: new
5065Rank: major
5066Author: Gregory Crosswhite
5067[DESCRIPTION]
5068Added STL compatible iteration support for arrays (variable
5069arrays, argument arrays, view arrays, and shared arrays).
5070
5071[ENTRY]
5072Module: minimodel
5073What: bug
5074Rank: minor
5075Thanks: Alexander Kleff
5076[DESCRIPTION]
5077Do not inline construction of linear, Boolean, and set
5078expressions to avoid cross-DLL allocation/deallocation issues on
5079Windows.
5080
5081[ENTRY]
5082Module: other
5083What: new
5084Rank: major
5085[DESCRIPTION]
5086Embed resource information into Gecode DLLs and EXEs on Windows.
5087
5088[ENTRY]
5089Module: flatzinc
5090What: bug
5091Rank: major
5092Thanks: Roberto Castañeda Lozano
5093[DESCRIPTION]
5094Fixed incorrect posting of linear constraints with variable arrays
5095of size one.
5096
5097[ENTRY]
5098Module: other
5099What: change
5100Rank: minor
5101[DESCRIPTION]
5102Embed manifest into Gecode DLLs on Windows.
5103
5104[ENTRY]
5105Module: flatzinc
5106What: change
5107Rank: major
5108[DESCRIPTION]
5109Fixed the definitions of global_cardinality to work with MiniZinc 1.2 and
5110newer, and added corresponding definitions of global_cardinality_closed and
5111global_cardinality_low_up_closed.
5112
5113
5114[RELEASE]
5115Version: 3.4.2
5116Date: 2010-10-09
5117[DESCRIPTION]
5118This release removes LDS from Gecode as it is patented in the US.
5119
5120[ENTRY]
5121Module: search
5122What: removed
5123Rank: minor
5124[DESCRIPTION]
5125Removed limited discrepancy search (LDS) as it is patented in the US.
5126
5127[ENTRY]
5128Module: flatzinc
5129What: new
5130Rank: minor
5131[DESCRIPTION]
5132Added support for binpacking constraint.
5133
5134[RELEASE]
5135Version: 3.4.1
5136Date: 2010-10-08
5137[DESCRIPTION]
5138This release adds a new global constraint for binpacking (with
5139extended example) and filter functions for branchers. The
5140reference documentation has been cleaned up. In particular,
5141information on how to obtain, install, and link Gecode has been
5142expanded and moved to "Modeling and Programming with Gecode"
5143(Section 2.6). Additionally, the release fixes some bugs and
5144contains some performance improvements.
5145
5146[ENTRY]
5147Module: example
5148What: new
5149Rank: major
5150[DESCRIPTION]
5151Added a binpacking model using the binpacking constraint and CDBF
5152(complete decreasing best fit) search.
5153
5154[ENTRY]
5155Module: int
5156What: new
5157Rank: major
5158[DESCRIPTION]
5159Added a binpacking constraint and propagator.
5160
5161[ENTRY]
5162Module: driver
5163What: new
5164Rank: minor
5165[DESCRIPTION]
5166Added a class InstanceOptions that takes one additional string argument.
5167
5168[ENTRY]
5169Module: flatzinc
5170What: new
5171Rank: minor
5172[DESCRIPTION]
5173Added support for global_cardinality_low_up.
5174
5175[ENTRY]
5176Module: other
5177What: documentation
5178Rank: minor
5179[DESCRIPTION]
5180Removed obsolete Glossary in reference documentation.
5181
5182[ENTRY]
5183Module: int
5184What: bug
5185Rank: minor
5186Thanks: Gustavo A. Gómez Farhat
5187[DESCRIPTION]
5188Do not inline functions with variable arguments.
5189
5190[ENTRY]
5191Module: gist
5192What: change
5193Rank: minor
5194[DESCRIPTION]
5195Only center node on double-click if it was undetermined (otherwise
5196inspecting several nodes becomes slightly annoying).
5197
5198[ENTRY]
5199Module: minimodel
5200What: change
5201Rank: minor
5202[DESCRIPTION]
5203Added element expression for BoolVarArgs.
5204
5205[ENTRY]
5206Module: minimodel
5207What: bug
5208Rank: minor
5209[DESCRIPTION]
5210Fixed memory allocation for non-linear expressions and made the
5211LinExpr constructor explicit for non-linear expressions (previously
5212the automatic cast from integers to LinExpr was sometimes ambiguous).
5213
5214[ENTRY]
5215Module: scheduling
5216What: bug
5217Rank: major
5218Thanks: Roberto Castañeda Lozano
5219[DESCRIPTION]
5220Fixed initialization for unary and cumulative edge-finding (just
5221worked accidentally).
5222
5223[ENTRY]
5224Module: kernel
5225What: change
5226Rank: major
5227Thanks: Felix Brandt
5228[DESCRIPTION]
5229Branching now honors filter functions, where variables are
5230considered for branching only if the filter functions returns
5231true (see "Modeling and Programming with Gecode" for details).
5232
5233[ENTRY]
5234Module: kernel
5235What: change
5236Rank: minor
5237[DESCRIPTION]
5238Variable implementation views are now parametric with respect to
5239variables but not variable implementations (see "Modeling and
5240Programming with Gecode" for details).
5241
5242[ENTRY]
5243Module: kernel
5244What: change
5245Rank: minor
5246[DESCRIPTION]
5247Renamed the template class for variables defined by a variable
5248implementation from Var to VarImpVar and re-added a class Var as
5249base class for any variable type.
5250
5251[ENTRY]
5252Module: int
5253What: bug
5254Rank: minor
5255Thanks: Kish Shen
5256[DESCRIPTION]
5257The reified dom constraint failed instead of setting the BoolVar to 0 when the
5258minimum argument given was greater than the maximum.
5259
5260[ENTRY]
5261Module: int
5262What: performance
5263Rank: minor
5264Thanks: Kish Shen
5265[DESCRIPTION]
5266Fixed sortedness constraint by replacing an algorithm that is linear in the
5267width of the union of all domains with an algorithm that is quadratic in the
5268number of variables. The previous algorithm crashed for domains with large
5269values due to excessive memory use.
5270
5271[ENTRY]
5272Module: int
5273What: performance
5274Rank: minor
5275[DESCRIPTION]
5276Using ICL_DOM for binary linear equations with unit coefficients (such as x =
5277y+3) is now implemented using the much more efficient binary equality
5278propagator instead of the linear equation propagator (which has worst case
5279exponential runtime).
5280
5281[ENTRY]
5282Module: gist
5283What: performance
5284Rank: minor
5285[DESCRIPTION]
5286Saved some memory for each node in Gist (one pointer per node, two integers
5287per inner node, and some additional memory on 64 bit platforms due to optimizing
5288alignment), and speeded up deallocation of the tree (e.g. when resetting or
5289closing Gist).
5290
5291[ENTRY]
5292Module: iter
5293What: performance
5294Rank: minor
5295[DESCRIPTION]
5296Reimplemented n-ary union, minus, and cache iterators for much
5297better efficiency.
5298
5299[ENTRY]
5300Module: flatzinc
5301What: performance
5302Rank: minor
5303[DESCRIPTION]
5304The FlatZinc parser now uses hash maps instead of STL maps, which
5305significantly increases parsing performance for larger files.
5306Furthermore, a single symbol table is used, also increasing
5307performance and allowing to report duplicate symbol errors,
5308which were previously ignored.
5309
5310
5311[RELEASE]
5312Version: 3.4.0
5313Date: 2010-07-26
5314[DESCRIPTION]
5315This release includes: considerably improved support for posting
5316expressions and relations (also including set and full arithmetic
5317expressions); other improvements for modeling (array
5318initialization and element addition to arrays); state-of-the-art
5319unary and cumulative scheduling propagators (including optional
5320and flexible tasks); major cleanups of the variable and view
5321infrastructure (now also documented in MPG); cleanups of the
5322examples; several other fixes and performance improvements.
5323
5324This release is the first to be accompanied by a complete version
5325of "Modeling and Programming in Gecode" which has been extended
5326by many new case studies and parts on programming search engines
5327and variables.
5328
5329[ENTRY]
5330Module: flatzinc
5331What: bug
5332Rank: minor
5333[DESCRIPTION]
5334Boolean relations were incorrect on assigned arguments.
5335
5336[ENTRY]
5337Module: kernel
5338What: bug
5339Rank: minor
5340[DESCRIPTION]
5341Posting a propagator in a failed space could make the space
5342non-failed again.
5343
5344[ENTRY]
5345Module: kernel
5346What: new
5347Rank: minor
5348[DESCRIPTION]
5349Added LocalObject and LocalHandle classes that can be used for
5350space-allocated objects that are shared within a space, for
5351example among several propagators or propagators and branchers.
5352
5353[ENTRY]
5354Module: other
5355What: change
5356Rank: major
5357[DESCRIPTION]
5358Completely cleaned up variables and views, drastically saving code.
5359
5360[ENTRY]
5361Module: other
5362What: removed
5363Rank: minor
5364[DESCRIPTION]
5365Variables do not have init functions any longer as they are not
5366needed, see MPG for discussion.
5367
5368[ENTRY]
5369Module: scheduling
5370What: new
5371Rank: major
5372[DESCRIPTION]
5373Added scheduling constraints for tasks with flexible duration
5374(for both unary and cumulative resources), and made all scheduling
5375propagators deal correctly with zero length tasks.
5376
5377[ENTRY]
5378Module: scheduling
5379What: new
5380Rank: major
5381[DESCRIPTION]
5382Added propagators for cumulative scheduling.
5383
5384[ENTRY]
5385Module: minimodel
5386What: bug
5387Rank: minor
5388Thanks: Håkan Kjellerstrand
5389[DESCRIPTION]
5390Fixed a bug in minimodel, which could crash when using zero
5391coefficients.
5392
5393[ENTRY]
5394Module: driver
5395What: change
5396Rank: minor
5397[DESCRIPTION]
5398The driver now catches SIGINT (i.e., pressing Ctrl-C) and stops
5399the search properly, printing statistics up to the point where
5400it stopped.
5401
5402[ENTRY]
5403Module: gist
5404What: change
5405Rank: minor
5406[DESCRIPTION]
5407If an inspector throws an exception, an error message is
5408printed indicating which inspector caused the problem.
5409Previously, Gist would crash with a Qt error that was difficult
5410to trace.
5411
5412[ENTRY]
5413Module: flatzinc
5414What: bug
5415Rank: minor
5416[DESCRIPTION]
5417Fixed garbage collection of variables that are not printed. The
5418bug lead to variables being mixed up in the output.
5419
5420[ENTRY]
5421Module: example
5422What: removed
5423Rank: minor
5424[DESCRIPTION]
5425Removed stress tests, the real examples are much more stressful,
5426actually!
5427
5428[ENTRY]
5429Module: minimodel
5430What: change
5431Rank: minor
5432[DESCRIPTION]
5433The Matrix class now supports const operations and has an output
5434operator.
5435
5436[ENTRY]
5437Module: minimodel
5438What: change
5439Rank: major
5440[DESCRIPTION]
5441Linear expressions can now contain non-linear parts, such as
5442multiplications or divisions, or set expressions such as
5443cardinality.
5444
5445[ENTRY]
5446Module: minimodel
5447What: change
5448Rank: major
5449[DESCRIPTION]
5450The minimodel post functions have been split into two functions, rel
5451and expr. While rel posts a constraint, expr returns a new variable
5452constrained to the given expression. This change makes it possible to
5453get rid of the reification operator (~) as well as the tt and ff
5454functions, which were previously needed to distinguish between
5455relations and expressions. Boolean equivalence and implication can
5456now be expressed using operators (==,<<,>>).
5457
5458[ENTRY]
5459Module: minimodel
5460What: new
5461Rank: major
5462[DESCRIPTION]
5463The minimodel library now provides convenient post functions
5464for set constraints.
5465
5466[ENTRY]
5467Module: set
5468What: bug
5469Rank: minor
5470[DESCRIPTION]
5471Fixed the include and exclude tell operations of set variables so
5472that they work with empty ranges.
5473
5474[ENTRY]
5475Module: example
5476What: change
5477Rank: minor
5478[DESCRIPTION]
5479The Nonogram example now uses AFC as the default branching and
5480includes some more instances.
5481
5482[ENTRY]
5483Module: example
5484What: new
5485Rank: minor
5486[DESCRIPTION]
5487New custom branching for the BACP example using a custom value selection.
5488
5489[ENTRY]
5490Module: other
5491What: change
5492Rank: minor
5493[DESCRIPTION]
5494The configure script now checks for qmake-qt4 and moc-qt4, which are used on
5495some Linux systems to distinguish between Qt3 and Qt4.
5496
5497[ENTRY]
5498Module: driver
5499What: change
5500Rank: minor
5501[DESCRIPTION]
5502Running a script in time mode stops all iterations and samples
5503immediately if a single run reaches a limit (eases benchmarks
5504with timeouts).
5505
5506[ENTRY]
5507Module: int
5508What: performance
5509Rank: minor
5510[DESCRIPTION]
5511Optimized element propagator, expect a speed up of around 35-50%
5512in most cases.
5513
5514[ENTRY]
5515Module: minimodel
5516What: performance
5517Rank: minor
5518[DESCRIPTION]
5519Posting linear expressions performs more aggressive optimizations
5520for assigned variables.
5521
5522[ENTRY]
5523Module: minimodel
5524What: performance
5525Rank: minor
5526[DESCRIPTION]
5527Arithmetic modeling functions now try to avoid creating new
5528variables and posting propagators for common cases.
5529
5530[ENTRY]
5531Module: set
5532What: change
5533Rank: minor
5534[DESCRIPTION]
5535The argument arrays now have constructors that create new variables.
5536
5537[ENTRY]
5538Module: int
5539What: change
5540Rank: minor
5541[DESCRIPTION]
5542The argument arrays now have constructors that create new variables.
5543
5544[ENTRY]
5545Module: int
5546What: change
5547Rank: minor
5548[DESCRIPTION]
5549IntArgs with simple sequences of values can now be created using the
5550IntArgs::create static member function.
5551
5552[ENTRY]
5553Module: other
5554What: change
5555Rank: minor
5556[DESCRIPTION]
5557The build system now supports Visual C++ 2010.
5558
5559[ENTRY]
5560Module: minimodel
5561What: change
5562Rank: minor
5563[DESCRIPTION]
5564Array slices can now be empty.
5565
5566[ENTRY]
5567Module: kernel
5568What: change
5569Rank: major
5570[DESCRIPTION]
5571The support for dynamically resizing variable arrays has been
5572removed (it was buggy and inefficient). Instead, all argument
5573arrays now support adding elements using operator<<. In addition,
5574all arrays now support concatenation using operator+ and slicing,
5575and variable arrays, view arrays, and variable argument arrays
5576include a test whether all variables are assigned.
5577
5578[ENTRY]
5579Module: example
5580What: change
5581Rank: minor
5582[DESCRIPTION]
5583Take advantage of the better modeling support for the BIBD, Golomb
5584ruler, Kakuro, Black Hole, and Warehouse examples (nothing but dusting off
5585examples that have been around for ages).
5586
5587[ENTRY]
5588Module: int
5589What: new
5590Rank: minor
5591[DESCRIPTION]
5592You can now construct IntArgs from an STL vector, an IntSharedArray,
5593or using simple comprehensions.
5594
5595[ENTRY]
5596Module: gist
5597What: bug
5598Rank: minor
5599[DESCRIPTION]
5600Fixed bug in Gist where signals were sent across threads, which
5601makes Qt crash in certain situations on some platforms.
5602
5603[ENTRY]
5604Module: gist
5605What: bug
5606Rank: minor
5607Thanks: David Zaremby
5608[DESCRIPTION]
5609Fixed bug in interactive search where every move in the tree required
5610recomputation.
5611
5612
5613[RELEASE]
5614Version: 3.3.1
5615Date: 2010-04-09
5616[DESCRIPTION]
5617This release adds many new features to Gist, fixes two major bugs
5618in extensional constraints, and has some more cleanups to comply
5619with the first release of the "Modeling and Programming with
5620Gecode" document. And, as always some small fixes and cleanups.
5621
5622[ENTRY]
5623Module: other
5624What: documentation
5625Rank: minor
5626[DESCRIPTION]
5627Removed many small documentation quirks.
5628
5629[ENTRY]
5630Module: flatzinc
5631What: performance
5632Rank: minor
5633[DESCRIPTION]
5634Variables that do not have output annotations are now garbage
5635collected during copying.
5636
5637[ENTRY]
5638Module: flatzinc
5639What: performance
5640Rank: minor
5641[DESCRIPTION]
5642When using sums of Boolean variables using bool2int in MiniZinc,
5643the FlatZinc interpreter now posts the more efficient propagators
5644that work directly on the Boolean variables.
5645
5646[ENTRY]
5647Module: scheduling
5648What: bug
5649Rank: minor
5650[DESCRIPTION]
5651The unary scheduling propagator with optional tasks missed some
5652propagation sometimes.
5653
5654[ENTRY]
5655Module: int
5656What: bug
5657Rank: major
5658[DESCRIPTION]
5659Fixed extensional constraint with finite automata for very
5660unlikely (but apparantely possible) border case.
5661
5662[ENTRY]
5663Module: gist
5664What: new
5665Rank: major
5666[DESCRIPTION]
5667In addition to inspectors, you can now also register comparators, which can be
5668used to compare two nodes in the tree. In combination with the option to
5669compare before computing a fixpoint of the second node, this lets you see what
5670exactly was modified by a branching.
5671
5672[ENTRY]
5673Module: set
5674What: bug
5675Rank: minor
5676[DESCRIPTION]
5677Fixed channeling between set and integer variables which did not propagate
5678enough.
5679
5680[ENTRY]
5681Module: int
5682What: bug
5683Rank: major
5684[DESCRIPTION]
5685The extensional constraints with tuple sets could cause crashes
5686when used with parallel search.
5687
5688[ENTRY]
5689Module: gist
5690What: bug
5691Rank: minor
5692[DESCRIPTION]
5693Missing export declarations prevented embedding Gist as a widget. There is
5694now example code for embedding Gist in the directory
5695gecode/gist/standalone-example.
5696
5697[ENTRY]
5698Module: gist
5699What: new
5700Rank: major
5701[DESCRIPTION]
5702Gist can now stop exploration after all alternatives of a certain branching
5703are exhausted. This feature can be turned on by posting a special branching
5704using the Gist::stopBranch post function. Gist will then stop whenever that
5705special branching becomes active.
5706
5707[ENTRY]
5708Module: kernel
5709What: bug
5710Rank: minor
5711[DESCRIPTION]
5712Fixed bug in VarArray::resize function that occurred when shrinking
5713variable arrays.
5714
5715[ENTRY]
5716Module: kernel
5717What: change
5718Rank: minor
5719[DESCRIPTION]
5720The (unused and unusable) CopiedHandle have been removed.
5721
5722[ENTRY]
5723Module: scheduling
5724What: change
5725Rank: minor
5726[DESCRIPTION]
5727Tasks in unary scheduling constraints may now have processing times of 0.
5728
5729[ENTRY]
5730Module: gist
5731What: new
5732Rank: minor
5733[DESCRIPTION]
5734Added inspection of nodes before fixpoint computation.
5735
5736[ENTRY]
5737Module: set
5738What: removed
5739Rank: minor
5740[DESCRIPTION]
5741Removed Set::IntSetPropagator and Set::IntSetRePropagator because they are
5742subsumed by the MixBinaryPropagator patterns.
5743
5744[ENTRY]
5745Module: gist
5746What: bug
5747Rank: minor
5748[DESCRIPTION]
5749Fixed a bug where sometimes clicking on a node would select a different node.
5750
5751[ENTRY]
5752Module: gist
5753What: performance
5754Rank: major
5755[DESCRIPTION]
5756Scrolling and zooming have been reimplemented. The new implementation is more
5757efficient and works around problems that occurred with large trees on some
5758platforms. Zooming is now more intuitive, keeping the current center
5759centered. You can now also zoom by pressing shift while using the mouse wheel.
5760
5761[ENTRY]
5762Module: example
5763What: new
5764Rank: minor
5765[DESCRIPTION]
5766Added Gist inspectors for the Knights and Queens examples.
5767
5768[ENTRY]
5769Module: driver
5770What: new
5771Rank: minor
5772[DESCRIPTION]
5773You can now register Gist inspectors in the driver options.
5774
5775[ENTRY]
5776Module: gist
5777What: new
5778Rank: minor
5779[DESCRIPTION]
5780Nodes can now be bookmarked.
5781
5782[ENTRY]
5783Module: gist
5784What: new
5785Rank: minor
5786[DESCRIPTION]
5787Added inspectors that react whenever a node is selected.
5788
5789[ENTRY]
5790Module: flatzinc
5791What: change
5792Rank: minor
5793[DESCRIPTION]
5794Comply with MiniZinc 1.1. String literals are not allowed any longer
5795except in annotations, the solver outputs UNKNOWN and UNSATISFIABLE
5796instead of just ==========, and the global constraints all_equal,
5797decreasing_int, and decreasing_bool are supported.
5798
5799
5800
5801[RELEASE]
5802Version: 3.3.0
5803Date: 2010-03-15
5804[DESCRIPTION]
5805This release provides some fixes, some performance improvements
5806for domain propagators, and quite some clean ups how propagators
5807and advisors report their status to the kernel. Many of these
5808clean ups are essential to make it easier to program propagators
5809and branchers with Gecode.
5810
5811[ENTRY]
5812Module: other
5813What: bug
5814Rank: minor
5815[DESCRIPTION]
5816Configure now prepend options to the CXXFLAGS and CFLAGS variables
5817instead of appending them. That way, defining the variables when
5818invoking configure overrides the choices configure makes (e.g.
5819overriding the default -O3 with -O2).
5820
5821[ENTRY]
5822Module: int
5823What: change
5824Rank: minor
5825[DESCRIPTION]
5826Patterns for reified propagators have been moved to the
5827Gecode::Int namespace.
5828
5829[ENTRY]
5830Module: set
5831What: change
5832Rank: minor
5833[DESCRIPTION]
5834Patterns for set propagators have been moved to the
5835Gecode::Set namespace.
5836
5837[ENTRY]
5838Module: kernel
5839What: bug
5840Rank: minor
5841[DESCRIPTION]
5842ViewValBrancher with random value selection did not produce a
5843random sequence of values.
5844
5845[ENTRY]
5846Module: kernel
5847What: new
5848Rank: minor
5849[DESCRIPTION]
5850Advisors now can force its propagator to be rescheduled,
5851including recomputation of its cost used for scheduling
5852(normally, a propagator is only rescheduled if its modification
5853event delta changes). An advisor can signal forceful rescheduling
5854by returning ES_NOFIX_FORCE or returning the return value of
5855ES_NOFIX_FORCE_DISPOSE. Read the forthcoming "Modeling and
5856Programming with Gecode" for details.
5857
5858[ENTRY]
5859Module: kernel
5860What: change
5861Rank: minor
5862[DESCRIPTION]
5863The failure macros for posting GECODE_ES_FAIL and GECODE_ME_FAIL
5864now only accept a single argument and assume that "home" actually
5865refers to the home space. Read the forthcoming "Modeling and
5866Programming with Gecode" for details.
5867
5868[ENTRY]
5869Module: kernel
5870What: change
5871Rank: minor
5872[DESCRIPTION]
5873The functions ES_FIX_PARTIAL, ES_NOFIX_PARTIAL, ES_FIX_DISPOSE,
5874and ES_NOFIX_DISPOSE are now member of Space. Read the
5875forthcoming "Modeling and Programming with Gecode" for details.
5876
5877[ENTRY]
5878Module: kernel
5879What: change
5880Rank: minor
5881[DESCRIPTION]
5882The function ES_SUBSUMED now is a member of Space and accepts a
5883propagator as its single argument. The variant with a size as the
5884second argument is available as ES_SUBSUMED_DISPOSED but use is
5885highly discouraged. Read the forthcoming "Modeling and
5886Programming with Gecode" for details.
5887
5888[ENTRY]
5889Module: kernel
5890What: change
5891Rank: minor
5892[DESCRIPTION]
5893The functions ES_SUBSUMED_FIX and ES_SUBSUMED_NOFIX for advisors
5894have been renamed to ES_FIX_DISPOSE and ES_NOFIX_DISPOSE. Read
5895the forthcoming "Modeling and Programming with Gecode" for
5896details.
5897
5898[ENTRY]
5899Module: flatzinc
5900What: change
5901Rank: minor
5902[DESCRIPTION]
5903The FlatZinc interpreter can now be extended by plugins that implement
5904custom search strategies. The plugins are implemented as dynamically loaded
5905libraries using the Qt plugin mechanism. An example can be found in the
5906directory gecode/flatzinc/exampleplugin.
5907
5908[ENTRY]
5909Module: flatzinc
5910What: change
5911Rank: minor
5912[DESCRIPTION]
5913The index of the variable used for optimization is now available in the
5914FlatZincSpace class.
5915
5916[ENTRY]
5917Module: flatzinc
5918What: change
5919Rank: minor
5920[DESCRIPTION]
5921Added command line option -print, which controls whether all solutions are
5922printed or only the last one that is found, and -search, to choose between
5923branch-and-bound and restart optimization.
5924
5925[ENTRY]
5926Module: flatzinc
5927What: change
5928Rank: minor
5929[DESCRIPTION]
5930The FlatZinc library can now parse a FlatZinc model into any subclass of
5931FlatZincSpace, so that custom extensions can be built. Annotations on the
5932solve item can now be accessed from the returned FlatZincSpace, so that
5933additional search strategies can be implemented.
5934
5935[ENTRY]
5936Module: flatzinc
5937What: bug
5938Rank: minor
5939[DESCRIPTION]
5940The FlatZinc interpreter ignored the -c-d and -a-d command line
5941switches when used with Gist.
5942
5943[ENTRY]
5944Module: minimodel
5945What: removed
5946Rank: minor
5947[DESCRIPTION]
5948Removed special cases for posting linear and Boolean expressions
5949consisting of a single variable only (was highly ambigious).
5950
5951[ENTRY]
5952Module: minimodel
5953What: new
5954Rank: minor
5955[DESCRIPTION]
5956Linear expressions can freely mix integer and Boolean variables
5957and support construction from variable arrays via a sum function.
5958
5959[ENTRY]
5960Module: support
5961What: performance
5962Rank: major
5963[DESCRIPTION]
5964Changed to single, really efficient bitset implementation used
5965allover the system.
5966
5967[ENTRY]
5968Module: int
5969What: performance
5970Rank: major
5971[DESCRIPTION]
5972Considerably improved performance and memory consumption of the
5973DFA-based extensional constraint (regular).
5974
5975[ENTRY]
5976Module: int
5977What: new
5978Rank: minor
5979[DESCRIPTION]
5980Integer sets (IntSet) now have a in member function for testing
5981whether an integer is included.
5982
5983[ENTRY]
5984Module: gist
5985What: bug
5986Rank: minor
5987[DESCRIPTION]
5988Avoid inter-thread call to QWidget::update, which apparently causes a slight
5989memory leak (and warning messages on stderr) on Mac OS.
5990
5991
5992
5993[RELEASE]
5994Version: 3.2.2
5995Date: 2009-11-30
5996[DESCRIPTION]
5997This release adds the sequence constraint (contributed by David
5998Rijsman, Quintiq) and has as always some small additions and
5999fixes.
6000
6001[ENTRY]
6002Module: int
6003What: bug
6004Rank: minor
6005Thanks: Alberto Delgado
6006[DESCRIPTION]
6007The global cardinality (count) constraint now accepts unsorted
6008arrays of values. It previously propagated incorrectly if the
6009array was not sorted.
6010
6011[ENTRY]
6012Module: int
6013What: bug
6014Rank: minor
6015[DESCRIPTION]
6016Fixed bug in the ICL_VAL propagator for global cardinality.
6017
6018[ENTRY]
6019Module: flatzinc
6020What: bug
6021Rank: minor
6022Thanks: Håkan Kjellerstrand
6023[DESCRIPTION]
6024Support search annotations with constants in the variable arrays.
6025
6026[ENTRY]
6027Module: search
6028What: bug
6029Rank: minor
6030[DESCRIPTION]
6031The memory reported could be sometimes too low (the previous fix
6032for 3.2.0 did not fix it for branch and bound search).
6033
6034[ENTRY]
6035Module: kernel
6036What: bug
6037Rank: minor
6038Thanks: Gustavo Gutierrez
6039[DESCRIPTION]
6040Added missing assignment operator for space-based allocators for
6041STL data structures.
6042
6043[ENTRY]
6044Module: iter
6045What: change
6046Rank: minor
6047[DESCRIPTION]
6048Renamed test for subset or disjointness of range iterators to "compare".
6049
6050[ENTRY]
6051Module: flatzinc
6052What: bug
6053Rank: minor
6054[DESCRIPTION]
6055The set_in and set_in_reif constraints were buggy when used with Boolean
6056variables (which are usually not generated by mzn2fzn so that the issue
6057probably does not occur in practice).
6058
6059[ENTRY]
6060Module: set
6061What: bug
6062Rank: minor
6063[DESCRIPTION]
6064Subscription to constant views did not honor the flag to avoid
6065processing (did not occur in practice).
6066
6067[ENTRY]
6068Module: int
6069What: bug
6070Rank: minor
6071[DESCRIPTION]
6072Subscription to constant views did not honor the flag to avoid
6073processing.
6074
6075[ENTRY]
6076Module: example
6077What: new
6078Rank: minor
6079[DESCRIPTION]
6080Added car sequencing example (problem 1 in CSPLib). Uses the new
6081sequence-constraint.
6082
6083[ENTRY]
6084Module: int
6085What: new
6086Rank: major
6087Author: David Rijsman
6088[DESCRIPTION]
6089Added sequence constraint.
6090
6091[ENTRY]
6092Module: driver
6093What: new
6094Rank: minor
6095[DESCRIPTION]
6096Report if search engine has been stopped.
6097
6098[ENTRY]
6099Module: flatzinc
6100What: bug
6101Rank: minor
6102[DESCRIPTION]
6103The global_cardinality constraint was not completely compatible with
6104the MiniZinc semantics. It would constrain values not mentioned in the
6105array to have zero occurrences, while in MiniZinc they are unrestricted.
6106
6107[ENTRY]
6108Module: flatzinc
6109What: bug
6110Rank: major
6111Thanks: Håkan Kjellerstrand
6112[DESCRIPTION]
6113Element constraints in reified positions produced an error in the mzn2fzn
6114translation.
6115
6116
6117[RELEASE]
6118Version: 3.2.1
6119Date: 2009-11-04
6120[DESCRIPTION]
6121This release fixes one serious bug in the element constraint for
6122matrices; adds branchings using accumulated failure counts (also
6123known as weighted degree); provides some optimizations (mostly
6124for element constraints and for regular expressions with millions
6125of nodes); adds two cute models (word-square and crossword); and
6126a little this and that as always.
6127
6128[ENTRY]
6129Module: minimodel
6130What: performance
6131Rank: minor
6132Thanks: Håkan Kjellerstrand
6133[DESCRIPTION]
6134Conversion of a regular expression to a DFA would crash on
6135regular expressions with several million nodes (due to running
6136out of call stack space).
6137
6138[ENTRY]
6139Module: set
6140What: change
6141Rank: minor
6142[DESCRIPTION]
6143Split rel-op.cpp and rel-op-const.cpp into several compilation units, to avoid
6144excessive memory and time usage of the gcc compiler.
6145
6146[ENTRY]
6147Module: int
6148What: performance
6149Rank: minor
6150[DESCRIPTION]
6151Element constraints for integer arrays now accept shared integer
6152arrays (IntSharedArray). By this, the very same array can be
6153shared among several element constraints. Models require no
6154change, as IntArgs are automatically coerced to
6155IntSharedArrays. See "Modeling with Gecode" for more
6156explanation.
6157
6158[ENTRY]
6159Module: int
6160What: change
6161Rank: minor
6162[DESCRIPTION]
6163The semantics of division and modulo has changed to match the C standard. This
6164means that the operations round towards zero, and that the result of the
6165modulo has the same sign as its first argument.
6166
6167[ENTRY]
6168Module: example
6169What: bug
6170Rank: minor
6171Thanks: Jan Wolter
6172[DESCRIPTION]
6173The Nonogram example no longer crashes on empty lines.
6174
6175[ENTRY]
6176Module: int
6177What: performance
6178Rank: minor
6179[DESCRIPTION]
6180Optimized element for matrices (in special cases, the propagator
6181is up to six times as efficient as before).
6182
6183[ENTRY]
6184Module: flatzinc
6185What: bug
6186Rank: minor
6187[DESCRIPTION]
6188Fixed statistics output (number of solutions was sometimes wrong).
6189
6190[ENTRY]
6191Module: int
6192What: bug
6193Rank: major
6194[DESCRIPTION]
6195Fixed segfault in matrix element constraint.
6196
6197[ENTRY]
6198Module: example
6199What: new
6200Rank: minor
6201Author: Håkan Kjellerstrand
6202[DESCRIPTION]
6203Added word square puzzle.
6204
6205[ENTRY]
6206Module: example
6207What: new
6208Rank: minor
6209Thanks: Peter Van Beek
6210[DESCRIPTION]
6211Added crossword puzzle (thanks to Peter Van Beek for providing
6212access to some crossword grids).
6213
6214[ENTRY]
6215Module: int
6216What: new
6217Rank: minor
6218[DESCRIPTION]
6219Added INT_VAL_RANGES_MIN (and INT_VAL_RANGES_MAX) as value
6220selection for branching: it tries the values from the smallest
6221(largest) range first, if the variable's domain has several
6222ranges, otherwise it splits the domain.
6223
6224[ENTRY]
6225Module: int
6226What: bug
6227Rank: minor
6228[DESCRIPTION]
6229Added missing dispose function for linear disequality of Boolean
6230variables (the only problem was that with a proper dispose
6231function more memory can be reused when the propagator becomes
6232subsumed, so really a tiny quirk).
6233
6234[ENTRY]
6235Module: int
6236What: new
6237Rank: major
6238[DESCRIPTION]
6239Added AFC-based branching strategies for integer and Boolean
6240variables: INT_VAR_AFC_MIN, INT_VAR_AFC_MAX,
6241INT_VAR_SIZE_AFC_MIN, INT_VAR_SIZE_AFC_MAX. For details, see
6242"Modeling with Gecode".
6243
6244[ENTRY]
6245Module: set
6246What: new
6247Rank: major
6248[DESCRIPTION]
6249Added AFC-based branching strategies for set variables:
6250SET_VAR_AFC_MIN, SET_VAR_AFC_MAX, SET_VAR_SIZE_AFC_MIN,
6251SET_VAR_SIZE_AFC_MAX. For details, see "Modeling with Gecode".
6252
6253[ENTRY]
6254Module: kernel
6255What: new
6256Rank: major
6257[DESCRIPTION]
6258Propagators and variables now maintain an accumulated failure
6259count (AFC).
6260[MORE]
6261The AFC of a propagator counts how often has the propagator
6262failed during the entire search, and the AFC of a variable is its
6263degree plus the sum of the AFCs of all propagators depending on
6264the variable. While it looks straightforward, this required a
6265major extension of the Gecode kernel to deal with global
6266information accessed concurrently from several threads during
6267search. The AFC is also known as "weighted degree".
6268
6269[ENTRY]
6270Module: example
6271What: change
6272Rank: minor
6273[DESCRIPTION]
6274Sudoku and GraphColor now uses smallest size over accumulated failure
6275count (AFC) as the default heuristic.
6276
6277[ENTRY]
6278Module: bug
6279What: set
6280Rank: minor
6281[DESCRIPTION]
6282For branching, SET_VAR_DEGREE_MAX would select the variable with
6283smallest rather than largest degree.
6284
6285[ENTRY]
6286Module: other
6287What: change
6288Rank: major
6289[DESCRIPTION]
6290Now posting of propagators and branchers take an object of class
6291Home (rather than just a space) that can carry additional
6292information relevant for posting (for example, groups and
6293accumulated failure information). Models do not need to be
6294changed in any way!
6295[MORE]
6296While models require no change, propagator rewriting does (it
6297will work but some information might be lost). Instead of writing
6298something like
6299GECODE_REWRITE(*this,SomeProp::post(home,...));
6300where *this is the propagator to be rewritten, you should now
6301write
6302GECODE_REWRITE(*this,SomeProp::post(home(*this),...));
6303By this, the new propagator will inherit information from *this
6304(in particular the accumulated failure count).
6305
6306
6307[RELEASE]
6308Version: 3.2.0
6309Date: 2009-10-05
6310[DESCRIPTION]
6311This release has some important bug fixes (in particular for
6312global cardinality aka count), the documentation has been
6313improved (worked around some issues with generation by doxygen),
6314integrates the FlatZinc interpreter into the Gecode source tree,
6315provides propagators for disjunctive scheduling (experimental),
6316and lots of small changes and fixes. For more consistent names,
6317branchings are branchers now and branching descriptions are
6318choices (this you might have to adapt to).
6319
6320
6321[ENTRY]
6322Module: scheduling
6323What: new
6324Rank: major
6325[DESCRIPTION]
6326Added propagators for disjunctive scheduling (unary resource
6327scheduling). This is still experimental as the propagators are
6328not yet optimized and branching and modelling support is not yet
6329available.
6330
6331[ENTRY]
6332Module: search
6333What: bug
6334Rank: minor
6335[DESCRIPTION]
6336The memory reported could be sometimes too low (that could only
6337happen when an advisor allocates memory which they do only now).
6338
6339[ENTRY]
6340Module: other
6341What: documentation
6342Rank: major
6343[DESCRIPTION]
6344Cleaned up the generated reference documentation, and introduced a number
6345of workarounds for issues in doxygen. In particular, the documentation for
6346linear constraints over Boolean variables and for the thread abstractions
6347is now generated properly.
6348
6349[ENTRY]
6350Module: flatzinc
6351What: new
6352Rank: major
6353[DESCRIPTION]
6354The Gecode interpreter for the FlatZinc language is now part of the main
6355Gecode source tree.
6356
6357[ENTRY]
6358Module: int
6359What: performance
6360Rank: minor
6361Thanks: George Katsirelos, Nina Narodytska
6362[DESCRIPTION]
6363Extensional propagators using DFAs or REGs (aka regular) use a
6364more compact state representation but create their state more
6365eagerly. That can improve performance considerably (twice as fast) at a slight
6366increase in memory.
6367
6368[ENTRY]
6369Module: gist
6370What: bug
6371Rank: minor
6372[DESCRIPTION]
6373Gist now places clones also on the leftmost branch during search.
6374
6375[ENTRY]
6376Module: other
6377What: documentation
6378Rank: minor
6379Thanks: Vivian De Smedt
6380[DESCRIPTION]
6381Mention that also grep is needed for building Gecode.
6382
6383[ENTRY]
6384Module: int
6385What: bug
6386Rank: minor
6387Thanks: Jan Kelbel
6388[DESCRIPTION]
6389Slightly improved strength of the division propagator.
6390
6391[ENTRY]
6392Module: example
6393What: bug
6394Rank: minor
6395Thanks: Geoffrey Chu
6396[DESCRIPTION]
6397Fixed wrong symmetry breaking for TSP.
6398
6399[ENTRY]
6400Module: support
6401What: change
6402Rank: minor
6403Thanks: Alexandre Fayolle
6404[DESCRIPTION]
6405No longer depend on availability of timersub.
6406
6407[ENTRY]
6408Module: int
6409What: performance
6410Rank: minor
6411[DESCRIPTION]
6412Optimized n-ary disjunction and conjunction and the clause constraint.
6413
6414[ENTRY]
6415Module: int
6416What: performance
6417Rank: minor
6418[DESCRIPTION]
6419Linear constraints over Boolean variables with unit coefficients
6420(aka Boolean cardinality constraints) have been
6421reimplemented. Less memory (minus 30%) and more speed. For
6422example, BIBD runs 10% faster now.
6423
6424[ENTRY]
6425Module: search
6426What: change
6427Rank: minor
6428[DESCRIPTION]
6429Optimized thread creation by thread pools, now the creation and
6430deletion of arbitrarily many parallel search engines also works
6431for platforms using pthreads (Linux and MacOS).
6432
6433[ENTRY]
6434Module: other
6435What: change
6436Rank: minor
6437Thanks: David Rijsman
6438[DESCRIPTION]
6439Compiles with MSVC 2005 again.
6440
6441[ENTRY]
6442Module: other
6443What: bug
6444Rank: minor
6445[DESCRIPTION]
6446The configure script checked for Qt 4.2, although Gist requires at least
6447Qt 4.3.
6448
6449[ENTRY]
6450Module: int
6451What: bug
6452Rank: major
6453[DESCRIPTION]
6454Fixed serious bug in the bounds propagator for global cardinality.
6455
6456[ENTRY]
6457Module: kernel
6458What: change
6459Rank: major
6460[DESCRIPTION]
6461A branching is now a brancher and a branching description is now a choice.
6462[MORE]
6463Classes and member functions have been renamed accordingly. The
6464change is necessary due to proper explanation in the forthcoming
6465"Programming with Gecode".
6466
6467[ENTRY]
6468Module: search
6469What: bug
6470Rank: minor
6471[DESCRIPTION]
6472Compiles again if no threads available.
6473
6474[ENTRY]
6475Module: gist
6476What: change
6477Rank: minor
6478[DESCRIPTION]
6479The Gist console now has a toolbar that provides buttons to clear the text
6480as well as to configure the console window to stay on top of Gist.
6481Furthermore, after adding output, the console now automatically scrolls to the
6482bottom.
6483
6484[ENTRY]
6485Module: graph
6486What: new
6487Rank: minor
6488[DESCRIPTION]
6489Cost-based variants for circuit added.
6490
6491[ENTRY]
6492Module: set
6493What: change
6494Rank: minor
6495[DESCRIPTION]
6496The element constraint with an integer index variable now throws
6497an exception if used with an empty array.
6498
6499[ENTRY]
6500Module: int
6501What: change
6502Rank: minor
6503[DESCRIPTION]
6504The element constraint now computes more accurate variable bounds
6505when being posted (to avoid arithmetic overflow in naive models).
6506
6507[ENTRY]
6508Module: int
6509What: change
6510Rank: minor
6511[DESCRIPTION]
6512The element constraint now throws an exception if used with an
6513empty array.
6514
6515[ENTRY]
6516Module: example
6517What: bug
6518Rank: minor
6519[DESCRIPTION]
6520Fixed zero cost edges in TSP examples.
6521
6522[ENTRY]
6523Module: example
6524What: change
6525Rank: minor
6526[DESCRIPTION]
6527Examples now use the symmetry-option for symmetry-breaking.
6528[MORE]
6529The affected examples are:
6530 - BlackHole
6531 - EFPA
6532 - Pentominoes
6533 - SteelMill
6534 .
6535
6536[ENTRY]
6537Module: driver
6538What: new
6539Rank: minor
6540[DESCRIPTION]
6541Added new standard option for options called symmetry.
6542
6543[ENTRY]
6544Module: int
6545What: new
6546Rank: minor
6547Thanks: Kish Shen
6548[DESCRIPTION]
6549Added regret_min and regret_max for IntVar and BoolVar (they were
6550only available for IntView).
6551
6552[ENTRY]
6553Module: int
6554What: change
6555Rank: minor
6556[DESCRIPTION]
6557Moved cumulatives to the new scheduling library.
6558
6559[ENTRY]
6560Module: scheduling
6561What: new
6562Rank: minor
6563[DESCRIPTION]
6564Added a new module for scheduling. To use scheduling
6565constraints, you have to include <gecode/scheduling.hh> and link
6566against the scheduling library.
6567
6568[ENTRY]
6569Module: int
6570What: change
6571Rank: minor
6572[DESCRIPTION]
6573Moved circuit to the new graph library.
6574
6575[ENTRY]
6576Module: graph
6577What: new
6578Rank: minor
6579[DESCRIPTION]
6580Added a new module for graph constraints. To use graph
6581constraints, you have to include <gecode/graph.hh> and link
6582against the graph library.
6583
6584[ENTRY]
6585Module: example
6586What: new
6587Rank: minor
6588[DESCRIPTION]
6589Added branching following Warnsdorff's heuristic for Knights.
6590
6591[ENTRY]
6592Module: int
6593What: new
6594Rank: minor
6595[DESCRIPTION]
6596Added branch and assign for single integer and Boolean variable.
6597
6598[ENTRY]
6599Module: set
6600What: new
6601Rank: minor
6602[DESCRIPTION]
6603Added branch and assign for single set variable.
6604
6605[ENTRY]
6606Module: minimodel
6607What: new
6608Rank: minor
6609Thanks: Håkan Kjellerstrand
6610[DESCRIPTION]
6611Added element constraints for Matrix interface to arrays.
6612
6613[ENTRY]
6614Module: int
6615What: new
6616Rank: minor
6617Thanks: Håkan Kjellerstrand
6618[DESCRIPTION]
6619Added element constraints for Matrix arrays.
6620
6621[ENTRY]
6622Module: set
6623What: new
6624Rank: minor
6625Thanks: Håkan Kjellerstrand
6626[DESCRIPTION]
6627Added element constraints for Matrix arrays.
6628
6629[ENTRY]
6630Module: search
6631What: change
6632Rank: minor
6633Thanks: Vincent Barichard
6634[DESCRIPTION]
6635Path for search provides top and empty methods.
6636
6637[ENTRY]
6638Module: driver
6639What: change
6640Rank: minor
6641Bug: 59
6642Thanks: Luca Di Gaspero
6643[DESCRIPTION]
6644The driver takes copies of all string values passed top it.
6645
6646
6647[RELEASE]
6648Version: 3.1.0
6649Date: 2009-05-20
6650[DESCRIPTION]
6651This release introduces parallel search, features improved memory
6652management (can double efficiency on MacOS X), and provides a
6653reusable command line driver upon popular request. And, of
6654course, some this and that.
6655
6656[ENTRY]
6657Module: set
6658What: change
6659Rank: minor
6660[DESCRIPTION]
6661The set constraint sequentialUnion has been renamed to sequence.
6662
6663[ENTRY]
6664Module: example
6665What: change
6666Rank: minor
6667[DESCRIPTION]
6668The parameters of the Hamming Codes example are now configurable
6669through command line options (instead of hard-coded).
6670
6671[ENTRY]
6672Module: search
6673What: change
6674Rank: minor
6675[DESCRIPTION]
6676The stop function of stop objects now also takes a second argument
6677of type Search::Options. This is in particular useful for
6678decisions that involve the number of threads used for search.
6679
6680[ENTRY]
6681Module: search
6682What: new
6683Rank: major
6684[DESCRIPTION]
6685Added parallel search engines for DFS, BAB, and Restart (but not
6686LDS). Please make sure to read the section "Parallel search" in
6687"Modeling with Gecode".
6688[MORE]
6689Parallel search is still experimental: creating and destroying a
6690large number (more than 1000) of search engines (and hence a
6691large number of threads) might raise exceptions on operating
6692systems using pthreads as thread implementation. This will be
6693fixed in a future release by using thread pools.
6694
6695[ENTRY]
6696Module: support
6697What: new
6698Rank: minor
6699[DESCRIPTION]
6700Added a tiny portable thread package specifically tailored to the
6701needs for parallel search. Unfortunately, other portable thread
6702packages have just too many issues.
6703
6704[ENTRY]
6705Module: gist
6706What: bug
6707Rank: minor
6708[DESCRIPTION]
6709Fixed a dead lock that could occur when closing the Gist main window while
6710search is still running.
6711
6712[ENTRY]
6713Module: gist
6714What: bug
6715Rank: minor
6716[DESCRIPTION]
6717The inspectors are finalized before Gist exits. This fixes a bug
6718where (at least on Mac OS) some memory was not freed in the
6719correct order.
6720
6721[ENTRY]
6722Module: gist
6723What: bug
6724Rank: minor
6725[DESCRIPTION]
6726Gist now correctly centers the current node after search has finished.
6727
6728[ENTRY]
6729Module: gist
6730What: change
6731Rank: minor
6732[DESCRIPTION]
6733Small user interface changes: disable search from hidden nodes, add depth
6734information to status bar, and add statistics for subtrees (available from the
6735node context menu and the Node menu).
6736
6737[ENTRY]
6738Module: gist
6739What: change
6740Rank: minor
6741[DESCRIPTION]
6742Easily add multiple inspectors to Gist. Inspectors are not
6743exclusive any longer, you can select any combination of them to
6744respond to clicks or solutions simultaneously.
6745
6746[ENTRY]
6747Module: int
6748What: change
6749Rank: minor
6750[DESCRIPTION]
6751The INT_VAL_MED value selection now consistently selects the greatest element
6752in the domain not greater than the median.
6753
6754[ENTRY]
6755Module: driver
6756What: change
6757Rank: minor
6758[DESCRIPTION]
6759If Gist is not available, -mode gist is the same as -mode
6760solution. Invocation with -help also prints information about how
6761Gecode has been configured.
6762
6763[ENTRY]
6764Module: example
6765What: new
6766Rank: minor
6767[DESCRIPTION]
6768Added new example for equidistant frequency permutation arrays (EFPA).
6769
6770[ENTRY]
6771Module: kernel
6772What: performance
6773Rank: major
6774[DESCRIPTION]
6775Cache memory blocks from deleted spaces. This hardly increases
6776peak memory consumption. It improves performance on Windows and
6777Linux only by up to 5%, but on MacOS by 50% in some cases (this
6778improvement is absolutely essential for parallel execution).
6779
6780[ENTRY]
6781Module: set
6782What: new
6783Rank: minor
6784[DESCRIPTION]
6785Added a wait propagator: executes a function when a variable (or
6786variables) become(s) assigned.
6787
6788[ENTRY]
6789Module: int
6790What: new
6791Rank: minor
6792[DESCRIPTION]
6793Added a wait propagator: executes a function when a variable (or
6794variables) become(s) assigned.
6795
6796[ENTRY]
6797Module: driver
6798What: new
6799Rank: major
6800[DESCRIPTION]
6801Added a new module "driver" as a commandline driver for
6802scripts. This is due to popular request: most people have been
6803using the support functionality for examples anyway. This
6804function is now wrapped into a proper module (and Example is
6805now called Script to be more general). See "Modeling with Gecode"
6806for documentation.
6807
6808[ENTRY]
6809Module: support
6810What: new
6811Rank: minor
6812[DESCRIPTION]
6813Support::quicksort and Support::insertion support using the less than
6814operator for the sort order by leaving out the comparator object.
6815
6816
6817[RELEASE]
6818Version: 3.0.2
6819Date: 2009-03-26
6820[DESCRIPTION]
6821This is a bug fix release fixing two more embarrassing
6822bugs. However, this time we redesigned our tests carefully such
6823that they cover all changes and optimizations done for the
6824transition from 2.2.0 to 3.0.*. Please update asap.
6825
6826[ENTRY]
6827Module: example
6828What: bug
6829Rank: minor
6830Thanks: Håkan Kjellerstrand
6831[DESCRIPTION]
6832The radiotherapy example was missing in the Makefile.
6833
6834[ENTRY]
6835Module: int
6836What: bug
6837Rank: major
6838[DESCRIPTION]
6839Fixed bug in optimization of extensional constraints with DFAs
6840(hard to reproduce, almost impossible).
6841
6842[ENTRY]
6843Module: minimodel
6844What: bug
6845Rank: major
6846Thanks: Gustavo Guiterrez
6847[DESCRIPTION]
6848Fixed bug in posting of Boolean expressions including reified
6849linear expressions. Again, that escaped our testsuite (also
6850fixed).
6851
6852[ENTRY]
6853Module: int
6854What: performance
6855Rank: minor
6856[DESCRIPTION]
6857Reoptimized element with integer values and created bizarre
6858testcases.
6859
6860[ENTRY]
6861Module: gist
6862What: change
6863Rank: minor
6864[DESCRIPTION]
6865A separator is printed between solutions in the TextInspector.
6866
6867
6868[RELEASE]
6869Version: 3.0.1
6870Date: 2009-03-24
6871[DESCRIPTION]
6872This is a bug fix release fixing two embarrassing bugs that were
6873not caught by our test infrastructure. Please update asap.
6874
6875
6876[ENTRY]
6877Module: int
6878What: bug
6879Rank: major
6880Thanks: Vincent Barichard
6881[DESCRIPTION]
6882Fixed bug in element with integer values.
6883
6884[ENTRY]
6885Module: int
6886What: bug
6887Rank: minor
6888[DESCRIPTION]
6889IntSetArgs no longer inherit from PrimArgArray, which was wrong
6890as IntSet is no primitive type and hence does not support vararg
6891initializers.
6892
6893[ENTRY]
6894Module: example
6895What: bug
6896Rank: minor
6897[DESCRIPTION]
6898The examples now pass the c-d and a-d command line options correctly to Gist.
6899
6900[ENTRY]
6901Module: int
6902What: bug
6903Rank: major
6904Thanks: Alberto Delgado
6905[DESCRIPTION]
6906Fixed bug in reified Boolean linear constraints (an optimization
6907is currently disabled and will be active in the next release: the
6908optimization was incorrect and was never tested).
6909
6910[ENTRY]
6911Module: example
6912What: bug
6913Rank: minor
6914Bug: 56
6915Thanks: Chris Mears
6916[DESCRIPTION]
6917The Steel Mill Slab Design example had two bugs in the search
6918heuristic and a missing redundant constraint.
6919
6920[ENTRY]
6921Module: example
6922What: new
6923Rank: minor
6924[DESCRIPTION]
6925Added new example for Radiotherapy.
6926
6927
6928
6929[RELEASE]
6930Version: 3.0.0
6931Date: 2009-03-13
6932[DESCRIPTION]
6933This release is a major consolidation release: interfaces have
6934been cleaned up (consistent parameter passing, consistent naming,
6935simpler Gist interface, namespaces for operator overloading);
6936some functionality has been extended (propagators can be
6937non-monotonic; branchings support tie-breaking and random
6938variable and value selection); some functionality that did not
6939meet our quality goals has been removed (complete set variables,
6940reflection); usage has been simplified (auto-linking on Windows,
6941more commonly used filename extensions); important aspects have
6942been optimized (memory management, memory usage and efficiency on
694364bit machines). These cleanups were in particular necessary to
6944make %Gecode easier to document (this release is the first to be
6945accompanied by tutorial documentation explaining how to model
6946with %Gecode).
6947
6948Apart from that, many small fixes and additions. Please see below
6949for the details.
6950
6951As the interfaces have changed considerably, please consult \ref
6952PageHowToChange_3 "How to Change to Gecode 3.0.0".
6953
6954[ENTRY]
6955Module: example
6956What: performance
6957Rank: minor
6958Thanks: Håkan Kjellerstrand
6959[DESCRIPTION]
6960Improved branching for Nonogram examples.
6961
6962[ENTRY]
6963Module: set
6964What: bug
6965Rank: minor
6966Thanks: Stefano Gualandi
6967[DESCRIPTION]
6968Fixed bug in creation of set variables.
6969
6970[ENTRY]
6971Module: kernel
6972What: bug
6973Rank: major
6974Thanks: Vincent Barichard
6975[DESCRIPTION]
6976Updating of a council of advisors crashed if a propagator has no
6977advisors (as we had no example of this kind of propagators).
6978
6979[ENTRY]
6980Module: set
6981What: change
6982Rank: minor
6983[DESCRIPTION]
6984Element and convexity constraints on set variables have a more
6985uniform interface, and the match constrained has been renamed to
6986channel.
6987
6988[ENTRY]
6989Module: gist
6990What: change
6991Rank: minor
6992[DESCRIPTION]
6993Gist now takes an optional argument specifying options for the
6994search, including the inspectors to be used. The Qt interface has
6995been cleaned up, so that Gist is easier to extend.
6996
6997[ENTRY]
6998Module: gist
6999What: new
7000Rank: minor
7001[DESCRIPTION]
7002Added inspectors that react on every solution instead of a double
7003click.
7004
7005[ENTRY]
7006Module: int
7007What: change
7008Rank: minor
7009[DESCRIPTION]
7010A TupleSet must be finalized before an extensional constraint can
7011be posted using it.
7012
7013[ENTRY]
7014Module: set
7015What: removed
7016Rank: minor
7017[DESCRIPTION]
7018Removed automatically generated set projectors, they will come
7019back eventually. This makes no change to the available
7020functionality for set variables.
7021
7022[ENTRY]
7023Module: cpltset
7024What: removed
7025Rank: major
7026[DESCRIPTION]
7027Complete sets have been removed (just not good enough).
7028
7029[ENTRY]
7030Module: kernel
7031What: new
7032Rank: minor
7033Author: Filip Konvicka
7034[DESCRIPTION]
7035Integrated space and region-based allocators that work with STL
7036classes.
7037
7038[ENTRY]
7039Module: int
7040What: bug
7041Rank: minor
7042[DESCRIPTION]
7043Fixed bug in domain consistent min and max propagators.
7044
7045[ENTRY]
7046Module: int
7047What: performance
7048Rank: major
7049Author: Tias Guns
7050[DESCRIPTION]
7051Integrated an efficient implementation of reified linear
7052constraints over Boolean variables.
7053
7054[ENTRY]
7055Module: example
7056What: bug
7057Rank: minor
7058Thanks: Stefano Gualandi
7059[DESCRIPTION]
7060A bug in the independent set example has been fixed (most edges
7061were ignored).
7062
7063[ENTRY]
7064Module: set
7065What: new
7066Rank: minor
7067[DESCRIPTION]
7068More set branching strategies have been added (for instance random variable
7069and value selection), as well as set assignment.
7070
7071[ENTRY]
7072Module: other
7073What: removed
7074Rank: major
7075[DESCRIPTION]
7076All support for reflection has been removed: not clean enough,
7077not powerful enough, too difficult, and too much trouble.
7078
7079[ENTRY]
7080Module: kernel
7081What: new
7082Rank: minor
7083Thanks: Denys Duchier
7084[DESCRIPTION]
7085Added support for synchronized execution during branching
7086(executes a function).
7087
7088[ENTRY]
7089Module: kernel
7090What: change
7091Rank: major
7092[DESCRIPTION]
7093The specification of propagation cost has changed. It now must be
7094computed by the static member functions of the class
7095Gecode::PropCost.
7096
7097[ENTRY]
7098Module: int
7099What: new
7100Rank: minor
7101[DESCRIPTION]
7102Added support for synchronized execution that executes a function
7103or a static member function when a Boolean variable becomes
7104assigned (called when).
7105
7106[ENTRY]
7107Module: int
7108What: change
7109Rank: minor
7110Thanks: David Rijsman
7111[DESCRIPTION]
7112Make the variable deltas generated for minus_r more meaningful if
7113possible.
7114
7115[ENTRY]
7116Module: iter
7117What: documentation
7118Rank: minor
7119Thanks: Anden Blah, Morten Boysen
7120[DESCRIPTION]
7121Mention that arrays for Iter::Values::Arrays must be sorted.
7122
7123[ENTRY]
7124Module: int
7125What: bug
7126Rank: major
7127Thanks: Roland Yap Hock Chuan
7128[DESCRIPTION]
7129Fixed off-by-one bug in extensional for DFAs.
7130
7131[ENTRY]
7132Module: kernel
7133What: change
7134Rank: minor
7135[DESCRIPTION]
7136The clone operation on spaces is now const.
7137
7138[ENTRY]
7139Module: int
7140What: change
7141Rank: minor
7142[DESCRIPTION]
7143TupleSet now accepts duplicate tuples.
7144
7145[ENTRY]
7146Module: int
7147What: change
7148Rank: minor
7149[DESCRIPTION]
7150Renamed size() to ranges() for IntSet (returning the number of
7151ranges). Added a size() and width() function that return the size
7152and width of the set respectively.
7153
7154[ENTRY]
7155Module: kernel
7156What: change
7157Rank: minor
7158[DESCRIPTION]
7159Introduced CopiedHandle as a new base class for SharedHandle.
7160[MORE]
7161A copied handle provides access to an object that is used by
7162entities in a space, and that is copied when then space is
7163copied. This abstraction can be used e.g. to pass information
7164between different entities in a space, such as between
7165propagators and branchings.
7166
7167[ENTRY]
7168Module: support
7169What: bug
7170Rank: minor
7171Thanks: Michal Dobrogost
7172[DESCRIPTION]
7173Sorting (quicksort and insertion) require strict orders and now
7174work with arrays of more than 2^32 elements.
7175
7176[ENTRY]
7177Module: int
7178What: new
7179Rank: minor
7180[DESCRIPTION]
7181Integer sets can now be initialized from integer argument arrays.
7182
7183[ENTRY]
7184Module: other
7185What: bug
7186Rank: minor
7187Thanks: Chris Mears
7188[DESCRIPTION]
7189Output operators (<<) now respect formatting width and work with
7190output streams using arbitrary character types.
7191
7192[ENTRY]
7193Module: kernel
7194What: change
7195Rank: minor
7196Thanks: Denys Duchier
7197[DESCRIPTION]
7198Made macros semicolon-safe.
7199
7200[ENTRY]
7201Module: set
7202What: bug
7203Rank: minor
7204Thanks: Denys Duchier
7205[DESCRIPTION]
7206Fixed constructors for set variables. They now throw proper exceptions when
7207trying to create empty variable domains.
7208
7209[ENTRY]
7210Module: set
7211What: new
7212Rank: minor
7213Thanks: Denys Duchier
7214[DESCRIPTION]
7215Added reified propagators constraining an integer variable to be the minimum
7216or maximum element of a set variable.
7217
7218[ENTRY]
7219Module: int
7220What: removed
7221Rank: minor
7222[DESCRIPTION]
7223Support for PropKind has been removed for all but extensional constraints.
7224
7225[ENTRY]
7226Module: int
7227What: new
7228Rank: minor
7229[DESCRIPTION]
7230Domain constraints (dom) also accept integers now.
7231
7232[ENTRY]
7233Module: other
7234What: change
7235Rank: major
7236Thanks: Max
7237[DESCRIPTION]
7238All operators are now in their correct namespace.
7239
7240[ENTRY]
7241Module: minimodel
7242What: change
7243Rank: minor
7244[DESCRIPTION]
7245LinExpr, LinRel, BoolExpr are now part of the Gecode namespace
7246rather than Gecode::MiniModel (to support operator resolution).
7247
7248[ENTRY]
7249Module: test
7250What: new
7251Rank: minor
7252[DESCRIPTION]
7253Tests for testing claims of bounds(Z) and bounds(D) consistency. These
7254tests would have found the bug in the binary min and max propagators.
7255[MORE]
7256An integer test can enable these new tests by setting the contest member
7257to CTL_BOUNDS_Z or CTL_BOUNDS_D. For domain-consistency propagators
7258the contest member is set automatically to CTL_DOMAIN. If no
7259consistency-testing should be done, contest should be set to CTL_NONE.
7260
7261[ENTRY]
7262Module: search
7263What: new
7264Rank: minor
7265[DESCRIPTION]
7266The search engines now collect statistics for the number of nodes
7267visited and the maximum depth of the search tree. The information
7268for number of clone and commit operations has been removed as it
7269was too confusing.
7270
7271[ENTRY]
7272Module: search
7273What: new
7274Rank: major
7275[DESCRIPTION]
7276Search engines have been completely reimplemented.
7277
7278[ENTRY]
7279Module: int
7280What: bug
7281Rank: minor
7282Thanks: Jonathan Cederberg
7283[DESCRIPTION]
7284The binary min and max propagators did not do all pruning they
7285should do.
7286[MORE]
7287Given the constraint x = max(y,z) with the store {x->{1,2,3},
7288y->{1,2}, z->{3}}, propagation did not yield any new information
7289(now it gives the correct result {x->{3}, y->{1,2}, z->{3}}).
7290
7291[ENTRY]
7292Module: example
7293What: new
7294Rank: minor
7295[DESCRIPTION]
7296New example: the steel mill slab design problem (Problem 38 in <a
7297href="http://csplib.org">CSPLib</a>).
7298[MORE]
7299The model used is from Gargani and Refalo, "An efficient model and
7300strategy for the steel mill slab design problem.", CP 2007. The
7301symmetry-breaking search is from Van Hentenryck and Michel, "The Steel
7302Mill Slab Design Problem Revisited", CPAIOR 2008.
7303
7304[ENTRY]
7305Module: iter
7306What: bug
7307Rank: minor
7308Thanks: Stefano Gualandi
7309[DESCRIPTION]
7310Fixed init method of SingletonAppend range iterator.
7311
7312[ENTRY]
7313Module: example
7314What: bug
7315Rank: minor
7316[DESCRIPTION]
7317Fixed a bug in the extensional propagation-version of the domino example.
7318
7319[ENTRY]
7320Module: other
7321What: new
7322Rank: minor
7323[DESCRIPTION]
7324For the Microsoft compiler, auto-link information is added during
7325compilation.
7326[MORE]
7327That is, by including %Gecode headers during
7328compilation the right libraries will be found automatically
7329during linking. To simplify development and deployment, the
7330libraries (and DLLs) encode version, platform, and build type
7331(release or debug) in their filename.
7332
7333[ENTRY]
7334Module: minimodel
7335What: performance
7336Rank: minor
7337[DESCRIPTION]
7338Posting constraints according to Boolean expressions now uses a
7339negation normalform and by this avoids any propagator for
7340negation and uses fewer propagators due to the new clause constraint.
7341
7342[ENTRY]
7343Module: other
7344What: change
7345Rank: major
7346[DESCRIPTION]
7347Changed naming scheme for files.
7348[MORE]
7349All files with extension .cc have been renamed to .cpp, and .icc
7350has become .hpp. This avoids conflicts as .icc is typically used
7351for other file types. All include directives are now specified
7352using <...> notation instead of "...", so that %Gecode headers do
7353not clutter the include namespace of a client program.
7354
7355[ENTRY]
7356Module: minimodel
7357What: change
7358Rank: minor
7359[DESCRIPTION]
7360The Matrix class is now in the Gecode namespace (and not in
7361Gecode::MiniModel).
7362
7363[ENTRY]
7364Module: set
7365What: change
7366Rank: minor
7367[DESCRIPTION]
7368Reorganized the internal data structures of set variables so that each
7369variable takes up 8 bytes less memory on 64 bit machines.
7370
7371[ENTRY]
7372Module: kernel
7373What: change
7374Rank: minor
7375[DESCRIPTION]
7376The index structure for variable dependencies is now implemented using integers
7377instead of pointers, saving memory on 64 bit machines.
7378[MORE]
7379For example, the index
7380structure of integer variables is now 40% smaller, for Boolean variables
7381(which have the smallest possible index structure) we still save 16%.
7382
7383[ENTRY]
7384Module: int
7385What: new
7386Rank: minor
7387[DESCRIPTION]
7388Added a Boolean clause constraint that supports conjunction and
7389disjunction of both positive and negative variables.
7390
7391[ENTRY]
7392Module: int
7393What: performance
7394Rank: minor
7395[DESCRIPTION]
7396Now n-ary Boolean disjunction and conjunction are constant time
7397(rather than linear time, as before), even when a variable for
7398the result is used.
7399
7400[ENTRY]
7401Module: kernel
7402What: change
7403Rank: major
7404[DESCRIPTION]
7405%Gecode now supports weakly monotonic propagators.
7406[MORE]
7407A weakly monotonic propagator must only be able to decide for
7408assignments whether they are solutions or not (which is a very
7409natural property as it means the propagator must be a correct
7410implementation of a constraint). Otherwise, the propagator does
7411not have to be monotonic, it can even be indeterministic.
7412
7413Weakly monotonic but not monotonic propagators must notify a
7414space about their existence: if a weakly monotonic propagator is
7415created, it must execute "home.notice(*this,AP_WEAKLY)"; if it is
7416disposed, it must execute "home.ignore(*this,AP_WEAKLY)".
7417
7418[ENTRY]
7419Module: kernel
7420What: change
7421Rank: minor
7422[DESCRIPTION]
7423The functions force and unforce of an actor to force disposal
7424have been removed.
7425[MORE]
7426Now, the new interface based on notice and ignore using actor
7427properties must be used instead. So, instead of "force(home)",
7428write "home.notice(*this,AP_DISPOSE)" and, instead of
7429"unforce(home)", write "home.ignore(*this,AP_DISPOSE)".
7430
7431[ENTRY]
7432Module: int
7433What: performance
7434Rank: minor
7435[DESCRIPTION]
7436The incremental extensional propagator for tuplesets uses less
7437memory (around 25%) and reports its size correctly.
7438
7439[ENTRY]
7440Module: int
7441What: performance
7442Rank: minor
7443[DESCRIPTION]
7444The element propagator for integer arrays now chooses
7445datastructures according to and the elements of the array.
7446[MORE]
7447This can save more than 80% memory on a 64 bit machine, and up to
744875% on a 32 bit machine. In common cases, one can expect a
7449reduction by at least 50%.
7450
7451[ENTRY]
7452Module: int
7453What: performance
7454Rank: minor
7455[DESCRIPTION]
7456The regular propagator now chooses datastructures according to
7457the size of the DFA. This can save up to 80% memory on a 64 bit
7458machine, and still up to 50% on a 32 bit machine.
7459
7460[ENTRY]
7461Module: kernel
7462What: change
7463Rank: minor
7464[DESCRIPTION]
7465The home space is now also passed to the cost function of a propagator.
7466
7467[ENTRY]
7468Module: other
7469What: change
7470Rank: major
7471[DESCRIPTION]
7472Now everything is passed as reference (Space, Propagator,
7473ModEventDelta, Advisor, Branching, and BranchingDesc).
7474[MORE]
7475The reason for this massive change is to be more C++ compliant
7476and make the interfaces more consistent (at some places things
7477were passed as references and at other places as pointers, for no
7478obvious and explainable reason). Routines that create objects
7479rather than pass them (such as copy, clone, or description) still
7480return a pointer to an object (so that it can actually be
7481deleted!).
7482
7483You will have to rewrite your models and other programs using
7484%Gecode. For models this is easy enough:
7485 - Replace "(Space* home" by "(Space& home".
7486 - Replace "home->" by "home.".
7487 - Replace "(this" by "(*this".
7488 .
7489That should do the trick for 99% of the models.
7490
7491For the other changes, just lookout for the changes in types and
7492that "this" becomes "*this" now.
7493
7494[ENTRY]
7495Module: other
7496What: change
7497Rank: major
7498[DESCRIPTION]
7499The memory management has been completely reworked.
7500[MORE]
7501It is now more robust, more portable (does not use alloca any
7502longer), more efficient, fits C++ better and is much easier too
7503understand. There are now three memory areas: a single heap,
7504spaces, and regions. Heap and spaces are as before. A region (an
7505object of class Region) is a simple and very efficient memory
7506manager for temporary memory managed in a stack fashion. These
7507three memory managers provide uniform operations for allocation
7508(alloc), deallocation (free), and reallocation (realloc). These
7509operations use constructors, destructors, and assignment
7510operators as required by C++ and are implemented with efficient
7511specializations for basic data types.
7512
7513[ENTRY]
7514Module: support
7515What: removed
7516Rank: minor
7517[DESCRIPTION]
7518PQueue has been removed (too specialized to be reused anyway).
7519
7520[ENTRY]
7521Module: support
7522What: removed
7523Rank: minor
7524[DESCRIPTION]
7525GECODE_AUTOARRAY has been removed. Use a Region for memory
7526management instead.
7527
7528[ENTRY]
7529Module: support
7530What: removed
7531Rank: minor
7532[DESCRIPTION]
7533GECODE_AUTOSTACK and SentinelStack has been removed. Use
7534StaticStack instead.
7535
7536[ENTRY]
7537Module: int
7538What: performance
7539Rank: minor
7540[DESCRIPTION]
7541Simpler and more efficient memory management for element
7542propagators (integer arrays).
7543
7544[ENTRY]
7545Module: kernel
7546What: change
7547Rank: minor
7548[DESCRIPTION]
7549All functions for checking sharing for arrays (same, shared,
7550unique) require a space argument (for memory management).
7551
7552[ENTRY]
7553Module: minimodel
7554What: new
7555Rank: minor
7556[DESCRIPTION]
7557Added MinimizeSpace and MaximizeSpace classes for cost-based
7558optimization (requires implementing a cost function returning an
7559integer cost variable). Optimization can now be implemented by
7560inheriting from these classes rather than from Space and by
7561implementing a cost function.
7562
7563[ENTRY]
7564Module: kernel
7565What: change
7566Rank: minor
7567[DESCRIPTION]
7568The description() member function of a space is not any longer
7569const: it can be called at most once.
7570
7571[ENTRY]
7572Module: kernel
7573What: change
7574Rank: major
7575[DESCRIPTION]
7576The constrain method used for best solution search must be
7577virtual and takes an argument of type const Space& rather than
7578Space* as argument.
7579
7580[ENTRY]
7581Module: int
7582What: change
7583Rank: major
7584[DESCRIPTION]
7585Tie-breaking and random selection for branch is now supported.
7586
7587[ENTRY]
7588Module: set
7589What: change
7590Rank: major
7591[DESCRIPTION]
7592The values for variable and value selection for branching have
7593been made consistent and extended.
7594[MORE]
7595The following values have been renamed:
7596 - SET_VAR_MIN_CARD -> SET_VAR_SIZE_MIN
7597 - SET_VAR_MAX_CARD -> SET_VAR_SIZE_MAX
7598 - SET_VAR_MIN_UNKNOWN_ELEM -> SET_VAR_MIN_MIN
7599 - SET_VAR_MAX_UNKNOWN_ELEM -> SET_VAR_MAX_MAX
7600 - SET_VAL_MIN -> SET_VAL_MIN_INC
7601 - SET_VAL_MAX -> SET_VAL_MAX_INC
7602 .
7603Tie-breaking and random selection is now supported.
7604
7605[ENTRY]
7606Module: int
7607What: change
7608Rank: minor
7609[DESCRIPTION]
7610The variable selection INT_VAR_DEGREE_MIN and INT_VAR_DEGREE_MAX
7611do not have tiebreaking with smallest domain size built in.
7612[MORE]
7613The old behavior can be reclaimed by explicit tiebreaking, for
7614example replace INT_VAR_DEGREE_MAX by
7615tiebreak(INT_VAR_DEGREE_MAX,INT_VAR_SIZE_MIN).
7616
7617[ENTRY]
7618Module: kernel
7619What: change
7620Rank: major
7621[DESCRIPTION]
7622View and value branchings have been completely reimplemented to support
7623tie-breaking and state (for randomized selection).
7624
7625[ENTRY]
7626Module: kernel
7627What: removed
7628Rank: major
7629[DESCRIPTION]
7630View and value assignments have been removed as they now can be
7631expressed by view and value branchings.
7632
7633
7634[RELEASE]
7635Version: 2.2.0
7636Date: 2008-08-25
7637[DESCRIPTION]
7638This release adds many domain consistent propagators for
7639arithmetic constraints and fixes a number of bugs. Some of these
7640bugs fixed are potentially serious, in particular as they occur
7641very seldom. Please change to 2.2.0 as soon as possible (in
7642particular if you are using the 64bit Microsoft Visual C++
7643compiler). And, of course, the usual small fixes and changes.
7644
7645[ENTRY]
7646Module: kernel
7647What: bug
7648Rank: major
7649[DESCRIPTION]
7650Fixed a bug in the memory alignment on Windows 64bit (very hard to reproduce).
7651
7652[ENTRY]
7653Module: other
7654What: new
7655Rank: minor
7656[DESCRIPTION]
7657Added configure options for adding a prefix and a suffix to the names of the
7658compiled libraries.
7659
7660[ENTRY]
7661Module: int
7662What: bug
7663Rank: major
7664[DESCRIPTION]
7665Fixed a bug in the domain consistent distinct propagator that would cause
7666a stack overflow under rare circumstances.
7667
7668[ENTRY]
7669Module: set
7670What: bug
7671Rank: major
7672[DESCRIPTION]
7673The ternary intersection propagator was incorrect if any of the sets had a
7674maximum cardinality of Set::Limits::card.
7675
7676[ENTRY]
7677Module: int
7678What: new
7679Rank: minor
7680Thanks: Raphael Reischuk
7681[DESCRIPTION]
7682The attempt to access the value of an unassigned integer or
7683Boolean variable (IntVar or BoolVar) throws an exception now.
7684
7685[ENTRY]
7686Module: int
7687What: new
7688Rank: minor
7689[DESCRIPTION]
7690Added bounds consistent division/modulo propagator.
7691
7692[ENTRY]
7693Module: int
7694What: change
7695Rank: minor
7696[DESCRIPTION]
7697All functional linear and arithmetic constraints now put sharp
7698bounds on the output variable (eases interfacing to modelling
7699languages).
7700
7701[ENTRY]
7702Module: int
7703What: new
7704Rank: minor
7705[DESCRIPTION]
7706The channel constraint now comes in a version that allows to specify offsets
7707to the array indices.
7708
7709[ENTRY]
7710Module: example
7711What: removed
7712Rank: minor
7713[DESCRIPTION]
7714Example-based support for SAC (singleton arc consistency) has
7715been removed. Might be reintroduced later in a more general
7716fashion.
7717
7718[ENTRY]
7719Module: other
7720What: new
7721Rank: minor
7722[DESCRIPTION]
7723The Makefile has a new target, check, which performs a minimal integrity check
7724using some tests from the test suite.
7725
7726[ENTRY]
7727Module: set
7728What: change
7729Rank: minor
7730[DESCRIPTION]
7731The set selection constraints are now called element.
7732
7733[ENTRY]
7734Module: int
7735What: bug
7736Rank: minor
7737[DESCRIPTION]
7738Fixed bug for domain-consistent distinct that never occurred in
7739practice.
7740
7741[ENTRY]
7742Module: kernel
7743What: bug
7744Rank: minor
7745[DESCRIPTION]
7746Fixed bug that could potentially have affected certain staged
7747propagators.
7748
7749[ENTRY]
7750Module: kernel
7751What: documentation
7752Rank: minor
7753Thanks: David Rijsman
7754[DESCRIPTION]
7755Fixed explanation of ES_FIX and ES_NOFIX for advisors
7756(description was mixed up).
7757
7758[ENTRY]
7759Module: other
7760What: change
7761Rank: minor
7762[DESCRIPTION]
7763The configure script now always uses the Microsoft compiler on Windows. Use
7764the CC and CXX environment variables to override this if you want to use
7765gcc.
7766
7767[ENTRY]
7768Module: int
7769What: new
7770Rank: minor
7771[DESCRIPTION]
7772Added domain consistent multiplication propagator.
7773
7774[ENTRY]
7775Module: kernel
7776What: bug
7777Rank: major
7778Thanks: Filip Konvicka
7779[DESCRIPTION]
7780Generated variable stubs were wrong (could only be observed for
7781new variable types).
7782
7783[ENTRY]
7784Module: int
7785What: bug
7786Rank: minor
7787Thanks: David Rijsman
7788[DESCRIPTION]
7789Cumulatives did not do all the pruning it should do.
7790
7791[ENTRY]
7792Module: int
7793What: bug
7794Rank: minor
7795[DESCRIPTION]
7796Fixed bug in element with IntArgs and sharing between the two IntVars.
7797
7798[ENTRY]
7799Module: int
7800What: bug
7801Rank: minor
7802Thanks: Jaroslav Mlejnek
7803[DESCRIPTION]
7804Fixed bug in sqrt.
7805
7806[ENTRY]
7807Module: int
7808What: bug
7809Rank: minor
7810Thanks: David Rijsman
7811[DESCRIPTION]
7812Fixed bug in ValSplitMin::branchingSpec.
7813
7814[ENTRY]
7815Module: kernel
7816What: removed
7817Rank: minor
7818[DESCRIPTION]
7819Removed ViewTuple. Just not useful enough...
7820
7821[ENTRY]
7822Module: kernel
7823What: change
7824Rank: minor
7825[DESCRIPTION]
7826Cleaned up Reflection::Var type, overloading did not conform to the C++
7827standard.
7828
7829[ENTRY]
7830Module: int
7831What: new
7832Rank: minor
7833[DESCRIPTION]
7834Added domain consistent minimum (min) and maximum (max) propagators.
7835
7836[ENTRY]
7837Module: int
7838What: new
7839Rank: minor
7840[DESCRIPTION]
7841Added domain consistent square root propagator (sqrt).
7842
7843[ENTRY]
7844Module: int
7845What: new
7846Rank: minor
7847[DESCRIPTION]
7848Added domain consistent squaring propagator (sqr).
7849
7850[ENTRY]
7851Module: int
7852What: documentation
7853Rank: minor
7854[DESCRIPTION]
7855Added documentation for domain consistent absolute value (abs) propagator.
7856
7857[ENTRY]
7858Module: int
7859What: new
7860Rank: minor
7861[DESCRIPTION]
7862Added reified propagators for relations over Boolean variables.
7863
7864[RELEASE]
7865Version: 2.1.1
7866Date: 2008-03-06
7867[DESCRIPTION]
7868This is a bugfix release.
7869
7870[ENTRY]
7871Module: int
7872What: bug
7873Rank: minor
7874[DESCRIPTION]
7875Non-shared copying of dfa was broken (matters only for parallel execution).
7876
7877[ENTRY]
7878Module: kernel
7879What: bug
7880Rank: major
7881[DESCRIPTION]
7882The generated med_updated function was incorrect, resulting in potential
7883crashes of programs that use SetVars.
7884
7885[ENTRY]
7886Module: cpltset
7887What: documentation
7888Rank: minor
7889[DESCRIPTION]
7890The CpltSet variables are now in the correct documentation group.
7891
7892[ENTRY]
7893Module: gist
7894What: bug
7895Rank: minor
7896[DESCRIPTION]
7897Fixed redraw artefacts on Windows.
7898
7899[ENTRY]
7900Module: other
7901What: bug
7902Rank: minor
7903[DESCRIPTION]
7904Fixed boost serialization.
7905
7906[ENTRY]
7907Module: kernel
7908What: bug
7909Rank: minor
7910[DESCRIPTION]
7911Made the constructor of Reflection::Var explicit, otherwise overloading for
7912output stream operators does not work as expected.
7913
7914
7915[RELEASE]
7916Version: 2.1.0
7917Date: 2008-02-29
7918[DESCRIPTION]
7919This release makes two essential contributions: a partly
7920reimplemented kernel that is faster, is simpler, and uses less
7921memory and lots of small and not so small fixes. This release is
7922the first release where really everything that we can test
7923(rather than everything that we initially believed to matter) has
7924been systematically tested. So, better switch now to 2.1.0!
7925
7926Apart from that, the value range for variables has been increased
7927(basically, 32 bits minus three values, so that is 32 bits), the reflection
7928API is now fully functional and no longer considered experimental, and we have
7929the usual small additions.
7930
7931
7932[ENTRY]
7933Module: int
7934What: new
7935Rank: minor
7936[DESCRIPTION]
7937Added interface to extensional constraints defined by TupleSets with
7938BoolVars.
7939
7940[ENTRY]
7941Module: minimodel
7942What: bug
7943Rank: major
7944[DESCRIPTION]
7945Reimplemented linear expressions from scratch, they were just
7946hopelessly screwed.
7947
7948[ENTRY]
7949Module: minimodel
7950What: bug
7951Rank: minor
7952[DESCRIPTION]
7953Added work-around for compiler bug in MSVC.
7954
7955[ENTRY]
7956Module: minimodel
7957What: new
7958Rank: minor
7959[DESCRIPTION]
7960Support reified linear expressions with Boolean variables.
7961
7962[ENTRY]
7963Module: int
7964What: change
7965Rank: minor
7966[DESCRIPTION]
7967Throw an exception if variables occur multiply for array-based
7968channel constraints.
7969
7970[ENTRY]
7971Module: int
7972What: bug
7973Rank: minor
7974[DESCRIPTION]
7975Fixed multiplication propagator for x*y=x.
7976
7977[ENTRY]
7978Module: search
7979What: change
7980Rank: major
7981[DESCRIPTION]
7982All search engines now take an option value for configuration
7983instead of individual arguments for recomputation, stop objects,
7984etc.
7985
7986[ENTRY]
7987Module: minimodel
7988What: removed
7989Rank: minor
7990[DESCRIPTION]
7991Removed scheduling abstractions.
7992
7993[ENTRY]
7994Module: int
7995What: removed
7996Rank: minor
7997[DESCRIPTION]
7998Removed extensional constraints with offset arguments.
7999
8000[ENTRY]
8001Module: minimodel
8002What: new
8003Rank: minor
8004[DESCRIPTION]
8005All minimodel functionality now understands both IntConLevel and
8006PropKind arguments.
8007
8008[ENTRY]
8009Module: set
8010What: bug
8011Rank: major
8012[DESCRIPTION]
8013Fixed bugs in several set constraints:
8014rel(Space*,SetVar,IntRelType irt,IntVar) for irt=IRT_NQ,
8015rel(Space*,SetVar,SetOpType sot,const IntSet&,SetRelType srt,SetVar) for
8016sot=SOT_MINUS, srt=SRT_SUP, selectDisjoint, selectUnion with constant IntSet
8017arguments, dom with SRT_NQ.
8018
8019[ENTRY]
8020Module: kernel
8021What: bug
8022Rank: minor
8023[DESCRIPTION]
8024Fixed bug in unreflection of empty VarArrays.
8025
8026[ENTRY]
8027Module: linear
8028What: bug
8029Rank: major
8030[DESCRIPTION]
8031Fixed overflow checking error in linear constraints.
8032
8033[ENTRY]
8034Module: minimodel
8035What: new
8036Rank: minor
8037[DESCRIPTION]
8038Added sqrt function.
8039
8040[ENTRY]
8041Module: int
8042What: new
8043Rank: minor
8044[DESCRIPTION]
8045Added sqrt propagator.
8046
8047[ENTRY]
8048Module: int
8049What: new
8050Rank: minor
8051[DESCRIPTION]
8052Added sqr post function.
8053
8054[ENTRY]
8055Module: int
8056What: bug
8057Rank: minor
8058[DESCRIPTION]
8059The overloaded versions of dom for variable arrays could not be
8060resolved automatically.
8061
8062[ENTRY]
8063Module: int
8064What: new
8065Rank: minor
8066[DESCRIPTION]
8067Added missing branching for INT_VAR_SIZE_DEGREE_MIN and
8068INT_VAR_SIZE_DEGREE_MAX for Boolean variables.
8069
8070[ENTRY]
8071Module: minimodel
8072What: bug
8073Rank: major
8074Thanks: Stanimir Dragiev
8075[DESCRIPTION]
8076Fixed bug in posting linear expressions.
8077
8078[ENTRY]
8079Module: int
8080What: performance
8081Rank: minor
8082[DESCRIPTION]
8083IntSet have been reimplemented for efficiency.
8084
8085[ENTRY]
8086Module: other
8087What: documentation
8088Rank: minor
8089Thanks: Martin Mann
8090[DESCRIPTION]
8091Function prototypes are now highlighted in the detailed function documentation.
8092
8093[ENTRY]
8094Module: int
8095What: removed
8096Rank: minor
8097[DESCRIPTION]
8098The offset arguments for element constraints have been removed, as you can
8099simply add dummy elements to the array to achieve the same effect.
8100
8101[ENTRY]
8102Module: set
8103What: removed
8104Rank: minor
8105[DESCRIPTION]
8106The offset arguments for selection constraints have been removed, as you can
8107simply add dummy elements to the array to achieve the same effect.
8108
8109[ENTRY]
8110Module: other
8111What: new
8112Rank: major
8113[DESCRIPTION]
8114The serialization library now contains a registry of all the %Gecode post
8115functions. This makes interfacing to %Gecode much easier. The registry is
8116automatically generated from the post functions defined in gecode/int.hh and
8117gecode/set.hh.
8118
8119[ENTRY]
8120Module: kernel
8121What: change
8122Rank: minor
8123[DESCRIPTION]
8124Cleaned up reflection. Unreflection is now part of the kernel instead of the
8125serialization library. Branchings now provide a human-readable description of
8126a BranchingDesc. The name function of a Propagator has been renamed to ati
8127(actor type identifier). All reflection is now const where possible.
8128Unreflection of variables now checks dynamically that the variable types
8129match. Unreflection of propagators checks the number of arguments. A
8130tutorial-style section on reflection has been added to the documentation.
8131
8132[ENTRY]
8133Module: set
8134What: change
8135Rank: major
8136[DESCRIPTION]
8137The limits for set variables have been moved from Limits::Set to
8138Set::Limits.
8139
8140The range of set variables has been adapted to the range of
8141integer variables. For example, on a standard machine
8142(regardless of 32 or 64 bits), a set can hold values from -2^30+2
8143to 2^30-2, its maximum cardinality therefore is 2^31-3.
8144
8145[ENTRY]
8146Module: int
8147What: change
8148Rank: major
8149[DESCRIPTION]
8150The limits for set variables have been moved from Limits::Set to
8151Set::Limits.
8152
8153The range of integer variables have been extended by one bit. For
8154example, on a standard machine (regardless of 32 or 64 bits), the
8155largest possible integer value for an integer variable is 2^31-2,
8156the smallest -2^31+2. With other words, only the integer values
81572^31-1, -2^31, and -2^31+1 are missing from the two-complement
8158representation (and we will never use these values for the sake
8159of mental sanity. We promise.).
8160
8161[ENTRY]
8162Module: int
8163What: bug
8164Rank: minor
8165[DESCRIPTION]
8166Distinct with integer offsets checks accurately for overflow now.
8167
8168[ENTRY]
8169Module: int
8170What: performance
8171Rank: minor
8172[DESCRIPTION]
8173Boolean variables consume 20% less memory.
8174
8175[ENTRY]
8176Module: kernel
8177What: change
8178Rank: major
8179[DESCRIPTION]
8180Only stable and non-failed spaces can be cloned, otherwise
8181Space::clone raises an exception. This makes cloning and
8182propagation fully orthogonal. To emulate the old behavior, just
8183execute Space::status before Space::clone.
8184
8185[ENTRY]
8186Module: kernel
8187What: change
8188Rank: minor
8189[DESCRIPTION]
8190The number of propagators and branchings can be accurately
8191retrieved from both failed and non-stable spaces.
8192
8193[ENTRY]
8194Module: examples
8195What: new
8196Rank: minor
8197[DESCRIPTION]
8198Added an example that interprets a JavaScript program and runs a search of the
8199model that the program encodes. This is an example of how to use the
8200JavaScript interpreter. A simple JavaScript model for n-Queens has been added,
8201too.
8202
8203[ENTRY]
8204Module: kernel
8205What: new
8206Rank: minor
8207[DESCRIPTION]
8208A generic variable class has been added that can be used for interfacing. It
8209can store arbitrary %Gecode variables (e.g. IntVar and SetVar), and cast them
8210back using a run-time type check. The update, reflection, and output
8211operations are implemented through the reflection registry.
8212
8213[ENTRY]
8214Module: other
8215What: new
8216Rank: major
8217[DESCRIPTION]
8218(De-)Serialization to and from JavaScript added.
8219
8220[ENTRY]
8221Module: other
8222What: change
8223Rank: major
8224[DESCRIPTION]
8225Both the cost and propagate function of a propagator take the
8226current modification event delta as input. Likewise,
8227retrieving the modification event for a particular View must use
8228the static function View::me with the passed
8229modification event delta. Again, this feature committed the kernel to a
8230particular implementation which might not be available in the
8231future.
8232
8233[ENTRY]
8234Module: kernel
8235What: change
8236Rank: minor
8237[DESCRIPTION]
8238Views and variables do not any longer reveal whether they have
8239been modified: this feature committed the kernel to a particular
8240implementation which might not be available in the future.
8241
8242[ENTRY]
8243Module: example
8244What: new
8245Rank: minor
8246[DESCRIPTION]
8247Simple Singleton Arc Consistency pre-processing has been added as an
8248optional step for examples.
8249
8250[ENTRY]
8251Module: kernel
8252What: change
8253Rank: major
8254[DESCRIPTION]
8255The kernel has undergone some cleanups and improvements (much of
8256it got actually reimplemented):
8257 - Automatically generated stubs for variable implementations are directly
8258 inlined into the kernel. This improves performance, but more
8259 importantly, lifts some limits on the number of variables. Now, the
8260 only limit is that the sum of the ceiling of the logarithms of the
8261 number of modification events of all variables does not exceed 32
8262 (as an estimate, the kernel now can handle around 10 to 16 variable
8263 types). Moreover, if the need for more variable types arises this is
8264 straightforward to do.
8265 - The addition of new variable types for users has been simplified.
8266 - The main propagation loop has been entirely rewritten (much much simpler).
8267 Now, the kernel does not optimize any longer for the case that a
8268 variable is modified more than once during propagator execution.
8269 While this changes the asymptotic complexity, it reduces the propagator
8270 execution overhead by up to 30%. And a propagator is still free
8271 to make sure that a variable is modified only once (many propagators
8272 do that already).
8273 - Variable implementations became smaller by one word. Now variable
8274 implementations are optimal in the sense that no additional memory
8275 is needed for cloning or book-keeping, the memory required for
8276 propagation is sufficient.
8277 - Spaces have lost some weight as memory for datastructures only used
8278 during cloning or propagation are shared (saves some 25% of memory
8279 per space).
8280
8281[ENTRY]
8282Module: kernel
8283What: change
8284Rank: major
8285[DESCRIPTION]
8286Propagator modification events have been renamed to modification event
8287deltas (because that is what they are).
8288
8289[ENTRY]
8290Module: kernel
8291What: change
8292Rank: minor
8293[DESCRIPTION]
8294To not confuse variable implementations with variables, variable
8295implementations are now always called VarImp, and not Variable.
8296
8297[ENTRY]
8298Module: gist
8299What: new
8300Rank: major
8301[DESCRIPTION]
8302The %Gecode Interactive Search Tool (Gist), a Qt-based graphical search
8303engine, is now part of the main %Gecode distribution. It is currently included
8304as an experimental beta preview and may not be completely stable yet.
8305
8306
8307[RELEASE]
8308Version: 2.0.1
8309Date: 2008-02-07
8310[DESCRIPTION]
8311This is a bug-fix only release. Very unfortunately, it fixes
8312three serious bugs in search (LDS, Restart, and assignment
8313branchings). We highly encourage you to switch to Gecode 2.0.1 as
8314soon as possible.
8315
8316[ENTRY]
8317Module: test
8318What: bug
8319Rank: minor
8320[DESCRIPTION]
8321Fixed memory leak in reflection tests.
8322
8323[ENTRY]
8324Module: set
8325What: bug
8326Rank: minor
8327[DESCRIPTION]
8328Fixed memory leak in set projection propagators.
8329
8330[ENTRY]
8331Module: int
8332What: bug
8333Rank: minor
8334[DESCRIPTION]
8335Fixed memory leak in IntSet.
8336
8337[ENTRY]
8338Module: test
8339What: new
8340Rank: major
8341[DESCRIPTION]
8342Added comprehensive tests for all search engines.
8343
8344[ENTRY]
8345Module: search
8346What: bug
8347Rank: major
8348[DESCRIPTION]
8349Assignment branchings wrongly reported that they feature two alternatives
8350rather than one.
8351
8352[ENTRY]
8353Module: search
8354What: bug
8355Rank: major
8356Thanks: Stefano Gualandi
8357[DESCRIPTION]
8358LDS had numerous quirks. It has been fixed and greatly improved:
8359it detects when the entire search tree has been probed,
8360independent of the maximal discrepancy.
8361
8362[ENTRY]
8363Module: search
8364What: bug
8365Rank: major
8366Thanks: Stefano Gualandi
8367[DESCRIPTION]
8368Restart was broken in case the problem failed immediately with
8369propagation only, both when being initialized or when requesting
8370a next solution.
8371
8372[ENTRY]
8373Module: iter
8374What: bug
8375Rank: minor
8376Thanks: David Barton
8377[DESCRIPTION]
8378Changed Ranges::Diff to make older versions of gcc happy.
8379
8380[ENTRY]
8381Module: other
8382What: bug
8383Rank: minor
8384Thanks: David Barton
8385[DESCRIPTION]
8386Fixed linking order so that static linking works again.
8387
8388[ENTRY]
8389Module: int
8390What: new
8391Rank: minor
8392Thanks: Mohamad Rabbath
8393[DESCRIPTION]
8394Re-added reified linear constraints for Boolean variables.
8395
8396[ENTRY]
8397Module: int
8398What: bug
8399Rank: minor
8400[DESCRIPTION]
8401Domain-consistent abs could crash in certain (extremely rare) border cases.
8402
8403[ENTRY]
8404Module: kernel
8405What: bug
8406Rank: major
8407[DESCRIPTION]
8408Static initialization order was undefined, making reflection work unreliably.
8409In particular, linking Gecode statically did not work.
8410
8411[ENTRY]
8412Module: int
8413What: bug
8414Rank: minor
8415[DESCRIPTION]
8416Initializing an IntVar with an empty IntSet did not throw the appropriate
8417exception but crashed.
8418
8419[ENTRY]
8420Module: kernel
8421What: bug
8422Rank: minor
8423[DESCRIPTION]
8424Exceptions did not have rtti information when compiled with gcc and
8425visibility, which meant that they could not be caught.
8426
8427[ENTRY]
8428Module: example
8429What: bug
8430Rank: minor
8431Thanks: Helmut Simonis
8432[DESCRIPTION]
8433Fixed a bug and quirk in %Kakuro puzzles.
8434
8435[ENTRY]
8436Module: kernel
8437What: change
8438Rank: minor
8439[DESCRIPTION]
8440The VarMapIter can now return both a specification and the actual VarBase* of
8441the currently iterated variable.
8442
8443[ENTRY]
8444Module: other
8445What: bug
8446Rank: minor
8447[DESCRIPTION]
8448Revived boost serialization. The serialization functions will be compiled if
8449Gecode is configured with --with-boost.
8450
8451[ENTRY]
8452Module: kernel
8453What: performance
8454Rank: minor
8455[DESCRIPTION]
8456Be less aggressive in increasing size of heap chunks.
8457
8458[ENTRY]
8459Module: int
8460What: documentation
8461Rank: minor
8462[DESCRIPTION]
8463Fixed bug in documentation of table-based extensional constraint.
8464
8465[ENTRY]
8466Module: kernel
8467What: bug
8468Rank: minor
8469[DESCRIPTION]
8470Fixed a bug in the hash function for pointers, which could return
8471negative array indices.
8472
8473
8474
8475[RELEASE]
8476Version: 2.0.0
8477Date: 2007-11-14
8478[DESCRIPTION]
8479As witnessed by the version number change, this is a major
8480release with too many changes, fixes, and additions to mention
8481them all: please consult the changelog.
8482
8483The highlights are:
8484 - New propagators: channeling between Integer variable and array
8485 of Boolean variables, circuit, table constraint (extensional),
8486 incremental regular constraint (extensional), incremental
8487 Boolean linear constraints
8488 - Boolean variables have a dedicated implementation: twice as
8489 fast, half the memory
8490 - Advisors for incremental propagation (see: Lagerkvist,
8491 Schulte, Advisors for Incremental Propagation, CP 2007)
8492 - Many crucial performance and scalability improvements: memory
8493 management, memory footprint of propagators
8494 - Many cleanups and more documentation, many new examples
8495 - New set variables with complete domain representation
8496 (CpltSetVar) [experimental]
8497 - A reflection API to query spaces about their propagators
8498 [experimental]
8499
8500The features marked as experimental are all functional, but might
8501be revised in the next releases.
8502
8503As %Gecode 2.0.0 is a major release, you might have to adapt your
8504programs: \ref PageHowToChange_2 "How to Change to Gecode 2.0.0".
8505
8506[ENTRY]
8507Module: int
8508What: new
8509Rank: major
8510[DESCRIPTION]
8511Added table-based extensional constraint.
8512
8513[ENTRY]
8514Module: other
8515What: new
8516Rank: minor
8517[DESCRIPTION]
8518When compiling with gcc, the default visibility of symbols in the
8519generated dynamic library is set to hidden.
8520
8521[ENTRY]
8522Module: set
8523What: removed
8524Rank: minor
8525[DESCRIPTION]
8526Removed buggy distinct propagator for finite sets.
8527
8528[ENTRY]
8529Module: example
8530What: new
8531Rank: minor
8532Thanks: Helmut Simonis
8533[DESCRIPTION]
8534New example: %Kakuro puzzles.
8535
8536[ENTRY]
8537Module: other
8538What: new
8539Rank: minor
8540Thanks: Martin Mann
8541[DESCRIPTION]
8542Added dist and distdir targets for creating source distribution.
8543
8544[ENTRY]
8545Module: other
8546What: new
8547Rank: minor
8548Thanks: Filip Konvicka
8549[DESCRIPTION]
8550On windows with MSVC, always build program database files to ease
8551debugging of applications using %Gecode (files are also included in
8552packages).
8553
8554[ENTRY]
8555Module: int
8556What: new
8557Rank: minor
8558[DESCRIPTION]
8559Added new variable selection based on largest or smallest
8560quotient of size and degree.
8561
8562[ENTRY]
8563Module: other
8564What: new
8565Rank: minor
8566[DESCRIPTION]
8567Variable arrays, view arrays, and argument arrays can directly be
8568printed on standard output streams.
8569
8570[ENTRY]
8571Module: other
8572What: change
8573Rank: minor
8574[DESCRIPTION]
8575The structure of includes has been drastically
8576simplified. Support for iterators ("gecode/iter.hh") is
8577automatically included with integers ("gecode/int.hh") and sets
8578("gecode/set.hh"). Likewise, all support functionality becomes
8579available by including "gecode/support.hh" (one can assume that
8580this is included in "gecode/kernel.hh").
8581
8582[ENTRY]
8583Module: kernel
8584What: change
8585Rank: minor
8586[DESCRIPTION]
8587Shared arrays are now available in the kernel (where they properly
8588belong). This entails that they are available in the Gecode
8589namespace and not in Gecode::Support.
8590
8591[ENTRY]
8592Module: int
8593What: change
8594Rank: minor
8595[DESCRIPTION]
8596The extensional constraint specified by a DFA or a regular
8597expression (formerly known as regular) is now named "extensional"
8598rather than "regular".
8599
8600[ENTRY]
8601Module: minimodel
8602What: bug
8603Rank: minor
8604[DESCRIPTION]
8605Fixed small quirk in posting an absolute propagator via a function.
8606
8607[ENTRY]
8608Module: set
8609What: new
8610Rank: minor
8611[DESCRIPTION]
8612Added channeling propagator between a SetVar and a BoolVarArray
8613that propagates the characteristic function of the set to the
8614Boolean variables.
8615
8616[ENTRY]
8617Module: set
8618What: performance
8619Rank: minor
8620[DESCRIPTION]
8621Changed the datastructure for set variables to use singly-linked
8622lists.
8623
8624[ENTRY]
8625Module: other
8626What: change
8627Rank: minor
8628[DESCRIPTION]
8629The values (and types) for selecting how to branch have been made
8630uniform for all variables types: they start with INT_ (or SET_ or
8631CPLTSET_), followed by either VAL or VAR and the respective
8632strategy.
8633
8634[ENTRY]
8635Module: int
8636What: change
8637Rank: minor
8638[DESCRIPTION]
8639The interface for the global cardinality constraint has been simplified.
8640The constraint is now called count.
8641
8642[ENTRY]
8643Module: int
8644What: change
8645Rank: minor
8646[DESCRIPTION]
8647Regular expressions (REG) have been moved from the integer module to
8648the minimodel module.
8649
8650[ENTRY]
8651Module: example
8652What: change
8653Rank: major
8654[DESCRIPTION]
8655Most examples have been cleaned up.
8656
8657[ENTRY]
8658Module: example
8659What: change
8660Rank: minor
8661[DESCRIPTION]
8662Parsing of commandline arguments has been completely redone and
8663is much more extensible and flexible.
8664
8665[ENTRY]
8666Module: other
8667What: change
8668Rank: minor
8669[DESCRIPTION]
8670All of %Gecode has been put under the MIT license (which the
8671previous license was a simple rewording of).
8672
8673[ENTRY]
8674Module: other
8675What: bug
8676Rank: minor
8677[DESCRIPTION]
8678Removed huge number of casts that could (only potentially)
8679compromise portability.
8680
8681[ENTRY]
8682Module: set
8683What: new
8684Rank: minor
8685[DESCRIPTION]
8686Finite set projectors can now be specified using formulas, in addition to
8687set expressions.
8688
8689[ENTRY]
8690Module: cpltset
8691What: new
8692Rank: major
8693[DESCRIPTION]
8694Finite integer set variables with complete domain representation,
8695based on binary decision diagrams (BDDs), have been added as a
8696new variable type.
8697
8698[ENTRY]
8699Module: kernel
8700What: new
8701Rank: major
8702[DESCRIPTION]
8703A reflection API has been added, which allows querying spaces
8704about the variables and propagators they contain.
8705
8706[ENTRY]
8707Module: kernel
8708What: bug
8709Rank: major
8710[DESCRIPTION]
8711Branching ids were not properly initialized. This was a serious
8712problem if you posted branchings in spaces other than the root
8713space.
8714
8715[ENTRY]
8716Module: int
8717What: change
8718Rank: major
8719[DESCRIPTION]
8720Iterator-based domain operations have been renamed,
8721reimplemented, and extended. Now operations for both range and
8722value iterators are supported and the operations can be told to
8723perform more efficient destructive updates.
8724
8725[ENTRY]
8726Module: int
8727What: change
8728Rank: minor
8729[DESCRIPTION]
8730Sortedness constraints have been renamed to sorted constraints.
8731
8732[ENTRY]
8733Module: kernel
8734What: change
8735Rank: minor
8736[DESCRIPTION]
8737VarArrays can now be resized dynamically.
8738
8739[ENTRY]
8740Module: int
8741What: performance
8742Rank: major
8743[DESCRIPTION]
8744Boolean linear equations and inequalities with constant
8745right-hand sides use constant time propagators whenever
8746appropriate (linear time with less overhead and memory for
8747propagators with few variables).
8748
8749[ENTRY]
8750Module: kernel
8751What: new
8752Rank: major
8753[DESCRIPTION]
8754Added advisors as an abstraction for incremental propagation:
8755advisors are executed for their propagator whenever their view
8756changes. Advisors, when not being used, add one word of overhead
8757to each variable and slow down the system in the worst case by
8758less than 1%. In average, no slowdown can be observed.
8759
8760[ENTRY]
8761Module: int
8762What: bug
8763Rank: minor
8764[DESCRIPTION]
8765Fixed a border-case bug for n-ary Boolean conjunction and disjunction.
8766
8767[ENTRY]
8768Module: kernel
8769What: new
8770Rank: minor
8771[DESCRIPTION]
8772A new propagation condition PC_GEN_NONE (and hence, PC_INT_NONE,
8773...) has been introduced. Propagator patterns with this
8774propagation condition now do not create any subscriptions.
8775
8776[ENTRY]
8777Module: int
8778What: performance
8779Rank: major
8780[DESCRIPTION]
8781The regular constraint has been reimplemented, the new version
8782runs more than twice as fast.
8783
8784[ENTRY]
8785Module: example
8786What: new
8787Rank: minor
8788[DESCRIPTION]
8789Added a model for the traveling salesman problem, mostly
8790intended to exercise the new circuit constraint (as the model is not
8791very competitive).
8792
8793[ENTRY]
8794Module: kernel
8795What: new
8796Rank: major
8797[DESCRIPTION]
8798Support for reference-counted shared objects added: they handle
8799both reference counting as well as non-shared copying. This fixes
8800some bugs with the handling of shared arrays, integer sets, and
8801finite automata.
8802
8803
8804[ENTRY]
8805Module: example
8806What: bug
8807Rank: minor
8808[DESCRIPTION]
8809Examples reported wrong number of propagator invocations (the
8810invocations for problem setup were missing).
8811
8812[ENTRY]
8813Module: kernel
8814What: new
8815Rank: major
8816[DESCRIPTION]
8817Added classes for shared objects and handles. Handles to shared
8818objects allow to either share copies among spaces when being
8819copied or to create a new shared copy, if requested.
8820
8821[ENTRY]
8822Module: int
8823What: new
8824Rank: minor
8825Thanks: Martin Mann
8826[DESCRIPTION]
8827Added a new version of count (and also atleast, atmost, exactly)
8828that counts the number of variables equal to integers in an
8829array.
8830
8831[ENTRY]
8832Module: example
8833What: bug
8834Rank: minor
8835Bug: 50
8836[DESCRIPTION]
8837The number of colors in graph-color was off by one.
8838
8839[ENTRY]
8840Module: int
8841What: new
8842Rank: major
8843[DESCRIPTION]
8844Added channel constraints that channel an integer variable to
8845either a single or an array of Boolean variables.
8846
8847[ENTRY]
8848Module: int
8849What: bug
8850Rank: minor
8851[DESCRIPTION]
8852Fixed bug in copying of n-ary or-propagator for a special boundary case.
8853
8854[ENTRY]
8855Module: int
8856What: new
8857Rank: minor
8858[DESCRIPTION]
8859Relaxed sharing restrictions for channel, in particular
8860channel(this, x, x) is allowed.
8861
8862[ENTRY]
8863Module: int
8864What: new
8865Rank: major
8866[DESCRIPTION]
8867Added propagators for the circuit constraint.
8868
8869[ENTRY]
8870Module: kernel
8871What: performance
8872Rank: minor
8873[DESCRIPTION]
8874Improved automatic memory management on Windows platforms.
8875
8876[ENTRY]
8877Module: int
8878What: performance
8879Rank: minor
8880[DESCRIPTION]
8881Domain consistent distinct and channel allocate memory from the
8882space heap now. Much simpler.
8883
8884[ENTRY]
8885Module: int
8886What: change
8887Rank: minor
8888[DESCRIPTION]
8889The Boolean tell operations one_none and zero_none now also
8890return a ModEvent and hence must be checked for failure. This is
8891needed for simpler advisors.
8892
8893[ENTRY]
8894Module: kernel
8895What: performance
8896Rank: major
8897[DESCRIPTION]
8898The memory management policies have been completely reworked. Now
8899memory requests are much more regular. Hence, memory is much more
8900likely to be returned to the operating system. Furthermore, the
8901flush member functions for actors have been removed (they were
8902unneeded) and actors and spaces now have allocated member
8903functions for returning how much memory is allocated by a space.
8904
8905Moreover, the memory reported by some propagators has been
8906ignored. Note that this flaw did not affect the benchmark figures
8907on the %Gecode webpage.
8908
8909[ENTRY]
8910Module: int
8911What: performance
8912Rank: minor
8913[DESCRIPTION]
8914The multiplication uses integer precision if possible for better
8915performance.
8916
8917[ENTRY]
8918Module: int
8919What: change
8920Rank: minor
8921[DESCRIPTION]
8922Integer and Boolean variables are now guaranteed to be
8923inspectable (that is, all const member functions work on them),
8924even though a space is failed. However, the variables might have
8925been modified during a tell operation that has failed.
8926
8927[ENTRY]
8928Module: minimodel
8929What: change
8930Rank: major
8931[DESCRIPTION]
8932Linear expressions and relations can also be created from Boolean
8933variables, with the restriction that Boolean relations cannot be
8934reified.
8935
8936[ENTRY]
8937Module: int
8938What: change
8939Rank: major
8940[DESCRIPTION]
8941Boolean variables (and hence Boolean views) do not any longer
8942share the implementation with integer variables. That has the
8943following consequences:
8944- Boolean variables are not any longer integer variables. The same
8945 holds true for arrays of variables.
8946- All constraints that make sense for both Boolean and integer
8947 variables have post functions that support both integer and
8948 Boolean variables.
8949- Memory for Boolean variables is reduced by 50% and performance
8950 increases in problems with many Boolean variables by up to 50%.
8951
8952[ENTRY]
8953Module: int
8954What: new
8955Rank: major
8956[DESCRIPTION]
8957Added propagators for linear constraints over Boolean variables,
8958in particular specialized and efficient versions for non-unit
8959coefficients.
8960
8961[ENTRY]
8962Module: int
8963What: change
8964Rank: minor
8965[DESCRIPTION]
8966The linear constraints are now more careful (that is, they will
8967use more efficient versions more often if it is safe) to
8968determine whether overflow occurs and which precision (integer or
8969double) should be chosen.
8970
8971[ENTRY]
8972Module: int
8973What: change
8974Rank: minor
8975[DESCRIPTION]
8976The element constraints now accept an additional offset argument.
8977
8978[ENTRY]
8979Module: set
8980What: new
8981Rank: minor
8982[DESCRIPTION]
8983Added selection and reified relation constraints with constant sets.
8984
8985[ENTRY]
8986Module: set
8987What: change
8988Rank: minor
8989[DESCRIPTION]
8990Slightly stronger inferences for the finite set sequence and selection
8991constraints.
8992
8993[ENTRY]
8994Module: example
8995What: new
8996Rank: minor
8997[DESCRIPTION]
8998New example: the balanced academic curriculum problem (problem 030 from
8999CSPlib).
9000
9001[ENTRY]
9002Module: set
9003What: bug
9004Rank: minor
9005[DESCRIPTION]
9006Fixed the n-ary partition propagator to handle overflow of the sum of
9007cardinalities correctly.
9008
9009[ENTRY]
9010Module: kernel
9011What: bug
9012Rank: minor
9013[DESCRIPTION]
9014Subscription to constant views now should use the propagate
9015member function from a variable implementation: it guarantees
9016execution of a propagator at least once (int and set views have
9017been adopted accordingly).
9018
9019[ENTRY]
9020Module: int
9021What: bug
9022Rank: major
9023Bug: 48
9024[DESCRIPTION]
9025Branching on maximum regret would always crash on non-range domains.
9026
9027[ENTRY]
9028Module: set
9029What: change
9030Rank: minor
9031[DESCRIPTION]
9032The finite set selection propagators accept an additional
9033argument that specifies where the indexing should start. It
9034should make some models more natural to express, and helps in
9035porting code from other systems, such as Prolog or Mozart. In
9036addition, the selectUnion propagator is now hand-written again,
9037resulting in better performance.
9038
9039[ENTRY]
9040Module: int
9041What: change
9042Rank: major
9043[DESCRIPTION]
9044All Boolean constraints got a new and regular interface. Rather
9045than providing different post functions for the different
9046constraints, the single post function rel is used: the Boolean
9047operation then is described by a value of type BoolOpType. In
9048addition, all Boolean propagators have been reimplemented for
9049better performance and less memory use.
9050
9051[ENTRY]
9052Module: test
9053What: new
9054Rank: minor
9055[DESCRIPTION]
9056Added simple testing for branchings.
9057
9058[ENTRY]
9059Module: kernel
9060What: change
9061Rank: major
9062[DESCRIPTION]
9063The way how propagators report subsumption and partial fixpoints
9064has changed. Now, a propagator must first call dispose (which
9065then cancels subscriptions and possibly frees external resources)
9066and only then can return that the propagator is subsumed. For
9067that purpose a new function Gecode::ES_SUBSUMED has been
9068defined. Likewise, ES_FIX_PARTIAL and ES_NOFIX_PARTIAL are
9069functions rather than member functions of Gecode::Propagator. The
9070benefit is that this saves memory and is more efficient.
9071
9072[ENTRY]
9073Module: int
9074What: change
9075Rank: minor
9076[DESCRIPTION]
9077The use of the consistency options were a little confusing, now
9078the rule is: the level of consistency increases from ICL_VAL to
9079ICL_BND to ICL_DOM.
9080
9081[ENTRY]
9082Module: minimodel
9083What: performance
9084Rank: minor
9085[DESCRIPTION]
9086Boolean expressions erroneously decomposed into ternary Boolean
9087constraints, while not incorrect rather inefficient for large
9088Boolean expressions.
9089
9090[ENTRY]
9091Module: kernel
9092What: change
9093Rank: minor
9094[DESCRIPTION]
9095Made all macros type safe.
9096
9097[ENTRY]
9098Module: kernel
9099What: new
9100Rank: major
9101[DESCRIPTION]
9102Added macro GECODE_REWRITE for rewriting propagators. It is strongly advised
9103to always use this macro!
9104
9105[ENTRY]
9106Module: example
9107What: bug
9108Rank: minor
9109Bug: 46
9110[DESCRIPTION]
9111Orientation of Sudokus now match the orientation in the specification-file.
9112
9113[ENTRY]
9114Module: example
9115What: new
9116Rank: minor
9117[DESCRIPTION]
9118New example: MineSweeper.
9119
9120[ENTRY]
9121Module: example
9122What: new
9123Rank: minor
9124[DESCRIPTION]
9125New example: Domino.
9126
9127[ENTRY]
9128Module: set
9129What: bug
9130Rank: minor
9131[DESCRIPTION]
9132Set projectors could subscribe with bogus propagation conditions.
9133
9134[ENTRY]
9135Module: set
9136What: performance
9137Rank: minor
9138[DESCRIPTION]
9139Performance of the tell operations on finite set variables was
9140improved. Especially the intersect operation benefits from this.
9141
9142[ENTRY]
9143Module: int
9144What: new
9145Rank: minor
9146[DESCRIPTION]
9147The element constraint now also supports integer values as result.
9148
9149[ENTRY]
9150Module: kernel
9151What: new
9152Rank: minor
9153[DESCRIPTION]
9154Add a generic class for assignments during search (similar to
9155generic branchings for views and values).
9156
9157[ENTRY]
9158Module: int
9159What: change
9160Rank: minor
9161[DESCRIPTION]
9162All branching classes for value and view selection are now
9163parametric.
9164
9165[ENTRY]
9166Module: int
9167What: change
9168Rank: minor
9169[DESCRIPTION]
9170Boolean variables cannot longer be initialized from an integer
9171variable. If needed, a channel propagator must be posted (added).
9172
9173[ENTRY]
9174Module: int
9175What: change
9176Rank: minor
9177[DESCRIPTION]
9178The equality constraints have been replaced by a variant of rel.
9179
9180[ENTRY]
9181Module: kernel
9182What: change
9183Rank: minor
9184[DESCRIPTION]
9185The propagator abstractions Inhom* have been renamed to Mix*.
9186
9187[ENTRY]
9188Module: int
9189What: change
9190Rank: minor
9191[DESCRIPTION]
9192The operations t_one, t_one_none, t_zero, t_zero_none for Boolean
9193views have been renamed to one, one_none, zero, zero_none.
9194
9195[ENTRY]
9196Module: kernel
9197What: performance
9198Rank: major
9199[DESCRIPTION]
9200Explicit disposal of actors has been reimplemented (the old
9201design was nothing but darn stupid). The memory overhead of
9202propagators is reduced by 40% for most propagators and 20% for
9203all. That is, a binary propagator takes 30% less memory and a
9204ternary propagator takes 25% less memory. Programs with many
9205binary or ternary propagators can run up to 20% faster.
9206
9207[ENTRY]
9208Module: kernel
9209What: change
9210Rank: minor
9211[DESCRIPTION]
9212Propagators and branchings that require disposal when a space is
9213deleted must now be explicitly registered via a force function
9214and explicitly deregistered by an unforce function.
9215
9216[ENTRY]
9217Module: int
9218What: bug
9219Rank: minor
9220[DESCRIPTION]
9221Fixed memory leak in reified dom constraint.
9222
9223[ENTRY]
9224Module: set
9225What: bug
9226Rank: minor
9227[DESCRIPTION]
9228Fixed memory leak in distinct constraint for sets.
9229
9230[ENTRY]
9231Module: example
9232What: new
9233Rank: major
9234[DESCRIPTION]
9235New example: Pentominoes. The example uses extensional
9236constraints specified as regular expressions to place
9237irregular-shaped pieces on a board.
9238
9239
9240
9241[RELEASE]
9242Version: 1.3.1
9243Date: 2006-10-25
9244[DESCRIPTION]
9245This is a minor release which fixes a major bug (the first real
9246serious bug). Please update as soon as possible.
9247
9248[ENTRY]
9249Module: kernel
9250What: bug
9251Rank: major
9252Thanks: Rafael Meneses
9253[DESCRIPTION]
9254Branch&Bound search with ViewValBranchings (all standard branchings) together
9255with batch recomputation was severely broken. The problems ranged from wrong
9256search trees (missing solutions) to segmentation faults. The fix changes the
9257way assigned variables are removed from the array in a ViewValBranching.
9258
9259[ENTRY]
9260Module: int
9261What: bug
9262Rank: minor
9263[DESCRIPTION]
9264Bounds-consistent distinct catches border case when an assigned variable
9265during bounds propagation leads to value removal for value propagation.
9266
9267[ENTRY]
9268Module: int
9269What: performance
9270Rank: minor
9271[DESCRIPTION]
9272Bounds-consistent distinct eliminates assigned variables more
9273aggressively (can save up to 10% runtime in some cases).
9274
9275[ENTRY]
9276Module: int
9277What: bug
9278Rank: minor
9279Thanks: Alejandro Arbelaez
9280[DESCRIPTION]
9281IntVar::init now also raises exceptions for illegal domain specifications.
9282
9283
9284
9285
9286
9287[RELEASE]
9288Version: 1.3.0
9289Date: 2006-09-19
9290[DESCRIPTION]
9291This release adds a compiler for finite set projectors and provides new
9292infrastructure making it easier to add new variable domains. In addition,
9293it contains recent bug fixes and minor improvements.
9294
9295[ENTRY]
9296Module: set
9297What: new
9298Rank: major
9299[DESCRIPTION]
9300Compiler for finite set projectors. Given a specification of a finite set
9301constraint as a projector set, it generates C++ code for the corresponding
9302propagator. Together with the dynamic propagator for finite set projectors,
9303this implements the backend of the technique described in the paper
9304"Generating Propagators for Finite Set Constraints" (Tack, Schulte,
9305Smolka; CP 2006.).
9306
9307[ENTRY]
9308Module: other
9309What: new
9310Rank: minor
9311Thanks: Jorge Marques Pelizzoni
9312[DESCRIPTION]
9313Also pass options for linking standard libraries for MSVC.
9314
9315[ENTRY]
9316Module: other
9317What: bug
9318Rank: minor
9319[DESCRIPTION]
9320The pkg-config files now contain the correct path if you configured to the
9321default prefix (i.e. /usr/local).
9322
9323[ENTRY]
9324Module: minimodel
9325What: new
9326Rank: minor
9327[DESCRIPTION]
9328Added aliases lex, atleast, atmost, and exactly for the count constraint.
9329
9330[ENTRY]
9331Module: int
9332What: change
9333Rank: minor
9334[DESCRIPTION]
9335Renamed lex constraint to rel (as it also supports equality and disequality).
9336
9337[ENTRY]
9338Module: int
9339What: performance
9340Rank: minor
9341[DESCRIPTION]
9342Make count constraints with integer number of equal occurrences
9343more incremental using dynamic subscriptions (gives a 20-30%
9344speedup).
9345
9346[ENTRY]
9347Module: example
9348What: new
9349Rank: minor
9350[DESCRIPTION]
9351Added an example for solving Black Hole patience games.
9352
9353[ENTRY]
9354Module: kernel
9355What: new
9356Rank: major
9357[DESCRIPTION]
9358Subscription to variables now features an additional and optional
9359Boolean argument whether the propagator is to be processed. This
9360allows dynamically creation of subscriptions during propagation.
9361
9362[ENTRY]
9363Module: other
9364What: new
9365Rank: minor
9366[DESCRIPTION]
9367New configure switches: --enable-audit to include audit code, which may
9368contain expensive checks of internal invariants or alternative, checked
9369implementations of critical parts of %Gecode. --enable-universal and
9370--with-sdk, to support building universal binaries on Mac OS X.
9371
9372[ENTRY]
9373Module: kernel
9374What: new
9375Rank: minor
9376[DESCRIPTION]
9377Variables can now be deallocated when the Space is deallocated (for example in
9378case of failure). This is important in case a variable implementation needs to
9379reference external resources. Deallocation can be switched on in the
9380high-level description used for generating the variable implementation.
9381
9382[ENTRY]
9383Module: minimodel
9384What: bug
9385Rank: minor
9386Thanks: Rafael Meneses
9387[DESCRIPTION]
9388Under certain conditions (posting in a failed space), the post function
9389returned uninitialized variables.
9390
9391[ENTRY]
9392Module: kernel
9393What: performance
9394Rank: major
9395[DESCRIPTION]
9396Variable implementations are now generated from a high-level
9397description (taking care of all aspects relating to modification
9398events and propagation conditions). While simplifying the
9399implementation of new variable domains considerably, this also can,
9400in lucky cases, deliver a speed-up of 5%.
9401
9402[ENTRY]
9403Module: kernel
9404What: performance
9405Rank: major
9406[DESCRIPTION]
9407Allocate subscriptions in separate memory area. Can speedup execution
9408in some (but few) cases by up to 15-20%.
9409
9410[ENTRY]
9411Module: int
9412What: documentation
9413Rank: minor
9414Bug: 43
9415[DESCRIPTION]
9416Fixed documentation problem due to doxygen...
9417
9418[ENTRY]
9419Module: search
9420What: new
9421Rank: major
9422[DESCRIPTION]
9423Branch-and-bound search now interleaves recomputation with adding
9424bounding constraints. This can prune the search tree much
9425earlier: instead of recomputing many nodes from the same copy
9426node and then adding a constraint that fails all these nodes, it
9427might be possible to already fail the copy node directly. In
9428principle, the difference can be exponential, however for
9429examples we tried the effect is minor.
9430
9431[ENTRY]
9432Module: kernel
9433What: bug
9434Rank: minor
9435[DESCRIPTION]
9436Now commits can be interleaved with adding new constraints during
9437batch recomputation. This also entails that commit does not raise
9438an exception when applied to an already failed space (it is
9439simply ignored). The bug could not be observed (unless you did
9440some very fancy search engines yourself) and one could actually
9441see it as an extension.
9442
9443
9444
9445
9446[RELEASE]
9447Version: 1.2.2
9448Date: 2006-07-25
9449[DESCRIPTION]
9450This release switches recomputation back on and removes some
9451experimental code that had sneaked into the system...
9452
9453[ENTRY]
9454Module: kernel
9455What: performance
9456Rank: major
9457[DESCRIPTION]
9458Some experimental code had sneaked into the release, slowing down
9459the system by more than 10%...
9460
9461[ENTRY]
9462Module: search
9463What: bug
9464Rank: major
9465[DESCRIPTION]
9466With the changes to search in %Gecode 1.2.1 recomputation was
9467actually almost switched off...
9468
9469[ENTRY]
9470Module: int
9471What: performance
9472Rank: minor
9473[DESCRIPTION]
9474Improve performance of domain-consistent distinct (by providing
9475special ternary version). Can reduce runtime by 10-20% for some
9476examples.
9477
9478[ENTRY]
9479Module: int
9480What: performance
9481Rank: minor
9482[DESCRIPTION]
9483Cut memory requirements for element (for integer arrays) by half.
9484
9485[ENTRY]
9486Module: example
9487What: new
9488Rank: minor
9489[DESCRIPTION]
9490Added stress test for element constraint (originally due to Neng-Fa Zhou).
9491
9492[ENTRY]
9493Module: example
9494What: new
9495Rank: minor
9496[DESCRIPTION]
9497Added stress test for min constraint.
9498
9499[ENTRY]
9500Module: example
9501What: new
9502Rank: minor
9503[DESCRIPTION]
9504Added possibility to stop the search for solutions in examples based
9505on the time taken, the number of fails, or both.
9506
9507[ENTRY]
9508Module: example
9509What: new
9510Rank: minor
9511[DESCRIPTION]
9512Added an example for solving Peacable co-existing armies of %Queens.
9513
9514
9515
9516[RELEASE]
9517Version: 1.2.1
9518Date: 2006-07-19
9519[DESCRIPTION]
9520In addition to the usual fixes and improvements, the biggest
9521change is that all branchings now must support branching
9522descriptions. This also entails straightforward changes
9523(simplifications) to search-related space operations and to the
9524implementation of search engines.
9525
9526
9527[ENTRY]
9528Module: kernel
9529What: new
9530Rank: minor
9531[DESCRIPTION]
9532Added a macro GECODE_NEVER that assert that this command is never
9533executed. This is preferred over assert(false) as it is used for
9534optimization, if supported by a compiler (for example, Microsoft
9535Visual C++).
9536
9537[ENTRY]
9538Module: int
9539What: bug
9540Rank: minor
9541[DESCRIPTION]
9542Fixed fixpoint detection bug in n-ary min and max propagators.
9543
9544[ENTRY]
9545Module: int
9546What: bug
9547Rank: minor
9548[DESCRIPTION]
9549Min and max propagators now correctly handle cases such as min(x,y)=x.
9550
9551[ENTRY]
9552Module: int
9553What: removed
9554Rank: minor
9555[DESCRIPTION]
9556Removed bounds-consistent propagation for count constraint (not worth
9557the trouble, just use domain-consistent).
9558
9559[ENTRY]
9560Module: kernel
9561What: change
9562Rank: minor
9563Thanks: Martin Mann
9564[DESCRIPTION]
9565The ViewValBranching class now passes the home space to all member
9566functions used in selecting the view and the value.
9567
9568[ENTRY]
9569Module: set
9570What: bug
9571Rank: minor
9572[DESCRIPTION]
9573Fixed fixpoint detection for n-ary partition propagator.
9574
9575[ENTRY]
9576Module: set
9577What: new
9578Rank: major
9579[DESCRIPTION]
9580Added finite set projection propagators. They allow to propagate all
9581finite set constraints expressible as finite set projectors, including
9582negated and reified constraints.
9583
9584[ENTRY]
9585Module: support
9586What: new
9587Rank: minor
9588[DESCRIPTION]
9589Added simple class encapsulating a linear congruential pseudo-random
9590number generator.
9591
9592[ENTRY]
9593Module: kernel
9594What: change
9595Rank: major
9596[DESCRIPTION]
9597The interface for branchings has changed considerably, reflecting
9598the fact now that all branchings must support branching descriptions.
9599This is also reflected in the Space::status operation which has its
9600arguments reversed and corrected const qualifiers on its arguments.
9601But the good news is that it is considerably simpler than before.
9602
9603[ENTRY]
9604Module: int
9605What: bug
9606Rank: minor
9607[DESCRIPTION]
9608Assignment branchings (that is, branchings with a single alternative)
9609could possibly take the wrong values for assignment during recomputation.
9610
9611[ENTRY]
9612Module: kernel
9613What: change
9614Rank: major
9615[DESCRIPTION]
9616The status operation does not any longer accept an argument for
9617the number of alternatives. The number of alternatives is now
9618available from a branching description (where it is passed upon
9619creation of the description). This reflects the fact that
9620branching descriptions are mandatory now.
9621
9622[ENTRY]
9623Module: search
9624What: bug
9625Rank: major
9626[DESCRIPTION]
9627Fixed a serious bug where during recomputation the search stack
9628was always inspected behind the last element: the reason why
9629recomputation never crashed has been that stacks always keep one
9630element extra for optimization. So, serious bug but looks as if
9631no one stumbled over this...
9632
9633[ENTRY]
9634Module: kernel
9635What: bug
9636Rank: minor
9637[DESCRIPTION]
9638As Boolean variables can be derived from integer variables, the
9639assumption that a not yet assigned Boolean variable can not be
9640modified is wrong.
9641
9642[ENTRY]
9643Module: other
9644What: documentation
9645Rank: minor
9646[DESCRIPTION]
9647Generate one page per version released in changelog.
9648
9649[ENTRY]
9650Module: kernel
9651What: change
9652Rank: minor
9653Bug: 41
9654[DESCRIPTION]
9655Change exceptions thrown by %Gecode to be compliant with C++
9656exceptions.
9657
9658[ENTRY]
9659Module: other
9660What: bug
9661Rank: minor
9662Bug: 42
9663[DESCRIPTION]
9664Renamed macros so as to avoid nameclashes (all macros start with
9665GECODE_).
9666
9667[ENTRY]
9668Module: search
9669What: bug
9670Rank: minor
9671[DESCRIPTION]
9672Search engines now correctly count the number of propagation
9673steps including propagation that occurs when adaptive
9674recomputation creates additional clones.
9675
9676[ENTRY]
9677Module: search
9678What: change
9679Rank: major
9680[DESCRIPTION]
9681Branchings now must return branching descriptions and commit
9682operations also insist on being provided with branching
9683descriptions. This change reflects that batch recomputation is
9684of vital importance for efficiency in %Gecode.
9685
9686[ENTRY]
9687Module: int
9688What: performance
9689Rank: major
9690[DESCRIPTION]
9691Make Boolean linear constraints with constant right hand sides
9692more incremental using dynamic subscriptions (gives a 20-30% speedup).
9693
9694[ENTRY]
9695Module: minimodel
9696What: performance
9697Rank: minor
9698[DESCRIPTION]
9699Take advantage of specialized Boolean propagators in Boolean
9700expressions and relations.
9701
9702[ENTRY]
9703Module: int
9704What: performance
9705Rank: minor
9706[DESCRIPTION]
9707Made n-ary Boolean conjunction and disjunction more incremental by
9708using dynamic subscriptions.
9709
9710[ENTRY]
9711Module: int
9712What: performance
9713Rank: minor
9714[DESCRIPTION]
9715Provide special versions of Boolean propagators optimizing cases
9716where n-ary disjunctions are true.
9717
9718[ENTRY]
9719Module: int
9720What: performance
9721Rank: minor
9722[DESCRIPTION]
9723Change implementation of Boolean propagators from conjunction
9724to disjunction so that disjunction can be used as special case
9725for Boolean sum with inequalities.
9726
9727
9728[RELEASE]
9729Version: 1.2.0
9730Date: 2006-06-20
9731[DESCRIPTION]
9732This release makes quite some drastic changes to how propagators
9733and branchings are deleted: instead of using destructors they use
9734a dispose method that allows passing a home space during deletion
9735(we will use this infrastructure measure to speed up cloning
9736considerably a little later). Moreover the directory structure
9737has changed on popular request so that all include files are to
9738be found in a gecode subdirectory. Apart from that, some small
9739fixes and extensions due to requests.
9740
9741[ENTRY]
9742Module: set
9743What: bug
9744Rank: minor
9745Thanks: Luis Otero
9746[DESCRIPTION]
9747Fixed memory leak in finite set distinct propagator.
9748
9749[ENTRY]
9750Module: int
9751What: bug
9752Rank: minor
9753[DESCRIPTION]
9754Fixed memory leak in global cardinality constraint.
9755
9756[ENTRY]
9757Module: int
9758What: bug
9759Rank: minor
9760Thanks: Martin Mann
9761[DESCRIPTION]
9762Fixed bug in equality tests that could lead to reified (dis)equality
9763propagators not achieving domain consistency.
9764
9765[ENTRY]
9766Module: test
9767What: new
9768Rank: minor
9769[DESCRIPTION]
9770Added --enable-leak-debug configure option. This option causes the test suite
9771to call mtrace() under Linux, which can be used to test for memory leaks.
9772
9773[ENTRY]
9774Module: kernel
9775What: performance
9776Rank: minor
9777[DESCRIPTION]
9778More aggressive inlining for canceling subscriptions.
9779
9780[ENTRY]
9781Module: search
9782What: bug
9783Rank: minor
9784Bug: 39
9785[DESCRIPTION]
9786Fixed linkage of BAB destructor under Cygwin.
9787
9788[ENTRY]
9789Module: kernel
9790What: change
9791Rank: minor
9792[DESCRIPTION]
9793The branch member function for branchings now also takes a home space
9794as argument.
9795
9796[ENTRY]
9797Module: kernel
9798What: change
9799Rank: major
9800[DESCRIPTION]
9801Canceling subscriptions on views and variable implementations now
9802require also a home space (this has become possible due to not using
9803destructors but ordinary "dispose" member functions).
9804
9805[ENTRY]
9806Module: kernel
9807What: change
9808Rank: major
9809[DESCRIPTION]
9810Actors (propagators and branchings) do not any longer use destructors
9811but a "dispose" member function that takes a home space as argument
9812and must return the size of the actor.
9813Important: this requires that dispose member functions from super-classes
9814and class members are called explicitly!
9815
9816[ENTRY]
9817Module: kernel
9818What: new
9819Rank: minor
9820[DESCRIPTION]
9821Spaces can be queried for number of propagators and branchings.
9822
9823[ENTRY]
9824Module: search
9825What: new
9826Rank: minor
9827[DESCRIPTION]
9828Search engines can now be checked whether they have been stopped.
9829
9830[ENTRY]
9831Module: int
9832What: documentation
9833Rank: minor
9834Thanks: Martin Mann
9835[DESCRIPTION]
9836Fixed bug in description of PC_INT_DOM.
9837
9838[ENTRY]
9839Module: other
9840What: change
9841Rank: major
9842Thanks: Martin Mann
9843[DESCRIPTION]
9844Moved library source code into gecode subdirectory. Facilitates cleaner
9845installation. Programs compiling against %Gecode now need to include
9846e.g. "gecode/int.hh".
9847
9848[ENTRY]
9849Module: example
9850What: change
9851Rank: minor
9852[DESCRIPTION]
9853Sudoku example generalized to arbitrarily sized Sudokus.
9854
9855[RELEASE]
9856Version: 1.1.0
9857Date: 2006-04-10
9858[DESCRIPTION]
9859This minor release adds some new constraints (see below), adds support
9860for stopping search engines based on definable criteria, and some other
9861small fixes. Most notably, the test infrastructure has been extended to
9862also check whether propagators correctly claim that they have computed
9863a fixpoint (now all invariants a propagator must obey in %Gecode are covered
9864by the test infrastructure). This has lead to many small fixes.
9865
9866[ENTRY]
9867Module: other
9868What: bug
9869Bug: 37
9870Rank: minor
9871Thanks: Kari Pahula
9872[DESCRIPTION]
9873Added a configure switch --enable-doc-dot. If enabled, this checks for
9874presence of the dot tool (used for generating graphs in the documentation)
9875
9876[ENTRY]
9877Module: example
9878What: new
9879Rank: minor
9880[DESCRIPTION]
9881Added all-interval series using distinct.
9882
9883[ENTRY]
9884Module: minimodel
9885What: new
9886Rank: minor
9887[DESCRIPTION]
9888Added functions returning variables for arithmetic
9889(min, max, abs, mult, plus, minus).
9890
9891[ENTRY]
9892Module: int
9893What: change
9894Rank: minor
9895[DESCRIPTION]
9896Support for shared views has been removed in
9897sortedness propagator and in the propagator
9898for global cardinality with fixed cardinalities.
9899
9900[ENTRY]
9901Module: int
9902What: bug
9903Rank: minor
9904[DESCRIPTION]
9905Fixed bug in fixpoint detection of sortedness and
9906global cardinality propagator.
9907
9908[ENTRY]
9909Module: set
9910What: bug
9911Rank: minor
9912Bug: 36
9913Thanks: Javier Mena
9914[DESCRIPTION]
9915A non-debug version of %Gecode could not be linked to a program compiled with
9916assertions switched on, as BndSet::isConsistent was missing from the library.
9917
9918[ENTRY]
9919Module: int
9920What: change
9921Rank: minor
9922[DESCRIPTION]
9923Staged propagation for domain-consistent absolute value propagator
9924
9925[ENTRY]
9926Module: int
9927What: change
9928Rank: minor
9929[DESCRIPTION]
9930EqBnd and EqDom now take two template parameters for their view types. This
9931supports using different views, e.g. to express x0=-x1 using a MinusView.
9932
9933[ENTRY]
9934Module: search
9935What: new
9936Rank: major
9937Thanks: Rafael Meneses
9938[DESCRIPTION]
9939Added functionality to interrupt search engines (introduced
9940a Search::Stop class).
9941
9942[ENTRY]
9943Module: search
9944What: change
9945Rank: major
9946[DESCRIPTION]
9947Removed search engines optimizing for copying only (after
9948all, one should always use some recomputation).
9949
9950[ENTRY]
9951Module: int
9952What: bug
9953Rank: minor
9954[DESCRIPTION]
9955Fixed bug in fixpoint detection of n-ary maximum/minimum
9956propagator.
9957
9958[ENTRY]
9959Module: kernel
9960What: change
9961Rank: minor
9962[DESCRIPTION]
9963The status member function now also allows the first
9964argument to be optional.
9965
9966[ENTRY]
9967Module: set
9968What: bug
9969Rank: minor
9970[DESCRIPTION]
9971Fixed bugs in fixpoint detection of several set propagators (match,
9972convexity, sequence, n-ary (disjoint) union).
9973
9974[ENTRY]
9975Module: int
9976What: bug
9977Rank: minor
9978[DESCRIPTION]
9979Fixed bug in fixpoint detection of bounds-consistent
9980element for variables propagator.
9981
9982[ENTRY]
9983Module: int
9984What: bug
9985Rank: minor
9986[DESCRIPTION]
9987Fixed bug in fixpoint detection of bounds-consistent squaring
9988propagator (mult with the same variable twice).
9989
9990[ENTRY]
9991Module: int
9992What: bug
9993Rank: minor
9994[DESCRIPTION]
9995Fixed bug in fixpoint detection of bounds-consistent abs
9996propagator.
9997
9998[ENTRY]
9999Module: int
10000What: performance
10001Rank: minor
10002[DESCRIPTION]
10003Rewrite n-ary linear, min/max, and Boolean propagators to binary/ternary
10004variants during cloning if possible (saves memory).
10005
10006[ENTRY]
10007Module: int
10008What: bug
10009Rank: minor
10010Thanks: Stefano Gualandi
10011[DESCRIPTION]
10012Fixed wrong assertion in gcc-bnd propagator.
10013
10014[ENTRY]
10015Module: int
10016What: bug
10017Rank: major
10018Thanks: Jean-Christophe Godart
10019[DESCRIPTION]
10020Fixed indexing bug in SupportSet (part of the domain consistent linear
10021equation propagator).
10022
10023[ENTRY]
10024Module: int
10025What: new
10026Rank: major
10027[DESCRIPTION]
10028Added new constraint channel for variable/value channeling
10029between two variable arrays.
10030
10031[ENTRY]
10032Module: int
10033What: change
10034Rank: minor
10035[DESCRIPTION]
10036All distinct propagators raise an exception if a variable occurs
10037multiply in its arguments.
10038
10039[ENTRY]
10040Module: set
10041What: change
10042Rank: major
10043[DESCRIPTION]
10044Renamed the set propagators minElement to min, maxElement to max,
10045and channelVarVal to channel.
10046
10047[ENTRY]
10048Module: int
10049What: performance
10050Rank: major
10051[DESCRIPTION]
10052Improved initialization of domain-consistent distinct propagator,
10053in common cases for distinct this can save up to 10% runtime.
10054
10055[ENTRY]
10056Module: set
10057What: bug
10058Rank: minor
10059Thanks: Patrick Pekczynski
10060[DESCRIPTION]
10061Fixed off-by-one bug in SetVarImp::lubMinN and SetVarImp::lubMaxN.
10062
10063[ENTRY]
10064Module: minimodel
10065What: bug
10066Rank: minor
10067Thanks: Olof Sivertsson
10068[DESCRIPTION]
10069(In-)Equations were still not correct with respect to the sign.
10070
10071[ENTRY]
10072Module: minimodel
10073What: bug
10074Rank: minor
10075Bug: 33
10076Thanks: Olof Sivertsson
10077[DESCRIPTION]
10078Slice-operation now returns elements in right order.
10079
10080[ENTRY]
10081Module: minimodel
10082What: bug
10083Rank: minor
10084Bug: 32
10085Thanks: Olof Sivertsson
10086[DESCRIPTION]
10087Possible array-out-of bounds access fixed for MiniModel::Matrix.
10088
10089[ENTRY]
10090Module: example
10091What: performance
10092Rank: minor
10093[DESCRIPTION]
10094Added redundant constraint to social golfers example.
10095
10096
10097
10098
10099[RELEASE]
10100Version: 1.0.1
10101Date: 2006-03-01
10102[DESCRIPTION]
10103Maintenance release including some additions of domain-consistent
10104propagators and a fix for a serious bug in reified linear
10105inequalities.
10106
10107[ENTRY]
10108Module: search
10109What: change
10110Rank: minor
10111[DESCRIPTION]
10112Changed default copying recomputation distance to 8.
10113
10114[ENTRY]
10115Module: minimodel
10116What: bug
10117Rank: minor
10118Thanks: Olof Sivertsson
10119[DESCRIPTION]
10120(In-)Equations with an int on the left hand side (like 9==x) were
10121translated with a wrong sign (as -9==x).
10122
10123[ENTRY]
10124Module: other
10125What: bug
10126Rank: minor
10127Bug: 31
10128[DESCRIPTION]
10129The preprocessor macro NDEBUG for disabling assertions is no longer
10130put into config.hpp. Without this fix, user programs could not use
10131assert if %Gecode was compiled with NDEBUG.
10132
10133[ENTRY]
10134Module: minimodel
10135What: new
10136Rank: minor
10137[DESCRIPTION]
10138The post functions for linear expressions and relations also take
10139an integer consistency level as optional argument.
10140
10141[ENTRY]
10142Module: int
10143What: new
10144Rank: major
10145[DESCRIPTION]
10146Added domain-consistent linear equalities.
10147
10148[ENTRY]
10149Module: int
10150What: bug
10151Rank: minor
10152Bug: 30
10153[DESCRIPTION]
10154Fixed fixpoint detection for ternary min and max.
10155
10156[ENTRY]
10157Module: int
10158What: bug
10159Rank: minor
10160[DESCRIPTION]
10161Fixed subsumption detection for regular with multiple variable occurences.
10162
10163[ENTRY]
10164Module: int
10165What: change
10166Rank: minor
10167[DESCRIPTION]
10168Cost computation for sortedness has been changed from static to
10169dynamic (taking into account the variable reduction the
10170propagator can perform).
10171
10172[ENTRY]
10173Module: int
10174What: change
10175Rank: major
10176[DESCRIPTION]
10177Global cardinality changed to non-staged version. Further
10178inference for cardinality variables added. Parts of the graph
10179structure for the domain-consistent propagator have been revised
10180so as to avoid unnecessary propagation in case of fixed
10181cardinalities and to allow better staging for the
10182propagator. Revision of propagation for fixed cardinalities has
10183also been applied to bounds-consistent propagator.
10184
10185[ENTRY]
10186Module: int
10187What: new
10188Rank: major
10189[DESCRIPTION]
10190Added domain-consistent version of the absolute value propagator.
10191
10192[ENTRY]
10193Module: other
10194What: performance
10195Rank: major
10196[DESCRIPTION]
10197Switch assertions off in optimized builds with Microsoft's C++ compiler.
10198
10199[ENTRY]
10200Module: int
10201What: bug
10202Rank: major
10203Bug: 29
10204Thanks: Dominik Brill
10205[DESCRIPTION]
10206Fixed a very serious bug in the reified linear inequality propagator.
10207
10208[ENTRY]
10209Module: other
10210What: bug
10211Rank: minor
10212Thanks: Filip Konvicka
10213[DESCRIPTION]
10214Removed some compiler warnings for the Microsoft compiler with -W3.
10215
10216[ENTRY]
10217Module: int
10218What: bug
10219Rank: major
10220Bug: 27
10221[DESCRIPTION]
10222The strongly connected components represented by the permutation
10223variables in the extended version of Sortedness has been fixed
10224restoring bounds consistency on the permutation variables.
10225
10226[ENTRY]
10227Module: other
10228What: change
10229Rank: minor
10230Bug: 24
10231[DESCRIPTION]
10232The soname for libraries on Linux is now set properly, as well as the
10233version information on Darwin (Mac OS).
10234
10235[ENTRY]
10236Module: other
10237What: change
10238Rank: minor
10239Bug: 25
10240[DESCRIPTION]
10241The build system has been updated to support building both static and
10242shared libraries at the same time on Unix-like systems.
10243
10244[ENTRY]
10245Module: example
10246What: change
10247Rank: minor
10248[DESCRIPTION]
10249Examples now use per default the recomputation settings as
10250defined in the search module.
10251
10252[RELEASE]
10253Version: 1.0.0
10254Date: 2005-12-06
10255[DESCRIPTION]
10256Initial release.
10257
10258[ENTRY]
10259Module: kernel
10260What: new
10261Rank: minor
10262Thanks: Gilles Pesant and Samuel Gagnon
10263[DESCRIPTION]
10264Introduction of a basic structure for supporting counting-based
10265search as described in:
10266S. Gagnon, G. Pesant, Accelerating Counting-Based Search, CPAIOR 2018.
10267This is only enabled if Gecode has been compiled with the option
10268--enable-cbs.
10269[MORE]
10270A branching option will be added to compatible examples as
10271counting algorithms are added to constraints.