Was die optimale Art und Weise ist manhattan distances der Berechnungmanhattan Entfernungen
Meine aktuelle Lösung ist:
def distance(state):
target_state = (1,2,3,4,5,6,7,8,0)
target_matrix = np.reshape(np.asarray(list(target_state)),(-1,3))
reshaped_matrix = np.reshape(np.asarray(list(state)),(-1,3))
dist = 0
for i in range(1,9):
dist = dist + (abs(np.where(target_matrix == i)[0][0]
- np.where(reshaped_matrix == i)[0][0]) +
abs(np.where(target_matrix == i)[1][0]
- np.where(reshaped_matrix == i)[1][0]))
return dist
Es muss etwas geben, was Sie uns nicht erklären. Die Manhattan-Entfernung ist 'dx + dy', was eine ebenso effiziente Art ist, sie zu berechnen. –
Der Zielzustand bleibt gleich. Gibt es einen besseren Weg als meinen Weg? – Harjatin
Ich würde definitiv nicht numpy für dieses verwenden ... –