Skip to content

Releases: Socrats/EGTTools

0.1.10

06 Aug 15:01
Compare
Choose a tag to compare

Fixed

  • fixed issue with the comparison of different types in PairwiseMoran
  • fixed issue with colorbar so that now the axis is passed to maptlolib colorbar, this way it will be plotted correctly
    when drawing multiple subplots
  • fixed issue with hardcoded x-axis in plot_gradients
  • fixed error on calculate_full_transition_matrix. The error happened when calculating the transition probability:
    • a) although the literature is a bit confusing on this, the original paper by Traulsen 2006 says that for the transition we consider that the strategies to reproduce and die are pricked simultaneously (so both with probability 1/Z).
    • b) the is more accumulated numerical error when doing probability of transitioning from A to B P(A, B) = fermi(-beta, B - A) than when doing fermi(beta, A - B). This is probably specific to Python and Numpy, but must be taken into account in the future.
    • c) The schur decomposition (egttools.utils.calculate_stationary_distribution_non_hermitian) works better in this case (although still has a slight numerical error) and should be used for full transition matrices).
  • normalized transition probabilities to use the definition in Traulsen et al. 2006
    • now we assume that both death and birth individuals are selected simultaneously with probability n_i/Z, where n_i is the number of individuals of that strategy in the population

Changed

  • updated installation instructions
  • updated to PEP 621 syntax
  • updated setup.py since now scikit-build supports VS2019
  • updated draw_stationary_distribution to make the display of labels optional
  • changed stability calculation for the replicator dynamics to use the Jacobian matrix
  • updated plot_gradients to check for all possible types of roots (stable, unstable and saddle)
  • removed stability checks for the stochastic dynamics
    • if T+ is too small, phi will be approximated to infinity and the fixation probability will be approximated to 0.
    • This may not be correct, since if p_minus is also very small or equal to p_plus, the outcome would be different.
      So it might change in a future version
  • updated default language for documentation to en
  • updated docstrings
  • changed colorbar default label to gradient of selection
  • droped pin to Sphinx <= 4.5.0
  • updated variable name in AbstractGame
  • changed name of variable in calculate_fitness method of Abstract game

Added

  • added input parameter checks for run and evolve methods of PairwiseMoran
  • created a method to calculate roots
  • created a method to check the stability of the replicator dynamics through the Jacobian matrix
  • added a check for the limit case in which the only non-negative eigenvalue is close to atol
  • added new notebook with examples of use
  • added an extra check when calculating fixation probabilities
  • added Python 3.10 binary - except for Windows and manylinuxi686 as non numpy or scipy builds yet available
  • added new CRD strategy
  • added extra tolerance controls in check_replicator_stability_pairwise_games
  • added new abstract game classes to simplify game implementation
  • added NPlayerStagHunt game

Full Changelog: v0.1.9...v0.1.10

0.1.9-patch6

16 Feb 17:05
Compare
Choose a tag to compare

Fixed

  • There was a problem with setting a geometric_distribution in C++ as a private variable for OpenMP which caused some
    errors when estimating stationary distributions. This was fixed by setting it as a shared variable.
  • Fixed error on version formatting, it should be 0.1.9.dev6 instead of 0.1.9.patch6.
  • Fixed wrong version tag on git.

Added

  • Binder links to run examples and updated notebooks
  • Add a Gitter chat badge to README.md by @gitter-badger in #12

Full Changelog: v0.1.9...v0.1.9-patch3

0.1.9-patch3

03 Feb 10:30
Compare
Choose a tag to compare

Added

  • Added gitter chat and binder launch.

Fixed

  • Added missing seaborn dependency. This dependency is only needed to be able to automatically generate colorblind
    colors to plot the invasion diagram, so it might be dropped in the future. But, for the moments, it provides the
    easiest way to do this.

Changed

  • Updated docs and notebooks to use the latest egttools API.

Full Changelog: v0.1.9...v0.1.9-patch3

0.1.9-patch2

26 Jan 10:26
Compare
Choose a tag to compare

Fixed

  • This release fixes an issue with a modulo operation that was causing an index error when calculating stability for plotting dynamics on a simplex.

Full Changelog: v0.1.9...v0.1.9-patch2

