From 364781e56992eab2e19f3055143664e938b95a98 Mon Sep 17 00:00:00 2001 From: Matteo Date: Tue, 12 Jul 2022 18:56:37 +0200 Subject: [PATCH] Improve Switch implementation --- er/model/network.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/er/model/network.py b/er/model/network.py index f503864..45dba12 100644 --- a/er/model/network.py +++ b/er/model/network.py @@ -154,9 +154,12 @@ def open(self, source, time): if interval < 0: raise Exception("Switch has no memory of previous time!") + p_switch = (1 - np.exp(-2 * interval / self.timescale)) / 2 + + if np.random.rand() <= p_switch: + self.status = (self.status + 1) % 2 + self.time = time - self.status = ( - self.status + np.random.poisson(interval / self.timescale)) % 2 return not (source == self.source) ^ (self.status) # xnor