CHANGELOG.md 11.5 KB
Newer Older
Lionel's avatar
Lionel committed
1
# aGrUM Changelog
2

3 4 5 6 7 8 9 10 11
## Changelog for 0.13.6

* aGrUM
  * Compilation issue for clang4 fixed
  * remove all pre-compiled `float` instanciations of aGrUM's templates (and significantly reduce the size of all libraries)
  * add the configuration files needed for interactive notebooks on mybinder.org
* pyAgrum
  * minor changes in notebooks

12
## Changelog for 0.13.5
13

14 15
* aGrUM
  * fix errors for gcc 4.8.2
16
  * fix issue <https://gitlab.com/agrumery/aGrUM/issues/23>
17 18
  * fix act error for python<3.6
  
Christophe Gonzales's avatar
Christophe Gonzales committed
19
## Changelog for 0.13.4
20

Christophe Gonzales's avatar
Christophe Gonzales committed
21
* pyAgrum
22
  * minor API changes
23
  * minor changes in documentation
Christophe Gonzales's avatar
Christophe Gonzales committed
24
  * BNLearner follows the new learning framework
25 26
  * parametric EM !! See notebook <http://www-desir.lip6.fr/~phw/aGrUM/docs/last/notebooks/16-ParametriceEM.ipynb>
  * New method : JointTargetedInference.jointMutualInformation for any set of variables in the BN
Christophe Gonzales's avatar
Christophe Gonzales committed
27
* aGrUM
28
  * parametric EM !!
Christophe Gonzales's avatar
Christophe Gonzales committed
29 30 31 32 33 34 35 36 37 38
  * several internal improvements
  * learning: major update of the scores, independence tests and record counters:
    They can now be used on subsets of databases (e.g., for cross validation), the ids of the nodes need not correspond to indices of columns in the database. The interfaces of these classes have been simplified.
  * learning: all the scores have been speeded-up
  * learning: new score fNML has been introduced
  * learning: Dirichlet apriori has been improved: the variables in its database need not be in the same order as those of the learning database
  * learning: all the score-related testunits have been improved
  * learning: the documentations of the scores have been improved
  * learning: the corrected mutual information of 3off2 has been improved
  * BNLearner: now supports cross validation
39
  * New method : JointTargetedInference::jointMutualInformation for any set of variables in the BN
Christophe Gonzales's avatar
Christophe Gonzales committed
40

41
## Changelog for 0.13.3
42

43
* pyAgrum
44 45
  * **pip** : wheels for mac/windows/linux for python 2.7,3.{4-7}
  * **anaconda** : compilation for maxOS/anaconda64/python3 should be fixed
46 47
  * updating tests
  * updating pyAgrum.lib
48
  * updating posterior histograms for notebooks (adding mean/stdev for `RangeVariable` and `DiscretizedVariable`)
49
  * new functions for colouring and graphically comparing BNs
50
  * improved documentation
51
* aGrUM
52 53 54 55 56
  * fixed bugs for `DiscreteVariable` with `domainSize()`<=1 (particularly when added in `Potential`)
  * improved `CMakeFiles.txt`
  * improved documentation
  * fixing `UAI` format for read and write
  * `BNLearner.setSliceOrder` with list of list of names (and not only with ids)
57
  * improved error messages
58
  * fixing `learnParameters`
59 60
  * multi-thread support for learning

61
## Changelog for 0.13.2
62

63 64 65 66
* aGrUM/pyAgrum
  * fixed bugs in `Potential::fillWith`
  * removed unsafe and ambiguous `Potential::fastKL` and kept safe `Potential::KL`

67
## Changelog for 0.13.1
68

69
* aGrUM
70 71
  * variable: new methods to set bounds with doubles in `ContinuousVariable`
  * Changed the code of `Instantiation`'s hash functions to make it compliant with windows mingw implementation
72
* TestUnits
73
  * fixed bug in `RawDatabaseTable` test unit
74 75

## Changelog for 0.13.0
76

77
* aGrUM
78 79 80 81 82 83 84 85 86 87 88
  * inference: Loopy Belief Propagation (`LBP`)
  * inference: new approximated inference : `Monte-Carlo`/`Importance`/`Weighted Sampling` + the same using LBP as a Dirichlet prior (`Loopy...`).
  * learning: new algorithm 3off2 and miic
  * learning: new database handling framework (allows for coping with missing values and with different types of variables)
  * learning: possibility to load data from nanodbc databases (e.g., `postgres`, `sqlite`)
  * learning: add a progress Listener/Signaler in `BNDatabaseGenerator`
  * potential: API extension (`findAll`,`argmax`,`argmin`,`fillWith(pot,map)`)
  * variable: new constructor for `LabelizedVariable` with labels as vector of string + `posLabel(std::string)`
  * variable: new constructor with vector of ticks for `gum::DiscretizedVariable`
  * graph: API extension (`addNodes(n)`)
  * graph: API change (`addNode(id)`->`addNodeWithId(id)`)
