The big GeneraoOp interface change - in test dir
This commit is contained in:
parent
97486fba28
commit
018db6689a
4 changed files with 30 additions and 18 deletions
|
|
@ -13,14 +13,16 @@ LDADDS = $(top_builddir)/src/libeo.a $(top_builddir)/src/utils/libeoutils.a
|
|||
|
||||
###############################################################################
|
||||
|
||||
noinst_PROGRAMS = t-eofitness t-eobin t-eoStateAndParser t-eoCheckpointing t-eoExternalEO t-eoESFull t-eoSymreg t-eo t-eoReplacement t-eoSelect
|
||||
noinst_PROGRAMS = t-eofitness t-eobin t-eoStateAndParser t-eoCheckpointing t-eoExternalEO t-eoSymreg t-eo t-eoReplacement t-eoSelect t-eoGenOp
|
||||
# removing temporarily t-eoESFull
|
||||
# noinst_PROGRAMS = t-eofitness t-eobin t-eoStateAndParser t-eoCheckpointing t-eoExternalEO t-eoESFull t-eoSymreg t-eo t-eoReplacement t-eoSelect
|
||||
|
||||
###############################################################################
|
||||
|
||||
t_eoESFull_SOURCES = t-eoESFull.cpp real_value.h
|
||||
t_eoESFull_DEPENDENCIES = $(DEPS)
|
||||
t_eoESFull_LDFLAGS = -lm
|
||||
t_eoESFull_LDADD = $(LDADDS)
|
||||
# t_eoESFull_SOURCES = t-eoESFull.cpp real_value.h
|
||||
# t_eoESFull_DEPENDENCIES = $(DEPS)
|
||||
# t_eoESFull_LDFLAGS = -lm
|
||||
# t_eoESFull_LDADD = $(LDADDS)
|
||||
|
||||
###############################################################################
|
||||
|
||||
|
|
@ -84,3 +86,10 @@ t_eo_LDFLAGS = -lm
|
|||
t_eo_LDADD = $(LDADDS)
|
||||
|
||||
###############################################################################
|
||||
|
||||
t_eoGenOp_SOURCES = t-eoGenOp.cpp
|
||||
t_eoGenOp_DEPENDENCIES = $(DEPS)
|
||||
t_eoGenOp_LDFLAGS = -lm
|
||||
t_eoGenOp_LDADD = $(LDADDS)
|
||||
|
||||
###############################################################################
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ int main()
|
|||
eoExternalInit<FitnessType, External> init(RandomStruct);
|
||||
eoExternalMonOp<FitnessType, External> mutate(UserDefMutate);
|
||||
eoExternalBinOp<FitnessType, External> cross1(UserDefBinCrossover);
|
||||
eoExternalQuadraticOp<FitnessType, External> cross2(UserDefQuadCrossover);
|
||||
eoExternalQuadOp<FitnessType, External> cross2(UserDefQuadCrossover);
|
||||
|
||||
// eoExternalEvalFunc<FitnessType, External> eval(UserDefEvalFunc);
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
// general
|
||||
#include <utils/eoRNG.h> // Random number generators
|
||||
#include <ga/eoBin.h>
|
||||
#include <ga.h>
|
||||
#include <utils/eoParser.h>
|
||||
#include <utils/eoState.h>
|
||||
|
||||
|
|
@ -35,7 +35,7 @@ struct Dummy : public EO<double>
|
|||
int the_main(int argc, char **argv)
|
||||
{ // ok, we have a command line parser and a state
|
||||
|
||||
typedef eoBin<float> Chrom;
|
||||
typedef eoBit<float> Chrom;
|
||||
|
||||
eoParser parser(argc, argv);
|
||||
|
||||
|
|
|
|||
|
|
@ -211,8 +211,8 @@ int main()
|
|||
typedef eoParseTree<FitnessType, GpNode> EoType;
|
||||
typedef eoPop<EoType> Pop;
|
||||
|
||||
const int MaxSize = 75;
|
||||
const int nGenerations = 50;
|
||||
const int MaxSize = 100;
|
||||
const int nGenerations = 500;
|
||||
|
||||
// Initializor sequence, contains the allowable nodes
|
||||
vector<GpNode> init(init_sequence, init_sequence + 5);
|
||||
|
|
@ -223,21 +223,24 @@ int main()
|
|||
// Root Mean Squared Error Measure
|
||||
RMS<FitnessType, GpNode> eval;
|
||||
|
||||
Pop pop(500, initializer);
|
||||
Pop pop(5000, initializer);
|
||||
|
||||
apply<EoType>(eval, pop);
|
||||
|
||||
eoSubtreeXOver<FitnessType, GpNode> xover(MaxSize);
|
||||
eoBranchMutation<FitnessType, GpNode> mutation(initializer, MaxSize);
|
||||
|
||||
eoSequentialGOpSel<EoType> seqSel;
|
||||
// The operators are encapsulated into an eoTRansform object,
|
||||
// that performs sequentially crossover and mutation
|
||||
eoSGATransform<EoType> transform(xover, 0.75, mutation, 0.25);
|
||||
|
||||
seqSel.addOp(mutation, 0.25);
|
||||
seqSel.addOp(xover, 0.75);
|
||||
// The robust tournament selection
|
||||
eoDetTournamentSelect<EoType> selectOne(2); // tSize in [2,POPSIZE]
|
||||
// is now encapsulated in a eoSelectMany: 2 at a time -> SteadyState
|
||||
eoSelectMany<EoType> select(selectOne,2, eo_is_an_integer);
|
||||
|
||||
eoDetTournamentSelect<EoType> selector(5);
|
||||
|
||||
eoDetTournamentInserter<EoType> inserter(eval, 5);
|
||||
// and the Steady-State replacement
|
||||
eoSSGAWorseReplacement<EoType> replace;
|
||||
|
||||
// Terminators
|
||||
eoGenContinue<EoType> term(nGenerations);
|
||||
|
|
@ -256,7 +259,7 @@ int main()
|
|||
monitor.add(best);
|
||||
|
||||
// GP generation
|
||||
eoSteadyStateEA<EoType> gp(seqSel, selector, inserter, checkPoint);
|
||||
eoEasyEA<EoType> gp(checkPoint, eval, select, transform, replace);
|
||||
|
||||
cout << "Initialization done" << endl;
|
||||
|
||||
|
|
|
|||
Reference in a new issue