Beispiel #1
0
 def __call__(self):
     t0 = time.time()
     args = self.args
     names_bounds = yield self.ev.setup().addErrback(oops)
     self.p = Population(self.evaluate,
                         names_bounds[0],
                         names_bounds[1],
                         popsize=args.p)
     yield self.p.setup().addErrback(oops)
     reporter = Reporter(self.ev, self.p)
     self.p.addCallback(reporter)
     F = [float(x) for x in args.F.split(',')]
     de = DifferentialEvolution(self.p,
                                CR=args.C,
                                F=F,
                                maxiter=args.m,
                                randomBase=not args.b,
                                uniform=args.u,
                                adaptive=not args.n,
                                bitterEnd=args.e,
                                logHandle=self.fh)
     yield de()
     yield self.shutdown()
     msg(0, "Final population:\n{}", self.p)
     msg(0, "Elapsed time: {:.2f} seconds", time.time() - t0, 0)
     msg(None)
     reactor.stop()
Beispiel #2
0
 def setUp(self):
     abort.restart()
     from asynqueue.util import DeferredTracker
     self.dt = DeferredTracker()
     self.p = Population(self.fifthSecond, ["x"], [(-5, 5)])
     self.de = de.DifferentialEvolution(self.p, maxiter=35)
     self.de.fm = de.FManager(0.5, 0.5, self.p.Np, True)
     return self.p.setup()
Beispiel #3
0
 def makeDE(
         self, Np, Nd,
         slow=False, blank=False, randomBase=False, callback=None):
     def slowAckley(X):
         delay = np.random.sample()
         return self.deferToDelay(delay).addCallback(lambda _: tb.ackley(X))
     self.p = Population(
         slowAckley if slow else tb.ackley,
         [sub("x{:d}", k) for k in range(Nd)],
         [(-5, 5)]*Nd, popsize=Np/Nd)
     if callback: self.p.addCallback(callback)
     self.de = de.DifferentialEvolution(
         self.p, maxiter=35, randomBase=randomBase)
     yield self.p.setup(blank=blank)
     tb.evals_reset()