ฉันต้องการอ่านอัลกอริธึมในการค้นหาเส้นทาง มีสีรองพื้นหรือวัสดุหรือแบบฝึกหัดใด ๆ บนอินเทอร์เน็ตที่จะเป็นการเริ่มต้นที่ดีสำหรับฉัน
ฉันต้องการอ่านอัลกอริธึมในการค้นหาเส้นทาง มีสีรองพื้นหรือวัสดุหรือแบบฝึกหัดใด ๆ บนอินเทอร์เน็ตที่จะเป็นการเริ่มต้นที่ดีสำหรับฉัน
คำตอบ:
หากคุณกำลังมองหาการวิจัยและเรียนรู้เกี่ยวกับการค้นหาเส้นทางโดยทั่วไปฉันขอแนะนำให้เรียนรู้มากกว่าหนึ่งอัลกอริทึม คุณจะต้องเข้าใจแนวคิดโดยรวม แต่สามารถนำไปใช้กับสิ่งที่คุณกำลังทำอยู่ ผู้พัฒนาเกมส่วนใหญ่ที่ต้องการทำเส้นทางที่จริงจังใด ๆ จบลงด้วยการเขียนอัลกอริทึมที่กำหนดเองของตัวเองแม้ว่าจะขึ้นอยู่กับการแก้ปัญหาที่รู้จักกันดี แต่ทุกเกมมีความแตกต่างกันและจะมีข้อกำหนดที่แตกต่างกัน
ฉันจะเริ่มต้นด้วยการอ่านวิธีการที่เป็นที่รู้จักมากขึ้นเช่น A * การค้นหาอัลกอริทึมของ Dijkstra ความลึกและการค้นหาความกว้างแรก มีข้อมูลมากมายเกี่ยวกับอินเทอร์เน็ตในแต่ละสิ่งเหล่านี้ ( http://en.wikipedia.org/wiki/Pathfinding )
ในขณะที่อ่านให้จดบันทึกสิ่งที่อัพไซด์และดาวน์ด์ของแต่ละแนวทางรวมถึงประเภทของข้อมูลที่อัลกอริทึมสามารถใช้งานได้ มันสามารถใช้กับเส้นทางแบบสามมิติได้หรือไม่? มันสามารถแก้ไขเพื่อบัญชีมนุษย์ AI ของเราที่ต้องการหลีกเลี่ยงกับระเบิดในแผนที่ได้หรือไม่?
เมื่อพูดถึงการชี้ทาง A * เป็นตั๋วทองคำที่ทุกคนใช้ แน่นอนคุณควรรู้ว่ามันทำงานอย่างไร ( http://en.wikipedia.org/wiki/A*_search_algorithm )
นี่คือตัวอย่างที่ดีของ A * เนื่องจากมันใช้กับเกม RTS ซึ่งต้องคำนึงถึงเอนทิตีที่มีขนาดแตกต่างกัน: http://aigamedev.com/open/tutorials/clearance-based-pathfinding/
โชคดี!
อัลกอริธึม Pathfinding นั้นเป็นปัญหาการค้นหากราฟที่แก้อัลกอริทึม
http://en.wikipedia.org/wiki/Pathfinding#Algorithms
เป็นที่รู้จักกันดีว่าเป็นอัลกอริทึมของ Djikstra: http://en.wikipedia.org/wiki/Dijkstra's_algorithm
และอัลกอริธึมการค้นหา A * ที่แตกต่าง: http://en.wikipedia.org/wiki/A*
นี่เป็นแหล่งข้อมูลเริ่มต้นที่ดีที่จะตรวจสอบทุกแง่มุมของการค้นหาเส้นทางในวิธีการย่อยที่ง่ายมาก
หมายเหตุของ Amit เกี่ยวกับการค้นหาเส้นทาง
... การค้นพบแก้ปัญหาในการค้นหาเส้นทางที่ดีจากจุดเริ่มต้นไปยังเป้าหมาย ― หลีกเลี่ยงอุปสรรคหลีกเลี่ยงศัตรูและลดค่าใช้จ่าย (เชื้อเพลิงเวลาระยะทางอุปกรณ์เงิน ฯลฯ ) การเคลื่อนไหวที่อยู่ปัญหาของการใช้เส้นทางและย้ายไปตามมัน เป็นไปได้ที่จะใช้ความพยายามของคุณกับสิ่งใดสิ่งหนึ่งเท่านั้น ที่สุดโต่งผู้บุกเบิกที่มีความซับซ้อนพร้อมกับอัลกอริธึมการเคลื่อนไหวเล็กน้อย ...
Pathfinding เป็นปัญหาที่แก้ไขได้ ... ตามที่กล่าวไว้ในเกือบทุกคำตอบที่นี่การเปลี่ยนแปลงของ A * จะเป็นสิ่งที่คุณใช้
ความท้าทายที่ใหญ่กว่าเพื่อฉันเป็นวิธีที่คุณต้องการที่จะเป็นตัวแทนของคุณเส้นทาง การใช้กริด, พา ธ โนด, navmeshes, กริดลำดับชั้นหรือโครงสร้างที่ซับซ้อนอื่น ๆ เป็นต้น
ฉันไม่มีการอ้างอิงที่เฉพาะเจาะจง แต่การสำรวจAIGameDevจะให้ความคิดทุกอย่างแก่คุณเกี่ยวกับสิ่งที่อยู่ข้างนอก
เพียงจำไว้ว่าตัวแทนแต่ละคนมีข้อดีและข้อเสีย มันไม่ได้เกี่ยวกับการหา 'ดีที่สุด' มันเป็นเรื่องของการหาคนที่เป็นแบบที่ดีที่สุดสำหรับการเล่นเกมของคุณ
มีรายการที่ดีใน Wikipedia: Pathfinding
เท่าที่ฉันรู้ A * และ D * เป็นที่นิยมอย่างมาก
มีหลายเส้นทางในการค้นหาอัลกอริธึมที่นั่น
หนึ่งในสิ่งที่ได้รับความนิยมมากที่สุดน่าจะเป็น A * ( A-Star ) มันเป็นอัลกอริทึมที่มีประโยชน์มากหากคุณมีฟังก์ชั่นการวิเคราะห์พฤติกรรมที่สามารถให้ค่าใช้จ่ายโดยประมาณในการบรรลุเป้าหมาย (ตัวอย่างเช่นระยะทางที่มองเห็นถึงเป้าหมาย) A * มีประโยชน์มากในการค้นหาเส้นทางที่สั้นที่สุดจากจุดเริ่มต้นไปยังจุดสิ้นสุด
นอกเหนือจากนั้นยังมี อัลกอริทึมของ Dijkstraซึ่งมีประโยชน์มากในการค้นหารายการที่ใกล้ที่สุดจากหลายรายการ เช่น. หากคุณต้องการทราบว่าตัวเสริมพลัง (หรือคล้ายกัน) ตัวไหนใกล้เคียงกับตัวละครในเกมของคุณ
มีอัลกอริธึมอื่น ๆ อีกมากมาย แต่ฉันคิดว่า A * นั้นเป็นที่นิยมที่สุด จ้า Buckland มีบทที่ยอดเยี่ยมเกี่ยวกับเส้นทางการค้นพบในหนังสือของเขาเขียนโปรแกรมเกม AI โดยตัวอย่าง ฉันขอแนะนำให้คุณรับสำเนาของมัน มิฉะนั้นคุณจะพบข้อมูลจำนวนมากออนไลน์โดยการค้นหา "การค้นหาดาว"
นี่คือแบบฝึกหัดเกี่ยวกับการใช้อัลกอริทึมของ Dijkstra สำหรับการหาเส้นทาง
นี่คือตัวอย่างที่ดีของ A * ที่ใช้ในเกมที่มีรหัส psuedo: http://www.anotherearlymorning.com/2009/02/pathfinding-with-a-star/
นี่ไม่ใช่ไพรเมอร์มากนัก แต่เราได้พูดถึงอัลกอริธึมกราฟอย่างกว้างขวางในคลาสอัลกอริทึมของเราเมื่อฤดูใบไม้ร่วงปี 2009 เราใช้หนังสือเล่มนี้
รู้เบื้องต้นเกี่ยวกับอัลกอริทึมรุ่นที่สามโดย Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest และ Clifford Stein
http://mitpress.mit.edu/algorithms/
และมันยังมาพร้อมกับการบรรยาย youtube จากคลาส MIT
บทที่ 17, 18 และ 19 จัดการกับเส้นทางที่สั้นที่สุด
ดู [อัลกอริทึมการค้นหากราฟและต้นไม้] ใน Wikipedia 1 1พวกเขาเป็นเพียงรูปแบบของการค้นหาสเปซพื้นที่คุณต้องผ่านสิ่งเหล่านี้และค้นหาว่าพวกเขาแตกต่างกันอย่างไร
นอกจากนี้ยังมีการประสานการทำงานร่วมกันซึ่งเป็นหนึ่งในอัลกอริทึมที่กล่าวถึงก่อนหน้านี้ทำวิธีที่น่าสนใจ
อันนี้ดูน่าสนใจ:
http://www.codeproject.com/Articles/455 ฉันสงสัยว่ามันดีกว่า A * หรือไม่