6
การแก้เขาวงกตโดยไม่มีความสามารถในการกลับมา
ฉันต้องเขียนโปรแกรมที่จะแก้ปัญหาเขาวงกต เขาวงกตมีโครงสร้างกราฟที่แต่ละโหนด - บางห้องและขอบ - ออกจากห้องอื่น: รายละเอียด: เราเริ่มจากห้องสุ่ม เขาวงกตมีจุดจบตาย, 0 หรือออกไม่กี่ เราไม่รู้อะไรเลยเกี่ยวกับเขาวงกตทั้งหมดเพียงจำนวนห้องปัจจุบันและรายชื่อประตูจากมัน เมื่อเราเข้าห้องใหม่เราไม่รู้ว่าเรามาจากไหน (ประตูอะไรจากห้องปัจจุบันทำให้เรากลับไปที่ห้องก่อนหน้า) เราสามารถรับรู้ได้เมื่อเราถึงทางออก แต่ละขั้นตอนเราย้ายจากห้องปัจจุบันไปยังประตูที่มีอยู่ ตัวอย่างเช่นถ้าเราอยู่ที่ห้อง 6 เราจะกระโดดข้ามไม่ได้เลย มันเหมือนกับการเคลื่อนไหวของหุ่นยนต์ เรารู้ ID ของห้องปัจจุบันอย่างแน่นอน เรารู้ ID ของแต่ละประตูในห้องปัจจุบัน (ไม่ใช่ในเขาวงกตทั้งหมด) เราควบคุมหุ่นยนต์ ฉันดูอัลกอริทึมที่รู้จักทั้งหมด แต่พวกเขาทั้งหมดต้องการความสามารถเพิ่มเติมอย่างน้อยเพื่อกลับไปยังห้องก่อนหน้า ตามข้อกำหนดเราไม่สามารถใช้อัลกอริธึมที่ค้นหาพา ธ ที่สั้นที่สุด (อันที่จริงแล้วฉันไม่ต้องการที่สั้นที่สุด) เพราะเรารู้เพียงเกี่ยวกับห้องปัจจุบันเท่านั้น เราไม่สามารถใช้อัลกอริธึมมือซ้าย - (ขวา -) เนื่องจากไม่ทราบทิศทางของการออก อาจเป็นทางออกเดียวที่ตรงตามข้อกำหนดคือการเลือกทางออกแบบสุ่มในทุกห้องโดยหวังว่าจะพบทางออกเวลา ... ข้อเสนอแนะวิธีการแก้เขาวงกตในทางที่ชาญฉลาดมากขึ้น?