Merge branch 'master' of ssh://localhost:8479/gitroot/eodev/eodev

This commit is contained in:
nojhan 2011-11-03 10:58:27 +01:00
commit da5b29146b
4 changed files with 131 additions and 13 deletions

View file

@ -49,6 +49,10 @@ public:
assert( this->max().size() > 0 );
assert( sol.size() > 0);
assert( sol.size() == this->min().size() );
eo::log << eo::debug << "BounderUniform: from sol = " << sol;
eo::log.flush();
unsigned int size = sol.size();
for (unsigned int d = 0; d < size; ++d) {
@ -58,6 +62,8 @@ public:
sol[d] = rng.uniform( this->min()[d], this->max()[d] );
}
} // for d in size
eo::log << eo::debug << "\tto sol = " << sol << std::endl;
}
};

View file

@ -74,18 +74,18 @@ public:
\param replacor Population replacor
*/
edoEDASA (eoSelect< EOT > & selector,
edoEstimator< D > & estimator,
eoSelectOne< EOT > & selectone,
edoModifierMass< D > & modifier,
edoSampler< D > & sampler,
eoContinue< EOT > & pop_continue,
edoContinue< D > & distribution_continue,
eoEvalFunc < EOT > & evaluation,
moContinuator< moDummyNeighbor<EOT> > & sa_continue,
moCoolingSchedule<EOT> & cooling_schedule,
double initial_temperature,
eoReplacement< EOT > & replacor
)
edoEstimator< D > & estimator,
eoSelectOne< EOT > & selectone,
edoModifierMass< D > & modifier,
edoSampler< D > & sampler,
eoContinue< EOT > & pop_continue,
edoContinue< D > & distribution_continue,
eoEvalFunc < EOT > & evaluation,
moContinuator< moDummyNeighbor<EOT> > & sa_continue,
moCoolingSchedule<EOT> & cooling_schedule,
double initial_temperature,
eoReplacement< EOT > & replacor
)
: _selector(selector),
_estimator(estimator),
_selectone(selectone),

View file

@ -91,15 +91,27 @@ public:
//! Repair a solution by calling several repair operator on subset of indexes
virtual void operator()( EOT& sol )
{
// ipair is an iterator that points on a pair
// std::cout << "in dispatcher, sol = " << sol << std::endl;
// ipair is an iterator that points on a pair of <indexes,repairer>
for( typename edoRepairerDispatcher<EOT>::iterator ipair = this->begin(); ipair != this->end(); ++ipair ) {
assert( ipair->first.size() <= sol.size() ); // assert there is less indexes than items in the whole solution
// a partial copy of the sol
EOT partsol;
// std::cout << "\tusing indexes = ";
// j is an iterator that points on an uint
for( std::vector< unsigned int >::iterator j = ipair->first.begin(); j != ipair->first.end(); ++j ) {
// std::cout << *j << " ";
// std::cout.flush();
partsol.push_back( sol.at(*j) );
} // for j
// std::cout << std::endl;
// std::cout << "\tpartial sol = " << partsol << std::endl;
assert( partsol.size() > 0 );

View file

@ -0,0 +1,100 @@
# File: FindEO.cmake
# CMAKE commands to actually use the EO library
# Version: 0.0.1
#
# The following variables are filled out:
# - EO_INCLUDE_DIR
# - EO_LIBRARY_DIR
# - EO_LIBRARIES
# - EO_FOUND
#
# Here are the components:
# - PyEO
# - es
# - ga
# - cma
#
# You can use FIND_PACKAGE( EO COMPONENTS ... ) to enable one or several components.
#
# Default enabled components
SET(EO_LIBRARIES_TO_FIND eo eoutils)
# Use FIND_PACKAGE( EO COMPONENTS ... ) to enable modules
IF(EO_FIND_COMPONENTS)
FOREACH(component ${EO_FIND_COMPONENTS})
STRING(TOUPPER ${component} _COMPONENT)
SET(EO_USE_${_COMPONENT} 1)
ENDFOREACH(component)
# To make sure we don't use PyEO, ES, GA, CMA when not in COMPONENTS
IF(NOT EO_USE_PYEO)
SET(EO_DONT_USE_PYEO 1)
ELSE(NOT EO_USE_PYEO)
SET(EO_LIBRARIES_TO_FIND ${EO_LIBRARIES_TO_FIND} PyEO)
ENDIF(NOT EO_USE_PYEO)
IF(NOT EO_USE_ES)
SET(EO_DONT_USE_ES 1)
ELSE(NOT EO_USE_ES)
SET(EO_LIBRARIES_TO_FIND ${EO_LIBRARIES_TO_FIND} es)
ENDIF(NOT EO_USE_ES)
IF(NOT EO_USE_GA)
SET(EO_DONT_USE_GA 1)
ELSE(NOT EO_USE_GA)
SET(EO_LIBRARIES_TO_FIND ${EO_LIBRARIES_TO_FIND} ga)
ENDIF(NOT EO_USE_GA)
IF(NOT EO_USE_CMA)
SET(EO_DONT_USE_CMA 1)
ELSE(NOT EO_USE_CMA)
SET(EO_LIBRARIES_TO_FIND ${EO_LIBRARIES_TO_FIND} cma)
ENDIF(NOT EO_USE_CMA)
ENDIF(EO_FIND_COMPONENTS)
IF(NOT EO_INCLUDE_DIR)
FIND_PATH(
EO_INCLUDE_DIR
EO.h
PATHS
/usr/include/eo
/usr/local/include/eo
)
ENDIF(NOT EO_INCLUDE_DIR)
IF(NOT EO_LIBRARY_DIR)
FIND_PATH(
EO_LIBRARY_DIR
libeo.a
PATHS
/usr/lib
/usr/local/lib
)
ENDIF(NOT EO_LIBRARY_DIR)
IF(NOT EO_LIBRARIES)
SET(EO_LIBRARIES)
FOREACH(component ${EO_LIBRARIES_TO_FIND})
FIND_LIBRARY(
EO_${component}_LIBRARY
NAMES ${component}
PATHS
/usr/lib
/usr/local/lib
)
IF(EO_${component}_LIBRARY)
SET(EO_LIBRARIES ${EO_LIBRARIES} ${EO_${component}_LIBRARY})
ELSE(EO_${component}_LIBRARY)
MESSAGE(FATAL_ERROR "${component} component not found.")
ENDIF(EO_${component}_LIBRARY)
ENDFOREACH(component)
ENDIF(NOT EO_LIBRARIES)
IF(EO_INCLUDE_DIR AND EO_LIBRARY_DIR AND EO_LIBRARIES)
SET(EO_FOUND 1)
MARK_AS_ADVANCED(EO_FOUND)
MARK_AS_ADVANCED(EO_INCLUDE_DIR)
MARK_AS_ADVANCED(EO_LIBRARY_DIR)
MARK_AS_ADVANCED(EO_LIBRARIES)
ENDIF(EO_INCLUDE_DIR AND EO_LIBRARY_DIR AND EO_LIBRARIES)