Commit graph

2,082 commits

Author SHA1 Message Date
2fa245e833 UPGRADE to C++17, because of metaprogramming in eoForges
Avoiding the use of make_from_tuple would be too error-prone.
2020-04-28 15:53:14 +02:00
23f6e68d34 fix: pass everything by copy in forges
- Only way to avoid references to out-of-scope variables.
- Add warnings everywhere in documentation to enforce using std::ref.
2020-04-27 21:40:35 +02:00
d27aad810d fix: use perfect forwarding in forges
- Avoid some cases of implicit copy instead of correct reference
forwarding.
- Use C++-17's make_from_tuple instead of the previous complex machinery.
2020-04-26 23:58:03 +02:00
dff32c9a96 fix: get rid of the old "register" keyword in eoRng 2020-04-22 08:00:56 +02:00
ee5e1a36f6 fix: doc and warnings 2020-04-22 08:00:28 +02:00
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
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
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
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
77921fea0c feat: add initializer list interface to eoFunctorStore
Easier to use while state initialize combined operators.
2020-03-24 16:34:01 +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
11254b4fbd remove eoEvalFuncCounterBounder.h from general eo header 2020-03-16 18:22:14 +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
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