DeepAI 21

Invincible 2

AI หมากฮอสไทยที่ไม่มีวันแพ้ และเก่งที่สุดในประเทศไทย จากฐานข้อมูลหมากฮอสไทย 10 ตัวที่สมบูรณ์แบบ มีตำแหน่ง 38,522,321,533,439 ตำแหน่ง และยังใช้ระบบการเล่นกับตัวเอง (Self Learning) เป็นเวลาประมาณ 3 สัปดาห์ เพื่อสร้างสมุดเปิดเกมที่ดีที่สุด จำนวนมากกว่า 300 ล้านตำแหน่ง

นอกจากโปรแกรมจะพิสูจน์ได้อย่าง 100% แล้วว่า ผลลัพธ์ของหมากฮอสไทยเมื่อเดินดีที่สุดทั้งคู่คือ ผลเสมอกัน แล้ว โปรแกรมเวอร์ชั่นนี้ ยังมีการเล่นที่ดุดันขึ้น พยายามเอาชนะคู่ต่อสู้ แตกต่างจากเวอร์ชั่นก่อนหน้า ที่ต้องการเพียงผลเสมอเท่านั้น

เล่นหมากฮอสกับ Invincible

พัฒนาโดย อาจารย์ทศพล ธนะทิพานนท์

Timeline

ก่อนจะมาเป็น หมากฮอสไร้พ่าย

  1. Forever 0.3

    โปรแกรมหมากฮอสแรกที่เอาชนะแชมป์ประเทศไทย ในระบบการแข่งขัน 10 กระดาน

  2. ThaiBG

    เว็บหมากกระดานที่มีเกมหมากกระดานให้เล่นมากมาย เป็นเว็บหมากกระดานที่ได้รับความนิยมสูงสุดในยุคนั้น ปลุกกระแสการรวมกลุ่มและกลับมาเล่นหมากกระดานของคนไทยได้อย่างคึกคัก

  3. Black Walker

    หมากฮอสไทย ในกติกาพิเศษคือ ใครเข้าฮอสก่อนถือชนะ (ไม่ต้องเล่นจนจบเกมส์)

  4. Invincible 1

    โปรแกรมหมากฮอสไร้พ่าย ที่กล้าท้าว่า ชนะได้เอารางวัลไปเลย

  5. ฮอส 4 เบี้ย 8

    เป็นโปรแกรมจากกลหมากฮอส ที่เริ่มต้นเกมส์ด้วยเบี้ย 8 ตัว สู้กับฮอส 4 ตัว

  6. Invincible 2

    พัฒนาเพิ่มเติมจาก invincible 1 นอกจากไร้พ่ายแล้ว ยังพยายามเอาชนะ ไม่อ่อนข้ออีกต่อไป

2000-2002

Forever 0.3

