[GO] Python: Ich habe das Problem des Handlungsreisenden ausprobiert

Was für ein Problem war das [Circular Salesman Problem](https://ja.wikipedia.org/wiki/Circuit Salesman Problem)? Ich versuchte es. nur.

Lösung des Problems des Handlungsreisenden mit verschiedenen Näherungslösungen (1)

from itertools import permutations as IT_perm

total_cost = lambda costs : lambda seq : sum(
    costs[ seq[i - 1] ][ e ]
    for i, e in enumerate( seq )
)

head_fixed_permutations = lambda nodes : (
    nodes[ 0:1 ] + list( tail ) 
    for tail in IT_perm( nodes[ 1: ] )
)


costs = [
      [0, 6, 5, 5]
    , [6, 0, 7, 4]
    , [5, 7, 0, 3]
    , [5, 4, 3, 0]
    ]

nodes = [0, 1, 2, 3]

print(
    min(
        head_fixed_permutations( nodes )
        , key = total_cost( costs )
    )
)

#Ergebnis:[0, 1, 3, 2]

In den Listenkosten wird angenommen, dass die Kosten für den Wechsel von Knoten a zu Knoten b durch die Kosten [a] [b] gegeben sind. Knoten ist eine Liste der Knoten, der Startpunkt ist auf Knoten [0] festgelegt: (Wert ist 0).

So wie ich darüber dachte In der Reihenfolge der Knoten mit festen Köpfen, Der Wert, auf den die Funktion zur Berechnung der Gesamtkosten angewendet wird. Der kleinste Ausgabe darüber.

Ich verstehe, das ist es. Es war überraschend einfach.

Recommended Posts

Python: Ich habe das Problem des Handlungsreisenden ausprobiert
Ich habe versucht, das Problem des Handlungsreisenden umzusetzen
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Über das bestellte Patrouillenverkäuferproblem
Ich habe versucht, "einen genetischen Algorithmus (GA) in Python zu implementieren, um das Problem des Handlungsreisenden (TSP) zu lösen".
Lösen Sie das Problem des Handlungsreisenden mit OR-Tools
Ich habe das Python Tornado Testing Framework ausprobiert
Ich habe Python> autopep8 ausprobiert
Ich habe Python> Decorator ausprobiert
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
[Python] Ich habe versucht, den Funktionsnamen durch den Funktionsnamen zu ersetzen
vprof - Ich habe versucht, den Profiler für Python zu verwenden
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, "Birthday Paradox" mit Python zu simulieren
Ich habe die Methode der kleinsten Quadrate in Python ausprobiert
Ich habe zum ersten Mal versucht, Python zu programmieren.
Ich habe versucht, das Datetime-Modul von Python zu verwenden
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, die in Python installierten Pakete grafisch darzustellen
Ich habe Python zum ersten Mal auf dem Mac ausprobiert.
Ich habe versucht, eine CSV-Datei mit Python zu berühren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Ich habe die Changefinder-Bibliothek ausprobiert!
Ich habe die C-Erweiterung von Python ausprobiert
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe die Python-Quelle heruntergeladen
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Ich habe versucht, das Lachproblem mit Keras zu erkennen.
Ich habe versucht, das Gesicht aus dem Video zu erkennen (OpenCV: Python-Version)
Ich habe versucht, den Chi-Quadrat-Test in Python und Java zu programmieren.
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
Ich habe versucht, die Mail-Sendefunktion in Python zu implementieren
Verschiedene Hinweise zur Verwendung von Python für Projekte
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Ich habe versucht, die Unterschiede zwischen Java und Python aufzuzählen
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ich habe das TensorFlow-Tutorial als erstes ausprobiert
Ich habe versucht, Python zu berühren (Installation)
Brennmethode und Problem mit reisenden Verkäufern
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe es mit Grumpy versucht (Python ausführen).
Ich mochte den Tweet mit Python. ..
Ich habe die Warteschlange in Python geschrieben
Ich habe die neuartige API von Naruro ausprobiert
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe Line Benachrichtigung in Python versucht
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe versucht, den Ball zu bewegen
Ich habe versucht, die checkio-API zu verwenden
Ich habe den Stack in Python geschrieben
Ich habe versucht, den Abschnitt zu schätzen.