Added an ownership function to eoState
This commit is contained in:
parent
b5222c8aa5
commit
00780d785a
1 changed files with 8 additions and 6 deletions
|
|
@ -34,7 +34,7 @@ using namespace std;
|
||||||
typedef double FitT;
|
typedef double FitT;
|
||||||
|
|
||||||
template <class EOT>
|
template <class EOT>
|
||||||
void runAlgorithm(EOT, eoParser& _parser, eoEsObjectiveBounds& _bounds);
|
void runAlgorithm(EOT, eoParser& _parser, eoState& _state, eoEsObjectiveBounds& _bounds);
|
||||||
|
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
|
@ -68,15 +68,15 @@ main(int argc, char *argv[])
|
||||||
// Run the appropriate algorithm
|
// Run the appropriate algorithm
|
||||||
if (stdevs.value() == false && corr.value() == false)
|
if (stdevs.value() == false && corr.value() == false)
|
||||||
{
|
{
|
||||||
runAlgorithm(eoEsSimple<FitT>() ,parser, bounds);
|
runAlgorithm(eoEsSimple<FitT>() ,parser, state, bounds);
|
||||||
}
|
}
|
||||||
else if (corr.value() == true)
|
else if (corr.value() == true)
|
||||||
{
|
{
|
||||||
runAlgorithm(eoEsFull<FitT>(),parser, bounds);
|
runAlgorithm(eoEsFull<FitT>(),parser, state, bounds);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
runAlgorithm(eoEsStdev<FitT>(), parser, bounds);
|
runAlgorithm(eoEsStdev<FitT>(), parser, state, bounds);
|
||||||
}
|
}
|
||||||
|
|
||||||
// and save
|
// and save
|
||||||
|
|
@ -91,7 +91,7 @@ main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class EOT>
|
template <class EOT>
|
||||||
void runAlgorithm(EOT, eoParser& _parser, eoEsObjectiveBounds& _bounds)
|
void runAlgorithm(EOT, eoParser& _parser, eoState& _state, eoEsObjectiveBounds& _bounds)
|
||||||
{
|
{
|
||||||
// evaluation
|
// evaluation
|
||||||
eoEvalFuncPtr<eoFixedLength<FitT, double> > eval( real_value );
|
eoEvalFuncPtr<eoFixedLength<FitT, double> > eval( real_value );
|
||||||
|
|
@ -107,7 +107,9 @@ void runAlgorithm(EOT, eoParser& _parser, eoEsObjectiveBounds& _bounds)
|
||||||
|
|
||||||
// Initialization
|
// Initialization
|
||||||
eoEsChromInit<EOT> init(_bounds);
|
eoEsChromInit<EOT> init(_bounds);
|
||||||
eoPop<EOT> pop(mu.value(), init);
|
eoPop<EOT>& pop = _state.takeOwnership(eoPop<EOT>(mu.value(), init));
|
||||||
|
|
||||||
|
_state.registerObject(pop);
|
||||||
|
|
||||||
// evaluate initial population
|
// evaluate initial population
|
||||||
eval.range(pop.begin(), pop.end());
|
eval.range(pop.begin(), pop.end());
|
||||||
|
|
|
||||||
Reference in a new issue