A cython / python implementation of the COPAN Exploit model.
see https://github.com/wbarfuss/netlogo-exploit for the netlogo version
The COPAN:EXPLOIT model demonstrates conceptually that purely social-cultural effects are able to determine whether bio-physical resources collapse from over-use or not. Thereby it illustrates the co-evolution between a social and an ecological sub-system.
The model is based on an adaptive network on a random graph where the nodes harvest their private renewable resource with either a sustainable or non-sustainable strategy. This represents two distinct social preferences: i) long-term sustainable yields and ii) short-term profit maximization. The resulting harvest rates are used to update the node’s strategies through social preference interactions along the edges of the network, which follow two key principles: imitation and homophily. Note that the interactions among the nodes happens only at the social, cultural level and not through a common-pool resource, which is a widely examined case.
The agent with the lowest waiting time performs a social update. These waiting times are exponentially distributed with the characteristic social update time scale tau. During a social update one neighbor of the selected agent is chosen randomly. Only if both agents have different sustainable states an actual update is performed. With rewiring probability phi the selected agent cuts the link to the selected neighbor and establishes a link with an agent with the same sustainable state. With probability 1-phi the selected agent is likely to change its sustainable state if the harvest of the selected neighbor outperforms the agents own harvest.
Details: Use the source!
- exploit_core.py : The basic model is implemented in the cython language, combining easy python and fast c.
- exploit_explore : This derived class (shall) collect methods to explore the Exploit model interactively
We are using the python testing framework pytest with pep8 style guide and pyflakes error checking. Please write corresponding unittests while developing and make sure that all test pass by executing
py.test
in the root of the project tree.
- Barfuss W, Donges JF, Wiedermann M, Lucht W (2017) Sustainable use of renewable resources in a stylized social-ecological network model under heterogeneous resource distribution, Earth System Dynamics 8, 255-264, DOI: 10.5194/esd-8-255-2017
- Wiedermann M, Donges JF, Heitzig J, Lucht W, and Kurths J (2015), Macroscopic description of complex adaptive networks co-evolving with dynamic node states, Physical Review E 91, 052801, DOI: 10.1103/PhysRevE.91.052801, Preprint: arxiv:1503.05914 [physics.soc-ph].
cyexploit
is BSD-licensed (3 clause)