ok dokey, performance ist ein wenig besser

This commit is contained in:
2023-06-27 09:17:14 +02:00
parent 5514f3f1d9
commit b7dc7b99d1
15 changed files with 81 additions and 30 deletions

View File

@@ -61,10 +61,15 @@ class Simulation():
"""
keys=list(self.tick_funcs.keys())
random.shuffle(keys)
tasks=[]
for k in keys:
fun=self.tick_funcs[k]
fun(self.tick_count,self.episode_count)
self.taskpool.map(self._execute_tick,tasks)
def _execute_tick(args):
fun=args[0]
fun(args[1],args[2])
def tick(self,episode_length):
"""
@@ -83,13 +88,15 @@ class Simulation():
busstep=time.time()
self.tick_count+=1
self.log_cxs_tick(episode_length)
self.log_business_tick(episode_length)
#self.log_business_tick(episode_length)
logstep=time.time()
self.timings["dss"]+=setup-start
self.timings["dsa"]+=agentstep-setup
self.timings["dsap"]=self.timings["dsa"]/(len(self.tick_funcs)+1)
self.timings["dab"]+=busstep-agentstep
self.timings["dbl"]+=logstep-busstep
self.timings["dt"]+=logstep-start
@@ -98,13 +105,23 @@ class Simulation():
Resets all agents to new Episode
"""
self.log_cxs_episode()
self.log_business_episode()
for k,v in self.reset_funcs.items():
v(self.episode_count)
for cell_id,cell in self.cells.items():
cell.setup_supply_for_episode()
toclose=[]
for b in self.businesses:
b.tick_episode(self.episode_count)
if b.balance<=0:
self.remove_business(b.id)
toclose.append(b.id)
for close in toclose:
self.remove_business(close)
self.timings["numBus"]=len(self.businesses)
self.timings["tickfuncs"]=len(self.tick_funcs)
self.timings["episode"]=self.episode_count
log.PerformanceData.append(self.timings.copy())
self.setup_timing(["dss","dsa","dsap","dab","dbl","dt"])
self.tick_count=0
self.episode_count+=1
@@ -239,7 +256,10 @@ class Simulation():
def log_business_tick(self,episode_length):
for bus in self.businesses:
bus.log(self.episode_count,episode_length,self.tick_count)
def log_business_episode(self):
for bus in self.businesses:
bus.log(self.episode_count,1,0)
def setup_timing(self,metrics):
for met in metrics:
self.timings[met]=0