0.1.9-patch1

18 Jan 18:07
Compare
Choose a tag to compare

Fixes

This release fixes an issue with CITATION.cff which prevented zenodo from publishing a new doi.

Full Changelog: v0.1.9...v0.1.9-patch1

0.1.9

18 Jan 09:33
Compare
Choose a tag to compare

This releases fixes some bugs and simplifies the Simplex plotting.

Added

  • Added plot_replicator_dynamics_in_simplex and plot_moran_dynamics_in_simplex to simplify the plotting of 2
    Simplexes when using replicator_equation and StochDynamics provided in egttools.
  • Added an extra example to the docs to showcase the simplified plotting.

Fixed

  • Fixed wrong numpy use in egttools.utils.calculate_stationary_distribution. Instead of numpy.eig the correct use
    is numpy.linalg.eig.
  • Fixed issue with plotting edges which have random drift.
    Before egttools.plotting.helpers.calculate_stationary_points would logically find many roots in an edge with random
    drift and Simplex2D.draw_stationary_points would attempt to draw all of them. Now, we first search of edges in which
    there is random drift, and mask them, so that no stationary points nor trajectories are plot in the edge. Instead, we
    draw a dashed line to represent the random drift.

Changed

  • Updated Readme.md to use the simplified plot_replicator_dynamics_in_simplex in the example of 2 Simplex plotting.

Full Changelog: v0.1.8...v0.1.9

0.1.8

15 Jan 13:12
Compare
Choose a tag to compare

The major feature of this update is to add a class to visualize evolutionary dynamics in 2-Simplexes.

Added

  • Added Simplex2D class which can be used to plot the evolutionary dynamics in a 2-Simplex.
  • Added OneShotCRD game.
  • Added egttools.utils.calculate_stationary_distribution_non_hermitian which uses scipy.linalg.schur instead
    of numpy.linalg.eig. This function should be used when the transition matrix is not Hermitian (not symmetric if all
    the values are real). This may happen when studying the full state-space in a simplex of higher than 3 dimensions.

Fixed

  • Fixed issue with extending AbstractGame in Python.
  • Fixed bug in egttools.utils.get_payoff_function.

Changed

  • Updated output of StochDynamics.transition_and_fixation_matrix so that the correct fixation probabilities are
    returned, instead of fixation_probabilities/(1/Z).
  • draw_stationary_distribution was also updated so that it expects the fixation probabilities as input and
    not fixation_probabilities/(1/Z).
  • Several improvements in documentation and docstrings.

Full Changelog: v0.1.6.dev7...v0.1.8

0.1.6.dev7

09 Nov 07:09
Compare
Choose a tag to compare

This update fixes an error that caused transformations for pairwise payoffs to be used in the small mutation limit calculations to be wrong for monomorphic states (payoff of a strategy in a population of the same strategy).

Changes

  • fixed bug on egttools.utils.get_payoff_function which is used by transform_payoffs_to_pairwise

Full Changelog: v0.1.6.dev6...v0.1.6.dev7

0.1.6.dev6

08 Nov 22:20
Compare
Choose a tag to compare

New

  • Added support for MacOS arch arm64 and universal2 builds
  • Added arm64 and universal2 build to Github CI
  • Added python37 builds
  • Now Wheels action also runs tests for each wheel (excluding arm64 and universal2:arm64)
  • Added example on how to draw invasion diagrams with egttools

Changes

  • Removed support for OpenMP on Windows and MacOS until a workaround is found
  • Changed unsigned int (size_t) indexes from PairwiseMoran to avoid issues with Eigen::Index

Changelog

  • Bump pypa/gh-action-pypi-publish from 1.4.1 to 1.4.2 by @dependabot in #3

Full Changelog: v0.1.6.dev2...v0.1.6.dev6

0.1.6.dev2

04 Nov 16:10
Compare
Choose a tag to compare
  • This is the first release of egttools which include numerical simulations that run in C++ with python bindings.
  • There has been a number of improvements in the StochDynamics methods.
  • New plotting methods included.
  • A new interface to create Games and Strategies
  • This release supports different Linux, Windows and Mac build, however we do not support arm64 for now. If you wish to use egttools you can compile it in your machine following the instructions in the Readme.md.