89
  * Changes and bug fixe in in BIF and NET writer/reader
90 91
* pyAgrum
  * wheels for python 3.3 and 3.4
92
  * access to the new learning framework using `BNLearner`
93
  * access to the new inference algorithms
94 95 96 97 98 99 100 101 102
  * new methods `Instantiation.fromdict` and `Instantiation.todict`
  * `DiscreteVariable.toDiscretized/toLabelized/toRange` copy the variable instead of giving a (not readonly) reference
* O3PRM
  * new syntax for types
  * read and write Bayesian Network with O3PRM syntax
* Documentations
  * agrum : doxygen helps structure and howtos
  * pyAgrum : documentation of a large part of pyAgrum's API, export to <https://pyagrum.readthedocs.io>
  * o3prm : still in progress (see <https://o3prm.lip6.fr>, <https://o3prm.readthedocs.io>)
103 104
* act
  * new command guideline for a few easy checks
105
* many bug fixes 
106

107
## Changelog for 0.12.0
108

109
* API
110 111 112
  * new class `EssentialGraph`
  * new class `MarkovBlanket`
  * improved targets in `MarginalTargettedInference`
113 114 115
* pyAgrum
  * update notebooks
  * new swig-based documentation framework
116
  * transparent background for dot graphs
117 118 119 120
  * more windows-compliant agrum.lib.bn2csv
* aGrUM
  * PRM bug fixes
  * improved CI in gitlab
121
  * improved exception messages in BN learning and O3PRM
122 123
  * improving act

124
## Changelog for 0.11.2
125

126 127 128 129 130 131 132 133 134
* aGrUM
  * a lot of internal changes for CI in gitlab (especially for future automatic generation of wheels)
  * learning: correct identification of string labels beginning with digits
  * learning: labels from CSV are now alphabetically sorted
  * fix an issue with sql.h
* pyAgrum
  * notebooks as tests (now in wrappers/pyAgrum/notebooks)
  * updating requirements
  * some improvements in doc
135
  * pyagrum.lib.ipython: emulation of 'pyagrum.lib.notebook' for ipython graphical console (within spyder for instance)
136 137 138
  * pyagrum.lib.bn2csv: csv file with labels of variables instead of index (parameter with_labels:boolean)
  * pyagrum.lib.bn2roc: use a csv with labels by default (parameter with_labels:boolean)

139
## Changelog for 0.11.1
140

141 142
* 2 typos found in pyAgrum.lib.notebook

143
## Changelog for 0.11.0
144

145 146 147 148 149 150
* internal
  * working on continuous integration with gitlab
  * aGrUM/pyAgrum to be compilable with g++-4.8
  * aGrUM/pyAgrum to be compilable with win32
  * pyAgrum wheels generation using act for 'pip' tool
* aGrUM
151 152
  * removing some unused data structure (`AVLTree`)
  * fixing bug in `localSearchWithTabuList` learning class
153 154
  * Remove wrong parallel estimations for learning (now correct but sequential)
  * working on docs
155
  * API change : add `BayesNet::minimalCondSet(NodeSet&,NodeSet&)` (migration from pyAgrum to aGrUM)
156 157
  * API change : add JointTargettedInference::evidenceJointImpact()
* pyAgrum
158 159 160 161
  * API changes : pyAgrum.lib.bn2graph (`BN2dot`, `BNinference2dot`, `proba2histo`)
  * API changes : pyAgrum.lib.pretty_print (`bn2txt`, `cpt2txt`)
  * API changes : pyAgrum.lib.notebook : uniforming parameters evs (first) and targets (second) order.
  * API changes : pyAgrum.lib.notebook : `showEntropy->showInformation`
162
  * updating sphinx help generation
163 164 165 166
  * fix `CNMonteCarloSampling` not recognized as `ApproximationScheme`
  * enhancing `showInformation` with Mutual Information on arcs
  * API change : adding `BayesNet.minimalCondSet(set_of_targets,set_of_evs)` (as wrapper)
  * API change : adding `LazyInference.evidenceJointImpact(set_of_targets,set_of_evs)`
167

168
## Changelog for 0.10.4
169

170 171
* Add new approximated inference : `LBP` (aGrUM and pyAgrum)
* Fix bugs in `LazyPropagation` and `ShaferShenoy` inference
172 173 174 175 176 177
* Refresh some codes in Learning module
* Update (and simplify) CMakeLists.txt for new swig 3.0.11
* Add some project files (including this CHANGELOG.md)
* Refresh pyAgrum notebooks with matplotlib2


Lionel's avatar
Lionel committed
178
## Changelog for 0.10.3
179

Lionel's avatar
Lionel committed
180 181 182
* Only bug fixes in tests

## Changelog for 0.10.2
183

184 185
* New method for `BayesNet` : `minimalCondSet`
* New method for all inference : `evidenceImpact`
Lionel's avatar
Lionel committed
186
* Potential has a (single) value even if no dimension.
187
* Bug fix for `LazyPropagation`
Lionel's avatar
Lionel committed
188 189 190 191
* Typos for Visual C++ compiler
* Many internal changes

## Changelog for 0.10.1
192

Lionel's avatar
Lionel committed
193 194
* aGrUM
  * Fix GCC compilation
195
  * `ParamEstimator::setMaxThread` new method
Lionel's avatar
Lionel committed
196
* pyAgrum
197 198 199
  * `VariableElimination` and `ShaferShenoy` inference
  * new `addJointTarget` and `jointPosterior` methods for exact inference
  * `pyAgrum.getPosterior` now uses `VariableElimination`
Lionel's avatar
Lionel committed
200 201 202 203 204
  * Fix pyAgrum.lib.notebook error for python2
  * pyAgrum now linked with static library aGrUM
  * pyAgrum.so (linux) size significantly reduced

## Changelog for 0.10.0
205

Lionel's avatar
Lionel committed
206 207 208 209
* aGrUM
  * Improvements in inference : New target/evidence-driven incremental inference scheme using relevant reasoning used by Lazy/Shafer-Shenoy/Variable Elimination algorithms. Relevant reasoning leads to a major improvement of the inference (see http://www-desir.lip6.fr/~phw/aGrUM/officiel/notebooks/RelevanceReasoning.html).
* pyAgrum
  * LazyPropagation API follow the new inference scheme (add/removeTarget, add/remove/chgEvidence)
210
* Installers using pip or anaconda.
Lionel's avatar
Lionel committed
211 212

## Changelog for 0.9.3
213

Lionel's avatar
Lionel committed
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234
Tag 0.9.3 has not been properly announced. Still, many changes in this release :

* Many bug fixes and API glitch/improvement
  * Many internal reorganisations (compilation, test, jenkins, etc.)
  * Many change in the C++ code in order to be more c++11/14
  * Bug fix in learning
  * Many Doxygen improvements
  * Many refactors and bug fix in PRM
* Improvements
  * dynamic BN in pyAgrum
  * nanodbc support for pyAgrUM
  * O3PRMBNReader in pyAgrum (read a prm to a BN)
  * PRMExplorer in pyAgrum
  * UAI reader/writer for BayesNet
  * Algebra of potentials (operators on Potential)
  * pyAgrum.lib.notebook refactored and simplified
  * updating lrs version for credal networks
* Windows
  * aGrUM/pyAgrum compilation on windows using Visual Studio 2015

## Changelog for 0.9.2
235

Lionel's avatar
Lionel committed
236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254
* aGrUM
  * Improvements in Inference
    * old LazyPropagation renamed JunctionTreeInference,
    * Improved LazyPropagation ~30% faster,
    * Bug fix and other improvements for relevance reasoning features.
  * Improvements for Probabilistic Relational Models
    * model refinements : e.g. parameterized classes, specification of CPTs using formula, etc.
    * bug fixes and other improvements in dedicated inference algorithms,
    * improving and fixing documentations
    * new file format for Bayesian network : o3prmBNReader (reading a BN by grounding a system)
  * Learning API still improved
    * BNLearner templatized
    * new feature for BNLearner : using a BN to specicfy variables and their modalities,
    * bug fixes and improvement for parameter learning.
  * other bug fixes and improvements in aGrUM architecture
    * aGrUM g++5.1-ready
    * etc.
* pyAgrum
  * small bugs fixed and reorganisation
255

Lionel's avatar
Lionel committed
256
##Changelog for 0.9.1
257

Lionel's avatar
Lionel committed
258 259 260 261 262 263 264 265 266 267 268 269 270 271
* aGrUM
  * Improvement in learning algorithms
  * learning from databases with fewer rows than there are processors
  * method to BNLearner to learn parameters from a BN's DAG
  * static lib compilation for aGrUM
  * bug fixes and other improvements
* pyAgrum
  * Compiled for Python 3 or Python 2 (default is python3, python2 if no python3.). New option for act to choose which python : --python={2|3}.
  * gumLib has moved and changed its name (in the pyAgrum package) : pyAgrum.lib
  * Improving API for learning (changeLabel/parameter learning/ etc.)
  * Improving graphs manipulation
  * bug fixes and other improvements

## Changelog for 0.9.0
272

Lionel's avatar
Lionel committed
273 274 275 276 277 278
Aside from many bug fixes and general improvements such as performance optimizations in various areas, some changes are especially noteworthy:

* Functionality : Structural and parameter learning for Bayesian networks
* Model : Credal Networks, FMDP using Multi-Valued Decision Diagrams
* Language : migration to modern C++(11/14)
* Core : Improvements and optimization of basic data structures in aGrUM/core