Super Mario Galaxy Problem


140

Angenommen, Mario läuft auf der Oberfläche eines Planeten. Wie schnell können wir bestimmen, wo er anhalten wird, wenn er von einem bekannten Ort aus in einer festgelegten Richtung über eine festgelegte Distanz läuft?

Bildbeschreibung hier eingeben

Genauer gesagt, nehmen wir an, wir erhalten ein konvexes Polytop im 3-Raum, einen Startpunkt auf der Oberfläche von , einen Richtungsvektor (in der Ebene einer Facette, die ) und einen Abstand . Wie schnell können wir feststellen, welche Facette von Mario in uns aufhört? (Technisch gesehen wird angenommen, dass Mario beim Betreten eines Scheitelpunkts von sofort explodiert. Glücklicherweise passiert dies so gut wie nie .)PsPvpPP

Oder wenn Sie es vorziehen: Nehmen wir an, wir bekommen im Voraus das Polytop , den Quellpunkt und den Richtungsvektor . Nach Vorverarbeitung, wie schnell beantworten wir die Frage für einen bestimmten Abstand ?Psv

Es ist einfach, Marios Schritte zu verfolgen, besonders wenn nur dreieckige Facetten hat. Immer wenn Mario eine Facette durch eine ihrer Kanten betritt, können wir in Zeit bestimmen , durch welche der beiden anderen Kanten er gehen muss. Obwohl die Laufzeit dieses Algorithmus nur linear in der Anzahl von Kantenübergängen ist, ist es unbeschränkt in Abhängigkeit von der Eingangsgröße, weil der Abstand beliebig größer ist als der Durchmesser des könnten . Können wir es besser machen?PO(1)P

(In der Praxis ist die Pfadlänge nicht unbegrenzt. Es gibt eine globale Obergrenze für die Anzahl der Bits, die zur Darstellung der Eingabe erforderlich sind. Das Bestehen auf Ganzzahleingaben wirft jedoch einige ziemlich unangenehme numerische Probleme auf. Wie berechnen wir genau, wo ? zu stoppen? - so bleiben wir bei echten Eingaben und exakten reellen Arithmetik.)

Ist etwas Unwichtiges über die Komplexität dieses Problems bekannt?

Update: Angesichts des Kommentars von julkiewicz scheint es klar zu sein, dass eine rein auf (die Komplexität des Polytops) beschränkte Real-RAM-Laufzeit unmöglich ist. Betrachten Sie den Sonderfall eines zweiseitigen Einheitsquadrats , bei dem Mario bei beginnt und in Richtung . Mario stoppt auf der Vorder- oder Rückseite des Quadrats, abhängig von der Parität der Ganzzahl . Wir können die Floor-Funktion auf dem realen RAM nicht in konstanter Zeit berechnen, es sei denn, wir sind glücklich , PSPACE und P gleichzusetzen . Aber wir können in berechnenn[0,1]2(0,1/2)(1,0)O(log)Zeit durch exponentielle Suche, was eine exponentielle Verbesserung gegenüber dem naiven Algorithmus darstellt. Ist das Zeitpolynom in und immer erreichbar?nlog


5
Ich dachte an ein einfacheres Problem: Wir haben ein einfaches Polygon und einen Lichtstrahl, der von einem bestimmten Punkt ausgeht. Wenn es eine Kante erreicht, wird es nur gespiegelt. Wir wollen wissen, wo der Strahl seine Reise nach der gegebenen Entfernung beenden wird. Es könnte (fast) auf dieses reduziert werden, indem ein Polytop genommen wird, das ein Prisma von sehr geringer Höhe ist, wobei die Ober- und Unterseite die Form eines gegebenen Polygons haben. Vielleicht hilft es, dies zuerst zu lösen.
Julkiewicz

3
"[T] ime Polynom in n und log l" macht für mich keinen Sinn. Wenn es von l abhängt, muss es auch von den Koordinaten von P abhängen. Wenn Sie ein Protokoll aller Zahlen in der Eingabe hinzufügen, entspricht dies genau der Anzahl der Bits, die zur Darstellung der Eingabe erforderlich sind, wenn die Eingabekoordinaten auf Ganzzahlen beschränkt sind. Ich denke, dass Sie die Zeitkomplexität auf einem realen RAM betrachten, wenn die Eingabe als Bitkette gegeben wird.
Tsuyoshi Ito

