Was ist der effizienteste Weg, um mit Numpy die Länge des Pfades von der Adjazenzmatrix zu erhalten?
Posted: 12 Apr 2025, 17:10
Das Problem, das ich löste, ist die Optimierung eines genetischen Algorithmus für das Problem mit reisenden Verkäufern. Die Berechnung des Pfades braucht die meiste Zeit. Hier ist der aktuelle Code, an dem ich arbeite: < /p>
Code: Select all
from itertools import pairwise
import numpy as np
from random import shuffle
def get_path_len(adj_mat: np.ndarray, path: np.ndarray) -> float:
return sum(adj_mat[i, j] for i, j in pairwise(path)) + adj_mat[path[-1], path[0]]
mat = np.random.randint(1, 1000, (100, 100))
path = np.asarray(list(range(100)))
shuffle(path)
print(get_path_len(mat, path))