เนื่องจากการระบุตำแหน่งเป้าหมายที่เหมาะสมอาจมีความยุ่งยากในหลาย ๆ สถานการณ์แนวทางต่อไปนี้ที่อิงตามตารางอัตราการเข้าพักแบบ 2D อาจคุ้มค่าที่จะพิจารณา มันถูกเรียกโดยทั่วไปว่า "การวนซ้ำตามมูลค่า" และเมื่อรวมกับการไล่ระดับสี / การขึ้นลงมันจะให้อัลกอริทึมการวางแผนเส้นทางที่ง่ายและมีประสิทธิภาพ เนื่องจากความเรียบง่ายมันเป็นที่รู้จักกันดีในหุ่นยนต์มือถือโดยเฉพาะอย่างยิ่งสำหรับ "หุ่นยนต์ง่าย" การนำทางในสภาพแวดล้อมในร่ม ตามที่ระบุไว้ข้างต้นวิธีการนี้มีวิธีในการค้นหาเส้นทางออกจากตำแหน่งเริ่มต้นโดยไม่ระบุตำแหน่งเป้าหมายอย่างชัดเจนดังนี้ โปรดทราบว่าสามารถระบุตำแหน่งเป้าหมายได้หากมี นอกจากนี้วิธีการ / อัลกอริทึมถือเป็นการค้นหาแบบกว้าง
ในกรณีฐานสองมิติแผนที่กริด 2D เป็นหนึ่งสำหรับเซลล์กริดครอบครองและเป็นศูนย์ที่อื่น ๆ โปรดทราบว่ามูลค่าการเข้าพักนี้สามารถต่อเนื่องในช่วง [0,1] ฉันจะกลับไปที่ด้านล่าง ค่าของตารางเซลล์ที่กำหนดกรัมฉันเป็นV (g ฉัน )
รุ่นพื้นฐาน
- สมมติว่ากริดเซลล์g 0มีตำแหน่งเริ่มต้น ตั้งค่าV (g 0 ) = 0และใส่g 0ในคิว FIFO
- นำกริดเซลล์g iถัดไปจากคิว
- สำหรับเพื่อนบ้านทั้งหมดg j of g i :
- หากg jไม่ได้ถูกครอบครองและยังไม่เคยเข้าชม:
- V (g j ) = V (g i ) +1
- ทำเครื่องหมายg jว่าเยี่ยม
- เพิ่มg jไปยัง FIFO-queue
- หากยังไม่ถึงขีด จำกัด ระยะทางที่ระบุให้ดำเนินการต่อด้วย (2. ) หรือดำเนินการต่อด้วย (5. )
- เส้นทางที่จะได้รับโดยต่อไปนี้ลาดชันลาด-ขึ้นเริ่มต้นจากกรัม 0
หมายเหตุเกี่ยวกับขั้นตอนที่ 4
- ตามที่ระบุไว้ข้างต้นขั้นตอน (4. ) จำเป็นต้องติดตามระยะทางสูงสุดที่ครอบคลุมซึ่งถูกตัดออกในคำอธิบายข้างต้นด้วยเหตุผลของความชัดเจน / ความกะทัดรัด
- หากได้รับตำแหน่งเป้าหมายการทำซ้ำจะหยุดทันทีที่ถึงตำแหน่งเป้าหมายเช่นประมวลผล / เยี่ยมชมเป็นส่วนหนึ่งของขั้นตอนที่ (3)
- แน่นอนว่ามันเป็นไปได้ที่จะประมวลผลกริดแผนที่ทั้งหมดเช่นเพื่อดำเนินการต่อจนกว่าเซลล์กริดเซลล์ (ฟรี) ทั้งหมดจะถูกประมวลผล / เข้าชม ปัจจัย จำกัด คือขนาดของแผนที่กริดร่วมกับความคมชัด
ส่วนขยายและความคิดเห็นเพิ่มเติม
การอัปเดตสมการV (g j ) = V (g i ) +1ทำให้มีพื้นที่เหลือเฟือที่จะใช้การวิเคราะห์พฤติกรรมเพิ่มเติมทุกประเภทโดยการลดขนาดV (g j )หรือส่วนประกอบเพิ่มเติมเพื่อลดค่าสำหรับตัวเลือกเส้นทางบางอย่าง ส่วนใหญ่หากไม่ใช่ทั้งหมดการปรับเปลี่ยนดังกล่าวสามารถนำมารวมกันได้เป็นอย่างดีและโดยทั่วไปโดยใช้ grid-map พร้อมค่าต่อเนื่องจาก [0,1] ซึ่งมีประสิทธิภาพถือเป็นขั้นตอนการประมวลผลล่วงหน้าของไบนารีกริดแผนที่เริ่มต้น ตัวอย่างเช่นการเพิ่มช่วงการเปลี่ยนภาพจาก 1 เป็น 0 ตามขอบเขตของสิ่งกีดขวางทำให้ "นักแสดง" ควรอยู่ในความสะอาดของสิ่งกีดขวาง ยกตัวอย่างเช่นตารางแผนที่สามารถสร้างขึ้นได้จากรุ่นไบนารีโดยการทำให้เบลอการยืดออกที่มีน้ำหนักหรือคล้ายกัน การเพิ่มภัยคุกคามและศัตรูเป็นอุปสรรคด้วยรัศมีการพร่ามัวขนาดใหญ่จะลงโทษเส้นทางที่เข้ามาใกล้สิ่งเหล่านี้ ท่านสามารถใช้กระบวนการแพร่กระจายบนแผนที่กริดโดยรวมดังนี้:
V (g j ) = (1 / (N + 1)) × [V (g j ) + ผลรวม (V (g i ))]
โดยที่ " ผลรวม " หมายถึงผลรวมของกริดเซลล์ที่อยู่ใกล้เคียงทั้งหมด ตัวอย่างเช่นแทนที่จะสร้างแผนที่ไบนารีค่าเริ่มต้น (จำนวนเต็ม) อาจเป็นสัดส่วนกับขนาดของภัยคุกคามและอุปสรรคนำเสนอภัยคุกคาม "เล็ก" หลังจากใช้การแพร่กระจายกระบวนการกริดค่าควร / ต้องถูกปรับเป็น [0,1] และเซลล์ที่ถูกครอบครองโดยอุปสรรคการคุกคามและศัตรูควรถูกตั้งค่า / บังคับให้เป็น 1 มิฉะนั้นการปรับสเกลในสมการการอัพเดทอาจ ไม่ทำงานตามที่ต้องการ
มีหลายรูปแบบในรูปแบบทั่วไป / แนวทางนี้ อุปสรรค ฯลฯ อาจมีค่าน้อยในขณะที่เซลล์กริดฟรีมีค่ามากซึ่งอาจต้องใช้การไล่ระดับสีในขั้นตอนสุดท้ายขึ้นอยู่กับวัตถุประสงค์ ไม่ว่าในกรณีใดวิธีการคือ IMHO หลากหลายที่น่าแปลกใจใช้งานง่ายและค่อนข้างเร็ว (ขึ้นอยู่กับขนาดของตาราง / ความละเอียดของแผนที่) ในที่สุดเช่นเดียวกับอัลกอริทึมการวางแผนเส้นทางจำนวนมากที่ไม่ถือว่าตำแหน่งเป้าหมายที่เฉพาะเจาะจงมีความเสี่ยงที่ชัดเจนของการติดอยู่ในปลายตาย ในระดับหนึ่งอาจเป็นไปได้ที่จะใช้ขั้นตอนหลังการประมวลผลเฉพาะก่อนขั้นตอนสุดท้ายเพื่อลดความเสี่ยงนี้
ต่อไปนี้เป็นคำอธิบายสั้น ๆ พร้อมภาพประกอบใน Java-Script (?) ถึงแม้ว่าภาพประกอบดังกล่าวจะไม่สามารถใช้ได้กับเบราว์เซอร์ของฉัน :(
http://www.cs.ubc.ca/~poole/demos/mdp/vi.html
รายละเอียดเพิ่มเติมเกี่ยวกับการวางแผนสามารถพบได้ในหนังสือเล่มต่อไปนี้ การวนซ้ำของมูลค่าอธิบายไว้ในบทที่ 2 ส่วนที่ 2.3.1 แผนความยาวคงที่ที่เหมาะสมที่สุด
http://planning.cs.uiuc.edu/
หวังว่าจะช่วยด้วยความเคารพ Derik