Ein Handlungsreisender (= "salesman") muss eine Rundreise durch N vorgegebene Städte machen. Um Zeit und Benzin zu sparen, sucht er dazu nach demjenigen Weg, der unter allen dankbaren Routen die kürzeste Gesamtlänge aufweist. Mathematisch hießt das: Gegeben seien N Punkte (Städte) in einer Ebene. Zu je zwei Punkten Pi und Pj gebe es eine positive Zahl dij, welche die "Entfernung" (im üblichen oder abstrakten Sinne) zwischen Pi und Pj misst. (Damit ist natürlich dij = dji .) Gesucht ist nun eine "Reihenfolge" ( = Permutation) σ :{P1 , ... PN} → {S1 , ... SN}, so dass die Summe aller Entfernungen d(Sn, Sn+1) , n = 1...N zwischen den jeweils aufeinanderfolgenden Städten Sn und Sn+1 minimal wird. Die "brute-force"-Methode, d.h. Berechnung und Vergleich der Gesamtweglänge für alle denkbaren Wege, ist nur für sehr kleines N sinnvoll, da es bei N Städten insgesamt (N-1) ! = 1 * 2 * ... * (N-1) mögliche Rundwege gibt. Für N = 20 sind z. B. bereits 19 ! = 1,2 * 1017 Routen auszurechnen, was bei einer Millisekunde pro Weg ca. vier Millionen Jahre dauern würde. Das "Problem des Handlungsreisenden" ist das klassische Beispiel für ein sog. NP-vollständiges Problem, was bedeutet, dass die Rechenzeit im worst case schneller als polynomial (hier sogar stärker als exponentiell) mit N wächst. Ein allgemeiner Algorithmus zu seiner Lösung ist nicht bekannt. |