สวัสดีครับ ผม ทศพล ธนะทิพานนท์ ผมมีความสนใจในหมากฮอสและการเขียนโปรแกรมมาตั้งแต่เด็ก มีความตั้งใจอยากทำโปรแกรมหมากฮอสที่ สมบูรณ์ที่สุดมาตั้งแต่เรียนม.ปลาย โปรแกรมหมากฮอสแรกของผมมีชื่อว่า Forever มีความหมายว่า ตลอดกาลและตลอดไป ผมได้เริ่มทำโปรแกรมตัวนี้ โดยทำฐานข้อมูลตัวหมาก 8 ตัว และได้นำไปแข่งขันในการแข่งขันโปรแกรมคอมพิวเตอร์หมากฮอสไทย ครั้งที่ 1 ในวันที่ 30 สิงหาคม 2545 ที่ห้างตั้งฮั๋วเส็งธนบุรี และได้กลายเป็นโปรแกรมแรกที่เอาชนะแชมป์ประเทศไทย ในระบบการแข่งขัน 10 กระดาน โดยในการแข่งขันผมได้ใช้ชื่อ The Horse เนื่องจากมีบางท่านได้ให้คำแนะนำว่า Forever จำยากไป หลังจบการแข่งขันได้มีผู้ให้ความสนใจสอบถามรายละเอียดของโปรแกรมนี้เป็นจำนวนพอสมควร จึงได้นำมารวบรวมตอบไว้ในที่นี้ครับ
  1. มีการขาย The Horse 0.2 หรือไม่ และถ้าขายจะขายราคาเท่าไร

    ในตอนนี้ยังไม่มีความคิดที่จะขาย The Horse 0.2 แต่มีความคิดที่จะทำเป็น version ที่มีลดความสามารถในการคิดและฟังก์ชันการทำงานลง โดยจะแจกฟรีให้กับผู้สนใจทุกท่านครับ

  2. The Horse 0.2 มีหลักในการคิดอย่างไรบ้าง

    หลักการโดยทั่วไปของโปรแกรมที่ใช้เล่นเกมกระดานจะเหมือนกันหมด คือ มองก้าวเดินทุกก้าวที่เป็นไปได้ล่วงหน้าไปให้ไกลที่สุดเท่าที่เวลาจะอำนวย The Horse 0.2 ก็ใช้หลักการนี้เป็นพื้นฐานในการคำนวณ

  3. มีการใส่รูปหมากหรือล็อคให้กับ The Horse 0.2 มากแค่ไหน

    มีอยู่แต่เป็นจำนวนน้อยมาก ๆ เมื่อเทียบกับตำราของเซียนท่านต่าง ๆ

  4. เราสามารถนำ The Horse 0.2 มาช่วยในการถอดรูปหมากได้หรือไม่

    ทำได้ครับ โดยสามารถกำหนดตำแหน่งหมากที่ต้องการโดยเดินจากตำแหน่งเริ่มต้น จากนั้นจึงให้โปรแกรมคิดคำนวณหาก้าวเดินที่น่าสนใจต่อไป

  5. The Horse 0.2 แพ้ไม่เป็นจริงหรือ

    ไม่เป็นความจริง ทั้งนี้ดูได้จากบันทึกการแข่งขันที่ผ่านมา จะเห็นได้ว่ามีการเดินที่ผิดพลาดอยู่อย่างน้อยสองจุด รวมทั้งยังแพ้ในการเล่นนอกรอบกับเซียนหมวกแดงอีกด้วย

  6. รูปแบบการเล่นของ The Horse 0.2 เมื่อเทียบกับคนแล้วเป็นอย่างไรในมุมมองของผู้เขียนโปรแกรม

    ผู้เขียนพยายามทำให้ The Horse 0.2 เดินหมากได้หลากหลายรูปแบบ ถึงแม้บางรูปจะเป็นรองอยู่บ้าง เพื่อให้เป็นเกมที่สนุก ตื่นเต้น และสร้างสรรผลงานใหม่ ๆ ในวงการหมากฮอสไทย ซึ่งผลที่ได้ทำให้ The Horse 0.2 เดินหมากโดยในลักษณะบุก เน้นจังหวะในการเข้าทำ และเหนียวแน่นเมื่อเสียเปรียบ

  7. จะมีการแข่งขันของ The Horse 0.2 อีกหรือไม่ เมื่อไร ที่ไหน และกับใคร

    ขณะนี้ยังไม่มีโครงการในการแข่งขันครั้งต่อไป แต่ถ้าหากมีผู้ให้ความสนใจเป็นจำนวนมาก คาดว่าทางผู้จัดยินดีที่จะนำเสนอการแข่งขันในรูปแบบนี้อีก เพื่อพัฒนาวงการหมากฮอสไทยให้เป็นที่นิยมมากขึ้นต่อไป

  8. ในปัจจุบัน มีโปรแกรมหมากฮอสตัวอื่นหรือไม่ ที่เล่นได้ในระดับเดียวกับ The Horse 0.2

    เท่าที่ทราบ มีโปรแกรมหมากฮอสตัวอื่นที่สามารถหาเสมอหรือเอาชนะ The Horse 0.2 ได้ในการเล่นบางเกม แต่เมื่อนับคะแนนรวมในเกมยาว (มากกว่า 6 เกมขึ้นไป) ยังไม่มีโปรแกรมใดสามารถเสมอกับ The Horse 0.2 ได้

  9. มีวิธีการเล่นแบบใด ที่สามารถนำมาใช้เล่นกับ The Horse 0.2 ได้ผลบ้าง

    คงจะไม่มีวิธีการเฉพาะเจาะจงที่จะได้ผล เมื่อนำมาเล่นกับ The Horse 0.2 แต่เนื่องจาก The Horse 0.2 เดินหมากได้หลากหลายรูปแบบ ผู้เล่นจึงควรเข้าใจในรูปหมากหลายแบบ ปลายกระดานเฉียบคม รวมทั้งอดทนต่อสภาพความกดดันได้เป็นอย่างดี

  10. The Horse 0.2 จะยังเก่งขึ้นได้อีกมั๊ย ในช่วงปลายปีนี้ และในปีต่อ ๆ ไป

    การพัฒนายังคงมีต่อไป รวมทั้งความเร็วในการคำนวณของเครื่องคอมพิวเตอร์ยังเพิ่มสูงขึ้นอยู่อย่างต่อเนื่อง จึงเป็นไปได้ที่ The Horse 0.2 จะยังสามารถเก่งขึ้นได้อีก แต่ทั้งนี้ถึงแม้จะใช้คอมพิวเตอร์ที่เร็วขึ้นสองเท่าหรือมีความรู้ด้านรูปหมากมากขึ้นสองเท่า The Horse 0.2 ก็คงจะเก่งขึ้นได้อีกเพียงเล็กน้อยเท่านั้น

