Commit graph

5,290 commits

Author SHA1 Message Date
a436fb3fa0 feat: add algo foundry and eval foundry
Necessary machinery to perform automatic algorithm selection
based on the grammar defined by EasyEA and
the vocabulary defined by sets of parametrized operators.
2020-03-30 17:37:04 +02:00
c281440cfe better indent 2020-03-30 17:36:38 +02:00
dd8aa6df37 add eoAlgoFoundryEA 2020-03-29 18:32:25 +02:00
2183ee688b fix eoForge*
- fix memory allocation in forges.
- fix empty variadic tuples when handling constructors without arg.
- remove eoForgeMap.
2020-03-29 17:45:42 +02:00
1fdd977408 fix: use distance instead of hoping for pointers arithmetics
just in case
2020-03-29 17:41:52 +02:00
25dc4b655f remove a warning 2020-03-29 17:40:50 +02:00
98802f00a1 fix CPack use README.md 2020-03-29 17:40:22 +02:00
30c99f290f first example of automatic algorithm assembling
- add "Forges" tools, to wrap several operator with deferred
instanciation.
- add t-forge-algo to show how to enumerate several algorithms instances
from a common grammar and several alternative operators.
- add several missing className().
2020-03-27 15:59:49 +01:00
eba2e14950 use eoExceptions everywhere 2020-03-27 00:48:23 +01:00
75ac37b02a fix some errors in tests
- use eoEvalCounterThrowException
- use make_help
2020-03-26 22:47:26 +01:00
6aeb74f6e0 refactor exceptions 2020-03-26 22:46:52 +01:00
3b01169726 refactor exceptions and exceptions hierarchy 2020-03-26 07:53:23 +01:00
0332920d63 several fix of minor warnings 2020-03-25 14:46:23 +01:00
1cdbb036d3 add a dimension accessor to eoInitFixedLength
Useful to avoid divergence on indiv size in auto makers.
2020-03-25 14:43:36 +01:00
193ea83eb3 feat: add a way to print a message at each stop criterion call 2020-03-24 23:01:06 +01:00
98501e0dd4 feat: add an algo that manage restarts
Reset the pop for you, then call the algo, until continue.
2020-03-24 18:25:25 +01:00
40fb64a5aa feat: add a dummy continue, always returning true.
Useful in do_make* when no continue may be instanciated.
2020-03-24 16:37:30 +01:00
e389294cbb feat: EDO add combinable estimators
Useful to edit the distribution during init, restart or even search.
2020-03-24 16:35:49 +01:00
77921fea0c feat: add initializer list interface to eoFunctorStore
Easier to use while state initialize combined operators.
2020-03-24 16:34:01 +01:00
e0e1cb8bc9 feat: separate estimators for init and in loop in edoAlgoAdaptive
Allows for easier reseting or editing of distribution during
restarts.
2020-03-24 16:31:49 +01:00
ab740b2a72 add a monitor to print on eo::log at given level
- add eoTimedMonitor missing header
2020-03-24 16:27:58 +01:00
7e766f848d add eoStoreFunctor::pack to allocate & store in one line
Instead of calling `new`, then `state.storeFunctor`, the user can just call
`Class& inst = state.pack< Class >( params )` in one line.

