Was ist der effizienteste Weg, um mit Numpy die Länge des Pfades von der Adjazenzmatrix zu erhalten?Python

Python-Programme
Anonymous
 Was ist der effizienteste Weg, um mit Numpy die Länge des Pfades von der Adjazenzmatrix zu erhalten?

Post by Anonymous »

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))

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post