Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Triki SA #30

Open
wants to merge 52 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
35212cc
adapted eoLogger for redirecting to ostreams
May 6, 2013
002e4a1
added possibility to open files and close them automatically
May 6, 2013
6d7b95b
Merge branch 'master' of http://github.com/nojhan/paradiseo
LPTK Jun 5, 2013
1c8ff46
cooling schedule changes
LPTK Jun 5, 2013
8271ea8
bugfix: include nessary headers for eoRealBounds
jdreo Apr 30, 2013
c1382dc
use a sub-directory in the zip archive
jdreo Apr 30, 2013
33584ad
Explicit iterator instead of auto, for old C++ compat
jdreo Apr 30, 2013
0edb2bc
Add moeoScalarObjectiveVector, a generic OV with templatized atomic type
jdreo Jun 7, 2013
fec85d0
Use generic objective vector atomic type in HV continuator
jdreo Jun 7, 2013
d507114
Add moeoDualRealObjectiveVector, to implement OV with feasability
jdreo Jun 7, 2013
206f12e
Correct templatized types across ObjectiveVector-dependant code
jdreo Jun 7, 2013
d5fd433
Add missing arithmetic operators to eoDualFitness
jdreo Jun 7, 2013
0a9e415
Generic ObjectiveVector types
jdreo Jun 7, 2013
7d78b3b
bugfix: do not allow null interval in hypervolume diff metric
jdreo Jun 6, 2013
b5cc2c3
More generic eoDualFitness
jdreo Jun 7, 2013
319c286
Add constructors with explicit fitness assignement to IBEA
jdreo Jun 7, 2013
ce02ca0
Add the DUAL fitness assignment class
jdreo Jun 7, 2013
7f742cd
Use the objective type instead of double in metrics
jdreo Jun 7, 2013
b79b568
Use member arithmetic operators and friend stream operators in dual f…
jdreo Jun 11, 2013
685fc80
Fix the templates of moeoDualRealObjectiveVector
jdreo Jun 11, 2013
8a2ba6a
Add a warning in eoDualFitness comments
jdreo Jun 11, 2013
df4db4d
Add hyper volume continuators & metrics handling feasibility constrai…
jdreo Jun 11, 2013
195cd8e
buildfix: do not always build release
nojhan May 25, 2013
8ed699a
Fix build for SMP
aquemy May 30, 2013
ebffad3
special two-objective case of dominance depth ranking in O(n log n)
May 31, 2013
d03862b
Added moStat moFitnessMomentsStat and class moStdDevEstimator for est…
LPTK Jul 19, 2013
6635dc9
Implemented a real neighborhood for mo
LPTK Jul 19, 2013
bab846d
Triki algorithm for simulated annealing
LPTK Jul 19, 2013
34cbd2e
Tests files for the Triki SA algo
LPTK Jul 19, 2013
376a16e
created eoOptional
LPTK Jun 12, 2013
0e08d2f
Added an implicit conversion from NULL in eoOptional
LPTK Jul 19, 2013
290ff1c
Added utility method getOr(T&) in eoOptional
LPTK Jun 12, 2013
7a0b889
Added a test for eoOptional
LPTK Jun 12, 2013
010d604
Added test files for moStdDevEstimator and moStdFitnessNeighborStat
LPTK Jun 12, 2013
f8460a7
renaming files with right name: moMetropolisHasting*s*, moSA*E*xplorer
LPTK Jul 16, 2013
d1428e9
Merge branch 'master' of http://github.com/nojhan/paradiseo
LPTK Jun 13, 2013
1e38346
Merge branch 'logger' into trikiSA
LPTK Jun 13, 2013
6bc2a21
deleted useless header file 'trikisa'
LPTK Jul 17, 2013
922be5f
updated meta-header files
LPTK Jul 17, 2013
8080d1b
fixed eoFileMonitor bug when vector is empty
LPTK Jul 17, 2013
0e235a7
trivial cosmetic changes
LPTK Jul 17, 2013
55ee0d8
Added an utility class to update a value from a getter method
LPTK Jul 17, 2013
db9f63f
Added an eoUpdater that simply calls a function with no arguments
LPTK Jul 17, 2013
b5f15a4
fixed bug where failing to read from the string was silently ignored …
LPTK Jul 18, 2013
6548a0e
Added a field for saving the fitness of the solution (useful for moni…
LPTK Jul 18, 2013
78cbe4f
Refactoring and sanitization of the Metropolis-Hastings-related algor…
LPTK Jul 18, 2013
e9b0d90
Removed calls to the monitors in the init function of moCheckpoint
LPTK Jul 18, 2013
bec225c
Added a new Cooling Schedule, moHuangCoolingSchedule
LPTK Jul 18, 2013
25823ba
added a case in eoOptional test
LPTK Jul 19, 2013
7ae7468
Cleaning, doc & fixes for trikiSA
LPTK Jul 19, 2013
d627e40
updated news messages
LPTK Jul 19, 2013
eec9e9f
updated all mo tests
LPTK Jul 19, 2013
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion archive_current.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
today=`date --iso-8601`
git archive --format zip master > paradisEO-${today}.zip
name=paradiseo_$today
git archive --prefix=$name/ --format zip master > $name.zip
echo $name.zip

7 changes: 1 addition & 6 deletions cmake/Config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -31,17 +31,12 @@ endif()
### 0) Define general CXX flags for DEBUG and RELEASE
######################################################################################

#if(DEBUG)
# set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "" FORCE)
#else(DEBUG)
# set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
#endif(DEBUG)

add_definitions(-DDEPRECATED_MESSAGES)
set(CMAKE_CXX_FLAGS_DEBUG "-Wunknown-pragmas -O0 -g -Wall -Wextra -ansi -pedantic" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "-Wunknown-pragmas -O2" CACHE STRING "" FORCE)

if(SMP)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEBUG} -std=c++11 -pthread" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -std=c++11 -pthread" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -std=c++11 -pthread" CACHE STRING "" FORCE)
add_definitions(-D_GLIBCXX_USE_NANOSLEEP)
Expand Down
111 changes: 111 additions & 0 deletions edo/src/edoTransform.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
/*
The Evolving Distribution Objects framework (EDO) is a template-based,
ANSI-C++ evolutionary computation library which helps you to write your
own estimation of distribution algorithms.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Copyright (C) 2013 Thales group
*/
/*
Authors:
Johann Dréo <[email protected]>
*/

