Refactor fitness calculation using combinations
This commit is contained in:
parent
9a4831e31e
commit
550f0bb043
10
src/main.py
10
src/main.py
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue