Releases: Socrats/EGTTools
Releases · Socrats/EGTTools
0.1.13-patch5
Fixed
- Fixed state initialization in
NetworkSync
andNetworkGroupSync
. The state was not being randomly initialized. - Fixed incorrect use of
sample_without_replacement
. It must only be used when the sample is smaller than the
population.
Changed
- Exposed the expected payoffs of
NormalFormNetworkGame
to Python
Full Changelog: v0.1.13-patch4...v0.1.13-patch5
0.1.13-patch4
Fixed
- Fixed segfault in PairwiseComparisonNumerical run method. when called using a transient period, the function surpass
the array index limit, thus causing a bad memory access and a segfault
Added
- Added a version of run with transient and no mutation
- Added new argument checks
Changed
- Changed the generation and transient parameter types from int to int_fast64_t
- The methods that have a mutation parameter enforce that mu>0 to avoid errors
- There will be a bad argument error if the beta parameter used in the python call is not explicitly a float
Full Changelog: v0.1.13-patch3...v0.1.13-patch4
0.1.13-patch3
Fixed
- fixed NetworkSync and NetworkGroupSync structures updates
What's Changed
- Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10 by @dependabot in #75
- Bump ncipollo/release-action from 1.12.0 to 1.13.0 by @dependabot in #76
- Bump pypa/cibuildwheel from 2.14.1 to 2.16.1 by @dependabot in #78
- Bump pypa/cibuildwheel from 2.16.1 to 2.16.2 by @dependabot in #83
Full Changelog: v0.1.13-patch2...v0.1.13-patch3
v0.1.13-patch2
Fixed
- fixed issue with dynamic linking of OpenMP
Changes
- dropped support for OpenMP on macOS temporally
- now OpenMP is linked statically again for linux
Full Changelog: v0.1.13...v0.1.13-patch2
v0.1.13
Fixed
- fixed issue with environmental variables not working on MacOS builds in Github Actions
- fixed gradient of selection estimation algorithm
- fixed issue with multiple libomp.dylib copies loading
- fixed issue with the citation of current version of egttools
- fixed link to anaconda documentation
Changes
- now openmp is linked dynamically to avoid conflicts on MacOS
- increased minimum required cmake version to 3.18
- changed int to int_fast64_t to support larger number of generations
Added
- added NetworkSync evolver
- added more support for network simulations
- added Cache to accelerate PairwiseComparison
- added calculation of the averaged gradient of selection
- added OneShotCRDNetworkGame
- OpenMP support for MacOS arm64
Other changes
- Bump robinraju/release-downloader from 1.6 to 1.7 by @dependabot in #48
- Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by @dependabot in #52
- Bump pypa/cibuildwheel from 2.11.2 to 2.12.1 by @dependabot in #51
- Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by @dependabot in #53
- Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by @dependabot in #54
- Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 by @dependabot in #55
- Bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 by @dependabot in #56
- Bump pypa/cibuildwheel from 2.12.1 to 2.12.3 by @dependabot in #58
- Bump jwlawson/actions-setup-cmake from 1.13 to 1.14 by @dependabot in #59
- Bump pypa/cibuildwheel from 2.12.3 to 2.13.1 by @dependabot in #63
- Bump robinraju/release-downloader from 1.7 to 1.8 by @dependabot in #61
- Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by @dependabot in #60
- Match scatter output to matplotlib api changes by @cvanelteren in #65
- Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 by @dependabot in #66
- Bump pypa/cibuildwheel from 2.13.1 to 2.14.0 by @dependabot in #69
- Bump pypa/gh-action-pypi-publish from 1.8.7 to 1.8.8 by @dependabot in #71
- Bump pypa/cibuildwheel from 2.14.0 to 2.14.1 by @dependabot in #73
New Contributors
- @cvanelteren made their first contribution in #65
Full Changelog: v0.1.12...v0.1.13
v0.1.12-patch1
Fixed
- Fixed issue with link to Simplex2D class
- Match scatter output to matplotlib API changes [by cvanelteren]
- Fixed issue with compiling
Distributions.cpp
without Boost
Changed
- Removed support for
Python 3.7
- Dropped support for
Win32
architectures - Removed
MACOSX_DEPLOYMENT_TARGET
constraint - Updated egttools citation
- Skip
multivariate_hypergeometric
tests when compiling without Boost - Upgraded cibuildwheel to v2.14.0
- Set minimum Boost version to 1.70.0
Added
- Added basic unittests for plotting [by cvanelteren]
External changes
- Bump robinraju/release-downloader from 1.6 to 1.7 by @dependabot in #48
- Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by @dependabot in #52
- Bump pypa/cibuildwheel from 2.11.2 to 2.12.1 by @dependabot in #51
- Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by @dependabot in #53
- Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by @dependabot in #54
- Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 by @dependabot in #55
- Bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 by @dependabot in #56
- Bump pypa/cibuildwheel from 2.12.1 to 2.12.3 by @dependabot in #58
- Bump jwlawson/actions-setup-cmake from 1.13 to 1.14 by @dependabot in #59
- Bump pypa/cibuildwheel from 2.12.3 to 2.13.1 by @dependabot in #63
- Bump robinraju/release-downloader from 1.7 to 1.8 by @dependabot in #61
- Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by @dependabot in #60
- Match scatter output to matplotlib api changes by @cvanelteren in #65
- Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 by @dependabot in #66
- Bump pypa/cibuildwheel from 2.13.1 to 2.14.0 by @dependabot in #69
New Contributors
- @cvanelteren made their first contribution in #65
Full Changelog: v0.1.12...v0.1.12.patch1
0.1.12
Fixed
- Fixed stability plot and minor syntax issues.
- Fixed issue with fitness calculations of strategies with 0 counts in the population.
- Fixed LNK2005 error on windows.
- Fixed version naming convesion to adhere to PEP440.
Changed
- Changed name of
PairwiseMoran
class toPairwiseComparisonNumerical
. - Changed function and class names that used "moran" to "pairwise_comparison_rule".
- Removed signatures of overloaded methods in docstrings.
- Moved all headers for pybind11 to .hpp files to avoid issues on windows.
- Updated pybind11 version to 2.10.
- Removed specialization of
binomialCoeff
to avoid issues on Windows. - Refactored the binding code from C++ to Python so that now we use different files for defining each Python submodule.
This makes the code much more clear. These files can be found incpp/src/pybind11_files
. - Now the GitHub CI builds download and install Boost C++ library, as it is required to build egttools.
- Dropped support for manylinux_i686. In the future only 64 bit architectures will be supported.
Added
- Added support for multiprecision types with boost::multiprecision.
- Added replicator equation for n-player games (implementation in c++).
- Added
replicator_equation
implementation in C++. - Added a new C++ implementation of the analytical stochastic dynamics named
PairwiseComparison
. - Added
Matrix2PlayerGameHolder
andMatrixNPlayerGameHolder
classes, so that a game can be defined using a payoff
matrix. - Added several tests (coverage now is ~50%).
- Added tutorials to the documentation.
Other changes
- Bump robinraju/release-downloader from 1.5 to 1.6 by @dependabot in #36
- Bump ncipollo/release-action from 1.11.1 to 1.11.2 by @dependabot in #38
- Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.5.2 by @dependabot in #40
- Bump pypa/gh-action-pypi-publish from 1.5.2 to 1.6.1 by @dependabot in #41
- Bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.3 by @dependabot in #43
- Bump pypa/gh-action-pypi-publish from 1.6.3 to 1.6.4 by @dependabot in #44
- Bump ncipollo/release-action from 1.11.2 to 1.12.0 by @dependabot in #45
Full Changelog: v0.1.11...v0.1.12
0.1.11-patch2
Fixed
- Fixed error in
calculate_full_transition_matrix
. The previous implementation tried to calculate the fitness for
strategies with 0 counts in the population. This would lead to an error when calculating the probability of group
forming. Now, we calculate directly the probability of a strategy with 0 counts increasing by 1 individual in the
population, i.e., prob = (n_decreasing_strategy / population_size) * (mu / (1 - nb_strategies)).
What's Changed
- Bump ncipollo/release-action from 1.11.1 to 1.11.2 by @dependabot in #38
Full Changelog: v0.1.11-patch1...v0.1.11-patch2
0.1.11-patch1
Fixed
- Fixed issue with changing mutation rate in StochDynamics. When the mutation rate was updated
usingevolver.mu = new_value
, the variableevolver.not_mu
was not udpated. This variable was used
bycalculate_full_stationary_distribution
and it created an error. Nownot_mu
is calculated inside
ofcalculate_full_stationary_distribution
. - Fixed issue with
binomialCoeff
implemented in c++. In some cases, the intermediary calculations were overflowing
anuint64_t
type when calling it frommultivariateHypergeometricPDF
. Now, we no longer calculate the exact value
inmultivariateHypergeometricPDF
, instead use double types. This will be improved in the new version by
usingboost/multiprecision
uint128_t
types.
Changed
- Bump robinraju/release-downloader from 1.5 to 1.6 by @dependabot in #36
Full Changelog: v0.1.11...v0.1.11-patch1
0.1.11
Fixed
- fixed errors in docstrings examples
- fixed missing headers
- fixed error in
full_fitness_difference_group
andcalculate_fulll_transition_matrix
. There was a missing
multiplying factor in the probability of transition due to mutation. The probability of selecting the strategy to dies
must also be taken into account. There was also an issue when instantiating themulti_hypergeometric_distribution
class from scipy. It does not copy the array containing the counts of each strategy. Now we create a copy before
passing the state vector to avoid the issue. - fixed issue with
AbstractNPlayerGame
. For N-player games it was not a good idea to calculate the fitness in Python
as this part of the class becomes a bottleneck, as it will be called more often then in the 2-player case (because
there are more states - so less likely the fitness will be stored in cache). For this reason we now implemented this
abstract class in C++ and the fitness calculation is done in this language. Everything else remains the same, and it
should be equally easy to create new games. - fixed issues of missing initialization of internal parameters of some
egttools.games.NormalForm.TwoAction
strategies. Internal parameters should be initialized whentime == 0
, i.e., at the beginning of each game.
Changed
- changed
egttools
tosrc-layout
. This should help fix issues with tests and make the overall structure of the
library cleaner. - moved C++ code to the
cpp
folder. This way the code is more organized. - Bump pypa/cibuildwheel from 2.8.1 to 2.11.1
- Bump pypa/cibuildwheel from 2.11.1 to 2.11.2
- Bump robinraju/release-downloader from 1.4 to 1.5
- Bump ncipollo/release-action from 1.10.0 to 1.11.1
- removed support for win32 and manylinux_i686 for Python > 3.7
Added
- added new controls to
draw_stationary_distribution
- added
enhancement_factor
parameter toCRDGame
. This parameter serves as a multiplying factor for the payoff of
each player in case the target is achieved. Ifenhancement_factor = 1
theCRDGame
behaves as usual.
Forenhancement_factor > 1
, we are incentivizing strategies that reach the target. - added
MemoryOneStrategy
toegttools.games.NormalForm.TwoAction
strategies. - added
CommonPoolResourceDilemma
game - However it has still not been extensively tested!! - added
ninja
as a requirement for the build. - added
TimeBasedCRDStrategy
toegttools.games.CRD
strategies. These strategies make contributions to the Public
Good in function of the round of the game. - added
sdist
to build. - added labels to the lines plot by
plot_gradients
so that several lines can be plotted. - added more unit testing, but this still needs a lot of improvement.
- added missing libraries on C++ code.
Full Changelog: v0.1.10...v0.1.11