def resume(self, fname=None): '''Resume a run from stored data. This is an alternative to self.prep. If fname isn't specified it defaults to self.attrib("File").''' self.initialize_vars() if not fname: fname=self.attrib("File") if not ast.verify(fname, self._storesize): self.report("can't resume. %s is not an appropriate storage file" % fname) self.prep() return self._store=ast.ArrayStore(fname, 'w') self._nunits = len(self._store) fit=self._store.getColumn(0) if self.attrib('Maximize'): bid=argmin(fit) else: bid=argmin(fit) self._best=(fit[bid], bid) self.report("Resume complete. %i units. Best %.4f, Mean %.4f" % (self._nunits, self._best[0], self.fit.mean())) self.setAttrib('File', fname)
def getChrom(self, id=None): if not id: l=self.askParam([{ "Name":"Mode", "Type":"List", "Value":["Ordinal", "Index", "Fitness"] },{ "Name":"Value", "Value":0.0 } ]) if not l: return fit=self.ast.getColumn(0) if l[0].startswith("I"): id=int(l[1]) elif l[0].startswith("O"): id=argsort(fit)[int(l[1])] else: id=argmin(abs(fit-l[1])) self.report("Selected Unit %i (fitness %.4f)" % (id, fit[id])) return self.ast[id]