Commit graph

499 commits

Author SHA1 Message Date
evomarc
64990a1ac4 Changed all variables named howmany into combien (French for how many)
because of a silly problem on Solaris (howmany seems to be some macro???)
2001-04-11 12:01:51 +00:00
evomarc
28c6b9a285 Modified printOn so that parameters that are not set explicitely by the user
are commented out - but still appear. Uses the (now public and pure virtual
in the base class eoParameterLoader) method isItThere.
2001-04-11 04:44:39 +00:00
evomarc
eafaa2d65e Added the pure virtual isItThere method in base class eoParameterLoader
Also made the corresponding isItThere method in eoParser public.
This allows one to test if the user did actually input a given parameter
and thus not to write it in the output if not - as we want the output
of printOn to be "as identical as possible" to the actual user input
2001-04-10 15:08:09 +00:00
evomarc
27691b21fd eoCtrlCcontinue had a few remaining errors :-( 2001-04-09 16:03:18 +00:00
evomarc
3d757e3243 Modified the eoCtrlCContinue - had to create the eoCtrlCContinue.cpp
to make t-eoGA work (you should NOT have separate functions in .h files!)
I also included everything related to Ctrl C handling in #ifndef _MSC_VER
until someone tells me how to do it in MSVC
2001-04-09 15:28:24 +00:00
evomarc
ddc6650ce5 Added the signal handling - see eoCtrlCContinue.h
I've disabled it in case of MSC as I don't know if this works there ...

Also added a couple of "virtual" in the ga dir
2001-04-04 03:47:33 +00:00
jmerelo
d634d95838 In eoVector, changed printOn and readFrom to virtual 2001-04-03 10:08:08 +00:00
maartenkeijzer
195ad72838 eoParam, added specialization for eoValueParam<string>::getValue
FDCStat and FileSnapshot: better error messageing
Scalar fitness: is now a vector of doubles
exercise3.1 added gnuplot again

Don't know about eoCombinedContinue
2001-03-28 09:00:54 +00:00
evomarc
434010d221 Modified the names in eoPopStat!
Hoever, the way it's done now, the string gets TRUNCATED - and I dont' know why
2001-03-27 16:27:15 +00:00
evomarc
1726a06861 Adding Maarten's "snippet" to dump the whole pop to the screen: eoPopStat.h
Modified utils/checkpointing accordingly.
Tested in tutorial/Lesson3/exercise3.1
BTW, the eoFileSnapShot does not work any more - I've commented it out
and will look at that later...
2001-03-27 16:02:00 +00:00
maartenkeijzer
ebca71e228 NDSorting: changed exact ranking values to make check for front easier
eoRNG: changed nothing (did some debugging)
2001-03-26 10:09:40 +00:00
maartenkeijzer
94f0558d43 Changed the single objective shortcut calculation 2001-03-22 10:51:16 +00:00
jmerelo
8ff63ff776 Added a new xover to varlenxover 2001-03-21 13:35:10 +00:00
jmerelo
d8fe00183a Added a new atommutator to Variable Length, and corrected some headers which had problems 2001-03-21 13:09:47 +00:00
jmerelo
06dd2dc314 Moved epAtom* out of the obsolete dir; added some CVS headers to some files, and made everything work with my elipse classes 2001-03-21 12:10:13 +00:00
maartenkeijzer
665e20b0f8 Changed a few things in the eoPerf2Worth classes, EO.h and eoSelectOne.h are functionally unchanged 2001-03-21 10:55:22 +00:00
maartenkeijzer
9bbac485f9 Updated eoStat.h to also "do the right thing" when confronted with pareto style fitness 2001-03-20 14:34:07 +00:00
maartenkeijzer
548b2ae528 Some bugfixing in MO optimization and added empty check: target in tutorial 2001-03-16 13:11:32 +00:00
maartenkeijzer
d09c216b61 Ok, made an eoParetoFitness class, which meant that I could roll back a few changes in EO.h (phew).
Also changed eoSelectFromWorth etc.
2001-03-16 12:08:26 +00:00
maartenkeijzer
cf8f6b5c16 added 2001-03-16 11:48:32 +00:00
maartenkeijzer
9aa9e38090 First go, does not do niching yet 2001-03-14 12:46:37 +00:00
maartenkeijzer
843d442475 OOPS, that was a major bug, letting non-dominating individuals dominate one another. 2001-03-14 11:58:47 +00:00
maartenkeijzer
3798b665d4 Added support for printing vector<T> as a fitness 2001-03-14 10:13:27 +00:00
maartenkeijzer
68904d7650 Added Multi-objective fitness monitoring added support for vector<vector<double> > in eoParam
and made eoFileSnapshot type-safe
2001-03-14 10:12:37 +00:00
evomarc
b2a0349595 Just modified an wrong comment (after a too quick cut-and-paste) 2001-03-13 05:25:51 +00:00
maartenkeijzer
b917e54486 Production of binop back to 1 2001-03-12 16:07:55 +00:00
maartenkeijzer
6a6b8551b0 Added first batch of pareto based stuff 2001-03-12 16:04:18 +00:00
maartenkeijzer
4222e64829 EO: added overloaded printing of fitness (for vectors and pairs)
Various bugs and ommissions in eoPerf2Worth and eoSelectFromWorth
2001-03-12 16:00:58 +00:00
maartenkeijzer
492899bfb2 invalidating supported now 2001-03-12 14:27:31 +00:00
maartenkeijzer
ead2ac2c62 Changed the populator to be a) more efficient and b) more useable
It is no longer derived from eoPop, it now gets a destination population.
This saves a lot of copying. The semantics has changed a little as well. It is
now an _infinite_ iterator. operator++ will *not* dispense new individuals, but
will merely stay at the end. To get a new indy, use operator*() as before.

