Remove deprecated code
This commit is contained in:
parent
ed41333e87
commit
ac300129ce
|
@ -1,5 +1,5 @@
|
||||||
from numpy import sum, append, arange, delete, where
|
from numpy import sum, append, arange, delete, where
|
||||||
from numpy.random import randint, choice, shuffle, random
|
from numpy.random import randint, choice, shuffle
|
||||||
from pandas import DataFrame
|
from pandas import DataFrame
|
||||||
from math import ceil
|
from math import ceil
|
||||||
|
|
||||||
|
@ -132,7 +132,8 @@ def mutate(population, n, probability=0.001):
|
||||||
genes = []
|
genes = []
|
||||||
for _ in range(ceil(expected_mutations)):
|
for _ in range(ceil(expected_mutations)):
|
||||||
individuals.append(randint(n))
|
individuals.append(randint(n))
|
||||||
genes.append(population[individuals[-1]].sample().index)
|
current_individual = individuals[-1]
|
||||||
|
genes.append(population[current_individual].sample().index)
|
||||||
for ind, gen in zip(individuals, genes):
|
for ind, gen in zip(individuals, genes):
|
||||||
individual = population[ind]
|
individual = population[ind]
|
||||||
individual["point"].iloc[gen] = select_new_gene(individual, n)
|
individual["point"].iloc[gen] = select_new_gene(individual, n)
|
||||||
|
@ -146,39 +147,5 @@ def tournament_selection(solution):
|
||||||
return individuals.iloc[best_index]
|
return individuals.iloc[best_index]
|
||||||
|
|
||||||
|
|
||||||
def replace_worst_element(previous, n, data):
|
|
||||||
solution = previous.copy()
|
|
||||||
worst_index = solution["distance"].astype(float).idxmin()
|
|
||||||
random_element = randint(n)
|
|
||||||
while element_in_dataframe(solution=solution, element=random_element):
|
|
||||||
random_element = randint(n)
|
|
||||||
solution["point"].loc[worst_index] = random_element
|
|
||||||
solution["distance"].loc[worst_index] = compute_distance(
|
|
||||||
element=solution["point"].loc[worst_index], solution=solution, data=data
|
|
||||||
)
|
|
||||||
return solution
|
|
||||||
|
|
||||||
|
|
||||||
def get_random_solution(previous, n, data):
|
|
||||||
solution = replace_worst_element(previous, n, data)
|
|
||||||
while solution["distance"].sum() <= previous["distance"].sum():
|
|
||||||
solution = replace_worst_element(previous=solution, n=n, data=data)
|
|
||||||
return solution
|
|
||||||
|
|
||||||
|
|
||||||
def explore_neighbourhood(element, n, data, max_iterations=100000):
|
|
||||||
neighbourhood = []
|
|
||||||
neighbourhood.append(element)
|
|
||||||
for _ in range(max_iterations):
|
|
||||||
previous_solution = neighbourhood[-1]
|
|
||||||
neighbour = get_random_solution(previous=previous_solution, n=n, data=data)
|
|
||||||
neighbourhood.append(neighbour)
|
|
||||||
return neighbour
|
|
||||||
|
|
||||||
|
|
||||||
def genetic_algorithm(n, m, data):
|
def genetic_algorithm(n, m, data):
|
||||||
first_solution = generate_first_solution(n, m, data)
|
first_solution = generate_first_solution(n, m, data)
|
||||||
best_solution = explore_neighbourhood(
|
|
||||||
element=first_solution, n=n, data=data, max_iterations=100
|
|
||||||
)
|
|
||||||
return best_solution
|
|
||||||
|
|
Loading…
Reference in New Issue