00001 #include "restart.h" 00002 00003 using namespace realea; 00004 00005 void RestartBest::apply(PopulationReal *pop_alg, Problem *problem, IEvalInd *initeval) { 00006 pop_alg->reset(problem->getDomain(),pop_alg->getBest()); 00007 pop_alg->eval(initeval); 00008 } 00009 00010 RestartReduce::RestartReduce(double scale) : RestartBest() { 00011 m_scale = scale; 00012 } 00013 00014 void RestartReduce::apply(PopulationReal *pop_alg, Problem *problem, IEvalInd *initeval) { 00015 DomainRealPtr domain = problem->getDomain(); 00016 tIndividualReal *best = pop_alg->getInd(pop_alg->getBest()); 00017 domain->setDomainCenter(best->sol(), m_scale); 00018 00019 RestartBest::apply(pop_alg, problem, initeval); 00020 } 00021