สำหรับคำถามนี้สมมติว่าไม่ทราบสิ่งต่อไปนี้:
- ขนาดและรูปร่างของห้อง
- ตำแหน่งของหุ่นยนต์
- การปรากฏตัวของอุปสรรคใด ๆ
นอกจากนี้สมมติว่าสิ่งต่อไปนี้คงที่:
- ขนาดและรูปร่างของห้อง
- จำนวนรูปร่างและที่ตั้งของสิ่งกีดขวาง (ถ้ามี) ทั้งหมด
และสมมติว่าหุ่นยนต์มีคุณสมบัติดังต่อไปนี้:
- สามารถเคลื่อนที่ไปข้างหน้าด้วยการเพิ่มหน่วยสัมบูรณ์และหมุนเป็นองศาเท่านั้น นอกจากนี้การดำเนินการที่ย้ายจะกลับเป็นจริงถ้าสำเร็จหรือเท็จหากไม่สามารถย้ายได้เนื่องจากมีสิ่งกีดขวาง
- แหล่งพลังงานที่ไม่ จำกัด อย่างสมเหตุสมผล (สมมติว่ามันเป็นหุ่นยนต์พลังงานแสงอาทิตย์วางบนสถานีอวกาศที่หันหน้าไปทางดวงอาทิตย์ตลอดเวลาโดยไม่มีเพดาน)
- ทุกการเคลื่อนไหวและการหมุนจะดำเนินการอย่างแม่นยำทุกครั้ง (ไม่ต้องกังวลกับข้อมูลที่ไม่น่าเชื่อถือ
สุดท้ายโปรดพิจารณาคุณสมบัติต่อไปนี้ของสภาพแวดล้อมของหุ่นยนต์:
- การอยู่บนสถานีอวกาศที่มีเพดานน้อยห้องพักมีความปลอดภัย แต่อยู่ใกล้กับดาวหางที่ผ่านมาอย่างน่าหงุดหงิดดังนั้นฝุ่น (และน้ำแข็ง) จึงถูกทิ้งร้างอย่างต่อเนื่อง
ฉันถูกถามคำถามแบบนี้ง่ายกว่ามาก (ห้องเป็นรูปสี่เหลี่ยมผืนผ้าและไม่มีสิ่งกีดขวางคุณจะเคลื่อนไหวอย่างไรเพื่อให้แน่ใจว่าคุณสามารถผ่านทุกส่วนอย่างน้อยหนึ่งครั้ง) และหลังจากฉันเริ่มสงสัยว่าคุณจะเข้าใกล้เรื่องนี้อย่างไรถ้าคุณไม่สามารถ ไม่รับประกันรูปร่างหรือการมีสิ่งกีดขวาง ฉันเริ่มดูสิ่งนี้ด้วยอัลกอริธึมของ Dijkstraแต่ฉันรู้สึกทึ่งที่ได้ยินว่าคนอื่นเข้าหาวิธีนี้ได้อย่างไร (หรือถ้ามีคำตอบที่ยอมรับได้ดีในเรื่องนี้ (Roomba ทำเช่นนั้นได้อย่างไร)