Commit graph

321 commits

Author SHA1 Message Date
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
maartenkeijzer
4aed181311 Removed small bug in reading outside a buffer in eoParser::readFrom
This caused the parser to crash when a simple flag of the form program -f
was given.
2001-02-11 16:25:03 +00:00
jmerelo
3c2df139bd Minor bugs for Win quashed; fixed Win project files 2001-02-09 16:52:06 +00:00
evomarc
b893445d31 Added a comment before eoPopulator class so it is documented! 2001-02-09 08:32:47 +00:00
evomarc
890218e270 Removed eoEvolutionStrategy because it was based on eoGeneralOp old interface 2001-02-09 05:28:33 +00:00
evomarc
d347fa9da2 Because it has not extension, I had forgotten to update the eo file itself!
Now reflects the change of eoGenOp interface and the changes of names in ga
2001-02-09 05:25:25 +00:00
evomarc
09b669ed46 Added the GnuPlotSnapshotMonitor, the eoScalarFitnessStat and eoFDCStat in checkpointing 2001-02-09 05:21:04 +00:00
evomarc
3b2125e060 Left-out from the big change of general op interface! 2001-02-09 05:10:25 +00:00
evomarc
415b419671 The BIG change of general operator interface
I also changed
  - the eoQuadratic into eoQuad (as dicussed with Maarten)
  - the eoBin into eoBit, with more appropriate names for the "binary"
    operators (that can be unary!) as no one protested when I posted on
    eodev list
2001-02-09 05:09:26 +00:00
evomarc
1b681e4e0d Added the missing include of eoScalarFitness - mandatory due to
explicit specialization for eoParamValue<vector<eoMinimizingFitness> >
2001-02-07 05:15:18 +00:00
evomarc
d3525298fe Added the handling of generic operators in Combined Ops 2001-02-07 05:13:33 +00:00
evomarc
b89d06386d Added the shuffle(vector<const EOT*>) method 2001-02-07 05:11:37 +00:00
evomarc
1c93adc43a Added selection methods
eoBestSelect            always return the best individual
eoSequentialSelect      a selectOne version of eoDetSelect (uses an index to
                        return next offspring from sorted pop)
2001-02-07 05:04:24 +00:00
evomarc
f9fed9acc1 Forgotten a debug print 2001-02-01 05:27:36 +00:00
evomarc
1ace1cf8f9 I had forgotten to add pipecom.h
Moreover, I got fed up with error due to const/non const, so I modified
PipeComSend to take a const argument. THe consequence is that it will not run
under plain C any more.
2001-02-01 05:17:16 +00:00
evomarc
56abe66582 Added the monitoring facilities for snapshots (i.e. generating and plotting a new file
every generation) which is different from the continuous monitoring (same file/plot is
angemented every generation).
This lead to a number of modifications in many files in utils dir

But now we can watch on-line
- fitness spreadout
- FDC plots
- multi-objective Pareto fronts (though the multi-objective sruff isn't there yet!)
2001-01-31 18:38:39 +00:00
evomarc
097d34be39 Comments added to remove undocumented classes from Doxygen documentation 2001-01-30 04:53:05 +00:00
evomarc
2b46277eed Added the truncate and the hasNoBoundAtAll methods in eoRealBounds.
The former simply set values to the boundary values in case they are out
The latter allows to short-cut all bound-checks when no need

SOme day I will put this in utils, and have a eoRealBounds.cpp in the
pre-compiled library
2001-01-29 10:25:44 +00:00
evomarc
0f985c627e Modified to use eoRealBounds rather than eoEsObjectiveBounds 2001-01-28 07:31:34 +00:00
evomarc
75dad8f899 Error in src/Makefile.am 2001-01-28 07:27:12 +00:00
evomarc
03bc482da0 Actually removed eoEsObjectiveBounds.h and evolution_strategies 2001-01-28 07:02:27 +00:00
evomarc
8d35fad136 Added the includes ga.h and es.h
Removed the old eoEsObjectiveBounds and evolutionar_strategies from es dir
2001-01-28 07:00:41 +00:00
evomarc
508a5b9215 Added some comments so eoRealVectorBounds is documented 2001-01-27 08:38:31 +00:00
evomarc
c015b82506 Added eoGenericRealOp.h that are the exact copy of the operators of eoReaOp.h,
but in generic format.
They are used at the omoment only in eoEsStdevXOver.h that calls a crossover
on the object variables, then a crossover on teh stdev vectors!
A piece of cake :-)
2001-01-27 07:46:07 +00:00
evomarc
72e9590544 I have separated the include files into
eo   everything that is general to any representation
   es.h everything about real representation (in es dir)
   ga.h everything related to bitstring representation (in ga dir)

To be continued by gp.h, and ...

This has lead to some slight modifications in test file eobin and all tutorial
examples files...

I've also added in utils eoDistance, generic functor to compute distances,
including also the generic Euclidian distance
2001-01-27 07:43:58 +00:00
evomarc
41ff11bd7f I have separated the include files into
eo   everything that is general to any representation
   es.h everything about real representation (in es dir)
   ga.h everything related to bitstring representation (in ga dir)

To be continued by gp.h, and ...

This has lead to some slight modifications in test file eobin and all tutorial
examples files...
2001-01-27 07:41:46 +00:00
evomarc
c917207b5d Added the bounds to all eoRealOp operators (and to the eoNormalMutation).
The eoESObjectiveBounds should soon dissapear!!
2001-01-26 18:26:30 +00:00
evomarc
70caa91b22 Typos in comments 2001-01-26 17:12:13 +00:00
evomarc
576249509b Some includes were missing in eoPop and eoOp that I had not noticed before
trying to compile test/t-eoSymreg.cpp
2001-01-26 17:09:33 +00:00