Algorithmus zur Lösung von Flow Free Spiel

Ich habe vor kurzem angefangen zu spielen Flow Free Spiel.

Algorithmus zur Lösung von Flow Free Spiel

Schließen Sie passenden Farben mit Rohr, um erstellen Sie einen flow. Paar alle Farben und decken das gesamte board, jedes Rätsel zu lösen in Flow Free. Aber aufgepasst, werden Rohre brechen, wenn Sie sich kreuzen oder überlappen!

Wurde mir klar, es ist nur Weg zu finden Spiel zwischen gegebenen paar von Punkten mit den Bedingungen, dass keine zwei Pfade überschneiden. Ich war daran interessiert, schreiben eine Lösung für das Spiel, aber nicht wissen, wo zu beginnen. Ich dachte, der Verwendung von backtracking, aber für sehr große board-Größen wird es höchste Zeit, Komplexität.

Ist es keine geeigneten Algorithmus zu lösen, um das Spiel effizient. Kann mit Heuristiken zum lösen des Problems helfen? Geben Sie mir nur einen Hinweis, wo ich anfangen soll, ich nehmen es von dort.

Beobachtete ich in den meisten boards, die in der Regel

  1. Für die entferntesten Punkte, die Sie benötigen, zu Folgen Pfad entlang Kante.
  2. Für Punkt-zu-nächst an einander, Folgen Sie den direkten Weg, wenn es einen gibt.

Ist diese richtige Beobachtung und kann es verwendet werden, um es zu lösen effizient?

  • Das Stichwort ist hier "die meisten boards". Free-Flow ist ein visual Modernisierung eines bekannten NP-Schwer (wenn nicht NP-Vollständig) Spiel, dessen name(s) ich kann nicht denken, der offhand. Daher ist es nicht bekannt, noch zu erwarten, dass effiziente Lösungen in allen Fällen, das ist leichter zu sehen, wenn Sie versuchen, lösen die größeren.
  • So gibt es keine Lösung für das Rätsel?
  • Nein, es ist einfach keine effiziente Lösung. Ein computer lösen kann, jede Instanz von Free-Flow, aber die Zeit, die es dauert im Durchschnitt wächst exponentiell mit der puzzle-Größe. Eine grobe Schätzung könnte man sagen, dass ein 10x10 ist so etwas wie 30x schwieriger zu lösen als in einem 5x5 beispielsweise. Ich sehe dies in der Praxis, wie ich Sie lösen kann die 5x5-Rätsel in unter einer Sekunde, aber es dauert einiges länger, um das zu lösen 10x10. Inzwischen 20x20 könnte über 1000x schwerer zu lösen als ein 10x10. Es gibt keine 20x20s in Freier Strömung, aber ich habe es lösen alle Rätsel in diesem Spiel und einige haben sich viel Zeit genommen.
  • Ich denke, es ist ein Fall beschränkt von multicommodity flow, aber das bedeutet nicht unbedingt, es ist NP-schwer.
  • Es dauerte eine Weile, um es zu finden, aber here ist, wo ich zuerst über Sie kam. Ein wenig online-Forschung, scheint bestätigt. Das Spiel, das ich dachte, war NumberLink. Ich erinnerte mich, es war ein bekannter Japanischer Spiele-publisher, Nikoli und fand den Namen so.
  • Sie können versuchen, eine simulation:stackoverflow.com/questions/18511095/....
  • Naja, das problem ist sicherlich in NP (siehe meine Antwort). Die Frage ist, ob es NP-hart und damit auch NP-vollständig.
  • Die Suche nach "SAT Formulierung von numberlink" und "NP-Vollständigkeit von numberlink" führt zu ein paar Referenzen. Nicht überraschend, die zwei wichtigsten sind in Japanisch. ersten ist die tatsächliche Papier der Nachweis der NP-Vollständigkeit. zweiten - beschreibt, wie Sie zu lösen NumberLink mit der SAT-solver, Zucker.

InformationsquelleAutor coder hacker | 2014-05-13
Schreibe einen Kommentar