-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cb8bc9f
commit 7ab95da
Showing
1 changed file
with
221 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,221 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" | ||
"JATS-publishing1.dtd"> | ||
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="1.2" article-type="other"> | ||
<front> | ||
<journal-meta> | ||
<journal-id></journal-id> | ||
<journal-title-group> | ||
<journal-title>Journal of Open Source Software</journal-title> | ||
<abbrev-journal-title>JOSS</abbrev-journal-title> | ||
</journal-title-group> | ||
<issn publication-format="electronic">2475-9066</issn> | ||
<publisher> | ||
<publisher-name>Open Journals</publisher-name> | ||
</publisher> | ||
</journal-meta> | ||
<article-meta> | ||
<article-id pub-id-type="publisher-id">6703</article-id> | ||
<article-id pub-id-type="doi">10.21105/joss.06703</article-id> | ||
<title-group> | ||
<article-title>Evoke: A Python package for evolutionary signalling | ||
games</article-title> | ||
</title-group> | ||
<contrib-group> | ||
<contrib contrib-type="author" equal-contrib="yes"> | ||
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-4136-8595</contrib-id> | ||
<name> | ||
<surname>Mann</surname> | ||
<given-names>Stephen Francis</given-names> | ||
</name> | ||
<xref ref-type="aff" rid="aff-1"/> | ||
<xref ref-type="aff" rid="aff-2"/> | ||
</contrib> | ||
<contrib contrib-type="author" equal-contrib="yes" corresp="yes"> | ||
<contrib-id contrib-id-type="orcid">https://orcid.org/0000-0002-6194-7121</contrib-id> | ||
<name> | ||
<surname>Martínez</surname> | ||
<given-names>Manolo</given-names> | ||
</name> | ||
<xref ref-type="aff" rid="aff-1"/> | ||
<xref ref-type="corresp" rid="cor-1"><sup>*</sup></xref> | ||
</contrib> | ||
<aff id="aff-1"> | ||
<institution-wrap> | ||
<institution>LOGOS Research Group, Universitat de Barcelona, | ||
Spain</institution> | ||
</institution-wrap> | ||
</aff> | ||
<aff id="aff-2"> | ||
<institution-wrap> | ||
<institution>Max Planck Institute for Evolutionary Anthropology, | ||
Leipzig, Germany</institution> | ||
</institution-wrap> | ||
</aff> | ||
</contrib-group> | ||
<author-notes> | ||
<corresp id="cor-1">* E-mail: <email></email></corresp> | ||
</author-notes> | ||
<pub-date date-type="pub" publication-format="electronic" iso-8601-date="2024-08-12"> | ||
<day>12</day> | ||
<month>8</month> | ||
<year>2024</year> | ||
</pub-date> | ||
<volume>9</volume> | ||
<issue>103</issue> | ||
<fpage>6703</fpage> | ||
<permissions> | ||
<copyright-statement>Authors of papers retain copyright and release the | ||
work under a Creative Commons Attribution 4.0 International License (CC | ||
BY 4.0)</copyright-statement> | ||
<copyright-year>2024</copyright-year> | ||
<copyright-holder>The article authors</copyright-holder> | ||
<license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/"> | ||
<license-p>Authors of papers retain copyright and release the work under | ||
a Creative Commons Attribution 4.0 International License (CC BY | ||
4.0)</license-p> | ||
</license> | ||
</permissions> | ||
<kwd-group kwd-group-type="author"> | ||
<kwd>Python</kwd> | ||
<kwd>evolutionary game theory</kwd> | ||
<kwd>signalling games</kwd> | ||
<kwd>sender-receiver framework</kwd> | ||
<kwd>evolutionary simulations</kwd> | ||
</kwd-group> | ||
</article-meta> | ||
</front> | ||
<body> | ||
<sec id="summary"> | ||
<title>Summary</title> | ||
<p><bold>Evoke</bold> is a Python library for evolutionary simulations | ||
of signalling games. It offers a simple and intuitive API that can be | ||
used to analyze arbitrary game-theoretic models, and to easily | ||
reproduce and customize well-known results and figures from the | ||
literature.</p> | ||
<p>A signalling game is a special kind of mathematical game, a formal | ||
representation of interactions between agents. In a signalling game, | ||
the actions available to the players include sending and responding to | ||
signals. The agents in games traditionally studied in game theory | ||
develop strategies via such dynamics as reinforcement learning. In | ||
contrast, evolutionary game theory investigates how strategies change | ||
over time in populations undergoing evolutionary change such as | ||
natural selection. Signalling games can be studied in the traditional | ||
reinforcement-learning paradigm or in the evolutionary paradigm. Evoke | ||
offers methods for both kinds of game dynamic. Users are able to | ||
create signalling games and simulate the evolution of agents’ | ||
strategies over time, using a range of game types and evolutionary and | ||
learning dynamics.</p> | ||
<p>Evoke also allows the user to recreate and customize figures from | ||
the signalling game literature. Examples provided with Evoke include | ||
figures from Skyrms | ||
(<xref alt="2010" rid="ref-skyrms2010signals" ref-type="bibr">2010</xref>) | ||
and Godfrey-Smith & Martínez | ||
(<xref alt="2013" rid="ref-godfrey-smith2013communication" ref-type="bibr">2013</xref>). | ||
Users can contribute to the library by adding further examples from | ||
the literature. This can be a useful way to become familiar with | ||
Evoke, while at the same time increasing the benefit to other users. | ||
Evoke can therefore serve as an educational tool (encouraging | ||
understanding of existing literature) and a research resource | ||
(promoting good practice and effective modelling techniques).</p> | ||
</sec> | ||
<sec id="statement-of-need"> | ||
<title>Statement of need</title> | ||
<p>While there are Python packages devoted to game theory, such as | ||
Nashpy | ||
(<xref alt="Nashpy project developers, 2024" rid="ref-nashpyproject" ref-type="bibr">Nashpy | ||
project developers, 2024</xref>), and evolutionary game theory, such | ||
as EGTtools | ||
(<xref alt="Fernández Domingos, 2020" rid="ref-Fernandez2020" ref-type="bibr">Fernández | ||
Domingos, 2020</xref>), to our knowledge there has not yet been a | ||
Python package dedicated to the study of signalling games in the | ||
context of both evolution and reinforcement learning. That is the gap | ||
Evoke is intended to fill.</p> | ||
<p>In the evolutionary game theory literature, models and results are | ||
often developed with proprietary code. Evaluating and re-running | ||
models can be difficult for readers, because custom-made software is | ||
often not developed with other users in mind. Sometimes the model code | ||
is not available at all.</p> | ||
<p>It would be preferable to have a common framework that different | ||
users can share. When new results are presented in a research article, | ||
readers of that article could run the model and check the results for | ||
themselves. Readers could also vary the parameters to obtain results | ||
that were not reported in the original article, lending an air of | ||
interactivity to published papers.</p> | ||
<p>Built-in examples already shipped with Evoke include figures from | ||
Skyrms | ||
(<xref alt="2010" rid="ref-skyrms2010signals" ref-type="bibr">2010</xref>). | ||
These examples allow the user to change some of the input parameters | ||
to Skyrms’s figures to see how different parameter values yield | ||
different results. In a small way, this makes the book “interactive”: | ||
in addition to the static figures on the page, the user can play with | ||
the models in order to get a sense of the range of outcomes each model | ||
can generate.</p> | ||
</sec> | ||
<sec id="acknowledgements"> | ||
<title>Acknowledgements</title> | ||
<p>Many thanks to the reviewers and editors for their comments. This | ||
work was supported by Juan de la Cierva grant FJC2020-044240-I and | ||
María de Maeztu grant CEX2021-001169-M funded by | ||
MICIU/AEI/10.13039/501100011033.</p> | ||
</sec> | ||
</body> | ||
<back> | ||
<ref-list> | ||
<title></title> | ||
<ref id="ref-godfrey-smith2013communication"> | ||
<element-citation publication-type="article-journal"> | ||
<person-group person-group-type="author"> | ||
<name><surname>Godfrey-Smith</surname><given-names>Peter</given-names></name> | ||
<name><surname>Martínez</surname><given-names>Manolo</given-names></name> | ||
</person-group> | ||
<article-title>Communication and common interest</article-title> | ||
<source>PLOS Computational Biology</source> | ||
<year iso-8601-date="2013">2013</year> | ||
<volume>9</volume> | ||
<issue>11</issue> | ||
<issn>1553-7358</issn> | ||
<pub-id pub-id-type="doi">10.1371/journal.pcbi.1003282</pub-id> | ||
<fpage>e1003282</fpage> | ||
<lpage></lpage> | ||
</element-citation> | ||
</ref> | ||
<ref id="ref-skyrms2010signals"> | ||
<element-citation publication-type="book"> | ||
<person-group person-group-type="author"> | ||
<name><surname>Skyrms</surname><given-names>Brian</given-names></name> | ||
</person-group> | ||
<source>Signals: Evolution, learning, and information</source> | ||
<publisher-name>Oxford University Press</publisher-name> | ||
<publisher-loc>Oxford</publisher-loc> | ||
<year iso-8601-date="2010">2010</year> | ||
<isbn>978-0-19-958082-8</isbn> | ||
<pub-id pub-id-type="doi">10.1093/acprof:oso/9780199580828.001.0001</pub-id> | ||
</element-citation> | ||
</ref> | ||
<ref id="ref-Fernandez2020"> | ||
<element-citation> | ||
<person-group person-group-type="author"> | ||
<name><surname>Fernández Domingos</surname><given-names>Elias</given-names></name> | ||
</person-group> | ||
<article-title>EGTTools: Toolbox for evolutionary game theory</article-title> | ||
<source>GitHub repository</source> | ||
<publisher-name>https://github.com/Socrats/EGTTools; GitHub</publisher-name> | ||
<year iso-8601-date="2020">2020</year> | ||
<pub-id pub-id-type="doi">10.5281/zenodo.3687125</pub-id> | ||
</element-citation> | ||
</ref> | ||
<ref id="ref-nashpyproject"> | ||
<element-citation> | ||
<person-group person-group-type="author"> | ||
<string-name>Nashpy project developers</string-name> | ||
</person-group> | ||
<article-title>Nashpy: 0.0.41</article-title> | ||
<year iso-8601-date="2024">2024</year> | ||
<uri>http://dx.doi.org/10.5281/zenodo.10802174</uri> | ||
<pub-id pub-id-type="doi">10.5281/zenodo.10802174</pub-id> | ||
</element-citation> | ||
</ref> | ||
</ref-list> | ||
</back> | ||
</article> |