from pyevolve import Mutators, Initializators
from pyevolve import GSimpleGA, Consts
from pyevolve import DBAdapters
# This is the Sphere Function
def EvalFunc(xlist):
global SectionProps,Sections,SectionToAnalyse,NodesList,ElNormTarget,OptimInput,K,Kl,M,Rlb,Damping,Cdb,TestType,TestStandPitch,BladePitch,gravity
Args=(SectionProps,Sections,SectionToAnalyse,NodesList,ElNormTarget,OptimInput,K,Kl,M,Rlb,Damping,Cdb,TestType,TestStandPitch,BladePitch,gravity,False)
xg=np.array(xlist[:])
Error=OptimFunc(xg,*Args)
return 1.0/Error
sqlite_adapter = DBAdapters.DBSQLite(identify="ex1", resetDB=True,frequency=1, commit_freq=1)
genome = G1DList.G1DList(12)
sqlite_adapter.setStatsGenFreq(1)
genome.setParams(rangemin=0.0, rangemax=1.0)
genome.initializator.set(Initializators.G1DListInitializatorReal)
genome.mutator.set(Mutators.G1DListMutatorRealGaussian)
genome.evaluator.set(EvalFunc)
ga = GSimpleGA.GSimpleGA(genome)
ga.setDBAdapter(sqlite_adapter)
ga.setMinimax(Consts.minimaxType["maximize"])
ga.setGenerations(200)
ga.setMutationRate(0.01)
ga.evolve(freq_stats=1)
sqlite_adapter.open(ga)
sqlite_adapter.insert(ga)
sqlite_adapter.commitAndClose()
best = ga.bestIndividual()
Args=(SectionProps,Sections,SectionToAnalyse,NodesList,ElNormTarget,OptimInput,K,Kl,M,Rlb,Damping,Cdb,TestType,TestStandPitch,BladePitch,gravity,True)
xg=np.array(best[:])
Error,Forces,Mass,ElNorm=OptimFunc(xg,*Args)
#python "C:\Python27\Lib\site-packages\Pyevolve\pyevolve_graph.py" -i ex1 -1