Commit graph

78 commits

Author SHA1 Message Date
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
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
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
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
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
09b669ed46 Added the GnuPlotSnapshotMonitor, the eoScalarFitnessStat and eoFDCStat in checkpointing 2001-02-09 05:21:04 +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
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
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
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
a8bf667774 Added the eoRandomReduce class - hence I also added the shuffle method
in eoPop (I had been postponing that for a long time!) which in turn required
another class of random generator (whose operator() takes an unsigned as argument)
2001-01-16 05:52:01 +00:00
evomarc
61a85582d5 Added the namespace eo for the global variable rng in eoRNG.cpp
Also added "using eo::rng" in eoRNG.h so nothing has to be modified.
We should gradually move to write eo::rng everywhere, and remove that using
directive to be almost full-proofed against possible name collision.
2001-01-08 10:07:27 +00:00
evomarc
0447391f7c Modified the help message for the short name (added the missing =) 2000-12-26 10:28:27 +00:00
evomarc
6a0010474a A new util class to handle the rate/integer argument to selectors/replacement 2000-12-19 18:09:10 +00:00
evomarc
c18f63f7e4 Added utils/eoGnuplot1DMonitor.h ni the list of includes 2000-12-15 16:57:37 +00:00
evomarc
0d9e6b2941 New base class eoUpdatable.h - for objects that need upates in eoCheckPoints
Also contains the class eoDynUpdater. They are eoUpdater, they receive an eoUpdatable
at construct time, and call their upate() method in their operator() method
2000-12-07 09:56:00 +00:00
evomarc
0e62de2d14 Added the lastCall construct: if the stopping condition becomes true in eoCheckPoint,
a method called lastCall is called for everything contained in that checkpoint
      (stats, updaters and monitors). This can be extremely useful
      - for stateSavers (see below)
      - for monitoring things like rates of success of operators, where what you
        are interested in is the final result only.
Added of course a virtual method lastCall that does nothing by default in classes
      eoBaseStat, eoBaseSortedStat, eoUpdater and eoMonitor
Added a boolean to control the save of the state in method eoCountedStateSaver::lastCall
      so you can ask that the state is saved at final population, whatever happens.
      I also added the corresponding constructor to take this into account.
2000-12-04 06:58:43 +00:00
evomarc
5c5142e59c Added a comment so Doxygen documents it 2000-12-04 05:55:59 +00:00
gustavoromero
142c7d779c adding a lot of includes 2000-12-01 15:46:07 +00:00
gustavoromero
a9468f38c9 small fix for uniform 2000-11-30 17:11:53 +00:00
evomarc
9af974070a Corrected a small bug (!): the -C=value was not processed correctly
as somebody forgot one character when counting up to ... 3 :-)))
2000-11-30 06:38:15 +00:00
evomarc
109fc551ab Reversed the priority between command-line and parameter file 2000-11-30 06:20:20 +00:00
evomarc
5c9bec34d6 Removed eoCopyElite.h, redundant with eoMerge.h 2000-11-30 06:04:09 +00:00
evomarc
29b8f1153c An include file was missing!!!
I've inserted it in teh file actually - but if we go on with gnuplot,
it will need to be taken out again, and used in all other monitors
we will write using gnuplot (e.g. eoGnuplotWithErrorbarsMonitor,
eoGnuplotHistogramMonitor, ...).
2000-11-29 17:20:16 +00:00
evomarc
f5174e3a42 Added fstream in the include files - I had an error message at some point! 2000-11-28 15:40:39 +00:00
evomarc
afdcdf5d07 Added a few comments so Doxygen documents all classes 2000-11-28 08:20:01 +00:00
evomarc
622cbea0d5 This is the first attempt to use gnuplot through a fork to plot statistics.
At the moment it is only tested for Linux!
Use with care
2000-11-28 06:58:06 +00:00
evomarc
bee8388a1e Modified the contructor: the default value for the delimiter is now " "
and I added a boolean argument to indicate whether or not we want to
         overwrite an existing file with same name (default is overwrite).
Added the getFileName accessor.
2000-11-28 06:46:37 +00:00
evomarc
08e6be4b66 Added a verbose mode (the default behavior) which is as before.
But when in non-verbose mode, prints only one line per generation.
2000-11-24 17:36:03 +00:00
evomarc
0fd1336bfe Turned the eoBestFitness into an eoStat (it was an eoSortedStat).
Alos added a few comments so that Doxygen documents all classes there.
2000-11-24 17:30:37 +00:00
evomarc
265be972ef Made eoBestFitnessStat an eoStat, NOT an eoSortedStat
Cde VS: Committing in .
2000-11-17 17:50:08 +00:00
gustavoromero
a1cd1fd3bf fix warning: no newline at end of file 2000-11-10 09:55:10 +00:00
gustavoromero
5af354e455 fix no newline at end of file warning 2000-11-08 15:15:26 +00:00
gustavoromero
38838f753a fix no newline at end of file warning 2000-11-08 13:26:03 +00:00
evomarc
6fc47590cd Added constructors with 2 params _min and _max in generators
so you can now generate things in [_min, _max) instead of [0,_max) only
Modified the private data from maxim to {minim, range} accordingly.
2000-11-05 05:33:43 +00:00
evomarc
0642954035 Added a default value (0.5) to method flip 2000-11-05 04:50:10 +00:00
evomarc
01e4aa9cdc Added some safety test in roulette_wheel procedures:
if total is zero, used to return iterator -1 - now returns uniform choice
2000-10-30 14:54:29 +00:00
maartenkeijzer
08abf46576 Another attempt in adding the flush 2000-10-27 09:13:06 +00:00
maartenkeijzer
b0b0a3f9da It is using delim now 2000-10-23 10:58:54 +00:00
maartenkeijzer
f7c98d5b31 Changed functor base names and added to version 2000-10-09 16:13:20 +00:00