Handelsreisender - Lineare Programmierung

Also habe ich gerade diese Frage gestellt und eine Antwort akzeptiert, aber mir wurde klar, dass ich das immer noch nicht verstehe und nicht auf meine vorherige Frage zugreifen kann. Wir haben das Problem des Handlungsreisenden

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

Die letzte Einschränkung, u ich u J + N X ich J N 1 stellt sicher, dass es keine Subtouren gibt. Ich sehe jedoch nicht, was das ist. Wikipedia sagt folgendes:

Um zu beweisen, dass jede zulässige Lösung nur eine geschlossene Folge von Städten enthält, genügt es zu zeigen, dass jede Teiltour in einer zulässigen Lösung durch die Stadt 0 verläuft (wobei zu beachten ist, dass die Gleichheiten sicherstellen, dass es nur eine solche Tour geben kann). Denn wenn wir alle entsprechenden Ungleichungen summieren X ich J = 1 für jede Subtour von k Schritte, die nicht durch die Stadt 0 führen, erhalten wir: N k ( N 1 ) k .

Ich verstehe das überhaupt nicht. Wie ist die N k ( N 1 ) k erhalten? Und wie verhindert das, dass es überhaupt Subtouren gibt? Ich habe keine Ahnung.

Welchen Zweck erfüllen die Dummy-Variablen? Wikipedia sagt:

Es muss nun gezeigt werden, dass es für jede einzelne Tour, die alle Städte abdeckt, Werte für die Dummy-Variablen gibt u ich die die Einschränkungen erfüllen.

Aber es erklärt überhaupt nicht, warum diese Dummy-Variablen notwendig sind und was sie zur Ungleichung hinzufügen. Ich bin ratlos.

Diese Frage wurde hier schon einmal gestellt (aber die Antwort hilft mir überhaupt nicht) und hier (von mir, ich dachte, es hat geholfen, aber es hat nicht funktioniert), aber keine der Antworten hilft und meine Frage ist meistens etwas anders sich darauf konzentrieren, wie sie den Ausdruck erhalten haben N k ( N 1 ) k und warum dies verhindert, dass sich Subtouren bilden

Antworten (1)

Zu Ihrer ersten Frage: Nehmen Sie an, Sie haben eine Lösung für das lineare Programm mit Subtour 1 2 3 1 . Nach Annahme gilt der letzte Satz von Ungleichungen. Wenn Sie also Folgendes addieren,

u 1 u 2 + N X 12 N 1 u 2 u 3 + N X 23 N 1 u 3 u 1 + N X 31 N 1 ,
du erhältst
3 N 3 ( N 1 ) .
Das ist ein Widerspruch, also dieser Umweg 1 2 3 1 ist nicht vorhanden.

Im Allgemeinen für jede Subtour der Länge k Nicht beinhaltet 0 , gilt das gleiche Argument: Das Addieren der Ungleichungen, die jeder Kante der Subtour entsprechen, ergibt k N k ( N 1 ) weil das u ich Bedingungen werden storniert.

Wenn eine Teiltour nicht existieren kann, bedeutet das nicht, dass nicht alle Teiltouren existieren können. Obwohl wir verstehen können, wie sich dies auf andere Subtouren ausdehnt, muss dies strenger sein.