Skip to content
Tags give the ability to mark specific points in history as being important
  • 1.12.1
    82656391 · [aGrUM] before 1.12.1 ·
    * aGrUM
      * Adding a new job during CI for sphinx documentation.
      * Fixing a typo in `gum::MeeRules::propagate(s)`.
    * pyAgrum
      * Fixing a typo in `pyAgrum.MeekRules.propagate(s)`.
      * Adding new rules for 'python typification' of generated files.
      * Fixing and updating documentations and notebooks.
  • 1.12.0
    d93aba1e · [aGrUM] before 1.12 ·
    * aGrUM
      * Adding a new class `gum::MeekRules` to complete a learned PDAG to CPADG or BN.
      * Preventing 'infinities' in the definition of numerical discrete variable.
      * Adding a new constructor for `gum::PDAG` from`gum::MixedGraph`.
      * Better (stricter) `operator==` between `gum::DiscreteVariable`.
      * Adding a new static constructor `gum::{Undi|Di}Graph::completeGraph(int n)`.
      * Adding `closestIndex()` and `closestLabel()` methods for all numerical `gum::DiscreteVariable`.
      * Fixing an exception raised in inferences due to the removal of uninformative potentials containing only barren variables
      * new syntax for `fastVariable` : `[a:b:n]` = `gum.Discretiezd` with n intervalls from a to b.
    
    * pyAgrum
      * Pickle for graphs and graphicals models !
      * Preventing 'infinities' in the definition of numerical discrete variable.
      * Adding a new class `pyAgrum.MeekRules` to complete a learned PDAG to CPADG or BN.
      * Better (stricter)  `__eq__` and `__ne_`_ between `pyAgrum.DiscreteVariable`.
      * Adding a new constructor for `pyAgrum.PDAG` from`pyAgrum.MixedGraph`.
      * Adding a new `expert` discretization method to `pyAgrum.skbn.BNDiscretizer` (thanks to Ahmed Mabrouk).
      * `pyAgrum.skbn.BNDiscretizer` can now take csv filename for input.
      * Adding `pyAgrum.fastGraph` to create `pyAgrum.{Di|Undi|Mixed}Graph`.
      * Dataframes can now come from `pandas` or `polars` (thanks to Mads Linksou).
      * Adding a `compact` mode for histogram for discretized variable controlled by `histogram_mode`
      `histogram_epsilon` in `gum.config` (thanks to Gaspard Ducamp).
      * Adding a new static constructor `pyAgrum.{Undi|Di}Graph::completeGraph(int n)`.
      * Adding subscripting to graphical models : `g[name]` gives now a direct access to the `pyAgrum.DiscreteVariable` by its
    name.
      * New syntax for `pyAgrum.fast{Var|BN|ID|MRF}` : `[a:b:n]` = `pyAgrum.DiscretizedVariable` with n intervalls from a to b.
      * Adding `closestIndex()` and `closestLabel()` methods for all numerical `pyAgrum.DiscreteVariable`.
      * Adding `g.adjacencyMatrix()` for all graphs and graphical models (thanks to Kenneth Lee).
      * Adding new `bgcolor` parameter (None by default) for `showROC/PR` in `pyAgrum.lib.bn2roc` and `pyAgrum.skbn` (thanks to Clara Charon).
      * Adding optional `dialect` parameter to `pyAgrum.lib.bn2roc.computeScores`.
      * new syntax for `fastVariable` : `[a:b:n]` = `pyAgrum.Discretiezd` with n intervalls from a to b.
  • 1.11.0
    * Internal
      * Removing some warnings in CMakeLists.txt
      * Refactoring CI, cleaning wheelhouse
    
    * aGrUM
      * Adding `gum::LazyPropagation::mpe{Log2Posterior}` to compute the Most Probable Explanation with some evidence.
      * Improving MIIC algorithm and application of Meek Rules in ordre to to better solve (partially) oriented cycle problems.
      * Fixing a bug in `gum::BNLearner` : EM parameter estimation bug due to a cache used in record counters.
      * Fixing a bug in `gum::GibbsSampling` : some evidence may not be taken into account (thanks to Micromix@discord).
      * `gum::PDAG` must accept partially directed cycle (thanks to Kenneth Lee).
    
    * pyAgrum
      * Updating and adding 3.12 in metadatas.
      * Adding `pyAgrum.LazyPropagation.mpe{Log2Posterior}` to compute the Most Probable Explanation with some evidence.
      * Removing reference to `sys.log` and to `setuptools`.
      * Removing legacy setuptools related files.
      * Fixing a bug in `pyAgrum.BNLearner` : EM parameter estimation bug due to a cache used in record counters.
      * Fixing a bug in `pyAgrum.GibbsSampling` : some evidence may not be taken into account (thanks to Micromix@discord).
      * Fixing a bug in frontdoor detection in a causal model  with multiple connected components.
      * Fixing some regexp expressions.
      * `pyAgrum.PDAG` must accept partially directed cycle (thanks to Kenneth Lee).
  • 1.10.0
    e733b2a6 · before tag 1.10.0 ·
    * aGrUM
      * add contraints to `MIIC` BN learning algorithm.
      * `MIIC` is now the default for `gum::BNLearner`.
      * Fixing some minor bugs in `gum::BNLearner`.
      * Removing old `3off2` BN learning algorithm (use MIIC instead).
      * adding `pyAgrum::MIIC::learnPDAG` and give access to this method via `gum::BNLearner`.
    
    * pyAgrum
      * package for python 3.12 !
      * New configuration for specification of graphviz engine and rankdir .
      * Constraint for `MIIC` algorithm in `pyAgrum.BNLearner`.
      * `MIIC` is now the default for `pyAgrum.BNLearner`.
      * Fixing minor bugs in `pyAgrum.BNLearner`.
      * new method `pyAgrum.BNLearner.learnPDAG`.
      * Back to classical representation of do() operator in `pyAgrum.causal`.
      * Examples from the Book Of Why (Pearl) are now in the sphinx documentation.
      * The name of a loaded BN should not include the complete path but only the name of the file (thanks to Jules Cassan).
  • 1.9.0
    7c2adb90 · [aGrUM] forgotten files ·
    * aGrUM
        * Learning algorithm `gum::learning::MIIC` can use the weighted databases.
        * Internal improvements for `act` tool, `cmake` and compilers (`clang`).
      
    * pyAgrum
        * New visualisation for `gum::DiscretizedVariable` + new config to select this visualisation.
        * `pyAgrum.BNLearner` can use now the weighted databases for all learning algorithms.
        * Documentation improvements.
        * `pyAgrum.lib.bn2roc`
            * adding new functions `get{ROC|PR}points()`.
            * accepting `pandas.DataFrame` as data source (`datasrc`).
            * adding Fbeta (beta!=1) scores to bn2roc.
            * adding F-Beta threshold on ROC and PR curves.
            * `bn2roc` functions now force many parameters to be keyword-arguments in order to prevent the risk of mixing arguments.
            * adding new functions `anim{ROC|PR}`.
        * `pyAgrum.skbn.Discretizer` can propose a set of labels (that includes the labels from the database) when `"NoDiscretization"` is selected. (see tutorial `52-Classifier_Discretizer`).
  • 1.8.3
    * aGrUM
        * Removing GCC warnings about overloaded virtual methods.
        * Fixing a bug in jointree inference in rare cases (when an irrelevant soft evidence is added).
      
    * pyAgrum
        * Fixing a bug in jointree inference in rare cases (when an irrelevant soft evidence is added).
        * Removing deprecated methods from pyAgrum<1.1.0.
        * Adding new syntax for set (conditional) marginal with dict : `p[{"A":0,"C":1}]={"no":0.3,"yes":0.7}`.
        * small updates for pyAgrum's documentation.
  • 1.8.2
    d76c830b · [aGrUM] before 1.8.2. ·
    * aGrUM
      * Fixing a bug (still) in `gum::PDAG::cSeparation` (thanks to Keneth Lee).
      * Fixing a bug in `gum::BIFXMLIdWriter::save`.
      * typos in `gum::PDAG::toDot()`.
    
    * pyAgrum
      * Fixing a bug in `pyAgrum/{load|save}ID`.
      * Wrapping `gum::PDAG::moralizedAncestralGraph()`.
      * Adding a warning when importing `pyAgrum.lib.notebook` if graphviz is not installed.
  • 1.8.1
    * aGrUM
      * Bugfixes in `gum::PDAG::cSeparation` (thanks to Keneth Lee).
      * Using 'table' instead of 'default' for marginal cpt in `gum::BIFWriter`.
      * Adding `std::cout<<(gum::Timer& t)`
    
    * pyAgrum
      * Updating build image for rtd.
      * Improving documentations.
      * Documentation for pyAgrum.InformationTheory.
      * Uniformizing argume `cmap` to `cmapNode` in `pyAgrum.lib.notebook`.
      * Adding beeswarmplot for shapley values figures in `pyAgrum.lib.explain`.
  • 1.8.0
    * aGrUM
      * Adding new class `gum::InfomationTheory` that regroups every information theory concepts (entropies, conditional entropies and mutual information, ...) with only one inference, which allows also conditioned information theory concepts.  
      * Adding `gum::Potential::expectedValue()`
      * Adding the alternative *fast* syntax for NumericalDiscreteVariable : `{1.5:3.5:3}` meaning from 1.5 to 3.5 in 3 steps.
      * Updating `GraphicalModel::exists(const std::string&)` : return false instead of throwing an exception.
      * Adding `gum::graphicalModels::variables()` and a new alias for `gum::VariableSet`.
      * Fixing a bug in `gum::ShaferShenoyInference` for joint posterior when some nodes in the target received hard evidence.
      * Improving error message w.r.t `gum::*::jointPosterior`.
      * Adding mingw as a target for CI.
      * Fixing dangling pointers in testsuite, only detected by MSVC.
      * Optimized `gum::PDAG::cSeparation`
      * Renaming `gum::Set::isProper{Sub|Super}Set` to `gum::Set::isStrict{Sub|Super}Set`.
    
    * pyAgrum
      * swig>4.1 is now needed.
      * Enabling installation with poetry (thanks to Lorenzo Conti)
      * Adding new class `pyAgrum.InfomationTheory` that regroups every information theory concepts (entropies, conditional entropies and mutual information, ...) with only one inference, which allows also conditioned information theory concepts.
      * Adding `pyAgrum.Potential.expectedValue()`.
      * Restructuring a bit the sphinx documentation.
      * Down-exporting the read-only API for every types of discrete Variable to `pyAgrum.DiscreteVariable`. (see `VariablesTestSuite.testExportDerivedReadOnlyAPIforDiscreteVariable`)
      * Updating notebooks to the new down-exported read-only API of `pyAgrum.DiscreteVariable`.
      * Adding the alternative *fast* syntax for NumericalDiscreteVariable : `{1.5:3.5:3}` meaning from 1.5 to 3.5 in 3 steps.
      * Updating docs for new *fast* syntax.
      * Updating `GraphicalModel::exists(const std::string&)` : return false instead of throw an exception.
      * Initiating a new notebook about the interaction with ipywidget
      * Optimized and correctly wrapped `gum::PDAG::cSeparation` (thanks to Kenneth Lee).
      * New functions `pyAgrum.lib.explain.nestedMarkovBlankets` and `pyAgrum.lib.explain.nestedMarkovBlanketsNames`.
  • 1.7.1
    * aGrUM
      * Adding `gum::{AllDiscreteVariable}.toFast()` to write the variable in *fast* syntax.
      * Fixing a bug in BN's random generators : `domain_size` incremented by 1 (thanks to Kenneth Lee).
      * Fixing a bug in *fast* syntax : `'A[n]' with n<2`.
    
    * pyAgrum
      * Adding `pyAgrum.{AllDiscreteVariable}.toFast()` to write the variable in *fast* syntax.
      * Fixing a bug in BN's random generators (e.g. `pyAgrum.randomBN`) : `domain_size` incremented by 1 (thanks to Kenneth Lee).
      * Fixing a bug in *fast* syntax : `'A[n]' with n<2`.
      * Modifying (lightly) the structure for documentation.
  • 1.7.0
    * aGrUM
      * Add `gum::Potential::sign` and `gum::Potential::new_sign` 
      * Bug fix in causalImpact found by Musfiqur Rahman
      * Generalization and rationalization of access of aGrUM's generator of pseudo-random values
      * Adding `gum::Timer::toString()`.
      * Improving BN random generator.
      * get rid of `sprintf` as much as possible.
      * Fixing random seed.
      * Fixing `gum::Potential::random()` : not a distribution.
      * Updating *Fast* syntax : enumerating consecutive integers (e.g `{1|2|3|4}`) creates a `gum::RangeVariable[1,4]` rather than an `gum::IntegerVariable{1|2|3|4}`.
    * pyAgrum
      * Add `pyAgrum.Potential.sign` and `pyAgrum.Potential.new_sign` 
      * Bug fix in causalImpact found by Musfiqur Rahman
      * Adding `pyAgrum.Timer.__str()__`.
      * Improving BN random generator.
      * Fixing random seed.
      * Fixing `pyAgrum.Potential.random()` : not a distribution.
      * Adding access to `gum.fastVariable()`.
      * Updating *Fast* syntax : enumerating consecutive integers (e.g `{1|2|3|4}`) creates a `pyAgrum.RangeVariable[1,4]` rather than an `pyAgrum.IntegerVariable{1|2|3|4}`.
      * add a new module to export in different formats (for now just GML).
  • 1.6.1
    Quick fix for the configuration of pyAgrum documentation generation by readthedoc.
  • 1.6.0
    The main points of this tag is the renaming of *Markov network* (`MarkovNet`, `MN`) for the better known *Markov Random Field* (`MarkovRandomField`, `MRF`) and a new reader/writer of XDSL format (Genie/Smile) for Bayesian networks. Other improvements and corrections have naturally also been made.
    
    * aGrUM
      * Renaming `gum::MarkovNet` to `gum::MarkovRandomField`. Renaming `gum::*MN*` to `gum::*MRF*` when necessary.
      * Fixing glitches and bugs induced or revealed by `gum::MarkovNet`->`gum::MarkovRandomField`.
      * new `XDSL` Reader/writer for Bayesian network.
      * Renaming `gum::Learning::BNLearner::learnMixedStructure` to `gum::Learning::BNLearner::learnPDAG`
      * working on documentation : better rendering for doxygen pages.
      * Renaming `gum::dSeparation` to `gum::dSeparationAlgorithm`.
    
    * pyAgrum
      * Renaming `pyAgrum.MarkovNet` to `pyAgrum.MarkovRandomField`. Renaming `pyAgrum.*MN*` to `pyAgrum.*MRF*` when necessary.
      * new `XDSL` Reader/writer for Bayesian network.
      * Renaming `pyAgrum.BNLearner.learnMixedStructure()` to `pyAgrum.BNLearner.learnPDAG()`.
      * For figure containing nodes drawn by matplotlib (e.g. inference), use the same font for all nodes (default from matplotlib) (thanks to Jonathon Blackford).
      * Working on documentation : better rendering for readthedocs pages, improved structuration, new thumbnail image for some notebooks/tutorials.
      * Significant improvement of the documentation coverage. 
      * Improving `gum.DiscreteVariable.to[typeOfVariable]`, renaming as `gum.DiscreteVariable.as[typeOfVariable]` and adding documentations.
  • 1.5.2
    9534f1a9 · [pyAgrum] before 1.5.2 ·
    Mainly documentations and new analytics for the different sites.
    
    * pyAgrum
        * Adding a new and very easy to use `pyAgrum.randomBN` that creates a BN from a list of names.
        * Removing obsolete `pyAgrum.generateCSV` replaced by `pyAgrum.generateSample`. Fixing tests.
        * Fixing and improving pyAgrum documentation.
  • 1.5.1
    d9799c36 · [aGrUM] guidelines ·
    * aGrUM
      * Improving `gum::BNLearner::state()`.
      * (internals) new macro `GUM_TEST` and `GUM_INACTIVE_TEST` for CI
      
    * pyAgrum
      * Improving `gum.BNLearner.state()`.
      * Improving style for readthedoc (pygments and no StickySideBar)
      * Improving documentation coverage (for methods) from 84.9% to 90.7% : more than 100 newly covered methods.
  • 1.5.0
    * aGrUM
    
      * (internals) Updating `act --stats`.
      * (internals) Reorganizing build folder : `build/{aGrUM|pyAgrum}/{debug|release}`.
      * (internals) Improving cmake & CIs.
      * Threadsafe graphs and Graphical Models.
      * Adding new graph `gum::PDAG` (Partially Directed Acyclic Graph).
      * Renaming `gum::MixedGraph::adjacents` with correct graph notion : `gum::MixedGraph::boundary`.
      * Initializing the majority of the end/rend iterators at compile time.
      * Adding AVL binary search trees: `gum::AVLTree`.
      * Adding priority queues that can be iterated in order: `gum::SortedPriorityQueue`.
      * Better messages for `gum::BayesNet::check()`.
    
    * pyAgrum
    
      * (internals) New docker images with linux gcc 11 for wheels.
      * (internals) CMake: Use FindPython module.
      * (internals) Removing some (false positive) warning notifications from swig.
      * Fixing NaN bugs for new versions of Graphviz.
      * Improving gum.lib.notebooks.flow and light/dark theme compatibility.
      * Renaming `pyAgrum.MixedGraph.adjacents` with correct graph notion : `pyAgrum.MixedGraph.boundary`.
      * New graph class `gum.PDAG` (Partially Directed Acyclic Graph).
      * Fixing a small typo when displaying function as Potential.
      * better messages for `pyAgrum.BayesNet.check()`.
      * More robust `gum.explain.showInformation()` w.r.t. NaN.
      * Fixing typos in documentation.
      * Improving the organization of ReadTheDoc documentation.
  • 1.4.1
    * pyAgrum
    
      * bugfixes in `pyAgrum.lib.[causal.]notebook`.
  • 1.4.0
    8402ab62 · before tag 1.4.0 ·
    * aGrUM
    
        * better `toString` for BN : show the memory used by the parameters.
    
    * pyAgrum
    
        * **adding conda and pip packages for python 3.11**
        * better `__str__` for BN : show the memory used by the parameters.
        * bug fix in obsolete pyAgrum.`BNLearner.useNoAPriori()`.
        * bug fix when displaying a `pyAgrum.causal.CausalFormula` generated by do-Calculus : retrieving the original `doing` and `knowing` sets.
  • 1.3.2
    88f8c8c6 · [aGrUM] before tag 1.3.2 ·
  • 1.3.1 Release: 1.3.1