diff --git a/.DS_Store b/.DS_Store index eb0f78382c04c8e58afb90d646790e2b7fb5c130..c6bf50dfd786e007f7389525a204a30892ff7c32 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/__pycache__/croisement.cpython-37.pyc b/__pycache__/croisement.cpython-37.pyc index ffc251a785b743cc5adda1c078006796b1382246..32aa8054c9bf4394aa2cc4dd70c8392a65cdfb6c 100644 Binary files a/__pycache__/croisement.cpython-37.pyc and b/__pycache__/croisement.cpython-37.pyc differ diff --git a/__pycache__/individu.cpython-37.pyc b/__pycache__/individu.cpython-37.pyc index 0c365d99fb3eabdba06b3525ba7fd21dd8fe17bb..511c39dc9171fe22debb9b7099e4280bc25823aa 100644 Binary files a/__pycache__/individu.cpython-37.pyc and b/__pycache__/individu.cpython-37.pyc differ diff --git a/__pycache__/population.cpython-37.pyc b/__pycache__/population.cpython-37.pyc index 401ae0cbbc69372d8568b1bb8e951a92e401f59d..037163fdebd2a013e0b24fa10c0ea6f91cff2c10 100644 Binary files a/__pycache__/population.cpython-37.pyc and b/__pycache__/population.cpython-37.pyc differ diff --git a/algogenetique.py b/algogenetique.py index 81f6b2ea6134a663035389b9fa5326c2236fc4b8..7474d7498f89f0b70cb353c5fa5701b579775009 100644 --- a/algogenetique.py +++ b/algogenetique.py @@ -45,7 +45,7 @@ def main(N,tmax,pmutation, proportion, indice_selection, population_initiale, en for individu in People.indiv: if individu.score<mini: mini=individu.score - L=[mini] + # L=[mini] for i in range(tmax): print(i) People.reproduction(p = proportion, proba_mutation= pmutation, selection = indice_selection, enfant = enfant) @@ -56,13 +56,13 @@ def main(N,tmax,pmutation, proportion, indice_selection, population_initiale, en best=individu mini=individu.score - S2=[individu.score for individu in People.indiv] - avg = sum(S2)/len(S2) - L.append(mini) + # S2=[individu.score for individu in People.indiv] + # avg = sum(S2)/len(S2) + # L.append(mini) # plt.subplot(221) - liste_selections = ["selection_p_best", "selection_duel_pondere", "selection_duel", "selection_par_rang", "selection_proportionnelle"] - plt.plot([j for j in range(len(L))], L, label = liste_selections[indice_selection]) + # liste_selections = ["selection_p_best", "selection_duel_pondere", "selection_duel", "selection_par_rang", "selection_proportionnelle"] + # plt.plot([j for j in range(len(L))], L, label = liste_selections[indice_selection]) # plt.subplot(223) @@ -105,25 +105,23 @@ def compare_mutation(): def comparaison_selections(): liste_selections = ["selection_p_best", "selection_duel_pondere", "selection_duel", "selection_par_rang", "selection_proportionnelle"] liste_time = [] - plt.figure() - People = Population(100) - for individu in People.indiv: - individu.evaluate() - S2=[individu.score for individu in People.indiv] - plt.hist(S2, range = (0,int(max(S2)+10)), bins = 20, color = 'blue') - plt.show() - plt.figure() + # plt.figure() + People = Population(1000) + # S2=[individu.score for individu in People.indiv] + # plt.hist(S2, range = (0,int(max(S2)+10)), bins = 20, color = 'blue') + # plt.show() + # plt.figure() for i in range(5): print("\n", liste_selections[i], "\n") start_time = time.time() - best = main(100, 35, 0.001, 50, i, deepcopy(People))[0] + best = main(500, 5, 0.001, 500, i, deepcopy(People))[0] liste_time.append((liste_selections[i], time.time() - start_time, best.score)) - plt.legend() - plt.xlabel("Nombre de générations") - plt.ylabel("Score du meilleur individu") - plt.title("Comparaison en fonction de la méthode de sélection") - print(numpy.array(liste_time)) - plt.show() + # plt.legend() + # plt.xlabel("Nombre de générations") + # plt.ylabel("Score du meilleur individu") + # plt.title("Comparaison en fonction de la méthode de sélection") + return numpy.array(liste_time) + # plt.show() # def comparaisons_croisements(): # liste_croisements = ["croisement_un_point", "croisement_deux_points"] @@ -132,8 +130,11 @@ def comparaison_selections(): # compare_mutation() - -comparaison_selections() +liste = [] +for i in range(3): + liste.append(comparaison_selections()) + print(liste) +print(liste) # [['selection_p_best' '22.637820959091187' '116.30569654472626'] # ['selection_duel_pondere' '22.636890172958374' '46.6242321955727'] diff --git a/individu.py b/individu.py index c68b98bc41602063fbc295c26ca2c54d4935c35e..ec3656116187a197b02cdfa128342e9ee8ae26b3 100644 --- a/individu.py +++ b/individu.py @@ -23,7 +23,7 @@ class Individu(): traj = Traj3D() - numb_ajout = 6 + numb_ajout = 50 fisrt_seq = self.brin[0:numb_ajout] last_seq = self.brin[-numb_ajout:]