eoEasyEA now checks the checkpoint *after* making a generation and clears the offspring
eoGeneralBreeder is changed to reflect the changes in eoPopulator
eoSequentialSelect now uses setup() rather than init()
2001-03-10 14:02:23 +00:00
maartenkeijzer
4388faec2e Various bugs found and resolved. 2001-03-09 14:13:28 +00:00
maartenkeijzer
4f1802c4e9 radically simplified the Makefile.am, but this only works for headers (no idea what the problem is with sources) 2001-03-08 13:38:41 +00:00
maartenkeijzer
00c7a10cb0 put using eo::rng in top of file to help out gcc 2.91 2001-02-27 11:45:31 +00:00
maartenkeijzer
ef75dbc2ee Made dtor virtual 2001-02-27 11:43:06 +00:00
maartenkeijzer
a79075f673 Modified eoInit so that it would use the eoRndGenerator base class.
To be able to use the primitive std::generate function, added a
set of wrappers in eoSTLFunctor.h that have the copy semantics most
STL functions expect (namely pass-by-value rather then pass-by-reference).

Updated test/Makefile.am to also test t-eoRandom
2001-02-19 12:23:13 +00:00
evomarc
f36f6d1265 Added the eo::rng (instead of rng) as default parameter to all calls.
Also t-eoRandom was abruptly aborting-> a min was greater than a max, and
exceptions were not being caught.
2001-02-18 04:34:57 +00:00
maartenkeijzer
025eb736ee eoVector is back (eoFixedLength and eoVariableLength are gone)
Also: introducing eoRndGenerators.h for eoRndGenerator derived classes:

  eoNormalGenerator
  eoUniformGenerator
  eoBooleanGenerator
  eoNegExpGenerator

Note the suffix that are added to aid in determining what these classes do
2001-02-17 10:51:31 +00:00
evomarc
83e883a158 Added oine star at start of comment to have Doxygen process it !!! 2001-02-16 18:00:18 +00:00
maartenkeijzer
70d9804277 works for me 2001-02-16 09:39:06 +00:00
evomarc
7e849e2082 The perf2worth major check in
2 new important classes: eoPerf2Worth and eoSelectFromWorth
Instances of eoPerf2Worth are eoRanking and eoLinearFitScaling.
Coming soon (piece of cake now) are the niching strategies (sharing, clearing)
2001-02-16 08:21:25 +00:00
evomarc
da8b467b12 Only names modifications, to comply to EO strict rules :-) 2001-02-16 05:06:17 +00:00
maartenkeijzer
0540496021 reverted the max-to-produce initializer 2001-02-15 08:31:38 +00:00
evomarc
9dbb516d8b Modified the comments so that all callses are documented by Doxygen
(a comment starting with // before the class definition is not taken into account)
Also updated the initial overall comment -
and waouw, doxygen generates links there, too! Cool.
2001-02-15 05:35:31 +00:00
evomarc
bf0e84fc56 A few minor corrections (and some comments) after Maarten big commit 2001-02-15 04:47:18 +00:00
maartenkeijzer
8ce0e6bb2a Changed the return value to return what it got in 2001-02-14 14:09:16 +00:00
maartenkeijzer
3a9b5a0e7e Well, what do you know, major commit.
Changed the signature of eoMon, eoBin and eoQuadOp to return a bool,
without invalidating fitness. Added a set of invalidators to take over
that job (see for instance eoSGA and eoSGATransform how this can transparantly used)

Derived eoState from eoFunctorStore (for convenience, from a design perspective this may sound wrong)

Added a wrap_op function that does the wrapping for you (see eoOpContainer how this made this functor
exceedingly less hairy). Checked all the tests removed the eoGeneric*Op family (not needed anymore)
and of course changed all the operators to reflect the change (and found a few that didn't
invalidate the fitness, thus really pointing out the advantage of the current approach)
2001-02-14 10:35:26 +00:00
jmerelo
0dd3e27e4e Moved out of the 'obsolete' directory a couple of honest classes, which didn't harm anybody; activated also in Makefile.am the program that tested them 2001-02-13 22:35:07 +00:00
maartenkeijzer
07bc61e694 Added a bit more documentation, more to follow (I hope) 2001-02-13 14:43:54 +00:00
maartenkeijzer
262869d0ae fixed a bug: the parser now correctly parses parameters of the form
-Pvalue

This will now produce 'value'. The buggy parser would parse 'alue' here. I am truly and deeply
ashamed to have created such an off-by-one error.

Marc assumed this was wanted behaviour (so that it should read: -P=value)
I must admit that this is a logical conclusion, though it was merely a side-effect
of the error. To not force Marc to rewrite the tutorial and his way of working with
EO, I decided to make a feature out of the bug, so that now the parser will parse:

-Pvalue
-P=value

and of course the true and blue:

-Parameter=value

I will now go and check if I sent out some crappy papers caused by this bug (as I've been using eo!)
2001-02-13 12:38:19 +00:00
maartenkeijzer
dea8a51f7e Ok, updated the Makefile.am again to use the
make check

Command I picked up in the automake documentation (RTFM, you know)

Tagged a lot of header functions in the GnuPlot files with 'inline',
so they can be used from more than one sourcefile.

Ok, now the interesting news. Started a new library libga (not to be confused
with Matthew's GaLib). Here I suggest we put a fairly complete and configurable
genetic algorithm. Just to see how far we can stretch ourselves and also to have
a GA-componenent that can be used in other applications without having to rebuild
the entire thing. test/t-eoGA.cpp tests this library
2001-02-12 13:58:51 +00:00