mirror of https://github.com/gsi-upm/soil
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.
30 lines
766 B
Python
30 lines
766 B
Python
from . import Agent, state, default_state
|
|
|
|
|
|
class IndependentCascadeModel(Agent):
|
|
"""
|
|
Settings:
|
|
innovation_prob
|
|
|
|
imitation_prob
|
|
"""
|
|
|
|
time_awareness = 0
|
|
sentimentCorrelation = 0
|
|
|
|
# Outside effects
|
|
@default_state
|
|
@state
|
|
def outside(self):
|
|
if self.prob(self.model.innovation_prob):
|
|
self.sentimentCorrelation = 1
|
|
self.time_awareness = self.model.now # To know when they have been infected
|
|
return self.imitate
|
|
|
|
@state
|
|
def imitate(self):
|
|
aware_neighbors = self.get_neighbors(state_id=1, time_awareness=self.now-1)
|
|
|
|
if self.prob(self.model.imitation_prob * len(aware_neighbors)):
|
|
self.sentimentCorrelation = 1
|
|
return self.outside |