00001 00020 #include "hybrid.h" 00021 #include <cassert> 00022 00023 using namespace realea; 00024 using namespace realea::internal; 00025 00026 Hybrid::Hybrid(IEAlgorithm *alg, ILocalSearch *ls) : 00027 ProxyEA(alg), m_ls(ls), m_random(NULL) { 00028 m_intensity = 0; 00029 } 00030 00031 00035 void Hybrid::initLs(void) { 00036 if (!m_random) { 00037 m_random = m_alg->getRandom(); 00038 } 00039 00040 m_ls->setPopulation(m_alg->getPop()); 00041 m_ls->setProblem(m_problem); 00042 m_ls->setRunning(m_running); 00043 m_ls->setRandom(m_random); 00044 m_ls->setEval(m_eval); 00045 } 00046 00047 00048 void ProxyEA::setNewEval(IEval*eval) { 00049 m_alg->setNewEval(eval); 00050 m_eval = (IEvalInd *) new EvalRunning(eval, m_running); 00051 } 00052