00001
00020 #include "problemcec2005.h"
00021 #include "cec2005/cec2005.h"
00022
00023
00024 ProblemCEC2005::ProblemCEC2005(Random *random, unsigned int dim) {
00025 m_random = random;
00026 m_ndim = dim;
00027 m_init = false;
00028 }
00029
00030 ProblemCEC2005::~ProblemCEC2005(void) {
00031 if (m_init) {
00032 finish_cec2005();
00033 }
00034 }
00035
00036
00037 void ProblemCEC2005::init(unsigned int fun) {
00038 if (m_init) {
00039 finish_cec2005();
00040 m_init = false;
00041 }
00042
00043 init_cec2005(m_random,nun, m_ndim);
00044 m_init = true;
00045
00046
00047 }
00048
00049
00050 ConfigProblem *ProblemCEC2005::get(unsigned int fun) {
00051 string name;
00052 double min, max, optime;
00053
00054
00055 init(fun);
00056 getInfo_cec2005(fun, name, min, max, optime);
00057
00058 ConfigProblem* prob = new ConfigProblem();
00059 prob->setDimension(m_ndim);
00060
00061 for (unsigned i = 0; i < m_ndim; ++i) {
00062 prob->setDomainValues(i, min, max, true);
00063 }
00064
00065
00066 prob->setOptimize(minimize, optime);
00067 prob->setUmbral(1e-8);
00068
00069
00070 prob->setEval(eval_cec2005);
00071 return prob;
00072 }