-
Kappes Marques Rodrigo authoredKappes Marques Rodrigo authored
algogenetique.py 1.64 KiB
import mathutils
import math
import numpy
import RotTable
from individu import Individu
from population import Population, afficher
import croisement
from Traj3D import *
from random import random
import matplotlib.pyplot as plt
import time
# Debut du decompte du temps
start_time = time.time()
def main(N,tmax,pmutation, proportion):
L=[]
lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")]
brin = ''.join(lineList[1:])
People=Population(N)
S1=[]
for individu in People.indiv:
individu.evaluate()
S1.append(int(individu.score))
maximum=int(max(S1))
for i in range(tmax):
#print(i)
mini=People.indiv[0].score
best=People.indiv[0]
People.reproduction(p = proportion, proba_mutation= pmutation)
for individu in People.indiv:
if individu.score<mini:
best=individu
mini=individu.score
L.append(mini)
print(i,":",mini)
plt.subplot(221)
plt.plot([i for i in range(tmax)], L)
plt.subplot(223)
plt.hist(S1, range = (0, maximum+10), bins = 20, color = 'red')
S2=[individu.score for individu in People.indiv]
print("Score final: ",best.score)
plt.subplot(224)
plt.hist(S2, range = (0,maximum+10), bins = 20, color = 'blue')
plt.show()
return(best,People)
lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")]
brin = ''.join(lineList[1:])
best,People = main(10,10,0.01,5)
test = Traj3D()
test.compute(brin, best.table)
test.draw("first_plot")
# Affichage du temps d execution
print("Temps d'execution : %s secondes " % (time.time() - start_time))