4
Selbst die Entscheidung, ob Mario jemals einen Scheitelpunkt trifft (unabhängig von ), erscheint schwierig. Ich denke, hier stoßen wir auf die vielen Unbekannten im Bereich der Billarddynamik.
Joseph O'Rourke

2
Nicht wirklich verwandt, aber dieses Papier über die NP-Vollständigkeit von Super Mario ist wirklich erstaunlich: arxiv.org/pdf/1203.1895v1.pdf
Lamine

10
"Vielleicht ist das der Grund, warum es so hoch bewertet wird", sagte jemand, der die Komplexitätstheorie völlig gleichgültig betrachtet.
Jeffs

Antworten:


7

Dieses Problem ist sehr, sehr schwierig. Wir könnten es wie folgt vereinfachen, um es einfacher zu machen.

  1. Wir können die Annahme hinzufügen, dass die Winkelsumme um jeden Scheitelpunkt des Polytops ein rationales Vielfaches von . Dadurch werden die meisten "Polytope" beseitigt, aber es gibt immer noch viele interessante Möglichkeiten: zum Beispiel die platonischen Festkörper.πPπ

  2. Wir können annehmen, dass das Polytop nicht wirklich dreidimensional ist, sondern das "Doppel" eines Polygons. Das sieht ein bisschen aus wie ein Kissenbezug. Wir können noch weiter vereinfachen und annehmen, dass das Polygon gleiche und parallele Seiten hat; Zum Beispiel ein Quadrat, wie im Spiel Astroids.

Wenn wir beide Annahmen treffen, gibt es eine große Theorie. (Einen Algorithmus für das Quadrat zu finden, ist eine schwierige Aufgabe, bei der der Winkel von Marios Pfad um einen Bruchteil erweitert wird. Ein ähnliches Ergebnis für das reguläre Achteck zu erzielen ist möglich, aber schwieriger. Die Lösungen für das In Quadrat und Achteck muss überlegt werden, wie eine "Schnittfolge für eine Geodät auf einer Translationsfläche" effizient codiert werden kann. Die meisten anderen rationalen Polygone führen schnell zu offenen Problemen.) Ein erster Verweis, der einen weiteren Verweis auf Caroline Series 'Diskussion von enthält Der quadratische Torus sind diese Vortragsfolien von Diana Davis.O(log())

Wenn wir nicht von Rationalität ausgehen, sondern davon ausgehen, dass das Polytop das Doppelte eines Polygons ist, dann diskutieren wir die Theorie des "Schneidens von Sequenzen in irrationalem Billard". Es scheint, dass hier im Wesentlichen nichts bekannt ist; siehe zum Beispiel den letzten Satz dieses Vortrags von Corinna Ulcigrai.

Wenn wir keine der beiden Annahmen treffen, fällt mir nichts in der Literatur ein.

Zum Schluss - ich schätze, es gibt eine Lösung für das Super Mario Galaxy-Problem für die platonischen Körper. Dies ist ein gutes Problem für einen Doktoranden, der mit rationalem Billard anfängt. Zum Beispiel sollte der Fall des Dodekaeders aus Diana Davis 'These "folgen". (Beginnen Sie aber mit dem Tetraeder - das folgt aus einer Analyse der Schnittfolgen für den hexagonalen Torus.)O(log())


0

Ich denke, Sie können es besser machen als linear. Ich bin neu in der theoretischen Informatik, also vergib mir, wenn das Müll ist.

