In einem zweidimensionalen Labyrinth können Sie 4 Befehle "Auf / Ab / Rechts / Links" eingeben. Wenn Sie das Labyrinth kennen, aber nicht wissen, wo sich die Person befindet, wie Sie die minimale Befehlsfolge finden, die das Verlassen des Labyrinths garantiert? Ich suche nach einer einzigen Folge von Befehlen, die funktionieren, egal wo im Labyrinth Sie anfangen.
Angenommen, wenn unser Partner bei einer Mauer auf der rechten Seite den Befehl "Nach rechts bewegen" erhält, bleibt er einfach dort, wo er ist.
Mit anderen Worten, wir erhalten ein Labyrinth und müssen eine Folge von Befehlen auswählen. Dann wird unser Partner irgendwo im Labyrinth platziert und folgt der Abfolge der Befehle, die wir im Voraus ausgewählt haben. Wir möchten, dass diese Reihenfolge sicherstellt, dass unser Partner entkommt, unabhängig davon, wo unser Partner ursprünglich platziert wurde. Beachten Sie, dass die zulässigen Befehle keine bedingten Anweisungen enthalten, sodass sie je nach Partner nicht einer anderen Reihenfolge folgen können.
Gibt es einen Polynom-Zeit-Algorithmus, um eine solche Sequenz mit einer Beschreibung des Labyrinths zu konstruieren?
Yuval Filmus erwähnt, dass dies ein Sonderfall eines Problems mit Synchronisationswörtern ist und mit universellen Durchquerungssequenzen zusammenhängen könnte. Ich fand auch ein Papier, das relevant zu sein scheint:
Das simultane Labyrinth, das Problem löst . Stefan Funke, André Nusser, Sabine Storandt. AAAI 2017.
Leider scheint dies für allgemeine Grafiken ein ungelöstes Problem zu sein, aber ich frage mich, ob es für diesen speziellen Fall einen guten Algorithmus geben könnte. Ich habe einen Kandidatenansatz gefunden: Beschriften Sie jede Position mit der Anzahl der Mindestschritte, die zum Verlassen erforderlich sind, und verfolgen Sie jeden Agenten im Labyrinth. Auf diese Weise kann möglicherweise eine A * -Suche durchgeführt werden.
quelle
Antworten:
quelle