Commit graph

5,303 commits

Author SHA1 Message Date
4d51fb8132 feat: initialization of eoVector from std::vector
Useful to brace-init hard-coded vectors.
2020-04-22 07:58:52 +02:00
5a64a1755a feat: encoding accessor in foundry & less constrained forge setup
Allow forge setup to be called on nullptr and have an empty constructor
setup. Useful to build up forge vectors in one pass instead of add/setup
loops.
2020-04-22 07:55:56 +02:00
13d62d0445 feat add cache management to forges
- Disabled by default, because dangerous on statefull operators.
- More doc.
2020-04-20 15:26:51 +02:00
78b0aed928 fix algo reset combination 2020-04-20 13:15:12 +02:00
11ff72bdd9 fix: refactor foundry to be more dynamic than static
- Remove size template in favor of dynamic container: allow using the
generic interface.
- Using `operator=` was inducing slicing.
2020-04-12 16:26:37 +02:00
78be884270 fix wrong licenses 2020-04-12 10:10:53 +02:00
3cec9cde12 fix missing headers 2020-04-12 10:10:28 +02:00
a757dad270 feat: make eoEvalIOHproblem generic
- rename with suffix "problem", to distinguish from "suites",
- use the observer interface instead of the csv_logger one,
2020-04-12 10:07:35 +02:00
d03f2abb46 feat: add a new operator: eoAlgoReset
- Used in eoAlgoRestart, useful if one wants to reset some things before a
restart.
- Add operators to reset a pop (EO) and a distrib (EDO) and a wrapper to
combine several reset operators.
2020-04-12 10:04:46 +02:00
412e054933 feat: add an eoAlgoFoundry interface
Mainly expose the "algo = encoding" entrface.
2020-04-12 10:02:25 +02:00
ccb6bbed7c comment out useless tuple_printer 2020-04-02 16:39:01 +02:00
c8c8987174 fix: missing return in tuple 2020-04-02 16:38:50 +02:00
7a6f9a640f feat: add an accessor to eoEvalIOH
Useful for using ParadisEO with IOHexperimenter's suites
without having to do costly reallocation of operators.
2020-04-02 16:37:36 +02:00
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