B A C K     T R A C K I N G
การย้อนกลับระหว่างการค้นหาข้อมูล

              การค้นหา (Search) ไม่ว่าจะเป็นการค้นหาข้อมูล หรือค้นหาเส้นทางเพื่อนำไปสู่เป้าหมาย (Goal) มักพบปัญหาในการ เลือกเส้นทาง ซึ่งบางครั้งอาจเลือกถูก ก็จะสามารถ ค้นหาได้ ตาม ความต้องการ แต่ ถ้าเลือก เส้นทาง ไม่ ถูกต้อง (มักมีโอกาสเกิดขึ้น ได้มากกว่ามาก) จำเป็น จะต้อง ถอยกลับ ไป (Back tracking) เพื่อหา เส้นทางอื่น ที่ มี ความเหมาะสม มากกว่า ดังนั้น การค้นหา ข้อมูล ยังคง เป็นปัญหา และ ยังคง คิด ค้นหา วิธีการ ใหม่ ๆ ให้ สามารถ ค้นหาข้อมูล ได้ถูกต้อง รวจเร็ว ยิ่งขึ้น
              สำหรับกรณีนี้เป็นการศึกษาปัญหาการเดินของ ควีน (Queen) 8 ตัวบนกระดานตาราง 8 x 8   (The Eight Queens Problen) โดย มี เงื่อนไข ว่า ควีน แต่ละตัว ห้ามอยู่ในแนวเดียวกัน ทั้งแนวตั้ง และ แนวนอน รวมทั้งแนวเส้นทะแยงมุมด้วย     ดังนั้นหาก ควีนตัว แรก อยู่แถว แรก ควิน ตัวที่ 2 จะ ต้องอยู่แถวที่ 2 และ ควินตัวที่ 3 จะต้องอยู่แถวที่ 3 โดยต้องไม่อยู่บนเส้นทะแยงมูมของ ควิมตัว ก่อนหน้านี้     หาก ไม่ เป็น ไป ตาม เงื่อนไข จะต้องถอยกลับไปยัง ควินตัวที่ 2   เลื่อนไปตำแหน่งใหม่         จากนั้นจึงกลับมายัง ควินตัวที่ 3 เลื่อนไป ตำแหน่ง ใหม่ ให้ สอดคล้อง กับ เงื่อนไข อีก ครั้ง     ทำเช่นนี้ ไปเรื่อง ๆ จนกว่าจะครบ ควินทั้ง 8 ตัว
        โปรแกรม Queen.c เป็นการหาตำแหน่งของ ควิน ทั้ง 8 ซึ่งจะรายงานผลในรูป  (x,y)   เช่น   (1,1), (2,5) . . .
        โปรแกรม QueenRecersive.c เป็นการหาตำแหน่ง ของ ควิน ทั้ง 8 แบบ Recersive

       

Back to MENU