2002-2007

ThaiBg.com

หลังจากทำ Forever ผมมีความคิดที่จะทำหมากกระดานออนไลน์ ให้ทุกคนสามารถเข้ามาเล่นได้ ซึ่งในสมัยนั้นยังไม่มีเว็บไซต์ประเภทนี้ ผมจึงได้เริ่มทำ ThaiBg ซึ่งย่อมาจาก Thai Board Game เป็นเว็บหมากกระดานที่มีเกมหมากกระดานให้เล่นมากมาย อาทิ หมากรุกไทย หมากรุกสากล หมากรุกจีน หมากรุกญี่ปุ่น หมากล้อม หมากฮอส โอเทลโล่ เอแมท ครอสเวิร์ด และได้กลายเป็นเว็บหมากกระดานที่ได้รับความนิยมสูงสุดในยุคนั้น ปลุกกระแสการรวมกลุ่มและกลับมาเล่นหมากกระดานของคนไทยได้อย่างคึกคัก
ซึ่งต่อมาผมเน้นการเป็นวิทยากรอบรมเขียนโปรแกรม ไม่มีเวลาดูแล จึงได้ขายเว็บไปครับ

2018

Black Walker

" เข้าฮอสก่อนชนะ "

หลังจากที่ผมได้ห่างหายจากทำการโปรแกรมหมากฮอสไปประมาณ 17 ปี ก็มีความอยากที่จะกลับมาพัฒนาต่อ ประกอบกับการได้มาเป็นโค้ชหมากฮอสไทยในกีฬามหาวิทยาลัย ให้กับจุฬาลงกรณ์มหาวิทยาลัย ในช่วงนึงของการแข่งขันจริงได้มีกติกาพิเศษนึงที่มีความน่าสนใจ คือ เมื่อทั้งสองฝ่ายเล่นเสมอกัน จบครบจำนวนเกมส์ แต่ไม่หาสามารถหาผู้แพ้-ชนะ ได้ จะมีกระดานตัดสินโดยใช้กติกาพิเศษนั่นคือ "ใครเข้าฮอสได้ก่อนเป็นผู้ชนะ ไม่ต้องเล่นจนจบเกมส์" ผมเกิดข้อสงสัยว่า กติกานี้มีความยุติธรรมกับผู้เล่นทั้งสองฝ่ายหรือไม่ และเห็นว่ากติกานี้ ไม่ต้องคิดถึงกรณีที่เป็นฮอส ทำให้สามารถคำนวณความเป็นไปได้ทั้งหมดได้ง่าย โดยการทำฐานข้อมูล 16 ตัว มีเพียง 2.4 ล้านล้านตำแหน่งเท่านั้น จึงสามารถทำ Strong Solve ได้ นั่นคือ บอกผลได้แม่นยำตั้งแต่เริ่มเดินตัวแรก โปรแกรมเวอร์ชั่นนี้ของผมได้พิสูจน์ว่า ฝ่ายที่เดินก่อนจะได้เป็นผู้ชนะเสมอ แม้ว่าฝ่ายที่เดินทีหลังจะเลือกตาเดินที่ดีที่สุด แต่ถ้าฝ่ายเดินก่อนเลือกตาเดินที่ดีที่สุดเช่นกัน ฝ่ายเดินก่อนจะเป็นผู้ชนะเสมอ เมื่อได้ข้อสรุปดังกล่าว ทำให้กติกาพิเศษนี้ต้องยกเลิกไปครับ
ปัจจุบันเวอร์ชั่นนี้ไม่ได้เปิดให้เข้าเล่นนะครับ

