Angesichts eines * n-großen mehrköpfigen azyklischen Graphen, in dem jeder Knoten höchstens drei Kinder und drei Eltern hat, gibt es einen nicht-exponentiellen Algorithmus, um zu identifizieren, ob ein n-Längen-Pfad existiert, wo zwei Knoten den gleichen Wert teilen. und jeder Wert eines Satzes wird berücksichtigt?Nicht-exponentielle Lösung für Labyrinth-Problem?
Grundsätzlich habe ich ein n * n Labyrinth, wo jeder Raum einen zufälligen Wert (1..n) hat. Ich muss einen Pfad (von oben nach unten) von n Knoten finden, der jeden Wert enthält.
Momentan verwende ich eine Tiefensuche, aber das ist T(n) = 3T(n-1) + O(1)
, was O(3^n)
ist, eine nicht ideale Lösung.
Entweder bestätige ich meine Ängste, oder sie weisen mich in die richtige Richtung.
Edit: Um dies ein wenig konkreter zu machen, hier ist ein Labyrinth mit Lösungen (gelöst mit der Tiefenlösung).
1 2 5 5 4 1 5 1 3 5 4 1 2 3 2 5 5 4 4 3 4 2 1 2 4 S3, 5, 1, 3, 4, 2, F4 S3, 5, 1, 3, 4, 2, F2 S3, 5, 1, 3, 4, 2, F4 S3, 5, 3, 2, 4, 1, F3 S3, 5, 3, 2, 4, 1, F3 S3, 5, 3, 2, 4, 1, F3 S4, 5, 3, 2, 4, 1, F3 S4, 5, 3, 2, 4, 1, F3 S4, 5, 3, 2, 4, 1, F3 S4, 5, 1, 3, 4, 2, F4 S4, 5, 1, 3, 4, 2, F2 S4, 5, 1, 3, 4, 2, F4 S5, 4, 3, 2, 5, 1, F3 13 total paths`
sollte dies als Hausaufgabe markiert werden? –
Es ist nicht so, dass ich nach "Code, kthxbye" frage. Als Teil eines größeren Programmierauftrags bin ich auf ein Problem gestoßen, und ich frage mich, ob ich den bestmöglichen Job gemacht habe oder ob ich noch ein paar Stunden meinen Kopf in CLRS und Knuth stecken und sehen sollte, ob ich Ich vermisse etwas. –
Auch die Phrasierung gehört mir. Wir erhielten die naive Beschreibung, die ich im zweiten Absatz zusammengefasst habe. –