diff --git a/__pycache__/individu.cpython-37.pyc b/__pycache__/individu.cpython-37.pyc index 35557e4070ba1d2d0c008c67f366796605baa71d..32b398e808901aa0ca8d048b9b3c1ebb2f6c5133 100644 Binary files a/__pycache__/individu.cpython-37.pyc and b/__pycache__/individu.cpython-37.pyc differ diff --git a/algogenetique.py b/algogenetique.py index 1a0fa8348f1102079f6a2b06f22c0be8f79638e4..c445a682f6fd8e67ff7f88e147ab0f0d5b4b1cf6 100644 --- a/algogenetique.py +++ b/algogenetique.py @@ -33,8 +33,11 @@ def main(N,tmax,pmutation, proportion): if individu.score<mini: best=individu mini=individu.score + + S2=[individu.score for individu in People.indiv] + avg = sum(S2)/len(S2) L.append(mini) - print(i,":",mini) + print(i,"avg:",avg,"best score:", mini) plt.subplot(221) plt.plot([i for i in range(tmax)], L) @@ -56,7 +59,7 @@ def main(N,tmax,pmutation, proportion): lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")] brin = ''.join(lineList[1:]) -best,People = main(20,10,0.01,10) +best,People = main(50,20,0.05,25) test = Traj3D() test.compute(brin, best.table) test.draw("first_plot") diff --git a/individu.py b/individu.py index 1d2a706a5acea6ae88b00cb210c140c981aa38f6..9c46b886d430b8297fc25773327d7688e073c047 100644 --- a/individu.py +++ b/individu.py @@ -29,12 +29,12 @@ class Individu(): last_seq = self.brin[-numb_ajout:] traj.compute(last_seq + self.brin + fisrt_seq, self.table) - traj_array = np.array(traj.getTraj()) + traj_array = traj.getTraj() list_distance = [] - begining = traj_array[0:2*numb_ajout, 0:3] - end = traj_array[-2*numb_ajout:, 0:3] + begining = traj_array[0:2*numb_ajout] + end = traj_array[-2*numb_ajout:] for i in range(numb_ajout): @@ -98,7 +98,7 @@ class Individu(): table_rotation_not_seen.remove(doublet) for coord in range(3): - value = table_rotations[doublet][coord] + np.random.uniform( low = - self.table.orta()[doublet][coord + 3]/10, high = - self.table.orta()[doublet][coord + 3]/10) + value = table_rotations[doublet][coord] + np.random.normal(0, self.table.orta()[doublet][coord + 3]/15) if value > self.table.orta()[doublet][coord] + self.table.orta()[doublet][coord + 3]: value = self.table.orta()[doublet][coord] + self.table.orta()[doublet][coord + 3] elif value < self.table.orta()[doublet][coord] - self.table.orta()[doublet][coord + 3]: diff --git a/population.py b/population.py index 28a8700140b4f50e4fbad62f36110da084087edd..0769839fc70466164fe07d202d0cc72997c222e5 100644 --- a/population.py +++ b/population.py @@ -165,7 +165,7 @@ class Population: for child in couple_enfant : lineList = [line.rstrip('\n') for line in open("plasmid_8k.fasta")] brin = ''.join(lineList[1:]) - child.mutation(proba_mutation) + child.mutation_close_values(proba_mutation, number_of_mutations = 2) child.evaluate() newself.append(couple_enfant[0]) newself.append(couple_enfant[1])