forked from radsz/jacop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCHANGELOG
224 lines (160 loc) · 8.02 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
Version 4.2
===========
1. Support for minizinc 2.0
2. Constraint Geost avaible is now from minizinc.
3. Implementation of Solution-Guided Multi-Point Constructive Search.
4. Improvements in minimization method for floating-point variables.
Version 4.1.1
===========
1. New global constraint LexOrder that defines lexicographical order
between two vectors of IntVar. Vectors must be of the same size.
2. Implementation of a loader for flazinc models and related examples. The
loader makes it possible to load the model and then define own search
methods as well as use all variables defined in the model and their values.
3. Performance improvements in AndBool and OrBool. it is no longer needed
to scan the whole list for achieving consistency.
4. Checking for overflow in Sum and improvement in detecting overflow for
addition.
5. Since domain consistency is computationally expensive minizinc uses
domain consistency for linear constraints only when constrained are
annotated ":: domain" and the size of maximal domains is <= 4 and
there is no more than 2 variables.
Version 4.1
===========
1. New floating point variables and constraints on these variables.
2. Flatzinc interface for JaCoP's floating point constraints.
3. Scala interface for floating point constraints.
4. Fixing a bug in knapsack constraints when large numbers are used.
5. Implementing intersection method between SmallDenseDomain and BoundDomain.
Version 4.0
===========
1. Maven support and new directory structure. The package has changed name from JaCoP to org.jacop and files are placed in the new directory structure.
2. Experimental feature - stochastic variables and constraints - is moved to feature branch as it still requires additional testing.
It is excluded from this release, but we encourage contribution in this branch (examples/tests in particular) to help us make it
quicker a part of the next release.
3. Experimental feature SAT solver - JaSAT - is moved to experimental feature branch as its performance and integration with JaCoP still
requires extra work. It is excluded from this release, but we encourage contribution in this branch to help us make it quicker a part
of the next release.
4. Adding constraint SumWeightDom that implements domain consistency
for weighted sum of linear terms.
5. New primitive constraint Linear and its use in flatzinc.
6. New global constraint Subcircuit.
7. Adding additional propagation to Min and Max constraint. It
propagates in situations when one variable on the list is lowest
(greatest). It enforces that this variable from the list is equal
min (max) variable.
8. Print of statistics for flatzinc (org.jacop.fz.Fz2jacop) after Ctrl-C.
9. Updated JaCoP guide to reflect new features.
10. Bug fixes.
Version 3.2
=============
1. Fixes few bugs
2. Provides an interface from Scala to JaCoP. Examples using Scala are provided in ExamplesScala package.
Version 3.1.2
=============
The release of JaCoP version 3.1.2 fixes several bugs and makes JaCoP compatible with minizinc v.1.4.
1. Compatibility changes for minizinc 1.4.
2. Bug fix of reification in several primitive set constraints that made pruning working correctly.
3. New method for pruning length of rectangles in Diff/Diff2 constraints.
4. Several small bug fixes.
5. Bug fix in search to make limit on a number of solutions work correctly (specially for sequence search).
Version 3.1.1
=============
1. Changes to bo compatible with minizinc v. 1.3.
2. New pruning methods for multiplication and division constraints, icluding div and mod.
3. Bug fix in Among constraint.
4. Bug fix in SmallDenseDomain.
Version 3.1
===========
This release fixes few bugs as well as provides a new Binpacking constraint.
The Binpacking constraint allows modeling of problems exhibiting bin
packing problem structure. The addition of this constraint introduced
changes to minizinc/fz library in JaCoP since the definitions of
bin_packing.mzn, bin_packin_capa.mzn and bin_packing_load.mzn have
been added. The JaCoP guide has been updated to explain how to use
Binpacking constraint.
Version 3.0
===========
We have just released JaCoP 3.0 final. Since the previous release
(RC2) we have fixed one rarely triggering bug in ElementInteger
constraint, as well as added code supporting generation of data for
CP-viz framework. Here is the list of most important changes since
version 2.4.
1) The introduction of Network Flow constraint, which allows efficient
modeling of problems with network flow structure. The constraint
allows to specify minimum cost flow problem in terms of finite
domain variables. It uses network simplex algorithm as an
propagator for network-like structure. It is a very expressive
constraint where arc flow and arc unit costs can be specified by
variables.
2) The introduction of set package forced changes in the design of
core interfaces. There are IntVar and SetVar classes which inherit
from Var class. This change allowed to refactor and improve set package
so it is designed in cleaner and more efficient manner.
3) The introduction of special domain representation SmallDenseDomain,
which uses bits within a long primitive type to encode small
domains of range not larger than 64.
4) The introduction of Soft-alldifferent as well as Soft-GCC global
constraints. The soft-alldifferent constraint implements Variable
and Decomposition based violation metrics. The soft-gcc constraint
implements value based violation metric. Both are decomposed constraints
based on network flow constraint.
5) Examples have been updated by moving multiple solving functionality
from main function to test function, so user can easily see what is
the best model just by looking at main function. BIBD example has
been added. Examples with Set variables have been updated to
reflect the changes.
6) A number of bug fixes and changes in flatzinc interface to better
comply with minizinc 1.1. We have also added into minizinc
predicates networkflow that uses newly introduced JaCoP Network
Flow constraint.
7) A number of minor API changes to improve intuitiveness of use
(e.g. order of arguments in constructors).
8) The JaCoP guide has been updated to reflect the changes and additions
to the newest version.
Version 2.4.2
=============
The main reason for this release is change of Minizinc standard, the
newest version handles Minizinc 1.1.
Version 2.4.1
=============
???
Version 2.4
===========
The version 2.4 has a number of new features in addition to some bug
fixes. The most important additions in this version are:
The flatzinc interface that makes it possible to run minizinc programs
using JaCoP. The distribution contains number of different minizinc
examples.
Geometrical constraint, geost, based on pruning algorithms originally
proposed by Nicolas Beldiceanu et al. This constraint makes it
possible to define placement problems of non-convex objects in
k-dimensional space.
Knapsack constraint, which is based on the work published by Irit
Katriel et al. We extend the original work in number of ways, for
example by making it possible to use non-boolean quantity variables.
Set constraints defining typical operation on sets using set interval
variables.
Version 2.3
===========
As with previous releases, JaCoP focuses on ease of use, efficiency,
and modeling power by providing more and more global constraints.
In JaCoP 2.3 you'll notice:
Number of new global constraints implemented, namely Among, GCC,
Regular, two new variants of ExtensionalSupport constraint (STR, MDD),
Stretch, and Sequence constraints.
Redesigned search functionality making it possible to express search
as by designing search plugins and transforming available search.
Redesigned part of the JaCoP core focusing on domains, making it
easier to add new domains representations.
Significantly improved Java Doc API making code even better
documented.
Number of new examples explaining how to apply CP technology.
Version JaCoP 2.2
=================
Version JaCoP 2.1
=================
Version JaCoP 1.7
=================
Version JaCoP 1.3
=================