-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGASimpleGA.h
More file actions
70 lines (55 loc) · 2.33 KB
/
GASimpleGA.h
File metadata and controls
70 lines (55 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// $Header$
/* ----------------------------------------------------------------------------
gasimple.h
mbwall 28jul94
Copyright (c) 1995 Massachusetts Institute of Technology
all rights reserved
Header file for the simple genetic algorithm class.
---------------------------------------------------------------------------- */
#ifndef _ga_gasimple_h_
#define _ga_gasimple_h_
#include <ga/GABaseGA.h>
class GASimpleGA : public GAGeneticAlgorithm {
public:
GADefineIdentity("GASimpleGA", GAID::SimpleGA);
static GAParameterList& registerDefaultParameters(GAParameterList&);
public:
GASimpleGA(const GAGenome&);
GASimpleGA(const GAPopulation&);
GASimpleGA(const GASimpleGA&);
GASimpleGA& operator=(const GASimpleGA&);
virtual ~GASimpleGA();
virtual void copy(const GAGeneticAlgorithm&);
virtual void initialize(unsigned int seed=0);
virtual void step();
GASimpleGA & operator++() { step(); return *this; }
virtual int setptr(const char* name, const void* value);
virtual int get(const char* name, void* value) const;
GABoolean elitist() const {return el;}
GABoolean elitist(GABoolean flag)
{params.set(gaNelitism, (int)flag); return el=flag;}
virtual int minimaxi() const {return minmax;}
virtual int minimaxi(int m);
virtual const GAPopulation& population() const {return *pop;}
virtual const GAPopulation& population(const GAPopulation&);
virtual int populationSize() const {return pop->size();}
virtual int populationSize(unsigned int n);
virtual GAScalingScheme& scaling() const {return pop->scaling();}
virtual GAScalingScheme& scaling(const GAScalingScheme & s)
{oldPop->scaling(s); return GAGeneticAlgorithm::scaling(s);}
virtual GASelectionScheme& selector() const {return pop->selector(); }
virtual GASelectionScheme& selector(const GASelectionScheme& s)
{oldPop->selector(s); return GAGeneticAlgorithm::selector(s);}
virtual void objectiveFunction(GAGenome::Evaluator f);
virtual void objectiveData(const GAEvalData& v);
protected:
GAPopulation *oldPop; // current and old populations
GABoolean el; // are we elitist?
};
#ifdef GALIB_USE_STREAMS
inline STD_OSTREAM & operator<< (STD_OSTREAM & os, GASimpleGA & arg)
{ arg.write(os); return(os); }
inline STD_ISTREAM & operator>> (STD_ISTREAM & is, GASimpleGA & arg)
{ arg.read(is); return(is); }
#endif
#endif