modif for plotting nserved

Commit 3bfdb2ffd29d · Nicolas Saunier · 2024-04-09 15:21 -0400

Changeset
3bfdb2ffd29d418683da82778dc80a6b8694a490
Parents
1257:e59a0a475a0a

View source at this commit

Comments

No comments yet.

Log in to comment

Diff

diff --git a/trafficintelligence/traffic_engineering.py b/trafficintelligence/traffic_engineering.py
--- a/trafficintelligence/traffic_engineering.py
+++ b/trafficintelligence/traffic_engineering.py
@@ -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)