คำถามติดแท็ก coverage

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

2
เป็นวิธีที่มีประสิทธิภาพในการเยี่ยมชมทุกพื้นที่ที่เข้าถึงได้ในตารางที่มีอุปสรรคที่ไม่รู้จักคืออะไร?
ฉันกำลังพยายามสร้างแผนที่ของอุปสรรคในพื้นที่กริด 2D แบบหยาบโดยใช้การสำรวจ ฉันค้นหาสิ่งกีดขวางโดยพยายามย้ายจากพื้นที่หนึ่งไปยังพื้นที่ที่อยู่ติดกันและหากสิ่งนั้นล้มเหลวก็จะมีสิ่งกีดขวางในพื้นที่ปลายทาง (ไม่มีแนวคิดของเซ็นเซอร์ระยะไกลในปัญหานี้) ตัวอย่างตาราง http://www.eriding.net/resources/general/prim_frmwrks/images/asses/asses_y3_5d_3.gif (ตัวอย่าง) กระบวนการนี้เสร็จสมบูรณ์เมื่อมีการเยี่ยมชมช่องสี่เหลี่ยมที่เข้าถึงได้ทั้งหมด กล่าวอีกนัยหนึ่งช่องว่างบางอย่างอาจไม่สามารถเข้าถึงได้อย่างสมบูรณ์แม้ว่าจะไม่มีสิ่งกีดขวางเพราะล้อมรอบ คาดว่าจะเป็นแบบนี้ ในกรณีที่ง่ายที่สุดฉันสามารถใช้อัลกอริทึม DFSแต่ฉันกังวลว่าการดำเนินการนี้จะใช้เวลานานเกินกว่าจะเสร็จสมบูรณ์ - หุ่นยนต์จะใช้เวลาย้อนรอยมากกว่าการสำรวจดินแดนใหม่ ฉันคาดว่าสิ่งนี้จะเป็นปัญหาโดยเฉพาะอย่างยิ่งเมื่อพยายามเข้าถึงสแควร์สที่ไม่สามารถเข้าถึงได้เพราะหุ่นยนต์จะหมดทุกตัวเลือก ในวิธีการที่ซับซ้อนมากขึ้นเป็นสิ่งที่เหมาะสมในการทำดูเหมือนว่าจะมีการสลายตัวของเซลล์ Boustrophedon อย่างไรก็ตามฉันไม่สามารถหาคำอธิบายที่ดีเกี่ยวกับอัลกอริธึมการสลายตัวของเซลล์ Boustrophedon (นั่นคือคำอธิบายที่สมบูรณ์ในคำง่าย ๆ ) มีทรัพยากรเช่นเป็นคนนี้ , หรือนี้เพิ่มเติมทั่วไปเกี่ยวกับการสลายตัวของเซลล์ในแนวตั้งพวกเขาไม่ได้มีความเข้าใจมากในขั้นตอนวิธีการระดับสูงหรือระดับต่ำโครงสร้างข้อมูลที่เกี่ยวข้อง แต่ ฉันจะเยี่ยมชม (แผนที่) กริดนี้อย่างมีประสิทธิภาพได้อย่างไร ถ้ามีฉันต้องการอัลกอริทึมที่ทำงานได้ดีกว่าเทียบกับจำนวนรวมของกริดสแควร์ ( เช่นดีกว่าสำหรับกริด )O(n2)O(n2)O(n^2)O ( n 4 ) n ∗ nO(n4)O(n4)O(n^4)n∗nn∗nn*n
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.