2018

Invincible 1

" ชนะได้มีรางวัล "

หลังจากทำ Black Walker เสร็จ ผมก็มีแรงฮึดที่จะทำโปรแกรมตัวเต็มตัวใหม่ แม้ว่าโปรแกรมตัวเก่าของผมจะเคยชนะอดีตแชมป์ประเทศไทย แต่นั่นไม่ได้เป็นการการันตีว่าโปรแกรมจะไม่มีวันแพ้ โปรแกรมตัวใหม่ของผมจึงมีคอนเซ็ปว่า ไม่มีวันแพ้ใคร และหาบทสรุป ว่า ผลการแข่งขัน เมื่อทั้งสองฝ่ายเดินได้ดีที่สุดเป็นอย่างไร เนื่องจากในเกมส์บางเกมส์ การเริ่มต้นเดินก่อนหรือเดินหลัง มีผลต่อการแพ้-ชนะ ชัดเจน ในส่วนของหมากฮอสไทย ก็เป็นที่รู้กันในกลุ่มนักกีฬาว่า ฝ่ายที่เริ่มเดินก่อนได้เปรียบมากกว่า แต่ก็ไม่เคยมีการพิสูจน์ชัดเจนว่า การเดินก่อนหรือเดินหลัง จะทำให้ผลแพ้หรือชนะได้เลยหรือไม่
เพื่อเป็นการพิสูจน์ข้อสงสัยดังกล่าว ผมจึงตั้งใจทำโปรแกรมเวอร์ชั่นนี้เพื่อตอบคำถามนี้เท่านั้น ผมจึงเขียนโลจิกให้ผลชนะมีค่าเท่ากับผลเสมอ นั่นหมายความว่า โปรแกรมต้องการเพียงแค่ผลเสมอเท่านั้น ไม่ต้องการเอาชนะ และพิสูจน์ได้ว่าจะไม่มีทางแพ้ ดังนั้นในเวอร์ชั่นนี้ ไม่ว่าจะเป็นผู้เล่นระดับหัดเล่น หรือผู้เล่นระดับเซียน ก็มักจะได้เล่นแล้วเสมอโปรแกรมเหมือนกัน เรียกว่า โปรแกรมไม่ยอมแพ้ แต่ก็ไม่ต้องการเอาชนะครับ
หลังจากที่ได้เปิดตัวเวอร์ชั่นนี้ ผมได้รับติดต่อจากผู้จัดงาน Mobile Expo 2019 ให้ไปออกบูธนวัตกรรมที่ไบเทค บางนา ผมได้เปิดท้าพิสูจน์ให้ผู้ร่วมงาน เล่นกับโปรแกรมได้ฟรี ถ้าใครชนะโปรแกรมได้ เอา Gundum Perfect Grade ที่ผมซื้อมาจากญี่ปุ่นไปได้เลย ซึ่งหลังจบงาน 3 วัน กันดั้มผมก็ยังอยู่ดีครับ เพราะไม่มีใครเอาชนะโปรแกรมได้ครับ

2019

ฮอส 4 เบี้ย 8

ผมได้โจทย์ปัญหานี้มาจากบทความ "สี่ฮอสแปดเบี้ย" ในหนังสือของพี่วินัย ลิ้มดำรงค์ชิต ครับ ที่ผมสนใจเพราะปัญหานี้มีตำแหน่งตั้งต้นของทั้งสองฝ่ายที่ไม่เหมือนกัน แต่สามารถเล่นกันได้อย่างสูสี จากรูปเป็นตำแหน่งตั้งต้น ฝั่งนึงมีฮอส 4 ตัว อีกฝั่งมีเบี้ย 8 ตัว ถ้าฝั่งเบี้ยเดินก่อนจะชนะหมดครับ (สามารถถอดเองได้ไม่ยากมาก) แต่ถ้าฝั่งฮอสเดินก่อน ผลจะเสมอกัน โปรแกรมจึงให้ฮอสเดินก่อน แล้วให้ผู้เล่นพยายามหาผลเสมอกัน ถือว่าเป็นรูปที่มีความน่าสนใจมากครับ
ตัวนี้ปัจจุบันไม่ได้เปิดให้เล่นครับ

2019

Invincible 2

" แค่เสมอยังยาก " คือ สโลแกนของเวอร์ชั่นนี้

หลังจากทำ invincible 1 เสร็จ ผมก็ได้เริ่มทำเวอร์ชั่นนี้ต่อเลย จุดประสงค์คือ ต้องการให้เวอร์ชั่นนี้จะพยายามเอาชนะคนเล่นให้เด็ดขาด ถ้าฝั่งคู่ต่อสู้พลาดแม้เพียงเล็กน้อย จากฐานข้อมูลหมากฮอสไทย 10 ตัวที่ทำไว้ (38,522,321,533,439 ตำแหน่ง) ผมได้ปรับโลจิกของโปรแกรม โดยให้คะแนนทางเลือกของผลชนะมีค่ามากกว่าผลเสมอ โปรแกรมจะเลือกทางเลือกที่มีคะแนนสูงกว่า นั่นความหมายว่า โปรแกรมจะไม่อ่อนข้อ ยอมเสมอผู้เล่นง่ายๆอีกต่อไป

" ทำไมไม่ทำฐานข้อมูล 16 ตัวไปเลย จะได้รู้ผลตั้งแต่ต้น "

