Saataa andagii !
This commit is contained in:
parent
da4d3dca5f
commit
4f43c149ee
5 changed files with 57 additions and 25 deletions
|
@ -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:
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue