เลือกหัวข้อจากแถบเมนูด้านซ้าย (กรณีหน้าจอเล็กเมนูจะหดกลายเป็นสัญลักษณ์สามขีดอยู่ในแถบเมนูด้านบน) หรือใส่คำค้นหาที่ช่องด้านล่างนี้ เพื่อค้นหาหัวข้อบทความหรือ Tutorial เกี่ยวกับเรื่อง n_queens_problem ที่ต้องการ
8 Queens Problem คือหัวข้อที่โด่งดังในหมู่นักคณิตศาสตร์และนักพัฒนาโปรแกรมมิ่ง ปัญหานี้ตั้งข้อสมมติว่า คุณมีกระดานหมากรุกขนาด 8x8 และต้องการวางแต่ละราชินีแปดตัวลงบนกระดานโดยไม่ให้ราชินีตัวใดๆ สามารถจับราชินีอื่นได้ (ในรูปแบบการเคลื่อนที่ของราชินีในหมากรุกที่สามารถเดินได้ทั้งแนวตั้ง, แนวนอน และแนวทแยงมุม) ปัญหานี้แท้จริงแล้วเป็นตัวอย่างหนึ่งของปัญหาระบบความผิดพลาดที่สามารถแก้ได้ด้วยการใช้วิธีการทางคณิตศาสตร์และการเขียนโปรแกรม....
Read More →การเขียนโปรแกรมไม่ได้มีเพียงการคำนวนหรือจัดการข้อมูลอย่างเดียว แต่ยังรวมไปถึงการแก้ไขปัญหาที่มีความซับซ้อนด้วยกระบวนการคิดที่เป็นระบบ หนึ่งใน Algorithm ที่ช่วยให้เราสามารถลุยเข้าไปทำความเข้าใจและแก้ปัญหาได้ดีคือ Backtracking วันนี้เราจะมาศึกษาลงลึกถึงหลักการและการประยุกต์ใช้ Algorithm นี้ในภาษาเขียนโปรแกรม C++ พร้อมทั้งวิเคราะห์ข้อดีข้อเสียและความซับซ้อนของมัน...
Read More →ตัวอย่างของ Backtracking ที่ทรงพลังและน่าสนใจคือ การแก้ปัญหา N Queens Problem ซึ่งต้องการวางหมากรุก N ตัวในกระดานชนวนขนาด N?N โดยที่ไม่มีหมากรุกใดๆสามารถจับหมากรุกตัวอื่นได้...
Read More →Backtracking เป็นอัลกอริทึมที่ช่วยในการแก้ปัญหาที่มีลักษณะเป็นการค้นหาหรือสำรวจทุกๆ ความเป็นไปได้ โดยอาศัยการทดลองขั้นตอนต่างๆ หากถึงจุดที่คิดว่าไม่สามารถสร้างคำตอบได้ ก็จะย้อนกลับไปที่ขั้นตอนก่อนหน้านั้น (backtrack) เพื่อทดสอบโซลูชันที่เป็นไปได้อื่นๆ อัลกอริทึมนี้เหมาะสำหรับปัญหาที่ทุกเงื่อนไขสามารถนำมาพิจารณาเป็นขั้นตอนๆ ได้ เช่น ปัญหาการวางนางฟ้า (N-Queens problem), ปัญหาเส้นทางของพ่อค้า (Traveling Salesman Problem - TSP), หรือปัญหาการใส่วงเล็บที่ถูกต้องในนิพจน์ทางคณิตศาสตร์ (Expression Paren...
Read More →