ด้านบนคือ ตารางแสดงจำนวนกับตัวหมากตำแหน่งที่ต้องคำนวณ ตัวอย่างเช่น ตัวหมาก 1 ตัว มีความเป็นไปได้ในการวางตำแหน่งกี่แบบ ?
วิธีการคิดคือ ตารางหมากฮอสมีจำนวนช่องที่วางหมากได้ทั้งหมด 32 ช่อง
กรณีที่ 1 เป็นเบี้ยสีดำ จะวางได้ 28 แบบ มาจาก 32 - 4 คือเอาจำนวนช่องทั้งหมด ลบด้วยจำนวนช่องในแถวสุดท้าย เพราะเบี้ยที่อยู่ในแถวหลังสุดจะกลายเป็นฮอส
กรณีที่ 2 เป็นเบี้ยสีขาว จะวางได้ 28 แบบ เหตุผลเดียวกับด้านบน
กรณีที่ 3 เป็นฮอสสีดำ จะวางได้ทุกช่อง นั่นคือ 32 แบบ
กรณีที่ 4 เป็นฮอสสีขาว จะวางได้ทุกช่อง นั่นคือ 32 แบบเช่นเดียวกับฮอสสีดำ
ดังนั้นเมื่อนำทั้ง 4 กรณีมารวมกัน จะได้เท่ากับ 120 นั่นคือ ความเป็นไปได้ทั้งหมดของตัวหมาก 1 ตัว
จากตารางเมื่อตัวหมากเพิ่มขึ้น 1 ตัว ก็จะมีความเป็นไปได้เพิ่มขึ้นหลายเท่า การประมวลผลก็จะหนักมากขึ้น จากความตั้งใจที่จะทำฐานข้อมูล 10 ตัว ซึ่งมีความเป็นไปได้เกือบ 40 ล้านล้านตำแหน่ง ทำให้ผมไม่สามารถใช้คอมพิวเตอร์สเปคเก่าที่บ้านได้ ผมจึงได้ซื้อ CPU ใหม่ สเปค intel corei9 แรม 32gb ssd 500gb harddisk4tb มาเพื่อประมวลผลฐานข้อมูล 10 ตัวนี้โดยเฉพาะ เวลาที่ใช้เฉพาะการประมวลผลอย่างเดียว ใช้เวลาถึง 4 เดือน ซึ่งถ้าโลจิกที่ผมเขียนไว้ผิดพลาด หรือมีบั๊ค ผมก็ต้องรันใหม่ เท่ากับว่า 4 เดือนที่ผ่านมาสูญเปล่า และถ้าผมต้องการทำฐานข้อมูล 12 ตัว (เพิ่มขึ้นอีกแค่ 2 ตัว) ผมต้องใช้ความพยายามมากขึ้นถึงกว่า 40 เท่า
ดังนั้น จากข้อจำกัดด้านงบประมาณ และเวลา ทำให้ผมตัดสินใจหยุดไว้ที่ฐานข้อมูล 10 ตัวก่อนครับ
หลังการได้ฐานข้อมูล 10 ตัว ผมได้ทำ Self Learning ให้โปรแกรมเรียนรู้ตัวเองเป็นเวลา 3 สัปดาห์ เพื่อเก็บข้อมูลมาสร้างสมุดเปิดเกมส์อีกประมาณ 300 ล้านตำแหน่ง รวมเวลาการประมวลผลทั้งหมดประมาณ 5 เดือน ทำให้โปรแกรมในเวอร์ชั่นนี้มีความสมบูรณ์มาก หากลองเล่นจะพบว่า โปรแกรมเดินเร็วแทบไม่หยุดคิดเลยครับ

ข้อความจากผู้เขียน

อาจารย์ทศพล ธนะทิพานนท์

"     ผมชอบเล่นหมากฮอส แล้วก็ชอบเขียนโปรแกรม แต่เอาจริง ๆ ความสามารถด้านหมากฮอสก็มีไม่มากขนาดเป็นเซียนได้ เลยเอาจุดเด่นด้านการเขียนโปรแกรม มาช่วยสร้างโปรแกรมหมากออสที่เล่นเก่ง ๆ ได้ อยากรู้ว่าถ้าเล่นแบบสมบูรณ์แบบแล้ว หมากฮอสจะออกมาหน้าตายังไง

     จริงๆแล้ว การเขียนโปรแกรมหมากฮอสให้พอเล่นได้นั้นไม่ยาก ใช้ algorithm ทั่วไปก็ทำได้ แต่ถ้าจะให้เก่งถึงขั้นที่รับรองได้ว่าไม่มีวันแพ้ รู้ผลลัพธ์ตั้งแต่ก้าวแรก แบบ 100% ก็ต้องทำต่างจากปกติมาก ต้องเก็บข้อมูลจำนวนมาก ประมวลผลข้อมูลจำนวนมาก และต้องเขียนโปรแกรมให้รอบคอบ ไม่มีจุดผิดพลาดในโปรแกรม     "

ประวัติคร่าวๆ

  • ปริญญาตรี คณะวิศวกรรมศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย, รางวัลซีเนียร์โปรเจ็คดีเด่น
  • ปริญญาโท คณะวิศวกรรมศาสตร์ จุฬาลงกรณ์มหาวิทยาลัย, เกรดเฉลี่ย 4.00
  • วิทยากรอบรมการเขียนโปรแกรมภาษา Java, PHP, Android, Python และอื่นๆ ให้กับองค์กรต่างๆ กว่า 12 ปี
  • ผู้ฝึกสอนนักกีฬามหาวิทยาลัย จุฬาลงกรณ์มหาวิทยาลัย
  • ผู้ก่อตั้ง DeepAI 21 บริษัทผลิตซอร์ฟแวร์ให้กับหน่วยงานราชการ และเอกชนต่างๆ