Refactor fitness calculation using combinations
This commit is contained in:
parent
9a4831e31e
commit
550f0bb043
16
src/main.py
16
src/main.py
|
@ -3,6 +3,7 @@ from greedy import greedy_algorithm
|
|||
from local_search import local_search
|
||||
from sys import argv
|
||||
from time import time
|
||||
from itertools import combinations
|
||||
|
||||
|
||||
def execute_algorithm(choice, n, m, data):
|
||||
|
@ -25,13 +26,14 @@ def get_row_distance(source, destination, data):
|
|||
|
||||
def get_fitness(solutions, data):
|
||||
counter = 0
|
||||
for i in range(len(solutions) - 1):
|
||||
for j in range(i + 1, len(solutions)):
|
||||
counter += get_row_distance(
|
||||
source=solutions["point"].iloc[i],
|
||||
destination=solutions["point"].iloc[j],
|
||||
data=data,
|
||||
)
|
||||
comb = combinations(solutions.index, r=2)
|
||||
for index in list(comb):
|
||||
elements = solutions.loc[index, :]
|
||||
counter += get_row_distance(
|
||||
source=elements["point"].head(n=1).values[0],
|
||||
destination=elements["point"].tail(n=1).values[0],
|
||||
data=data,
|
||||
)
|
||||
return counter
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue