mirror of
https://github.com/gsi-upm/soil
synced 2025-08-23 19:52:19 +00:00
test
This commit is contained in:
@@ -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)
|
@@ -1,2 +1 @@
|
||||
from .ControlModelM2 import ControlModelM2
|
||||
from .SpreadModelM2 import SpreadModelM2
|
@@ -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)
|
1
models/SpreadModelM2/__init__.py
Normal file
1
models/SpreadModelM2/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from .SpreadModelM2 import SpreadModelM2
|
@@ -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 *
|
||||
|
Reference in New Issue
Block a user