diff --git a/__pycache__/RotTable.cpython-37.pyc b/__pycache__/RotTable.cpython-37.pyc index e6bef50c3581cf2f06a53777c7291030d276cecd..64b41c9070f8c3bcccf58f1c80d64aa9e723cf13 100644 Binary files a/__pycache__/RotTable.cpython-37.pyc and b/__pycache__/RotTable.cpython-37.pyc differ diff --git a/__pycache__/Traj3D.cpython-37.pyc b/__pycache__/Traj3D.cpython-37.pyc index 865cc612f429be0814ee850289aa455b69755f50..5bcb4d8418f4525b71a8bb56bf694fb3e384bafb 100644 Binary files a/__pycache__/Traj3D.cpython-37.pyc and b/__pycache__/Traj3D.cpython-37.pyc differ diff --git a/__pycache__/individu.cpython-37.pyc b/__pycache__/individu.cpython-37.pyc index af04e82760def202853d9a3c799aeaa8eb2c20f9..40c376d68717c46fb59d812ec0e07760c3dfa49e 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 cbcde6366a75846200845f298aabc3b3588fda1c..2dab902ae6d3fb5d5936b82b2d06d8621ccb46ff 100644 --- a/algogenetique.py +++ b/algogenetique.py @@ -31,7 +31,7 @@ def main(N,tmax,pmutation, proportion,brin="plasmid_8k.fasta"): if individu.score>max: best=individu max=individu.score - afficher(People) + # afficher(People) L.append(max) #print(L) plt.plot([i for i in range(tmax)], L) @@ -39,7 +39,7 @@ def main(N,tmax,pmutation, proportion,brin="plasmid_8k.fasta"): return(best) -main(10,50,0,5) +main(6,8,0.01,2) diff --git a/inutile.py b/inutile.py index 1a2947e5d6d776eaab4c42387fcd36f075272bea..420a646fc6e25c17b5aec102de8321736ae1ebaf 100644 --- a/inutile.py +++ b/inutile.py @@ -31,7 +31,7 @@ class table_rotation(rotation): self.dict = {doublet : rotation(doublet) for doublet in ORIGINAL_ROT_TABLE} table1 = table_rotation() -print(table1.dict["AA"].x) +# print(table1.dict["AA"].x) #table1.dict --> {'AA': <__main__.rotation object at 0x000001A722E1BAC8>, 'AC': <__main__.rotation object at 0x000001A722E1BB00>, 'AG': <__main__.rotation object at 0x000001A729A66A58>, 'AT': <__main__.rotation object at 0x000001A729A66A20>, 'CA': <__main__.rotation object at 0x000001A729A669E8>, 'CC': <__main__.rotation object at 0x000001A729A66A90>, 'CG': <__main__.rotation object at 0x000001A729A66B00>, 'CT': <__main__.rotation object at 0x000001A729A66B70>, 'GA': <__main__.rotation object at 0x000001A729B88D68>, 'GC': <__main__.rotation object at 0x000001A729B88DA0>, 'GG': <__main__.rotation object at 0x000001A729B88DD8>, 'GT': <__main__.rotation object at 0x000001A729B88E10>, 'TA': <__main__.rotation object at 0x000001A729B88E48>, 'TC': <__main__.rotation object at 0x000001A729B88E80>, 'TG': <__main__.rotation object at 0x000001A729B88EB8>, 'TT': <__main__.rotation object at 0x000001A729B88EF0>} #table1.dict["AA"] ---> <__main__.rotation object at 0x000001A722E1BAC8> (qui est l'object rotation) diff --git a/population.py b/population.py index dc51f8c876c286ad1822991da190f5dcf3804b40..25f612d53f3e06512efb23ac15e5ed3426e9fbc7 100644 --- a/population.py +++ b/population.py @@ -1,5 +1,5 @@ -import random -from random import random, randint, randrange + +from random import * from individu import Individu from RotTable import RotTable from croisement import croisement_un_point, croisement_deux_points @@ -45,25 +45,28 @@ class Population: meilleur = self.indiv[0] for individu in self.indiv : if meilleur.score < individu.score: + print("meilleur, individu: ", meilleur.score, individu.score) meilleur = individu newself = [meilleur] - print("\n \n \nmeilleur", meilleur.table.rot_table, "\n \nscore", meilleur.score) - vu=set() + # print("\n \n \nmeilleur", meilleur.table.rot_table, "\n \nscore", meilleur.score) + t=randrange(0,self.n) - m=randrange(0,self.n) + m=randrange(0,self.n) + non_vu = [i for i in range(0, self.n)] while len(newself)<p: - while m in vu: - m=randrange(0,self.n) - while t in vu: - t=randrange(0,self.n) + m = choice(non_vu) + non_vu.remove(m) + t = choice(non_vu) + non_vu.remove(t) + x=self.indiv[m] y=self.indiv[t] - vu.add(t) - vu.add(m) if x.score>=y.score: newself.append(x) else: newself.append(y) + for i in range(0, len(newself)): + print(newself[i].score) self = self.modifier_population(newself) def selection_par_rang(self,p = None):