#ifndef _edoTransform_h
#define _edoTransform_h

#include <eo> // eoTransform

/** @defgroup Wrappers
*
* Wrappers to interact with other parts of the framework
*/

/** Abstract base class for wrapping an estimator and a sampler as an eoTransform
*
* @ingroup Wrappers
*/
template<class D>
class edoTransform : public eoTransform< eoPop<typename D::EOType>& >
{
public:
typedef typename D::EOType EOType;

edoTransform( edoEstimator<D> & estimator, edoSampler<D> & sampler ) :
_estimator(estimator), _sampler(sampler)
{}

virtual void operator()( eoPop<EOType> & pop ) = 0;

protected:
edoEstimator<D> & _estimator;
edoSampler<D> & _sampler;
};


/** Wrapping an estimator and a sampler as an eoTransform.
*
* @ingroup Wrappers
*/
template<typename D>
class edoTransformAdaptive : public edoTransform<D>
{
public:
typedef typename D::EOType EOType;

edoTransformAdaptive( D & distrib, edoEstimator<D> & estimator, edoSampler<D> & sampler )
: _distrib(distrib), _estimator(estimator), _sampler(sampler)
{}

virtual void operator()( eoPop<EOType> & pop )
{
_distrib = _estimator( pop );
pop.clear();
for( unsigned int i = 0; i < pop.size(); ++i ) {
pop.push_back( _sampler(_distrib) );
}
}

protected:
D & _distrib;
edoEstimator<D> & _estimator;
edoSampler<D> & _sampler;
};


/** Wrapping an estimator and a sampler as an eoTransform,
* the distribution is created at instanciation and replaced at each call.
*
* @ingroup Wrappers
*/
template<typename D>
class edoTransformStateless : public edoTransformAdaptive<D>
{
public:
typedef typename D::EOType EOType;

edoTransformStateless( edoEstimator<D> & estimator, edoSampler<D> & sampler )
: edoTransformAdaptive<D>( *(new D), estimator, sampler )
{}

~edoTransformStateless()
{
// delete the temporary distrib allocated in constructor
delete &(this->_distrib);
}
};

#endif // !_edoTransform_h
4 changes: 4 additions & 0 deletions eo/NEWS
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
* current release:
- added an EOT& parameter to the moCoolingSchedule::update interface method because some cooling schedules need it
- eoMonitor's are no more executed in moCheckpoint::init to prevent access to uninitialized data
- renamed classes moSAexplorer->moSAExplorer, MetropolisHasting->MetropolisHastings and MetropolisHastingExplorer -> MetropolisHastingsExplorer
- reordered param order in moSA's 2nd constructor ('cool' is now before 'eval' because 'eval' now has a default value)

* release 1.3.1 (2012-07-27)
- the eo::mpi modules is no longer dependent from boost::mpi
Expand Down
1 change: 1 addition & 0 deletions eo/src/eo
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
// general purpose
#include <utils/eoData.h>
#include <eoObject.h>
#include <eoOptional.h>
#include <eoPrintable.h>
#include <eoPersistent.h>
#include <eoScalarFitness.h>
Expand Down
Loading