Das Problem des Handlungsreisenden ist also ein Problem, bei dem ein Handlungsreisender alle Städte so durchqueren muss, dass die Gesamtfahrstrecke minimal ist. Sie können dies als ganzzahliges lineares Problem umschreiben:
Beschriften Sie die Städte mit den Nummern und definieren:
Für , lassen sei eine künstliche Variable und nimm schließlich die Entfernung von der Stadt sein zur Stadt . Dann kann TSP als das folgende ganzzahlige lineare Programmierproblem geschrieben werden:
Ich verstehe die letzte Einschränkung nicht, . Es gibt einen Abschnitt auf Wikipedia, in dem erklärt wird, dass diese Einschränkung erzwingt, dass es nur eine einzige Tour gibt, die alle Städte abdeckt, anstatt mehrere unzusammenhängende Touren, die alle Städte abdecken. Es erklärt auch warum ( siehe Erklärung hier ), aber ich verstehe diese Erklärung nicht.
Kann jemand erklären, wie diese Einschränkung erzwingt, dass es nur eine einzige Tour gibt, die alle Städte abdeckt?
Betrachten Sie den Fall mit 4 Städten: Albany, Boston, Charlotte und Detroit.
So könnte man eine Tour machen, die sowohl von Albany nach Boston und zurück als auch von Charlotte nach Detroit und zurück geht. In diesem Fall ist jede Stadt genau einmal eine Ankunft und genau einmal eine Abfahrt, was die Bedingungen erfüllt, aber keine echte Lösung ist, da es sich nicht um einen Zyklus in der Grafik handelt. (Nehmen wir also an, Albany nach Boston ist Schritt 1, Boston nach Albany ist Schritt 2, Charlotte nach Detroit ist Schritt 3 und Detroit nach Charlotte ist Schritt 4.)
Bei der Auswahl wann Stadt wird bei Schritt besucht das würde machen , , Und .
Die 4 das sind eins sind . Betrachten Sie nun, wie diese Zeile:
Wenn wir die tauschen Und hier, dann wäre der Ausdruck was die Einschränkung für die oben erwähnte Lösung verletzt und das Zurückverfolgen verhindert, was eine Möglichkeit ist, diese Einschränkung in dem Problem zu sehen.
Dies ist zwar keine erschöpfende Antwort, gibt aber hoffentlich eine Vorstellung davon, warum es funktionieren würde.
Donald