41e3d8a648
fix eoProportionalSelect for negative fitnesses
2020-08-31 11:13:19 +02:00
1d092a5840
fix using resize in eoPerf2Worth
...
use copy instead, to avoil empty containered EOTs
2020-08-26 12:01:10 +02:00
fca55505d8
depreciate CUDACC
2020-08-26 12:00:29 +02:00
e2bf3ec3c0
allow eoBit to be templatized on its value type
...
This helps avoiding the infamous std::vector<bool> specialization,
which (wrongly) exchange space for speed.
2020-08-26 11:58:46 +02:00
d460b68500
add static branching in minimizing_fitness
...
This allows for EOT with empty constructors,
if they use eoM[in|ax]imizingFitness fitnesses.
Of course this is faster in that case.
2020-08-26 11:57:11 +02:00
efa6567359
add FastGA foundry and eoStandardBitMutation variants
2020-07-09 11:10:43 +02:00
1cdb134ee2
feat: add a binomial distribution to eo::rng
...
Note: use the most naive algorithm, should be a rejection one.
2020-07-05 18:00:51 +02:00
75c2c6ab76
fix eoDetSingdeBitFlip: better algorithm
...
The old version was inefficient, using trial and errors.
This new version is a single pass algorithm.
2020-07-05 17:59:30 +02:00
a173e10fec
fix #50 : add missing string header in eoFunctor
2020-06-06 10:45:13 +02:00
ae81793f7c
refactor: add eoOperatorFoundry
...
- Simpler relationships between encoding and set of operators in foundry.
- Rename "instanciate" in "instantiate"
2020-05-03 15:31:25 +02:00
9d3c848dfb
fix even more warnings and reduce some tests runtimes
...
tested under gcc and clang
2020-04-28 17:41:50 +02:00
8ad56f7ad3
fix more warnings
2020-04-28 16:37:48 +02:00
24bc8edd6f
fix new warnings and escape apply namespace
...
- `std::apply` is part of C++17 and the compiler wants to use it because
of ADL. Thus it is now necessary to escape it as `::apply`.
- remove some `using namespace std` remaining in the sources.
- fix simple warnings.
2020-04-28 15:56:14 +02:00
c95f5607d8
feat: add an intermediate layer of init with dimension
2020-04-28 15:55:28 +02:00
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