Einige allgemeine Ideen (von unterschiedlichem Wert):

  • Wenn wir jeder Facette ein Symbol geben, kann Marios Umlauf über sie als Zeichenfolge beschrieben werden, wobei das letzte Symbol in der Zeichenfolge die Antwort ist.
  • Wir können ohne Verlust der Allgemeinheit davon ausgehen, dass Mario an einer Kante beginnt (einfach rückwärts gehen und l bis zur Kante ausdehnen)
  • Der 2D-Raum von Startpositionen und Winkeln kann durch die nächste Kante unterteilt werden. Ausgehend von Kante a, x Einheiten von unten, mit einem Winkel von a, landen wir in Kante V, nachdem wir eine Facette überquert haben.
  • An diesem Punkt befinden wir uns an einer anderen Kante mit einer anderen Ausrichtung, sodass wir die Funktion rekursiv aufrufen können, um den Raum in Partitionen von Zeichenfolgen mit zwei Symbolen usw. zu unterteilen.
  • An diesem Punkt sind wir fertig, wenn wir sagen, dass der Speicherplatz diskretisiert werden muss, damit das Problem auf einem TM implementiert wird. Das bedeutet, dass jede Umlaufbahn periodisch sein muss, da es auf dem diskretisierten Planeten nur endlich viele Punkte gibt. Wir können die oben beschriebene Funktion berechnen, bis wir Umlaufbahnen für alle Startpunkte haben und diese Informationen speichern. Dann wird das Problem zu O (1).
  • Vielleicht ist das ein bisschen ein Polizist. Ein bisschen googeln sagt mir, dass fast alle Billardbahnen in rationalen konvexen Polygonen periodisch sind (dh die periodischen Bahnen sind dicht). Für (sagen wir) quadratische Planeten könnte der gleiche Ansatz funktionieren.
  • Ein anderer Ansatz wäre, das System als Generator / Erkenner von Zeichenfolgen zu betrachten (wiederum durch Zuweisen eines eigenen Symbols für jede Facette). Wenn die Sprache eine bekannte Komplexitätsklasse hat, ist das Ihre Antwort. Wenn Sie die Familie der Polytope auf nicht konvexe und beliebige Dimensionen erweitern, können Sie eine sehr breite Klasse von Sprachen erfassen.

Dies ist keine wirkliche Antwort, aber ich muss mich wieder an die Arbeit machen. :)


10
"An diesem Punkt sind wir fertig, wenn wir sagen, dass der Raum diskretisiert werden muss, damit das Problem auf einem TM implementiert werden kann. Das bedeutet, dass jede Umlaufbahn periodisch sein muss, da es auf dem diskretisierten Planeten nur endlich viele Punkte gibt." Sie haben gerade den interessanten Teil des Problems zerstört. Ich möchte nicht annehmen, dass die Eingabe diskret ist. Ich möchte das eigentliche kontinuierliche Problem lösen, obwohl dies einen idealen Computer erfordert, der in konstanter Zeit exakte echte Arithmetik ausführen kann. Insbesondere muss Marios Weg niemals einen Scheitelpunkt berühren.
Jeffs

Ich fand das zu einfach. Sie können die kontinuierliche Version auf einer endlichen Maschine ausführen, solange der Startpunkt und der Planet endlich beschrieben werden können. Sie können den Pfad nur symbolisch darstellen (im Mathematica-Stil). Sie müssen nur bestimmte Grenzen auswerten, um herauszufinden, in welcher Facette Sie sich befinden. Wenn Sie nachweisen können, dass der Pfad mit ziemlicher Sicherheit periodisch ist (wie bei Billard auf rationalen konvexen Polygonen), können Sie denselben Trick anwenden, aber das Ergebnis wäre nicht sehr praktisch.
Peter

12
Leider sind generische Geodäten auf generischen Polyedern nicht periodisch. (Insbesondere sind generische Polygone nicht rational.)
Jeffs

Ich denke, Sie (Peter) beziehen sich auf den Artikel "Periodische Billardbahnen sind in rationalen Polygonen dicht". Dies bedeutet nicht , dass periodische Pfade in rationalen Polygonen generisch sind . Tatsächlich gibt es nur unzählige periodische Pfade (bis hin zur Parallelität), sodass sie keine Chance haben, generisch zu sein.
Sam Nead

Tatsächlich sind in einem "Veech" -Polygon die "einzigartig ergodischen" Pfade ein vollständiges Maß. Wenn wir also Mario in eine zufällige Richtung schicken, wird er (a) niemals einen Scheitelpunkt treffen (wie Jeffe in der Problemstellung sagt), (b) seinen Weg niemals schließen und (c) im großen Maßstab die Folge von besuchte Gesichter sehen zufällig aus (aufgrund einer "schwachen Vermischung"). Dies deutet nicht auf eine negative Antwort auf das Problem hin - zum Beispiel sehen die Ziffern von pi ebenfalls zufällig aus ...
Sam Nead
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.