Saataa andagii !

This commit is contained in:
Lukian 2024-11-25 09:32:41 +01:00
parent da4d3dca5f
commit 4f43c149ee
5 changed files with 57 additions and 25 deletions

View file

@ -51,21 +51,24 @@ def new_individual(): # -> set(str)
"chromozome": ""
}
def get_fitness(population, individual) -> int:
match population["fm"]:
case 1:
return fitness1(individual, population["pm"])
case 2:
return fitness2(individual, population["pm"], population["alpha"])
case 3:
return fitness3(individual, population["pm"])
case _:
return fitness1(individual, population["pm"])
def select(population) -> None:
"""
Methode qui sélectionne les meilleurs individus
"""
fitness_list = []
for individual in population["individuals"]:
match population["fm"]:
case 1:
fitness_list.append(fitness1(individual, population["pm"]))
case 2:
fitness_list.append(fitness2(individual, population["pm"], population["alpha"]))
case 3:
fitness_list.append(fitness3(individual, population["pm"]))
case _:
fitness_list.append(fitness1(individual, population["pm"]))
fitness_list.append(get_fitness(population, individual))
for i in range(int((1 - population["ts"]) * population["n"])):
least = min_i(fitness_list)
@ -103,22 +106,20 @@ def mutate_pop(population) -> None:
mutate(population["individuals"][to_mutate])
mutated.append(to_mutate)
def get_best(population):
"""
Methode qui renvoie le meilleur individu de la population
"""
fitness_list = []
for individual in population["individuals"]:
fitness_list.append(get_fitness(population, individual))
return population["individuals"][max_i(fitness_list)]
def print_best(population) -> None:
"""
Methode qui affiche le meilleur individu de la population
"""
fitness_list = []
for individual in population["individuals"]:
match population["fm"]:
case 1:
fitness_list.append(fitness1(individual, population["pm"]))
case 2:
fitness_list.append(fitness2(individual, population["pm"], population["alpha"]))
case 3:
fitness_list.append(fitness3(individual, population["pm"]))
case _:
fitness_list.append(fitness1(individual, population["pm"]))
print(population["individuals"][max_i(fitness_list)]["chromozome"])
print(get_best(population)["chromozome"])
def run(population) -> None:
"""