Use C++11's variadic templates.
2020-03-22 18:57:50 +01:00
38e3f40bad cleaner numerical errors management for EDO adaptive algos
- Change the ill-condition continuator to use eigen decomposition of the
covariance matrix, just like in the adaptive estimator.
- Add a warning message in adaptive sampler.
2020-03-17 12:05:56 +01:00
64e14e09df move the distrib continue in EDO adaptive algos
- Call the continuator right after the distribution update,
because we may have generated an ill-conditioned distribution,
which would lead to bad solution sampling.
- Reserve mem of sampled vector.
2020-03-17 12:04:02 +01:00
f68d3c1396 add an interface toward IOHexperimenter
Handle IOH mono-objective function and CSV logger.
2020-03-16 18:30:48 +01:00
11254b4fbd remove eoEvalFuncCounterBounder.h from general eo header 2020-03-16 18:22:14 +01:00
80a11c7059 add a reset method to edoNormalAdaptive
Useful when performing restart after exception catch.
2020-03-16 18:21:25 +01:00
a5354f8ef3 add eoEvalNanThrowException
Wrap an evaluation function so that an exception may be thrown when the
eval function returns a bad value (Not A Number or infinity).
2020-03-16 18:20:04 +01:00
c99ed01dc6 REMOVE eoEvalFuncCounterBounder duplicate of eoEvalCounterThrowException 2020-03-16 18:19:10 +01:00
08bbf69f44 add EDO continuator checking matrices of adaptive distribution 2020-03-16 18:17:35 +01:00
c8121c788d make_checkpoint writes stats on clog by default
Allow for separating logs from output of an algorithm.
2020-03-11 11:39:38 +01:00
67aaf8b025 add option to exit after make_help + fix exit code
- Defaults to previous behaviour, which was to exit.
- Fix the returned exit code: was 1, but should be 0, as asking for help
is not an error.
2020-03-10 09:12:39 +01:00
124701a364 expose ScalarType in eoScalarFitness 2020-03-10 09:12:01 +01:00
2da161fc85 update eoRNG to fit C++17 standard
ISO C++17 does not allow 'register' storage class specifier
2020-03-10 09:11:16 +01:00
6232ff2f21 add eoEvalNamedPipe
- a class to connect an external objective function through file(s)
- fix doc error in eoEvalCmd
2020-03-08 21:44:42 +01:00
9623f4d1f8 add missing eoEval* headers in <eo> 2020-02-09 07:09:53 +01:00
2f5a00a7ac fix: eoEvalCmd use serialized input for the fitness instead of atof 2020-02-09 05:43:32 +01:00
ccb4b3787b add eoEvalCmd, an eval that call a system command 2020-02-08 16:34:34 +01:00
9056ed8989 add an eoSystemError exception
- make members const in eoException.h classes
2020-02-06 21:55:12 +01:00
90c3e8ffa1 refactor: expose a eoHowMany::value function 2019-12-10 11:27:35 +01:00
728bc6e897 feat: get a param handle from its name
Useful for introspection and dynamic parameter management.
2019-12-10 11:26:09 +01:00
be782f8cfb feat: add a sequential select that returns the best individual 2019-12-10 11:24:39 +01:00
9b887c83a6 feat: class to wrap a eoMonOp into a eoQuadOp 2019-12-10 11:20:54 +01:00
87d4f08258 eoBitOp feat: access to preference, fix: use doubles and swap
- Makes the `preference` member protected instead of private, which may
be used for algorithms managing their internal parameters during search.
- Replace float parameter with double, used everywhere else in the
framework.
- use std::swap instead of handmade swap.
2019-12-10 11:18:09 +01:00
e64417f2a5 BREAKING CHANGE: set standard to C++11, feat: accessor to breeder ops
Give an access to the operators held by a breeder.
This is needed to design algorithms that dynamically update their
internal parameters during search.
To simplify the interface, we use a returned tuple, and thus upgrade the
C++ standard to C++11.
2019-12-10 11:11:47 +01:00
646f20934e fix back some errors inserted by previous refactoring
- move PBIL classes in deprecated/, superseeded by the EDO module
2019-12-06 15:58:27 +01:00
Ronaldd Pinho
aa5dbe82c6 Use relative includes in headers and absolute in code
- relative includes in headers
- absolute includes in exe code
- include sstream lib in eoExceptions.h
- fix ga/make_op_ga.cpp
- fix eoSGATransform.h
2019-12-06 15:15:22 +01:00
d83681d6fa add cmake export to all targets & bugfix Find module
- Add "EXPORT paradiseo-targets" to cmake's "install" commands.
- Export those targets in "paradiseo-config.cmake",
  which is needed by FindParadiseo.cmake script.
- Bugfix "FindParadiseo.cmake" script:
    - document PARADISEO_ROOT input,
    - add PARADISEO_DIR to specify a bin dir (try build, debug and release as defaults),
    - bugfix bad copy pastes involving edo and peo,
    - default messages only for eo, mo and meo.
2019-09-29 21:14:30 +02:00
f7608e2d51
Merge pull request #37 from ronaldpnh/master
README file adapted to README.md
2019-06-29 11:07:29 +02:00
ff322ba27b fix missing API update
- tutorial/Lesson3 was still using the old eoStdoutMonitor interface
2019-04-19 06:52:38 +02:00