1
0
mirror of https://github.com/gsi-upm/soil synced 2025-08-23 19:52:19 +00:00
This commit is contained in:
Tasio Mendez
2017-06-21 13:26:22 +02:00
parent 764177c634
commit 1741a9a865
46 changed files with 81586 additions and 40942 deletions

View File

@@ -24,12 +24,12 @@ class ControlModelM2(BaseBehaviour):
"""
# Init infected
init_states[random.randint(0, settings.network_params["number_of_nodes"]-1)] = {'id': 1}
init_states[random.randint(0, settings.network_params["number_of_nodes"]-1)] = {'id': 1}
# init_states[random.randint(0, settings.network_params["number_of_nodes"]-1)] = {'id': 1}
# init_states[random.randint(0, settings.network_params["number_of_nodes"]-1)] = {'id': 1}
# Init beacons
init_states[random.randint(0, settings.network_params["number_of_nodes"]-1)] = {'id': 4}
init_states[random.randint(0, settings.network_params["number_of_nodes"]-1)] = {'id': 4}
# init_states[random.randint(0, settings.network_params["number_of_nodes"]-1)] = {'id': 4}
# init_states[random.randint(0, settings.network_params["number_of_nodes"]-1)] = {'id': 4}
def __init__(self, environment=None, agent_id=0, state=()):
super().__init__(environment=environment, agent_id=agent_id, state=state)

View File

@@ -1,2 +1 @@
from .ControlModelM2 import ControlModelM2
from .SpreadModelM2 import SpreadModelM2

View File

@@ -1,8 +1,8 @@
import settings
import random
import numpy as np
from ..BaseBehaviour import *
from .. import init_states
from models.BaseBehaviour import *
from models import init_states
class SpreadModelM2(BaseBehaviour):
@@ -22,14 +22,13 @@ class SpreadModelM2(BaseBehaviour):
prob_generate_anti_rumor
"""
init_states[random.randint(0, settings.network_params["number_of_nodes"])] = {'id': 1}
init_states[random.randint(0, settings.network_params["number_of_nodes"])] = {'id': 1}
for x in range(settings.environment_params['source']):
init_states[random.randint(0, settings.network_params["number_of_nodes"])] = {'id': 1}
def __init__(self, environment=None, agent_id=0, state=()):
super().__init__(environment=environment, agent_id=agent_id, state=state)
self.prob_neutral_making_denier = np.random.normal(environment.environment_params['prob_neutral_making_denier'],
self.prob_neutral_making_denier = np.random.normal(environment.environment_params['prob_neutral_making_denier']/settings.environment_params['source'],
environment.environment_params['standard_variance'])
self.prob_infect = np.random.normal(environment.environment_params['prob_infect'],
@@ -47,16 +46,17 @@ class SpreadModelM2(BaseBehaviour):
self.prob_generate_anti_rumor = np.random.normal(environment.environment_params['prob_generate_anti_rumor'],
environment.environment_params['standard_variance'])
def step(self, now):
if self.state['id'] == 0: # Neutral
self.neutral_behaviour()
elif self.state['id'] == 1: # Infected
self.infected_behaviour()
elif self.state['id'] == 2: # Cured
self.cured_behaviour()
elif self.state['id'] == 3: # Vaccinated
self.vaccinated_behaviour()
# elif self.state['id'] == 2: # Cured
# self.cured_behaviour()
# elif self.state['id'] == 3: # Vaccinated
# self.vaccinated_behaviour()
self.attrs['status'] = self.state['id']
super().step(now)
@@ -69,6 +69,12 @@ class SpreadModelM2(BaseBehaviour):
if random.random() < self.prob_neutral_making_denier:
self.state['id'] = 3 # Vaccinated making denier
# Generate anti-rumor
infected_neighbors_2 = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors_2:
if random.random() < self.prob_generate_anti_rumor:
neighbor.state['id'] = 2 # Cured
def infected_behaviour(self):
# Neutral
@@ -80,10 +86,10 @@ class SpreadModelM2(BaseBehaviour):
def cured_behaviour(self):
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
if random.random() < self.prob_cured_vaccinate_neutral:
neighbor.state['id'] = 3 # Vaccinated
# neutral_neighbors = self.get_neighboring_agents(state_id=0)
# for neighbor in neutral_neighbors:
# if random.random() < self.prob_cured_vaccinate_neutral:
# neighbor.state['id'] = 3 # Vaccinated
# Cure
infected_neighbors = self.get_neighboring_agents(state_id=1)

View File

@@ -0,0 +1 @@
from .SpreadModelM2 import SpreadModelM2

View File

@@ -3,6 +3,7 @@ from .BaseBehaviour import *
from .BassModel import *
from .BigMarketModel import *
from .IndependentCascadeModel import *
from .ModelM2 import *
from .ControlModelM2 import *
from .SpreadModelM2 import *
from .SentimentCorrelationModel import *
from .SISaModel import *