Ich habe Probleme, ein widersprüchliches Beispiel für die nächste Variante des TSP-Problems zu finden.Traveling Salesman Variation Algorithmus
Eingabe: G = (V, E) ungerichteter vollständiger Graph, der die Dreiecksungleichung, w: E-> R + Gewichtungsfunktion, und einen Quellknoten s enthält.
Ausgabe: Einfacher Hamilton-Zyklus, der bei s beginnt und endet, mit einem Mindestgewicht.
Algorithmus:
1. S=Empty-Set
2. B=Sort E by weights.
3. Initialized array M of size |V|,
where each cell in the array holds a counter (Initialized to 0)
and a list of pointers to all the edges of that vertex (In B).
4. While |S|!=|V|-1
a. e(u,v)=removeHead(B).
b. If e does not close a cycle in S then
i. s=s union {e}
ii. Increase degree counter for u,v.
iii. If M[u].deg=2 then remove all e' from B s.t e'=(u,x).
iv. If M[v].deg=2 then remove all e' from B s.t e'=(v,x).
5. S=S union removeHead(B).
Dieses ähnlich geschehen wird dem Kruskal Algorithmus (Mit gewerkschafts finden DS).
Die Schritte 4.b.iii und 4.b.iv werden mit der Zeigerliste durchgeführt.
Ich bezweifle stark, dass dieser Algorithmus wahr ist, also habe ich sofort herausgefunden, warum es falsch ist. Jede Hilfe wäre willkommen.
Wenn ich den Algorithmus verstehe, aufgrund der Bedingung 'Wenn e nicht schließt einen Zyklus in S 'macht es unmöglich, schließlich eine Kante zu wählen, die den gewünschten Zyklus schließt.Ist das richtig? – Codor
Es sollte ziemlich einfach sein, ein Beispiel zu finden, wo die Kante mit minimalem Gewicht nicht Teil eines kürzesten Zyklus ist. – Henrik