def __init__(self): for i in xrange(Parameters.simulations): if Parameters.printStatsGlobal: print 'Simulation no. %d' % (i + 1) sim = globals()[Parameters.algorithm]() monitorsHolder = MonitorsHolder() stepsMonitor = None for monitor in Parameters.monitors: monitorObj = globals()[monitor](sim._simLogic.getAgentStatsClass()) monitorsHolder.registerMonitor(monitorObj) if monitor == "AgentStepsCountMonitor": stepsMonitor = monitorObj if Parameters.agentSteps is not None and stepsMonitor is None: stepsMonitor = AgentStepsCountMonitor() monitorsHolder.registerMonitor(stepsMonitor) if Parameters.agentSteps is None: stepsMonitor = None sim.setMonitorsHolder(monitorsHolder) actionMonitorsHolder = ActionMonitorsHolder() for monitor in Parameters.actionMonitors: monitorObj = globals()[monitor]() actionMonitorsHolder.registerMonitor(monitorObj) sim.setActionMonitorsHolder(actionMonitorsHolder) sim.runSimulation(stepsMonitor) if Parameters.printStatsGlobal: monitorsHolder.printAgregatedValues() print actionMonitorsHolder.printAgregatedValues() print print