class OptimizerMediator(DeviceMediatorInterface): """ Mediator for Particle Swarm Optimizer. Majority of functionality arises from function calls unique to this mediator and not the normal common calls. """ def __init__(self, dictionary): for (k, v) in dictionary.items(): setattr(self, k, v) self.optimizer = ParticleSwarmOptimizer(self.paramBounds, self.numOfParticles, self.numOfGenerations, self.fitnessEvalScript, self.phiG, self.phiP, self.w, self.alpha, self.minimization) def start(self): pass def stop(self): pass def save(self, pth): pass def processExpData(self, pth): pass def saveState(self, expPath): fPath = path.join(expPath, "OptimizerState.pkl") self.optimizer.saveState(fPath) def restoreState(self, expPath): fPath = path.join(expPath, "OptimizerState.pkl") if path.exists(fPath): self.optimizer.restoreState(fPath) # ----- Additional Functions def getParticle(self): deapPart = self.optimizer.getParticle() if deapPart: part = deapPart[:] else: part = deapPart self.part = part partString = pickle.dumps(part) return partString def evaluateParticle(self, expPath, trialPath): self.optimizer.evaluateParticle(expPath, trialPath) self.saveState(expPath) self.saveState(trialPath) def getBestParticle(self): return self.optimizer.best
def __init__(self, dictionary): for (k, v) in dictionary.items(): setattr(self, k, v) self.optimizer = ParticleSwarmOptimizer(self.paramBounds, self.numOfParticles, self.numOfGenerations, self.fitnessEvalScript, self.phiG, self.phiP, self.w, self.alpha, self.minimization)