Für diese Frage wird angenommen, dass die folgenden Dinge unbekannt sind:
- Die Größe und Form des Raumes
- Der Standort des Roboters
- Das Vorhandensein von Hindernissen
Nehmen Sie außerdem an, dass die folgenden Dinge konstant sind:
- Die Größe und Form des Raumes
- Die Anzahl, Form und Position aller (eventuellen) Hindernisse
Und nehmen Sie an, dass der Roboter die folgenden Eigenschaften hat:
- Es kann nur in Schritten von absoluten Einheiten vorwärts und in Grad gedreht werden. Auch die Operation, die verschoben wird, gibt true zurück, wenn sie erfolgreich war, oder false, wenn sie aufgrund eines Hindernisses nicht verschoben werden konnte
- Eine einigermaßen unbegrenzte Energiequelle (sagen wir, es handelt sich um einen solarbetriebenen Roboter, der auf einer Raumstation platziert ist, die der Sonne jederzeit ohne Decke zugewandt ist)
- Jede Bewegung und Drehung wird jedes Mal mit absoluter Präzision ausgeführt (keine Sorge um unzuverlässige Daten)
Zum Schluss berücksichtigen Sie bitte die folgenden Eigenschaften der Roboterumgebung:
- Da sich der Raum auf einer Raumstation ohne Decke befindet, befindet er sich in sicherer, aber frustrierender Nähe zu vorbeiziehenden Kometen, sodass der Staub (und das Eis) ständig die Umwelt verschmutzen.
Mir wurde eine viel einfachere Version dieser Frage gestellt (Raum ist ein Rechteck und es gibt keine Hindernisse, wie würden Sie sich darüber bewegen, um zu gewährleisten, dass Sie jeden Teil mindestens einmal überqueren können) und nachdem ich mich gefragt hatte, wie Sie sich dem nähern würden, wenn Sie dies nicht könnten Keine Garantie für die Form oder das Vorhandensein von Hindernissen. Ich habe angefangen, mir das mit dem Dijkstra-Algorithmus anzuschauen , aber ich bin fasziniert zu hören, wie andere sich dem nähern (oder ob es eine akzeptierte Antwort darauf gibt? (Wie macht Roomba das?)