paradiseo/eo/src/pyeo/PyEO/__init__.py
2011-05-05 16:54:00 +02:00

83 lines
2.1 KiB
Python

from PyEO import *
try:
import Gnuplot
except ImportError:
print "Python support for Gnuplot not found"
else:
class eoGnuplot1DMonitor(eoMonitor):
def __init__(self):
eoMonitor.__init__(self)
self.values = []
self.indices = []
self.g = Gnuplot.Gnuplot()
self.g.reset();
def handleParam(self, i, param):
param = float(param)
while len(self.values) <= i:
self.values.append( [] )
self.values[i].append(param)
def __call__(self):
l = len(self)
if l > 3 or l == 0:
print 'Can only handle 1 to 3 params currently'
i = 0
for param in self:
self.handleParam(i,param)
i += 1
self.indices.append( len(self.indices) )
data1 = Gnuplot.Data(self.indices, self.values[0], with = 'lines')
if l == 1:
self.g.plot(data1)
else:
data2 = Gnuplot.Data(self.indices, self.values[1], with = 'lines')
if l == 2:
self.g.plot(data1, data2)
else:
data3 = Gnuplot.Data(self.indices, self.values[2], with = 'lines')
self.g.plot(data1, data2, data3)
def SeperatedVolumeMonitor(eoMonitor):
def __init__(self, file):
eoMonitor.__init__(self)
self.file = file
self.initialized = None;
def __call__(self):
pass
class eoStat(eoStatBase, eoValueParam):
def __init__(self):
eoStatBase.__init__(self)
eoValueParam.__init__(self)
class eoSortedStat(eoSortedStatBase, eoValueParam):
def __init__(self):
eoSortedStatBase.__init__(self)
eoValueParam.__init__(self)
class eoAverageStat(eoStat):
def __call__(self, pop):
sum = 0.0;
for indy in pop:
sum += indy.fitness
sum /= len(pop)
self.object = sum
class eoBestFitnessStat(eoSortedStat):
def __call__(self, pop):
self.object = pop[0].fitness