# fichier de tests du projet import matplotlib.pyplot as plt import random # project libs importations import lib.ultra_mastermind_obj as libobj import lib.ultra_mastermind_imp as libimp import lib.ultra_mastermind_pp_imp as libppimp PM = "Hello, world!" NG = 4000 N = 400 TS = 0.7 TM = 0.25 ALPHA = 0.5 FITNESS_METHOD = 3 # Variation de la taille de la phrase length_ng = [] length = [] for i in range(5, 26, 3): print(f"Step {i}:") length.append(i) vals = [] for j in range(5): print(f" Part {j}") PM = "".join([chr(random.randint(0, 255)) for _ in range(i)]) pop = libppimp.new_population(PM, NG, N, TS, TM, ALPHA, FITNESS_METHOD) ng = libppimp.run(pop) vals.append(ng) length_ng.append(sum(vals) / len(vals)) plt.plot(length, length_ng) plt.title("Nombre de générations nécéssaires en fonction de la taille de la phrase.") plt.xlabel("Taille de la phrase") plt.ylabel("Nombre de générations") plt.show() # Variation de la taille de la population n_ng = [] n = [] for i in range(50, 1000, 100): print(f"Step {i}:") n.append(i) vals = [] for j in range(5): print(f" Part {j}") pop = libppimp.new_population(PM, NG, i, TS, TM, ALPHA, FITNESS_METHOD) ng = libppimp.run(pop) vals.append(ng) n_ng.append(sum(vals) / len(vals)) plt.plot(n, n_ng) plt.title("Nombre de générations nécéssaires en fonction de la taille de la population.") plt.xlabel("Taille de la population") plt.ylabel("Nombre de générations") plt.show() # Variation du taut de sélection ts_ng = [] ts = [] for i in range(1, 9, 1): print(f"Step {i / 10}:") ts.append(i / 10) vals = [] for j in range(5): print(f" Part {j}") pop = libppimp.new_population(PM, NG, N, i / 10, TM, ALPHA, FITNESS_METHOD) ng = libppimp.run(pop) vals.append(ng) ts_ng.append(sum(vals) / len(vals)) plt.plot(ts, ts_ng) plt.title("Nombre de générations nécéssaires en fonction du taut de sélection.") plt.xlabel("Taut de sélection") plt.ylabel("Nombre de générations") plt.show() # Variation du taut de mutation tm_ng = [] tm = [] for i in range(10, 40, 5): print(f"Step {i / 100}:") tm.append(i / 100) vals = [] for j in range(5): print(f" Part {j}") pop = libppimp.new_population(PM, NG, N, TS, i / 100, ALPHA, FITNESS_METHOD) ng = libppimp.run(pop) vals.append(ng) tm_ng.append(sum(vals) / len(vals)) plt.plot(tm, tm_ng) plt.title("Nombre de générations nécéssaires en fonction du taut de mutation.") plt.xlabel("Taut de mutation") plt.ylabel("Nombre de générations") plt.show()