nsaunier/traffic-intelligence
modif for plotting nserved
Commit 3bfdb2ffd29d · Nicolas Saunier · 2024-04-09 15:21 -0400
Comments
No comments yet.
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)