Skip to content

Commit

Permalink
🐛 stochastic models SI probability computation
Browse files Browse the repository at this point in the history
  • Loading branch information
GiulioRossetti committed May 10, 2019
1 parent d031ee3 commit f80b144
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 10 deletions.
5 changes: 3 additions & 2 deletions ndlib/models/epidemics/SEIRModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,9 @@ def iteration(self, node_status=True):
neighbors = self.graph.predecessors(u)

if u_status == 0: # Susceptible
infected_neighbors = len([v for v in neighbors if self.status[v] == 2 or self.status[v] == 1])
if eventp < self.params['model']['beta'] * infected_neighbors:
triggered = 1 if len([v for v in neighbors if self.status[v] == 1]) > 0 else 0

if eventp < self.params['model']['beta'] * triggered:
actual_status[u] = 2 # Exposed
self.progress[u] = 0

Expand Down
5 changes: 3 additions & 2 deletions ndlib/models/epidemics/SEISModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,9 @@ def iteration(self, node_status=True):
neighbors = self.graph.predecessors(u)

if u_status == 0: # Susceptible
infected_neighbors = len([v for v in neighbors if self.status[v] == 2 or self.status[v] == 1])
if eventp < self.params['model']['beta'] * infected_neighbors:
triggered = 1 if len([v for v in neighbors if self.status[v] == 1]) > 0 else 0

if eventp < self.params['model']['beta'] * triggered:
actual_status[u] = 2 # Exposed
self.progress[u] = 0

Expand Down
5 changes: 3 additions & 2 deletions ndlib/models/epidemics/SIModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,9 @@ def iteration(self, node_status=True):
neighbors = self.graph.predecessors(u)

if u_status == 0:
infected_neighbors = len([v for v in neighbors if self.status[v] == 1])
if eventp < self.params['model']['beta'] * infected_neighbors:
triggered = 1 if len([v for v in neighbors if self.status[v] == 1]) > 0 else 0

if eventp < self.params['model']['beta'] * triggered:
actual_status[u] = 1

delta, node_count, status_delta = self.status_delta(actual_status)
Expand Down
5 changes: 3 additions & 2 deletions ndlib/models/epidemics/SIRModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,9 @@ def iteration(self, node_status=True):
neighbors = self.graph.predecessors(u)

if u_status == 0:
infected_neighbors = len([v for v in neighbors if self.status[v] == 1])
if eventp < self.params['model']['beta'] * infected_neighbors:
triggered = 1 if len([v for v in neighbors if self.status[v] == 1]) > 0 else 0

if eventp < self.params['model']['beta'] * triggered:
actual_status[u] = 1
elif u_status == 1:
if eventp < self.params['model']['gamma']:
Expand Down
5 changes: 3 additions & 2 deletions ndlib/models/epidemics/SISModel.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@ def iteration(self, node_status=True):
neighbors = self.graph.predecessors(u)

if u_status == 0:
infected_neighbors = len([v for v in neighbors if self.status[v] == 1])
if eventp < self.params['model']['beta'] * infected_neighbors:
triggered = 1 if len([v for v in neighbors if self.status[v] == 1]) > 0 else 0

if eventp < self.params['model']['beta'] * triggered:
actual_status[u] = 1
elif u_status == 1:
if eventp < self.params['model']['lambda']:
Expand Down

0 comments on commit f80b144

Please sign in to comment.