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.