Refactor fitness calculation using combinations

This commit is contained in:
coolneng 2021-05-19 20:43:14 +02:00
parent 9a4831e31e
commit 550f0bb043
Signed by: coolneng
GPG Key ID: 9893DA236405AF57
1 changed files with 9 additions and 7 deletions

View File

@ -3,6 +3,7 @@ from greedy import greedy_algorithm
from local_search import local_search from local_search import local_search
from sys import argv from sys import argv
from time import time from time import time
from itertools import combinations
def execute_algorithm(choice, n, m, data): def execute_algorithm(choice, n, m, data):
@ -25,11 +26,12 @@ def get_row_distance(source, destination, data):
def get_fitness(solutions, data): def get_fitness(solutions, data):
counter = 0 counter = 0
for i in range(len(solutions) - 1): comb = combinations(solutions.index, r=2)
for j in range(i + 1, len(solutions)): for index in list(comb):
elements = solutions.loc[index, :]
counter += get_row_distance( counter += get_row_distance(
source=solutions["point"].iloc[i], source=elements["point"].head(n=1).values[0],
destination=solutions["point"].iloc[j], destination=elements["point"].tail(n=1).values[0],
data=data, data=data,
) )
return counter return counter