changeset 1259:3bfdb2ffd29d

modif for plotting nserved
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 09 Apr 2024 15:21:55 -0400
parents e59a0a475a0a
children 158eee1aeb21
files trafficintelligence/traffic_engineering.py
diffstat 1 files changed, 10 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/trafficintelligence/traffic_engineering.py	Wed Apr 03 16:39:41 2024 -0400
+++ b/trafficintelligence/traffic_engineering.py	Tue Apr 09 15:21:55 2024 -0400
@@ -90,19 +90,25 @@
         return self.reductionDuration*(1-self.beta)/(1-self.demandCapacityRatio)
 
     def nArrived(self, t):
-        if self.demand is None:
+        '''since the beginning of the capacity reduction'''
+        if self.demand is None or t<0:
             print('Missing demand field')
             return None
         return self.demand*t
 
     def nServed(self, t):
-        if self.capacity is None:
+        '''since the beginning of the capacity reduction'''
+        if self.capacity is None or t<0:
             print('Missing capacity field')
             return None
         if 0<=t<=self.reductionDuration:
             return self.beta*self.capacity*t
-        elif self.reductionDuration < t <= self.queueingDuration():
-            return self.beta*self.capacity*self.reductionDuration+self.capacity*(t-self.reductionDuration)
+        elif self.reductionDuration < t:
+            qDuration = self.queueingDuration()
+            if t <= qDuration:
+                return self.beta*self.capacity*self.reductionDuration+self.capacity*(t-self.reductionDuration)
+            else:
+                return self.beta*self.capacity*self.reductionDuration+self.capacity*(qDuration-self.reductionDuration)+self.demand*(t-qDuration)
 
     def nQueued(self, t):
         return self.nArrived(t)-self.nServed(t)