You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
soil/docs/tutorial/soil_tutorial.ipynb

2854 lines
329 KiB
Plaintext

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-10-19T12:41:48.007238Z",
"start_time": "2017-10-19T14:41:47.980725+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"# Soil Tutorial"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-02T16:44:14.120953Z",
"start_time": "2017-07-02T18:44:14.117152+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"## Introduction"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_style": "center",
"collapsed": true,
"hideCode": false,
"hidePrompt": false,
"jupyter": {
"outputs_hidden": true
}
},
"source": [
"This notebook is an introduction to the soil agent-based social network simulation framework.\n",
"Soil is built on top of [Mesa](https://mesa.readthedocs.io/), a general simulation library, and it introduces features specifically tailored to social simulations.\n",
"\n",
"It will focus on a specific use case: studying the propagation of disinformation through TV and social networks.\n",
"In the following sections we will:\n",
"\n",
"* Cover the basics of mesa and Soil (environments, agents, etc.)\n",
"* Simulate a basic scenario with a single agent\n",
"* Add more complexity to our scenario\n",
"* Run simulations using different configurations\n",
"* Analyze the results of each simulation\n",
"\n",
"The simulations in this tutorial will be kept simple, for the sake of clarity.\n",
"However, they provide all the building blocks necessary to model, run and analyse more complex scenarios."
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T13:38:48.052876Z",
"start_time": "2017-07-03T15:38:48.044762+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"But before that, let's import the soil module and networkx."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2017-11-03T10:58:13.451481Z",
"start_time": "2017-11-03T11:58:12.643469+01:00"
},
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"from soil import *\n",
"import soil\n",
"import networkx as nx\n",
"\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T13:41:19.788717Z",
"start_time": "2017-07-03T15:41:19.785448+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"## Basic concepts"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"Simulations are based on the concept of a **model** (or environment).\n",
"A model represents the world where the simulation will be run.\n",
"It usually contains:\n",
"\n",
" * All the simulation parameters (given in the constructor)\n",
" * A reference to every agent in the simulation\n",
" * A data collector, which will capture any relevant information for agents (agent reporters) or the model itself (model reporters)\n",
" * A scheduler (`soil.time.Scheduler` or `mesa.time.BaseScheduler`), which is responsible of coordinating the activation of agents at each simulation step\n",
" * A grid or space where agents can move (optional)\n",
" \n",
"Soil introduces the `soil.NetworkEnvironment` model class.\n",
"This type of environment contain a network topology (accessible through through `self.G`).\n",
"The topology can be manually provided to the environment, or it can be randomly generated through multiple network parameters.\n",
" \n",
"**Agents** are programmed with their individual behaviors, and they can communicate with the environment and with other agents. There are several types of agents, depending on their behavior and their capabilities. Some examples of built-in types of agents are:\n",
" - Network agents, which are linked to a node in the topology. They have additional methods to access their neighbors.\n",
" - FSM (Finite state machine) agents. Their behavior is defined in terms of states, and an agent will move from one state to another.\n",
" - Evented agents, an actor-based model of agents, which can communicate with one another through message passing.\n",
" - For convenience, a general `soil.Agent` class is provided, which inherits from Network, FSM and Evented at the same time.\n",
"\n",
"Soil provides several abstractions over events to make developing agents easier.\n",
"This means you can use events (timeouts, delays) in soil.\n",
"But, for the most part, we will assume your models will be step-based."
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-02T15:55:12.933978Z",
"start_time": "2017-07-02T17:55:12.930860+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"## Modeling behaviour"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T13:49:31.269687Z",
"start_time": "2017-07-03T15:49:31.257850+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"Our first step will be to model how every person in the social network reacts to hearing a piece of disinformation (news).\n",
"We will follow a very simple model based on a finite state machine.\n",
"\n",
"A person may be in one of two states: **neutral** (the default state) and **infected**.\n",
"A neutral person may hear about a piece of disinformation either on the TV (with probability **prob_tv_spread**) or through their friends.\n",
"Once a person has heard the news, they will spread it to their friends (with a probability **prob_neighbor_spread**).\n",
"Some users do not have a TV, so they will only be infected by their friends.\n",
"\n",
"The spreading probabilities will change over time due to different factors.\n",
"We will represent this variance using an additional agent which will not be a part of the social network."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### A simple model"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"class SimpleModel(soil.Environment):\n",
" max_steps_neutral = 3"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"### Modelling Agents\n",
"\n",
"The following sections will cover the basics of developing agents in SOIL.\n",
"\n",
"For more advanced patterns, please check the **examples** folder in the repository."
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"#### Basic agents"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T14:03:07.171127Z",
"start_time": "2017-07-03T16:03:07.165779+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"The most basic agent in Soil is ``soil.BaseAgent``.\n",
"These agents implement their behavior by overriding the `step` method, which will be run in every simulation step.\n",
"Only one agent will be running at any given time, and it will be doing so until the `step` function returns.\n",
"\n",
"Agents can access their environment through their ``self.model`` attribute.\n",
"This is most commonly used to get access to the environment parameters and methods.\n",
"Here is a simple example of an agent:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T14:03:07.171127Z",
"start_time": "2017-07-03T16:03:07.165779+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"class ExampleAgent(BaseAgent):\n",
" def init(self):\n",
" self.is_infected = False\n",
" self.steps_neutral = 0\n",
" \n",
" def step(self):\n",
" # Implement agent logic\n",
" if self.is_infected:\n",
" ... # Do something, like infecting other agents\n",
" return self.die(\"No need to do anything else\") # Stop forever\n",
" else:\n",
" ... # Do something\n",
" self.steps_neutral += 1\n",
" if self.steps_neutral > self.model.max_steps_neutral:\n",
" self.is_infected = True"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T14:03:07.171127Z",
"start_time": "2017-07-03T16:03:07.165779+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"Any kind of agent behavior can be implemented with this `step` function.\n",
"dead, it has two main drawbacks: 1) complex behaviors can get difficult both write and understand; 2) these behaviors are not composable."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see how the agent works:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Agent 0 is alive and infected\n",
"Agent 0 is alive and infected\n",
"Agent 0 is alive and infected\n",
"Agent 0 is alive and not infected\n",
"Agent 0 is dead and not infected\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"/home/j/.cache/pypoetry/virtualenvs/soil-cCX5yKRx-py3.10/lib/python3.10/site-packages/mesa/time.py:82: FutureWarning: The AgentSet is experimental. It may be changed or removed in any and all future releases, including patch releases.\n",
"We would love to hear what you think about this new feature. If you have any thoughts, share them with us here: https://github.com/projectmesa/mesa/discussions/1919\n",
" self._agents: AgentSet = AgentSet(agents, model)\n"
]
}
],
"source": [
"model = SimpleModel()\n",
"num_steps = model.max_steps_neutral+2\n",
"a = ExampleAgent(unique_id=0, model=model)\n",
"for i in range(num_steps):\n",
" ret = a.step()\n",
" print(f\"Agent {a.unique_id} is {'alive' if a.alive else 'dead'} and {'infected' if not a.is_infected else 'not infected'}\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Agent 0 is alive and infected @ 1\n",
"Agent 0 is alive and infected @ 2\n",
"Agent 0 is alive and infected @ 3\n",
"Agent 0 is alive and not infected @ 4\n",
"Agent 0 is dead and not infected @ inf\n"
]
}
],
"source": [
"model = SimpleModel()\n",
"a = model.add_agent(ExampleAgent)\n",
"for i in range(num_steps):\n",
" model.step()\n",
" print(f\"Agent {a.unique_id} is {'alive' if a.alive else 'dead'} and {'infected' if not a.is_infected else 'not infected'} @ {model.now}\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T14:03:07.171127Z",
"start_time": "2017-07-03T16:03:07.165779+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"#### FSM agents\n",
"\n",
"One way to solve both issues is to model agents as **[Finite-state Machines](https://en.wikipedia.org/wiki/Finite-state_machine)** (FSM, for short).\n",
"FSM define a series of possible states for the agent, and changes between these states.\n",
"These states can be modelled and extended independently.\n",
"\n",
"This is modelled in Soil through the `soil.FSM` class.\n",
"Agents that inherit from ``soil.FSM`` do not need to specify a ``step`` method.\n",
"Instead, we describe each finite state with a function.\n",
"To change to another state, a function may return the new state, or the ``id`` of a state.\n",
"If no state is returned, the state remains unchanged.\n",
"\n",
"The current state of the agent can be checked with ``agent.state_id``.\n",
"That state id can be used to look for other agents in that specific state.\n",
"\n",
"Our previous example could be expressed like this:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T14:03:07.171127Z",
"start_time": "2017-07-03T16:03:07.165779+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"class FSMExample(FSM):\n",
"\n",
" def init(self):\n",
" self.steps_neutral = 0\n",
" \n",
" @state(default=True)\n",
" def neutral(self):\n",
" ... # Do something\n",
" self.steps_neutral += 1\n",
" if self.steps_neutral > self.model.max_steps_neutral:\n",
" return self.infected # Change state\n",
"\n",
" @state\n",
" def infected(self):\n",
" ... # Do something\n",
" return self.die(\"No need to do anything else\")"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Agent 0 is alive and neutral @ 1\n",
"Agent 0 is alive and neutral @ 2\n",
"Agent 0 is alive and neutral @ 3\n",
"Agent 0 is alive and infected @ 4\n",
"Agent 0 is dead and dead @ inf\n"
]
}
],
"source": [
"model = SimpleModel()\n",
"a = model.add_agent(FSMExample)\n",
"for i in range(num_steps):\n",
" ret = model.step()\n",
" print(f\"Agent {a.unique_id} is {'alive' if a.alive else 'dead'} and {a.state_id} @ {model.now}\")"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"#### Telling the scheduler when to wake up an agent\n",
"\n",
"By default, every agent will be called in every simulation step, and the time elapsed between two steps is controlled by the `default_interval` attribute in the environment.\n",
"\n",
"But agents may signal the scheduler how long to wait before calling them again by returning (or `yield`ing) a value other than `None`.\n",
"This is especially useful when an agent is going to be dormant for a long time.\n",
"There are two convenience methods to calculate the value to return: `Agent.delay`, which takes a time delay; and `Agent.at`, which takes an absolute time at which the agent should be awaken.\n",
"A return (or `yield`) value of `None` will default to a wait of 1 unit of time.\n",
"\n",
"When an `FSM` agent returns, it may signal two things: how long to wait, and a state to transition to.\n",
"This can be done by using the `delay` and `at` methods of each state."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"class FSMExampleDelayed(FSMExample):\n",
" \n",
" @state(default=True)\n",
" def neutral(self):\n",
" return self.infected.delay(self.model.max_steps_neutral)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Agent 0 is alive and infected @ 3.0\n",
"Agent 0 is dead and dead @ inf\n",
"Agent 0 is dead and dead @ inf\n",
"Agent 0 is dead and dead @ inf\n",
"Agent 0 is dead and dead @ inf\n"
]
}
],
"source": [
"model = SimpleModel()\n",
"a = model.add_agent(FSMExampleDelayed)\n",
"for i in range(num_steps):\n",
" ret = model.step()\n",
" print(f\"Agent {a.unique_id} is {'alive' if a.alive else 'dead'} and {a.state_id} @ {model.now}\")"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-02T12:22:53.931963Z",
"start_time": "2017-07-02T14:22:53.928340+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"### Environment agents"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"In our simulation, we need a way to model how TV broadcasts news, and those that have a TV are susceptible to it.\n",
"We will only model one very viral TV broadcast, which we will call an `event`, which has a high chance of infecting users with a TV.\n",
"\n",
"\n",
"There are several ways to model this behavior.\n",
"We will do it with an Environment Agent.\n",
"Environment agents are regular agents that interact with the environment but are invisible to other agents."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"ExecuteTime": {
"end_time": "2017-11-03T10:58:17.653736Z",
"start_time": "2017-11-03T11:58:17.612944+01:00"
},
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"class EventGenerator(BaseAgent):\n",
" def __init__(self, *args, **kwargs):\n",
" super().__init__(*args, **kwargs)\n",
"\n",
" def step(self):\n",
" # Do nothing until the time of the event\n",
" yield self.at(self.model.event_time)\n",
" self.debug(\"TV event happened\")\n",
" self.model.prob_tv_spread = 0.5\n",
" self.model.prob_neighbor_spread = min(self.model.prob_neighbor_spread*2, 1)\n",
" yield self.delay()\n",
" self.model.prob_tv_spread = 0\n",
"\n",
" while self.alive:\n",
" self.model.prob_neighbor_spread = self.model.prob_neighbor_spread * self.model.neighbor_factor\n",
" if self.model.prob_neighbor_spread < 0.01:\n",
" return self.die(\"neighbors can no longer spread the rumour\")\n",
" yield self.delay()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"### Environment (Model)\n",
"\n",
"Let's define a environment model to test our event generator agent.\n",
"This environment will have a single agent (the event generator).\n",
"We will also tell the environment to save the value of `prob_tv_spread` after every step:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"class NewsEnvSimple(NetworkEnvironment):\n",
" \n",
" # Here we set the default parameters for our model\n",
" # We will be able to override them on a per-simulation basis\n",
" prob_tv_spread = 0.1\n",
" prob_neighbor_spread = 0.1\n",
" event_time = 10\n",
" neighbor_factor = 0.9\n",
"\n",
" \n",
" # This function initializes the model. It is run right at the end of the `__init__` function.\n",
" def init(self):\n",
" self.add_model_reporter(\"prob_tv_spread\") # save prob_tv_spread at every step\n",
" self.add_agent(EventGenerator)"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"Once the environment has been defined, we can quickly run our simulation through the `run` method on NewsEnv:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "86199270e7f74321bfc4481c95942d67",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"NewsEnvSimple: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/1 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>step</th>\n",
" <th>agent_count</th>\n",
" <th>prob_tv_spread</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0.0</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10.0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11.0</th>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12.0</th>\n",
" <td>3</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13.0</th>\n",
" <td>4</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14.0</th>\n",
" <td>5</td>\n",
" <td>1</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" step agent_count prob_tv_spread\n",
"time \n",
"0.0 0 1 0.1\n",
"10.0 1 1 0.1\n",
"11.0 2 1 0.5\n",
"12.0 3 1 0.0\n",
"13.0 4 1 0.0\n",
"14.0 5 1 0.0"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"its = NewsEnvSimple.run(iterations=1, max_time=14)\n",
"its[0].model_df()"
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"As we can see, the event occurred right after `t=10`, so by `t=11` the value of `prob_tv_spread` was already set to `0.5`.\n",
"\n",
"You may notice nothing happened between `t=0` and `t=1`.\n",
"That is because there aren't any other agents in the simulation, and our event generator explicitly waited until `t=10`."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also get more information if we run the simulation with logging set to DEBUG:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "468d9985226a4f0cac12f62e566bce1b",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"NewsEnvSimple: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/1 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"NewsEnvSimple.run(iterations=1, max_time=14);"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"### Network agents"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T14:03:07.171127Z",
"start_time": "2017-07-03T16:03:07.165779+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"In our disinformation scenario, we will model our agents as a FSM with two states: ``neutral`` (default) and ``infected``.\n",
"\n",
"Here's the code:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {
"ExecuteTime": {
"end_time": "2017-11-03T10:58:16.051690Z",
"start_time": "2017-11-03T11:58:16.006044+01:00"
},
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"class NewsSpread(Agent):\n",
" has_tv = False\n",
" infected_by_friends = False\n",
" \n",
" # The state decorator is used to define the states of the agent\n",
" @state(default=True)\n",
" def neutral(self):\n",
" # The agent might have been infected by their infected friends since the last time they were checked\n",
" if self.infected_by_friends:\n",
" # Automatically transition to the infected state\n",
" return self.infected\n",
" # If the agent has a TV, they might be infected by the evenn\n",
" if self.has_tv:\n",
" if self.prob(self.model.prob_tv_spread):\n",
" self.info(\"INFECTED\")\n",
" return self.infected\n",
" \n",
" @state\n",
" def infected(self):\n",
" for neighbor in self.iter_neighbors(state_id=self.neutral.id):\n",
" if self.prob(self.model.prob_neighbor_spread):\n",
" neighbor.infected_by_friends = True\n",
" return self.delay(7) # Wait for 7 days before trying to infect their friends again"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"We can check that our states are well defined:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [
{
"data": {
"text/plain": [
"['dead', 'neutral', 'infected']"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"NewsSpread.states()"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"### Environment (Model)"
]
},
{
"cell_type": "markdown",
"metadata": {
"cell_style": "split",
"hideCode": false,
"hidePrompt": false
},
"source": [
"Let's modify our simple simulation.\n",
"We will add a network of agents of type NewsSpread.\n",
"\n",
"Only one agent (0) will have a TV (in blue)."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"cell_style": "split",
"hideCode": false,
"hidePrompt": false
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def generate_simple():\n",
" G = nx.Graph()\n",
" G.add_edge(0, 1)\n",
" G.add_edge(0, 2)\n",
" G.add_edge(2, 3)\n",
" G.add_node(4)\n",
" return G\n",
"\n",
"G = generate_simple()\n",
"pos = nx.spring_layout(G)\n",
"nx.draw_networkx(G, pos, node_color='red')\n",
"nx.draw_networkx(G, pos, nodelist=[0], node_color='blue')"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"class NewsEnvNetwork(Environment):\n",
" prob_tv_spread = 0\n",
" prob_neighbor_spread = 0.1\n",
" event_time = 10\n",
" neighbor_factor = 0.9\n",
"\n",
" def init(self):\n",
" self.add_agent(EventGenerator)\n",
" self.G = generate_simple()\n",
" self.populate_network(NewsSpread)\n",
" self.agent(node_id=0).has_tv = True\n",
" self.add_model_reporter('prob_tv_spread')\n",
" self.add_model_reporter('prob_neighbor_spread')\n",
" self.add_agent_reporter('state_id', lambda a: getattr(a, \"state_id\", None))"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "26d045b0cd18418ab14507ac59f5a236",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"NewsEnvNetwork: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/3 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"its = NewsEnvNetwork.run(iterations=3, max_time=14)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>step</th>\n",
" <th>agent_count</th>\n",
" <th>prob_tv_spread</th>\n",
" <th>prob_neighbor_spread</th>\n",
" </tr>\n",
" <tr>\n",
" <th>time</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0.0</th>\n",
" <td>0</td>\n",
" <td>6</td>\n",
" <td>0.0</td>\n",
" <td>0.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1.0</th>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>0.0</td>\n",
" <td>0.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2.0</th>\n",
" <td>2</td>\n",
" <td>6</td>\n",
" <td>0.0</td>\n",
" <td>0.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3.0</th>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>0.0</td>\n",
" <td>0.1</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4.0</th>\n",
" <td>4</td>\n",
" <td>6</td>\n",
" <td>0.0</td>\n",
" <td>0.1</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" step agent_count prob_tv_spread prob_neighbor_spread\n",
"time \n",
"0.0 0 6 0.0 0.1\n",
"1.0 1 6 0.0 0.1\n",
"2.0 2 6 0.0 0.1\n",
"3.0 3 6 0.0 0.1\n",
"4.0 4 6 0.0 0.1"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"it = []\n",
"for i in range(3):\n",
" env = NewsEnvNetwork(seed=i+5)\n",
" for i in range(50):\n",
" env.step()\n",
" it.append(env)\n",
"it[0].model_df().head()"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "90f0eab223de4c0cb834633fe037ae2f",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"NewsEnvNetwork: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/3 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"[INFO ][17:23:10] [@10.0]\tNewsSpread(1): INFECTED\n",
"[INFO ][17:23:10] [@11.0]\tNewsSpread(1): INFECTED\n"
]
}
],
"source": [
"import logging\n",
"it = NewsEnvNetwork.run(iterations=3, seed=4, max_time=30, level=logging.INFO)"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"In this case, notice that the inclusion of other agents (which run every step) means that the simulation did not skip to `t=10`.\n",
"\n",
"Now, let's look at the state of our agents in every step:"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [
{
"data": {
"image/png": "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0aPExsayZMkSe4fiAwcOFFoN9/Tp04wePZqjR49Sq1YtunTpwsqVK13WIVikMgjM+1dc+qbfnDov3dYUpT42Ug5Fv2RXr15Ny5YtS1yYsG3btqxYsaLQvhUrVtCqVatC56xevfqC67Zt29ahMvn6+tprjAq68847efTRR7n99tv5448/uO222xy6HphNXMOHD2f48OFcddVV/POf/ywUbFavXs3VV18NmIuarl+/vtRWhZiYGPz9/Tlw4ADXXHNNscesWLGCK664ggceeMC+b+/evfafw8LCqFevHmvWrLng3p07d3b4tV3qDh06xO23386pU6eoU6cOV155JatXr7Y3azqiXP8MsfW8L05SUlKhxy+++CIvvvhieW4jUmUFXtYevLzIOXKE7KNH8XWwD1pqXk2Nra+NiDMOHDhAQkICf//739mwYQOvvPJKsaOcbB555BG6du3K9OnTGTp0KKtWrWLOnDm8+uqrhY5bsWIFzz33HIMGDeKHH37g448/ZvHixQ6VKTo6mqVLl9KjRw/8/f2pVasWAEOGDOH+++/n/vvv59prr6V+/foOXW/y5Ml06dKFdu3akZmZyddff31ByJo7dy4tW7akbdu2vPjii5w+fZq77767xGuGhoYyfvx4/vGPf2C1Wrnyyis5e/YsK1asoEaNGgwfPpyWLVvy7rvv8t1339G0aVPee+89fv31V5o2bWq/zrhx45gxYwYtW7akTZs2vPDCC5w5c8ah1yWmhQsXXvQ1tFaUiAt4BQfj37o1gFNzJaVlm8EmPStX7fLitGHDhpGenk63bt0YM2YM48aNsw/rLk7nzp356KOPWLhwIe3bt2fy5MlMmzatUMdhMAPQunXr6NSpE08//TQvvPAC/fo51u9o1qxZ/PDDDzRq1KhQf5XQ0FAGDhzIb7/9xp133unwa/Tz82PixIl06NCBq6++Gm9v7wu+DGfMmMGMGTPo2LEjv/zyC1999RURZUyYOX36dCZNmkRiYiJt27alf//+LF682B5c/v73vzNkyBCGDh1K9+7dOXXqVKHaGzDfp7vuuovhw4fbm6sGDx7s8GuTimExqsBfz0OHDtGoUSMOHjxIw4YNPV0cEYccnTaN0x98SPjw4UROLH5W7qL6vrCM3cfN9v6dT/fH30czELtbRkYGycnJNG3atEqta9ezZ09iY2Mv6eUP9u3bR9OmTdm4caO9U6+4Xmm/M574/laNjYiL5Pez2eTwOQX71qSrn42IiNMUbERcxBZsMrZtw1pgiZDSpGfnhxl1IJbKbsGCBYSEhBS7lbZsTmnuu+++Eq953333VfArkOqoeoxhFKmEfBs1wrt2bXJPnSJj6zaCOncq85zUzPxOw2nqQCxOKDpwwx3+9re/FZq3pSDfvKVFnDVt2jTGjx9f7HNlTfAWHR2tvmmiYCPiKhaLhcDYWM4vXUr6pk1lBptcq0FmjtX+WDU2UtmFhoYSGhpaodesW7cudevWrdBryqVFTVEiLhQY2xFwrJ9N0RqaVE3SJyLiNAUbERcKsnUg3rixzCryop2F07WsgoiI0xRsRFwooH178PEh58QJcv78s9RjU4sEG9XYiIg4T8FGxIW8AgMJyFvYL62M5qiiTVEa7i0i4jwFGxEXc3TdqKKdhbWsgoiI8xRsRFwssEA/m9IUDTYaFSWVQXR0tMdnM+7ZsycPP/ywU+dYLBa++OKLEp9PSkrCYrFoLacyPPXUU1VuFmcN9xZxsaBOsQBk7NiBNSMDrxKm6U8vUkOjeWxETJ999lm558WRS49qbERczKd+fXzq1IGcHDK2bCnxuKKdhVVjI66UlZXl6SI4LDw8vMLny3EVT7yv2dnZbr9nZaZgI+Jiton6oPT5bNKyiwz3VrCpHAwDslI9szkxi27Pnj0ZO3YsY8eOJSwsjIiICCZNmmSfZiA6Oprp06czbNgwatSoYV/1+9NPP6Vdu3b4+/sTHR3NrFmzLrh2SkoKt99+O8HBwTRo0IC5c+c6XC6LxcKbb77J4MGDCQoKomXLlnz11VeFjtmyZQsDBgwgJCSEyMhI7rrrLk6ePFnotRVsijpy5Ag33HADgYGBNG3alA8++KDYJrOTJ0+Wel+AFStW0KFDBwICArj88svZUuQfH2W9PyW9ryXJyspi7Nix1KtXj4CAAJo0aUJiYmKh92vevHkMGDCAwMBAmjVrxieffGJ/ft++fVgsFhYtWsQ111xDQEAACxYsAODNN9+kbdu2BAQE0KZNG1599dVC937sscdo1aoVQUFBNGvWjEmTJl0QimbMmEFkZCShoaGMGjWKjIyMUl9PZaSmKBE3COzUiZQffiBt4yZql3BMWmaRCfoUbCqH7DR4tr5n7v34n+AX7PDh77zzDqNGjWLt2rWsW7eOe++9l8aNGzN69GgAZs6cyeTJk5kyZQoA69ev59Zbb+Wpp55i6NChrFy5kgceeIDatWszYsQI+3Wff/55Hn/8caZOncp3333HuHHjaNWqFX379nWoXFOnTuW5557j+eef55VXXuHOO+9k//79hIeHc+bMGXr16sU999zDiy++SHp6Oo899hi33norP/30U7HXGzZsGCdPniQpKQlfX18SEhI4fvy4U/e1+ec//8lLL71EVFQUjz/+OAMHDmTXrl34+vo6/P4UfV9L8/LLL/PVV1/x0Ucf0bhxYw4ePMjBgwcLHTNp0iRmzJjBSy+9xHvvvcdtt93G5s2badu2rf2YCRMmMGvWLDp16mQPN5MnT2bOnDl06tSJjRs3Mnr0aIKDgxk+fDhgzhQ9f/586tevz+bNmxk9ejShoaE8+uijAHz00Uc89dRTzJ07lyuvvJL33nuPl19+mWbNmpX5uioVowo4ePCgARgHDx70dFFEyiV1/QZjW+s2xs4rehhWq7XYY174fqfR5LGvjRaPLzaaPPa1MWr+WjeXUgzDMNLT041t27YZ6enp5o7M84YxpYZntszzDpf7mmuuMdq2bVvo8/XYY48Zbdu2NQzDMJo0aWIMGjSo0Dl33HGH0bdv30L7/vnPfxoxMTH2x02aNDH69+9f6JihQ4caAwYMcKhcgPHkk0/aH58/f94AjG+//dYwDMOYPn26cd111xU6x/Y3f+fOnfbXNm7cOMMwDGP79u0GYPz666/243fv3m0AxosvvujwfX/++WcDMBYuXGg/5tSpU0ZgYKCxaNEip96fou9raR588EGjV69eJf4dAIz77ruv0L7u3bsb999/v2EYhpGcnGwAxuzZswsd07x5c+ODDz4otG/69OlGfHx8iWV5/vnnjS5dutgfx8fHGw888MAF9+7YsWOpr+mC35kCPPH9rRobETcIaBcDvr7knjpF9qFD+DVqdMExts7CESH+HDmboQn6KgvfILPmxFP3dsLll1+OxWKxP46Pj2fWrFnk5pqfpbi4uELHb9++nZtuuqnQvh49ejB79mxyc3Px9va2X6eg+Ph4p0ZKdejQwf5zcHAwNWrUsNew/Pbbb/z888+EhIRccN7evXtp1apVoX07d+7Ex8eHzp072/e1aNGCWrVqOXXfgq/FJjw8nNatW7N9+3bA8fen6PtamhEjRtC3b19at25N//79ufHGG7nuuutKLJPt8aYizdgF75mamsrevXsZNWqUvXYOICcnh7CwMPvjRYsW8fLLL7N3717Onz9PTk5OoYVFt2/ffsEK6vHx8fz8888Ov77KQMFGxA28/P0JiGlLxm+/k75pUwnBxvzysQWbon1uxEMsFqeagyqz4GDPvI6iI5osFgtWq7ng6/nz5xk4cCD/+te/LjivXr16LrtvRXLmfe3cuTPJycl8++23/Pjjj9x666306dOnUD8aZ+95/vx5AN54440LVlu3ha9Vq1Zx5513MnXqVPr160dYWBgLFy4stk9VVafOwyJuEhRrru5d0nw2+cHGz3ycqeHe4pw1a9YUerx69Wpatmxp/3Irqm3btqxYsaLQvhUrVtCqVatC56xevfqC6xbs73ExOnfuzNatW4mOjqZFixaFtuICQ+vWrcnJyWFjgd+jPXv2cPr06XLdv+BrO336NLt27bK/NkffH2fVqFGDoUOH8sYbb7Bo0SI+/fRT/vrrr2LLZHtc2vsdGRlJ/fr1+eOPPy54D5s2bQrAypUradKkCU888QRxcXG0bNmS/fv3F7pO27Zti/0MVTWqsRFxk8BOsfDOOyUurVCwKcp8rBobcc6BAwdISEjg73//Oxs2bOCVV14p9V/kjzzyCF27dmX69OkMHTqUVatWMWfOnAtG06xYsYLnnnuOQYMG8cMPP/Dxxx+zePHiCinzmDFjeOONN7j99tt59NFHCQ8PZ8+ePSxcuJA333zzggDRpk0b+vTpw7333su8efPw9fXlkUceITAwsFAznKOmTZtG7dq1iYyM5IknniAiIoJBgwYBjr8/znjhhReoV68enTp1wsvLi48//pioqChq1qxpP+bjjz8mLi6OK6+8kgULFrB27Vr+85//lHrdqVOn8tBDDxEWFkb//v3JzMxk3bp1nD59moSEBFq2bMmBAwdYuHAhXbt2ZfHixXz++eeFrjFu3DhGjBhBXFwcPXr0YMGCBWzdurXKdR5WjY2Im9iGfGfu3IU1Le2C5+01NqG2YKMaG3HOsGHDSE9Pp1u3bowZM4Zx48aVOvy4c+fOfPTRRyxcuJD27dszefJkpk2bVmjED5hf8OvWraNTp048/fTTvPDCC/Tr169Cyly/fn1WrFhBbm4u1113HZdddhkPP/wwNWvWxMur+K+od999l8jISK6++moG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V0Sqh88euILOjV0z2CElJYVz587ZH/v7++Pv71/omPJkjOI4FWxOnjxJbm4ukZGRhfZHRkayY8eOYs85evRosccfPXq0xPskJiYydepUZ4pWLl4WHwyr62eElUuPxfDl+qaD3XrPK1tGUC8sgL9Ss9x6XxGpHiwuvHZMTEyhx1OmTOGpp54qtK88GaM4lfJbfeLEiYVqeQ4fPnzBm1IR1oz8tMKvKeIprSJDWTWxt6eLISJygW3bttGgQQP746K1NRXJqWATERGBt7c3x44dK7T/2LFjREVFFXtOVFSUU8fDhVVUBauvREREpGoJDQ2lRo0apR5TnoxRHKdGRfn5+dGlSxeWLl1q32e1Wlm6dCnx8fHFnhMfH1/oeIAffvihxONFRETk0lOejFEcp5uiEhISGD58OHFxcXTr1o3Zs2eTmprKyJEjARg2bBgNGjQgMTERgHHjxnHNNdcwa9YsbrjhBhYuXMi6dev497//7eytRUREpBorK2M4wulgM3ToUE6cOMHkyZM5evQosbGxLFmyxN7Z58CBA3h55VcEXXHFFXzwwQc8+eSTPP7447Rs2ZIvvviC9u3bO3trERERqcbKyhiOcHoeG09w1Tw2IiIi4jqe+P7WWlEiIiJSbSjYiIiISLWhYCMiIiLVhoKNiIiIVBsKNiIiIlJtKNiIiIhItaFgIyIiItWGgo2IiIhUGwo2IiIiUm04vaSCJ1itVgCOHDni4ZKIiIiIo2zf27bvcXeoEsHGtoR5t27dPFwSERERcdaxY8do3LixW+5VJdaKysnJYePGjURGRhZaYPNipaSkEBMTw7Zt2wgNDa2w61ZHeq+co/fLcXqvHKf3ynF6rxznyvfKarVy7NgxOnXqhI+Pe+pSqkSwcZVz584RFhbG2bNnqVGjhqeLU6npvXKO3i/H6b1ynN4rx+m9clx1e6/UeVhERESqDQUbERERqTYu6WDj7+/PlClT8Pf393RRKj29V87R++U4vVeO03vlOL1Xjqtu79Ul3cdGREREqpdLusZGREREqhcFGxEREak2FGxERESk2lCwERERkWrjkg42c+fOJTo6moCAALp3787atWs9XaRK56mnnsJisRTa2rRp4+liVQr/+9//GDhwIPXr18disfDFF18Uet4wDCZPnky9evUIDAykT58+7N692zOF9bCy3qsRI0Zc8Dnr37+/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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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JE899RTPP/88t99+O/v27SMqKorTp09z9dVXc9ddd/HMM8+QkZHBww8/zM0338x///vfIq83bNgwTpw4wZIlS/D39yc5OZljx455dF+HBx98kGeffZaYmBgeeeQRBg4cyC+//IK/v7/b78/572tJnnvuOT777DPee+89mjRpwoEDBzhw4IDLMZMmTWLGjBk8++yzvPXWW9xyyy1s2rSJdu3aOY+ZMGECs2bNonPnzs5wM3nyZF544QU6d+7Mhg0bGD16NKGhoQwfPhwwZ4qeN28eDRs2ZNOmTYwePZrw8HAeeughAN577z0effRR5syZw+WXX85bb73Fc889R/PmzUt9XZWKUQUcOHDAAIwDBw74uigiXvP0NzuMpg9/brR85Auj6cOfG6PmrTEMwzDSN202trZpa2xP7GbY8/J8XMrqLyMjw9i6dauRkZFh7sg6ZxhTavlmyzrndrmvuuoqo127dobdbnfue/jhh4127doZhmEYTZs2NQYNGuRyzm233Wb07dvXZd+DDz5oxMfHOx83bdrU6N+/v8sxQ4cONQYMGOBWuQDjH//4h/PxuXPnDMD46quvDMMwjOnTpxvXXHONyzmOf/N37NjhfG3jxo0zDMMwtm3bZgDGjz/+6Dx+586dBmA888wzbt/3+++/NwBjwYIFzmNOnjxpBAcHGwsXLvTo/Tn/fS3JX/7yF+Pqq692+f9UGGDcc889Lvt69Ohh3HvvvYZhGMaePXsMwJg9e7bLMS1atDDeeecdl33Tp083kpKSii3LU089ZXTt2tX5OCkpybjvvvsuuHdCQkKJr+mC35lCfPH9rRobkUrCMY9N3bBADp/JdPa5CWrTGktwMPbUVLJ//ZXAli19Wcyaxz/ErDnx1b09cOmll2KxWJyPk5KSmDVrFnl55mcpMTHR5fht27Zxww03uOzr2bMns2fPJi8vD5vN5rxOYUlJSR6NlOrYsaPz59DQUGrVquWsYfnpp5/4/vvvCQsLu+C83bt307p1a5d9O3bswM/Pjy5dujj3tWzZktq1a3t038KvxSEqKoo2bdqwbds2wP335/z3tSQjRoygb9++tGnThv79+3P99ddzzTXXFFsmx+ON5zVFF75nWloau3fvZtSoUc7aOYDc3FwiIiKcjxcuXMhzzz3H7t27OXfuHLm5uS4Li27btu2CFdSTkpL4/vvv3X59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1HnYXampqdxxxx288sor1K1b1+3zzq+iOntW/1BL9eWcoO8iOg87+EfXh+iKG+5aHRmZmWC1EtCsGYFVqEnviJ8fMWFhBLZs6dx3LDCQ7JAQAlu2pFeLFkS/8gpDxo3jySefpHXr1vz222988cUXDB48mMTERLoOuoF/vPwSC1esICkpibfffptvt2+jc+fOzusGt2rFoo0buTO/OSoqKoq8gwfZnZ2Nf7NmBBYalRTSujVvLF5Mrz/9CYvFwqRJk/g1J5vThcq53zBIi6rtUu7CLqtdm83338+urCw6dDCbSax+fuzOzsZo1MjlvIy6ddmbl+vcd+P99zN69Gha9OrFZZddxsKFC/l661aaN2/uPOZkSAins7NdrnM6LIwjfn7Ofba4OL7ctInrg4MJDAx0fp+tXLKEQ1Yr3YYMIdCDTt41UXh4OLUKNXEW5cCBA4wbN45vv/32giYtT3jUebhu3brYbDaOHj3qsv/o0aMXdKgC2L17N3v37mXgwIH4+fnh5+fHm2++yWeffYafn5+GyIkAGTmOUVHFDff2XvWw1BwWi4Uvv/ySK6+80tmZ9pZbbmHfvn3OWvh+/foxadIkHnroIbp160ZqairDhg1zuc748eOx2WzEx8dTr1499u/fX+w9n376aWrXrs1ll13GwIED6devH126dCn2+KLUqVOHwYMHl2kivNtvv52JEycyfvx4unTpwp49exgxYoTHX5rTpk1j7969tGjRgnr16jn3v/vuu9x+++2EKNSUi3Xr1nHs2DG6dOnizAxLly7lueeew8/Pj7w89/7IK1Pn4e7duzur7ex2O02aNGHs2LEXdB7OzMxk165dLvv+8Y9/kJqayrPPPkvr1q0JCAgo9Z6OzkfqPCzV0V/f3cBnP/3GP65rx11XNHfuX/3rSYb+axXN64Xy3wd6+a6ANUxJHSHFN37++Wf69u3L7t27XTotl0Xfvn2JiYnhrbfeuqjrnDhxgjZt2rB27doLho/XNO50Hnbn+zs1NfWCEWYjR46kbdu2PPzww84au9J43BSVnJzM8OHDSUxMpHv37syePZu0tDRGjhwJwLBhw4iNjSUlJYWgoKALCuLoWe9uAUWqu/RillRwNkWVsqSCSHXXsWNH/vnPf7Jnz54ih2sXJz09nZdeeol+/fphs9l49913+e677/j2228vukx79+7lxRdf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3xTWx0p7r0aMGHHB56x///6+KayPpaSk0K1bN8LDw6lfvz6DBg1ix44dLsdkZmYyZswY6tSpQ1hYGDfeeKNz6ZmaxJ33qlevXhd8tu655x4fldh35s6dS8eOHalVqxa1atUiKSmJr776yvl8dfpM1dhgs3DhQpKTk5kyZQrr168nISGBfv36cezYMV8XrdJp3749hw8fdm4//PCDr4tUKaSlpZGQkMCcOXOKfP7JJ5/kueee46WXXmL16tWEhobSr18/MjMzK7ikvlfaewXQv39/l8/Zu+++W4ElrDyWLl3KmDFjWLVqFd9++y05OTlcc801pKWlOY/529/+xn/+8x/ef/99li5dym+//caQIUN8WGrfcOe9Ahg9erTLZ+vJJ5/0UYl9p1GjRsyYMYN169axdu1arr76am644Qa2bNkCVLPPlFFDde/e3RgzZozzcV5entGwYUMjJSXFh6WqfKZMmWIkJCT4uhiVHmB8/PHHzsd2u92IiYkxnnrqKee+06dPG4GBgca7777rgxJWHue/V4ZhGMOHDzduuOEGn5Snsjt27JgBGEuXLjUMw/wc+fv7G++//77zmG3bthmAsXLlSl8Vs1I4/70yDMO46qqrjHHjxvmuUJVY7dq1jVdffbXafaZqZI1NdnY269ato0+fPs59VquVPn36sHLlSh+WrHLauXMnDRs2pHnz5tx+++3s37/f10Wq9Pbs2cORI0dcPmMRERH06NFDn7FiLFmyhPr169OmTRvuvfdeTp486esiVQpnzpwBICoqCoB169aRk5Pj8tlq27YtTZo0qfGfrfPfK4f58+dTt25dOnTowMSJE0lPT/dF8SqNvLw8FixYQFpaGklJSdXuM1UxS21WMidOnCAvL4/o6GiX/dHR0Wzfvt1HpaqcevTowbx582jTpg2HDx9m6tSpXHHFFWzevFkr5pbgyJEjAEV+xhzPSYH+/fszZMgQmjVrxu7du3nkkUcYMGAAK1euxGaz+bp4PmO327n//vvp2bMnHTp0AMzPVkBAAJGRkS7H1vTPVlHvFcBtt91G06ZNadiwIT///DMPP/wwO3bs4KOPPvJhaX1j06ZNJCUlkZmZSVhYGB9//DHx8fFs3LixWn2mamSwEfcNGDDA+XPHjh3p0aMHTZs25b333mPUqFE+LJlUJ7fccovz50suuYSOHTvSokULlixZ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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from soil import analysis\n",
"for res in it:\n",
" analysis.plot(res)"
]
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"hideCode": false,
"hidePrompt": false,
"run_control": {
"frozen": true
}
},
"source": [
"## Running in more scenarios\n",
"\n",
"In real life, you probably want to run several simulations, varying some of the parameters so that you can compare and answer your research questions.\n",
"\n",
"For instance:\n",
" \n",
"* Does the outcome depend on the structure of our network? We will use different generation algorithms to compare them (Barabasi-Albert and Erdos-Renyi)\n",
"* How does neighbor spreading probability affect my simulation? We will try probability values in the range of [0, 0.4], in intervals of 0.1."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"class NewsEnvComplete(Environment):\n",
" prob_tv = 0.1\n",
" prob_tv_spread = 0\n",
" prob_neighbor_spread = 0.1\n",
" event_time = 10\n",
" neighbor_factor = 0.5\n",
" generator = \"erdos_renyi_graph\"\n",
" n = 100\n",
"\n",
" def init(self):\n",
" self.add_agent(EventGenerator)\n",
" opts = {\"n\": self.n}\n",
" if self.generator == \"erdos_renyi_graph\":\n",
" opts[\"p\"] = 0.05\n",
" elif self.generator == \"barabasi_albert_graph\":\n",
" opts[\"m\"] = 2\n",
" self.create_network(generator=self.generator, **opts)\n",
"\n",
" self.populate_network([NewsSpread,\n",
" NewsSpread.w(has_tv=True)],\n",
" [1-self.prob_tv, self.prob_tv])\n",
" self.add_model_reporter('prob_tv_spread')\n",
" self.add_model_reporter('prob_neighbor_spread')\n",
" self.add_agent_reporter('state_id', lambda a: getattr(a, \"state_id\", None))"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"11"
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"list(its.values())[0][3].count_agents(state_id='infected')"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "522fa16a8a52488781e69f025ec51cc1",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 0\n",
" generator = erdos_renyi_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a46911e00cf04c7d9504c70d3105bfc9",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 0\n",
" generator = barabasi_albert_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f3202fff4879428b8505f4fd7c7605e1",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 0.25\n",
" generator = erdos_renyi_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6e3bee309cd043b19b4ea90f1ea3e039",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 0.25\n",
" generator = barabasi_albert_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "7369e8dc45d545899c07a0e1de2cec52",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 0.5\n",
" generator = erdos_renyi_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a1cac9f81c46470fb9b20eab88bfe0da",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 0.5\n",
" generator = barabasi_albert_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f48b611e76bb4363a14182dd5fea6059",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 0.75\n",
" generator = erdos_renyi_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "5d8fffaacc084c0b9b14de13e0c968fb",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 0.75\n",
" generator = barabasi_albert_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d50a638f8b3b45909d9e7b56418abcc5",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 1.0\n",
" generator = erdos_renyi_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f494cf391b354761b23c8c772d330422",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/1 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" N = 100\n",
" prob_neighbor_spread = 1.0\n",
" generator = barabasi_albert_graph\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"Ns = [100]\n",
"probabilities = [0, 0.25, 0.5, 0.75, 1.0]\n",
"generators = [\"erdos_renyi_graph\", \"barabasi_albert_graph\"]\n",
"\n",
"its = {}\n",
"for N in Ns:\n",
" for prob_neighbor_spread in probabilities:\n",
" for generator in generators:\n",
" params = dict(N=N, prob_neighbor_spread=prob_neighbor_spread, generator=generator)\n",
" env = NewsEnvComplete.run(name=f\"newspread\",\n",
" iterations=5,\n",
" max_time=30,\n",
" level=logging.WARNING,\n",
" parameters=params)\n",
" its[(N, prob_neighbor_spread, generator)] = env\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": 64,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(its)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Storing results and analyzing them"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This time, we set `dump=True` because we want to store our results to a database, so that we can later analyze them.\n",
"\n",
"But since we do not care about existing results in the database, we will also set`overwrite=True`."
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "d5004870a00c48de8fd16e47b91e47ec",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"newspread: 0%| | 0/10 [00:00<?, ?configuration/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = erdos_renyi_graph\n",
" prob_neighbor_spread = 0\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = erdos_renyi_graph\n",
" prob_neighbor_spread = 0.25\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = erdos_renyi_graph\n",
" prob_neighbor_spread = 0.5\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = erdos_renyi_graph\n",
" prob_neighbor_spread = 0.75\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = erdos_renyi_graph\n",
" prob_neighbor_spread = 1.0\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = barabasi_albert_graph\n",
" prob_neighbor_spread = 0\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = barabasi_albert_graph\n",
" prob_neighbor_spread = 0.25\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = barabasi_albert_graph\n",
" prob_neighbor_spread = 0.5\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = barabasi_albert_graph\n",
" prob_neighbor_spread = 0.75\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"- Running for parameters: \n",
" n = 100\n",
" generator = barabasi_albert_graph\n",
" prob_neighbor_spread = 1.0\n"
]
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
" 0%| | 0/5 [00:00<?, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"it = NewsEnvComplete.run(name=f\"newspread\",\n",
" iterations=5,\n",
" max_time=30,\n",
" level='WARNING',\n",
" dump=True,\n",
" overwrite=True,\n",
" matrix=dict(n=[N],\n",
" generator=generators,\n",
" prob_neighbor_spread=probabilities))"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"DEFAULT_ITERATIONS = 5\n",
"assert len(it) == len(probabilities) * len(generators) * DEFAULT_ITERATIONS"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T11:05:18.043194Z",
"start_time": "2017-07-03T13:05:18.034699+02:00"
},
"cell_style": "center",
"hideCode": false,
"hidePrompt": false
},
"source": [
"The results are conveniently stored in sqlite (history of agent and environment state) and the configuration is saved in a YAML file.\n",
"\n",
"You can also export the results to GEXF format (dynamic network) and CSV using .`run(dump=['gexf', 'csv'])` or the command line flags `--graph --csv`."
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"ExecuteTime": {
"end_time": "2017-11-01T14:05:56.404540Z",
"start_time": "2017-11-01T15:05:56.122876+01:00"
},
"cell_style": "split",
"hideCode": false,
"hidePrompt": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[01;34msoil_output\u001b[0m\n",
"└── \u001b[01;34mnewspread\u001b[0m\n",
" ├── \u001b[00mnewspread_1712844336.8642576.dumped.yml\u001b[0m\n",
" ├── \u001b[00mnewspread_1712844450.0526526.dumped.yml\u001b[0m\n",
" ├── \u001b[00mnewspread_1712846070.381033.dumped.yml\u001b[0m\n",
" ├── \u001b[00mnewspread_1712846089.2092683.dumped.yml\u001b[0m\n",
" ├── \u001b[00mnewspread_1712846145.296178.dumped.yml\u001b[0m\n",
" ├── \u001b[00mnewspread_1712846219.0644977.dumped.yml\u001b[0m\n",
" ├── \u001b[00mnewspread_1712846305.368385.dumped.yml\u001b[0m\n",
" ├── \u001b[00mnewspread_1712846671.6566656.dumped.yml\u001b[0m\n",
" ├── \u001b[00mnewspread_1712849017.0672383.dumped.yml\u001b[0m\n",
" ├── \u001b[00mnewspread_1712849444.2514122.dumped.yml\u001b[0m\n",
" └── \u001b[00mnewspread.sqlite\u001b[0m\n",
"\n",
"1 directory, 11 files\n",
"4,0K\tsoil_output/newspread/.ipynb_checkpoints\n",
"21M\tsoil_output/newspread\n"
]
}
],
"source": [
"!tree soil_output\n",
"!du -xh soil_output/*"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-02T10:40:14.384177Z",
"start_time": "2017-07-02T12:40:14.381885+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"### Analysing the results"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"#### Loading data"
]
},
{
"cell_type": "markdown",
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"source": [
"Once the simulations are over, we can use soil to analyse the results.\n",
"\n",
"There are two main ways: directly using the iterations returned by the `run` method, or loading up data from the results database.\n",
"This is particularly useful to store data between sessions, and to accumulate results over multiple runs.\n",
"\n",
"The mainThe main method to load data from the database is `read_sql`, which can be used in two ways:\n",
"\n",
"* `analysis.read_sql(<sqlite_file>)` to load all the results from a sqlite database . e.g. `read_sql('my_simulation/file.db.sqlite')`\n",
"* `analysis.read_sql(name=<simulation name>)` will look for the default path for a simulation named `<simulation name>`"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The result in both cases is a named tuple with four dataframes:\n",
"\n",
"* `configuration`, which contains configuration parameters per simulation\n",
"* `parameters`, which shows the parameters used **in every iteration** of every simulation\n",
"* `env`, with the data collected from the model in each iteration (as specified in `model_reporters`)\n",
"* `agents`, like `env`, but for `agent_reporters`"
]
},
{
"cell_type": "markdown",
"metadata": {
"ExecuteTime": {
"end_time": "2017-07-03T14:44:30.978223Z",
"start_time": "2017-07-03T16:44:30.971952+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"source": [
"Let's see it in action by loading the stored results into a pandas dataframe:"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {
"ExecuteTime": {
"end_time": "2017-10-19T15:57:44.101253Z",
"start_time": "2017-10-19T17:57:44.039710+02:00"
},
"hideCode": false,
"hidePrompt": false
},
"outputs": [],
"source": [
"res = analysis.read_sql(name=\"newspread\", include_agents=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plotting data\n",
"\n",
"Once we have loaded the results from the file, we can use them just like any other dataframe.\n",
"\n",
"Here is an example of plotting the ratio of infected users in each of our simulations:"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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6aefxmQyAfDss8+SkJBAYWEh06dPB8But/PMM88QHR3N6NGjufvuu7n55pu55557MJt1clfkeKCfZBHpEePHj2fq1KmMHTuWH//4xzz11FPU1tZ2G//555+zY8cO4uLiiI2NJTY2lqSkJNra2ti5c2en5UZHR3d8X1BQQFNTEyUlJWHdHhHpPTozIiI9wmKx8P777/PJJ5+wdOlSHnvsMW6//XbWrFnTZXxTUxP5+fk8//zzB32Wmpoa7nJFpA9RMyIiPcZkMjFlyhSmTJnCnXfeSU5ODkuWLMFut+P3+zvFnnTSSbz88sukpaXhcrm6Xebnn39Oa2srUVFRAHz66afExsaSnZ0d1m0Rkd6jyzQi0iPWrFnDvffey7p16yguLub111+nsrKSE044gcGDB7Np0ya2bt1KVVUVXq+Xyy67jJSUFGbNmsWqVasoKiqisLCQ//zP/2Tv3r0dy/V4PMydO5ctW7bwzjvvsGjRIubPn6/7RUSOIzozIiI9wuVysXLlSh555BEaGhrIycnh4Ycf5txzz2XixIkUFhYyceJEmpqaWL58OWeddRYrV67klltu4eKLL6axsZEBAwYwderUTmdKpk6dSl5eHmeccQZut5tLL72U3/72t5HbUBHpcSbDMIxIFyEi0pWrrrqKuro63njjjUiXIiJhpPOcIiIiElFqRkRERCSidJlGREREIkpnRkRERCSi1IyIiIhIRKkZERERkYhSMyIiIiIRpWZEREREIkrNiIiIiESUmhERERGJKDUjIiIiElFqRkRERCSi/n9SFRFjxgqckQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for (g, group) in res.env.dropna().groupby(\"params_id\"):\n",
" params = res.parameters.query(f'params_id == \"{g}\"').iloc[0]\n",
" title = f\"{params.generator.rstrip('_graph')} {params.prob_neighbor_spread}\"\n",
" prob = group.groupby(by=[\"step\"]).prob_neighbor_spread.mean()\n",
" line = \"-\"\n",
" if \"barabasi\" in params.generator:\n",
" line = \"--\"\n",
" prob.rename(title).fillna(0).plot(linestyle=line)\n",
"plt.title(\"Mean probability for each configuration\")\n",
"plt.legend();"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"hideCode": false,
"hidePrompt": false
},
"outputs": [
{
"data": {
"image/png": "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S9WrVyctLc3yJKSocmvXruXKlStFPh0p6DP29vbGxcUFk8lUbD1VqlThyJEjKIpida6CPsuCeHh4kJycnG97QU+y1Go17du3p3379kRGRjJlyhTeffddNm3aRGhoKNWrV+fQoUO0b9/+tpJSnU5H165d6dq1K2azmddff50vvviC999/P9+TNyFsSZpphCihdu3a0bx5c2bPnk1WVhZw48lA3icBu3fvZufOnVbHOjo6AhR4s7pZ586dAfJNmX79W3KXLl0KPdbf35/GjRuzcOFCq7qOHDnCunXrLOe+Fzz77LPs3LmTtWvX5tuXnJyM0WgEoGfPniiKYpk0Lq+8n7uTk1O+z1ej0dCzZ09++eUXjhw5ku/4S5cuWX7u3LkzFy9eZNmyZZZtGRkZfPnllyW6nurVq5OSksI///xj2RYbG5tv9NOVK1fyHdu4cWMAy7DdZ599lgsXLvDVV1/lK5uZmVmiprbExESr92q12vIUqKTDlYW4W+TJiBClMHr0aHr16sWCBQsIDw/nySef5Ndff6VHjx506dKFc+fOMW/ePOrWrUtaWprlOAcHB+rWrcvPP/9MrVq18PT0pH79+tSvXz9fHY0aNeLll1/myy+/JDk5mbZt27Jnzx4WLlxI9+7deeyxx4qMcfr06XTq1IlWrVoxYMAAy9BeNzc3y9wm94LRo0ezYsUKnnzySfr160dISAjp6ekcPnyYZcuWER0dTYUKFXjsscfo06cPn3zyCadOnaJjx46YzWb++usvHnvsMYYOHQpASEgIGzZsIDIykooVK1K1alVatGjB1KlT2bRpEy1atGDQoEHUrVuXK1eusH//fjZs2GBJDgYNGsSnn35K37592bdvH/7+/nz33XeWRLI4zz//PGPGjKFHjx688cYbZGRk8H//93/UqlXLqjPzxIkT2bp1K126dKFKlSokJCTw+eefU6lSJR5++GEA+vTpw5IlSwgPD2fTpk20adMGk8nEiRMnWLJkCWvXrrU0IRZm4MCBXLlyhccff5xKlSpx/vx55s6dS+PGja2euAlxT7DhSB4h7knXh/b+/fff+faZTCalevXqSvXq1RWj0aiYzWZlypQpSpUqVRS9Xq889NBDyv/+978Ch3nu2LFDCQkJUXQ6ndUw35uHfiqKouTk5CgffvihUrVqVUWr1SqBgYHKuHHjlKysrBJdw4YN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DMLDw5kzZ84tca7BbZKMhISE4Ofnx6ZNm4zP5eTksGfPHqKioircR6PREBERYbKPwWBg06ZNZvexlrJEJDExkY0bN+Ll5VXtMvLy8khKSsLf378Walhzzp07x6VLl8zWsyEdtzJfffUVERERhIeHV3tfax03RVEYP348K1eu5I8//iAkJMRke0REBHZ2dibHISEhgdTUVLPH4WbO09pQWdvK6tWvXz80Gg2rV6+utEerIpW9l2tDVdp2o/j4eACz9WxIx63MV199xYMPPoiPj0+1X8cax60iBoOB4uLiBn2umbDKbbO1IDc3Vzl48KBy8OBBBVBmzZqlHDx40Dii5L333lM8PDyUn3/+WTl8+LASGxurhISEKIWFhcYy+vTpo3z66afGx99//71ib2+vLFy4UPnrr7+Up556SvHw8FAyMjLqTdu0Wq3y4IMPKs2aNVPi4+OV9PR0409xcbHZtj3//PNKXFyckpycrOzYsUOJjo5WvL29laysrHrTttzcXOWFF15Qdu3apSQnJysbN25UunTpooSGhipFRUVm29YQjluZ7OxsxcnJSfniiy8qLKO+Hrenn35acXd3V+Li4kzecwUFBcaYsWPHKoGBgcoff/yh7Nu3T4mKilKioqJMymndurWyYsUK4+OqnKfWblt2drYSGRmphIWFKadOnTKJKSkpqbBtVX0vW7ttp06dUt5++21l3759SnJysvLzzz8rzZs3V3r16mVSTkM8bmUSExMVlUqlrFu3rsJy6uNxmzJlirJlyxYlOTlZOXz4sDJlyhRFpVIp69evVxSl4Z5r17tlkpHNmzcrQLmfkSNHKopSOpTp9ddfV3x9fRV7e3ulb9++SkJCgkkZQUFByrRp00ye+/TTT5XAwEBFo9Eo3bt3V3bv3l1HLbrGUtuSk5Mr3AYomzdvNpZxY9uGDh2q+Pv7KxqNRmnatKkydOhQ5dSpU/WqbQUFBUq/fv0UHx8fxc7OTgkKClKefPLJcklFQzxuZf773/8qjo6OytWrVysso74eN3PvuQULFhhjCgsLlWeeeUZp1KiR4uTkpDz00ENKenp6uXKu36cq52ltq6xt5o4roCQnJ1fYtqq+l63dttTUVKVXr16Kp6enYm9vr7Rs2VJ58cUXlezs7HLlNLTjVmbq1KlKQECAotfrzZZT347bE088oQQFBSkajUbx8fFR+vbta0xEFKXhnmvXUymKovzt7hUhhBBCiJt0W9wzIoQQQoj6S5IRIYQQQliVJCNCCCGEsCpJRoQQQghhVZKMCCGEEMKqJBkRQgghhFVJMiKEEEIIq5JkRAghhBBWJcmIEKLWjRo1ikGDBlm7GkKIekqSESGEEEJYlSQjQoga8+OPPxIWFoajoyNeXl5ER0fz4osvsmjRIn7++WdUKhUqlYq4uDgAzp49yz//+U88PDzw9PQkNjaWlJQUY3llPSpvvfUWPj4+uLm5MXbsWLRarXUaKISoFbbWroAQ4taQnp7OsGHD+OCDD3jooYfIzc1l27ZtjBgxgtTUVHJycliwYAEAnp6e6HQ6YmJiiIqKYtu2bdja2vLOO+/Qv39/Dh8+jEajAWDTpk04ODgQFxdHSkoKjz/+OF5eXvznP/+xZnOFEDVIkhEhRI1IT0+npKSEhx9+mKCgIADCwsIAcHR0pLi4GD8/P2P84sWLMRgMzJ8/H5VKBcCCBQvw8PAgLi6Ofv36AaDRaPj6669xcnKiffv2vP3227z44otMnz4dtVo6d4W4FciZLISoEeHh4fTt25ewsDCGDBnCl19+yZUrV8zGHzp0iFOnTuHq6oqLiwsuLi54enpSVFREUlKSSblOTk7Gx1FRUeTl5XH27NlabY8Qou5Iz4gQokbY2NiwYcMGdu7cyfr16/n000959dVX2bNnT4XxeXl5REREsGTJknLbfHx8aru6Qoh6RJIRIUSNUalU9OzZk549e/LGG28QFBTEypUr0Wg06PV6k9guXbrwww8/0LhxY9zc3MyWeejQIQoLC3F0dARg9+7duLi4EBAQUKttEULUHblMI4SoEXv27OHdd99l3759pKamsmLFCi5cuEDbtm0JDg7m8OHDJCQkcPHiRXQ6HY8++ije3t7Exsaybds2kpOTiYuL49lnn+XcuXPGcrVaLaNHj+avv/5i7dq1TJs2jfHjx8v9IkLcQqRnRAhRI9zc3Ni6dSuzZ88mJyeHoKAgZs6cyYABA+jatStxcXF07dqVvLw8Nm/eTO/evdm6dSsvv/wyDz/8MLm5uTRt2pS+ffua9JT07duX0NBQevXqRXFxMcOGDePNN9+0XkOFEDVOpSiKYu1KCCFERUaNGsXVq1dZtWqVtasihKhF0s8phBBCCKuSZEQIIYQQViWXaYQQQghhVdIzIoQQQgirkmRECCGEEFYlyYgQQgghrEqSESGEEEJYlSQjQgghhLAqSUaEEEIIYVWSjAghhBDCqiQZEUIIIYRVSTIihBBCCKv6f+tVuyfIZ9QsAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"for (g, group) in res.agents.dropna().groupby(\"params_id\"):\n",
" params = res.parameters.query(f'params_id == \"{g}\"').iloc[0]\n",
" title = f\"{params.generator.rstrip('_graph')} {params.prob_neighbor_spread}\"\n",
" counts = group.groupby(by=[\"step\", \"state_id\"]).value_counts().unstack()\n",
" line = \"-\"\n",
" if \"barabasi\" in params.generator:\n",
" line = \"--\"\n",
" (counts.infected/counts.sum(axis=1)).rename(title).fillna(0).plot(linestyle=line)\n",
"plt.legend()\n",
"plt.xlim([9, None]);\n",
"plt.title(\"Ratio of infected users\");"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Data format"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Parameters\n",
"\n",
"The `parameters` dataframe has three keys:\n",
"\n",
"* The identifier of the simulation. This will be shared by all iterations launched in the same run\n",
"* The identifier of the parameters used in the simulation. This will be shared by all iterations that have the exact same set of parameters.\n",
"* The identifier of the iteration. Each row should have a different iteration identifier\n",
"\n",
"There will be a column per each parameter passed to the environment. In this case, that's three: **generator**, **n** and **prob_neighbor_spread**."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>key</th>\n",
" <th>generator</th>\n",
" <th>n</th>\n",
" <th>prob_neighbor_spread</th>\n",
" </tr>\n",
" <tr>\n",
" <th>iteration_id</th>\n",
" <th>params_id</th>\n",
" <th>simulation_id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">0</th>\n",
" <th>39063f8</th>\n",
" <th>newspread_1712849444.2514122</th>\n",
" <td>erdos_renyi_graph</td>\n",
" <td>100</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8f26adb</th>\n",
" <th>newspread_1712849444.2514122</th>\n",
" <td>barabasi_albert_graph</td>\n",
" <td>100</td>\n",
" <td>0.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>92fdcb9</th>\n",
" <th>newspread_1712849444.2514122</th>\n",
" <td>erdos_renyi_graph</td>\n",
" <td>100</td>\n",
" <td>0.25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>cb3dbca</th>\n",
" <th>newspread_1712849444.2514122</th>\n",
" <td>erdos_renyi_graph</td>\n",
" <td>100</td>\n",
" <td>0.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>d1fe9c1</th>\n",
" <th>newspread_1712849444.2514122</th>\n",
" <td>barabasi_albert_graph</td>\n",
" <td>100</td>\n",
" <td>1.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"key generator \\\n",
"iteration_id params_id simulation_id \n",
"0 39063f8 newspread_1712849444.2514122 erdos_renyi_graph \n",
" 8f26adb newspread_1712849444.2514122 barabasi_albert_graph \n",
" 92fdcb9 newspread_1712849444.2514122 erdos_renyi_graph \n",
" cb3dbca newspread_1712849444.2514122 erdos_renyi_graph \n",
" d1fe9c1 newspread_1712849444.2514122 barabasi_albert_graph \n",
"\n",
"key n prob_neighbor_spread \n",
"iteration_id params_id simulation_id \n",
"0 39063f8 newspread_1712849444.2514122 100 1.0 \n",
" 8f26adb newspread_1712849444.2514122 100 0.5 \n",
" 92fdcb9 newspread_1712849444.2514122 100 0.25 \n",
" cb3dbca newspread_1712849444.2514122 100 0.5 \n",
" d1fe9c1 newspread_1712849444.2514122 100 1.0 "
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.parameters.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Configuration\n",
"\n",
"This dataset is indexed by the identifier of the simulation, and there will be a column per each attribute of the simulation.\n",
"For instance, there is one for the number of processes used, another one for the path where the results were stored, etc."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>index</th>\n",
" <th>version</th>\n",
" <th>source_file</th>\n",
" <th>name</th>\n",
" <th>description</th>\n",
" <th>group</th>\n",
" <th>backup</th>\n",
" <th>overwrite</th>\n",
" <th>dry_run</th>\n",
" <th>dump</th>\n",
" <th>...</th>\n",
" <th>num_processes</th>\n",
" <th>exporters</th>\n",
" <th>model_reporters</th>\n",
" <th>agent_reporters</th>\n",
" <th>tables</th>\n",
" <th>outdir</th>\n",
" <th>exporter_params</th>\n",
" <th>level</th>\n",
" <th>skip_test</th>\n",
" <th>debug</th>\n",
" </tr>\n",
" <tr>\n",
" <th>simulation_id</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>newspread_1712849444.2514122</th>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>None</td>\n",
" <td>newspread</td>\n",
" <td></td>\n",
" <td>None</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>False</td>\n",
" <td>True</td>\n",
" <td>...</td>\n",
" <td>1</td>\n",
" <td>[\"&lt;class 'soil.exporters.default'&gt;\"]</td>\n",
" <td>{}</td>\n",
" <td>{}</td>\n",
" <td>{}</td>\n",
" <td>/media/j/JsTickData/git/gsi-upm/soil/docs/tuto...</td>\n",
" <td>{}</td>\n",
" <td>30</td>\n",
" <td>False</td>\n",
" <td>False</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1 rows × 28 columns</p>\n",
"</div>"
],
"text/plain": [
" index version source_file name \\\n",
"simulation_id \n",
"newspread_1712849444.2514122 0 2 None newspread \n",
"\n",
" description group backup overwrite dry_run dump \\\n",
"simulation_id \n",
"newspread_1712849444.2514122 None False True False True \n",
"\n",
" ... num_processes \\\n",
"simulation_id ... \n",
"newspread_1712849444.2514122 ... 1 \n",
"\n",
" exporters \\\n",
"simulation_id \n",
"newspread_1712849444.2514122 [\"<class 'soil.exporters.default'>\"] \n",
"\n",
" model_reporters agent_reporters tables \\\n",
"simulation_id \n",
"newspread_1712849444.2514122 {} {} {} \n",
"\n",
" outdir \\\n",
"simulation_id \n",
"newspread_1712849444.2514122 /media/j/JsTickData/git/gsi-upm/soil/docs/tuto... \n",
"\n",
" exporter_params level skip_test debug \n",
"simulation_id \n",
"newspread_1712849444.2514122 {} 30 False False \n",
"\n",
"[1 rows x 28 columns]"
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.config.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Model reporters\n",
"\n",
"The `env` dataframe includes the data collected from the model.\n",
"The keys in this case are the same as `parameters`, and an additional one: **step**."
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>agent_count</th>\n",
" <th>time</th>\n",
" <th>prob_tv_spread</th>\n",
" <th>prob_neighbor_spread</th>\n",
" </tr>\n",
" <tr>\n",
" <th>simulation_id</th>\n",
" <th>params_id</th>\n",
" <th>iteration_id</th>\n",
" <th>step</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">newspread_1712849444.2514122</th>\n",
" <th rowspan=\"5\" valign=\"top\">ff1d24a</th>\n",
" <th rowspan=\"5\" valign=\"top\">0</th>\n",
" <th>0</th>\n",
" <td>101</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>101</td>\n",
" <td>1.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>101</td>\n",
" <td>2.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>101</td>\n",
" <td>3.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>101</td>\n",
" <td>4.0</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" agent_count time \\\n",
"simulation_id params_id iteration_id step \n",
"newspread_1712849444.2514122 ff1d24a 0 0 101 0.0 \n",
" 1 101 1.0 \n",
" 2 101 2.0 \n",
" 3 101 3.0 \n",
" 4 101 4.0 \n",
"\n",
" prob_tv_spread \\\n",
"simulation_id params_id iteration_id step \n",
"newspread_1712849444.2514122 ff1d24a 0 0 0.0 \n",
" 1 0.0 \n",
" 2 0.0 \n",
" 3 0.0 \n",
" 4 0.0 \n",
"\n",
" prob_neighbor_spread \n",
"simulation_id params_id iteration_id step \n",
"newspread_1712849444.2514122 ff1d24a 0 0 0.0 \n",
" 1 0.0 \n",
" 2 0.0 \n",
" 3 0.0 \n",
" 4 0.0 "
]
},
"execution_count": 51,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.env.head()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Agent reporters\n",
"\n",
"This dataframe reflects the data collected for all the agents in the simulation, in every step where data collection was invoked.\n",
"\n",
"The key in this dataframe is similar to the one in the `parameters` dataframe, but there will be two more keys: the `step` and the `agent_id`.\n",
"There will be a column per each agent reporter added to the model. In our case, there is only one: `state_id`."
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>state_id</th>\n",
" </tr>\n",
" <tr>\n",
" <th>simulation_id</th>\n",
" <th>params_id</th>\n",
" <th>iteration_id</th>\n",
" <th>step</th>\n",
" <th>agent_id</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"5\" valign=\"top\">newspread_1712849444.2514122</th>\n",
" <th rowspan=\"5\" valign=\"top\">ff1d24a</th>\n",
" <th rowspan=\"5\" valign=\"top\">0</th>\n",
" <th rowspan=\"5\" valign=\"top\">0</th>\n",
" <th>0</th>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>neutral</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>neutral</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>neutral</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>neutral</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" state_id\n",
"simulation_id params_id iteration_id step agent_id \n",
"newspread_1712849444.2514122 ff1d24a 0 0 0 None\n",
" 1 neutral\n",
" 2 neutral\n",
" 3 neutral\n",
" 4 neutral"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res.agents.head()"
]
}
],
"metadata": {
"hide_code_all_hidden": false,
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.12"
},
"toc": {
"colors": {
"hover_highlight": "#DAA520",
"navigate_num": "#000000",
"navigate_text": "#333333",
"running_highlight": "#FF0000",
"selected_highlight": "#FFD700",
"sidebar_border": "#EEEEEE",
"wrapper_background": "#FFFFFF"
},
"moveMenuLeft": true,
"nav_menu": {
"height": "31px",
"width": "252px"
},
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 4,
"toc_cell": false,
"toc_position": {
"height": "867px",
"left": "0px",
"right": "1670px",
"top": "106px",
"width": "250px"
},
"toc_section_display": "block",
"toc_window_display": false,
"widenNotebook": false
},
"vscode": {
"interpreter": {
"hash": "3581132406f7320837865a422f37590c78ed7dabfbcb5bc7771b9d116b13a5cf"
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}