Problem des Handlungsreisenden als ganzzahliges lineares Programm

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 0 , . . . , N und definieren:

X ich J = { 1 Der Weg führt von der Stadt  ich  zur Stadt  J 0 ansonsten

Für ich = 0 , . . . , N , lassen u ich sei eine künstliche Variable und nimm schließlich C ich J die Entfernung von der Stadt sein ich zur Stadt J . Dann kann TSP als das folgende ganzzahlige lineare Programmierproblem geschrieben werden:

Mindest ich = 0 N J ich , J = 0 N C ich J X ich J 0 X ich J 1 ich , J = 0 , , N u ich Z ich = 0 , , N ich = 0 , ich J N X ich J = 1 J = 0 , , N J = 0 , J ich N X ich J = 1 ich = 0 , , N u ich u J + N X ich J N 1 1 ich J N

Ich verstehe die letzte Einschränkung nicht, u ich u J + N X ich J N 1 , 1 ich J N . 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?

Ich glaube nicht, dass der Bereich für die letzte Einschränkung korrekt ist. Denn das hindert Sie daran, zum Quellknoten zurückzukehren. Ich denke, es sollte sein 2 ich J N

Antworten (1)

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 u ich = T wann Stadt ich wird bei Schritt besucht T das würde machen u 1 = 1 , u 2 = 2 , u 3 = 3 Und u 4 = 4 .

Die 4 X ich J das sind eins sind X 12 , X 21 , X 34 , X 43 . Betrachten Sie nun, wie diese Zeile:

u ich u J + N X ich J = ( T ) ( T + 1 ) + N = N 1

Wenn wir die tauschen ich Und J hier, dann wäre der Ausdruck T + 1 T + N = N + 1 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.