Initial commit
This commit is contained in:
commit
66a6860316
407 changed files with 1254365 additions and 0 deletions
53
models/seq_poly/model.py
Normal file
53
models/seq_poly/model.py
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
import sys
|
||||
sys.path.append("../../src/")
|
||||
from DEVS import *
|
||||
|
||||
import random
|
||||
|
||||
class Generator(AtomicDEVS):
|
||||
def __init__(self, num, ta):
|
||||
AtomicDEVS.__init__(self, "Generator" + str(num))
|
||||
self.state = None
|
||||
self.ta = ta
|
||||
|
||||
def timeAdvance(self):
|
||||
return self.ta
|
||||
|
||||
class StaticModel(CoupledDEVS):
|
||||
def __init__(self, size, actives):
|
||||
CoupledDEVS.__init__(self, "Root")
|
||||
random.seed(1)
|
||||
tas = [round(random.random(), 3) for _ in range(int(size/actives+1))]
|
||||
ta_counter = 0
|
||||
for i in range(size):
|
||||
self.addSubModel(Generator(i, tas[0]))
|
||||
if ta_counter >= actives:
|
||||
ta_counter = 0
|
||||
tas.pop(0)
|
||||
else:
|
||||
ta_counter += 1
|
||||
|
||||
class DynamicGenerator(AtomicDEVS):
|
||||
def __init__(self, num, nexttype):
|
||||
AtomicDEVS.__init__(self, "Generator" + str(num))
|
||||
self.state = (nexttype, True, round(random.uniform(4.00, 6.00), 4))
|
||||
self.nexttype = nexttype
|
||||
|
||||
def intTransition(self):
|
||||
if self.state[0] - self.timeAdvance() <= 0:
|
||||
return (self.nexttype, not self.state[1], self.state[2])
|
||||
else:
|
||||
return (self.state[0] - self.timeAdvance(), self.state[1], self.state[2])
|
||||
|
||||
def timeAdvance(self):
|
||||
if self.state[1]:
|
||||
return min(1.0, self.state[0])
|
||||
else:
|
||||
return min(self.state[2], self.state[0])
|
||||
|
||||
class DynamicModel(CoupledDEVS):
|
||||
def __init__(self, size):
|
||||
CoupledDEVS.__init__(self, "Root")
|
||||
random.seed(1)
|
||||
for i in range(size):
|
||||
self.addSubModel(DynamicGenerator(i, 2000))
|
||||
Loading…
Add table
Add a link
Reference in a new issue