‘Othello’ ถูกแก้ได้แล้วหรือยัง?
(arxiv.org)- 8×8 Othello/Reversi ได้รับการพิสูจน์เชิงคำนวณว่า เมื่อทั้งสองฝ่ายเล่นอย่างสมบูรณ์แบบ ผลลัพธ์สุดท้ายจะเป็น เสมอ จึงบรรลุสถานะการแก้แบบอ่อนตามเกณฑ์ของนักวิจัย
- พื้นที่การค้นหามีขนาดใหญ่มาก โดยคาดว่าบันทึกเกมที่เป็นไปได้มีประมาณ 10^58 และตำแหน่งบนกระดานมีประมาณ 10^28 ทำให้ยังคงเป็นปัญหาที่ยากกว่ากรณีที่เคยแก้ได้อย่าง checkers มาก
- ผลลัพธ์ครั้งนี้คือการหาค่า game-theoretic value ของตำแหน่งเริ่มต้นและกลยุทธ์ที่ทำให้ได้ค่านั้น ไม่ใช่การแก้แบบแข็งที่คำนวณตำแหน่งระหว่างเกมทั้งหมด
- นักวิจัยใช้การค้นหาแบบฮิวริสติกบนซอฟต์แวร์ Othello และ alpha-beta search พร้อมอธิบายว่าขนาดการค้นหาที่จำเป็นสำหรับคำตอบที่แม่นยำนั้นเล็กกว่าที่เคยคาดการณ์ไว้
- ข้อมูลดิบและโปรแกรมสำหรับทำซ้ำผลลัพธ์ถูกเผยแพร่บน GitHub, Zenodo และ figshare จึงสามารถใช้เป็นกรณีศึกษาที่ตรวจสอบได้ในการวิจัยการแก้เกมกลยุทธ์บริสุทธิ์
การแก้ Othello ด้วยการคำนวณ
- Othello บนกระดาน 8×8 ถูกแก้แบบอ่อนแล้ว และค่าเชิงทฤษฎีเกมของตำแหน่งเริ่มต้นถูกคำนวณว่าเป็น เสมอ
- หากทั้งสองฝ่ายเล่นอย่างดีที่สุดโดยไม่ผิดพลาด ผลจะเสมอ และงานวิจัยนี้ได้พิสูจน์เรื่องดังกล่าวเชิงคำนวณ
- Figure 1 แสดงบันทึกเกมที่เหมาะที่สุดหนึ่งแบบและผลลัพธ์สุดท้าย
- หากมีการออกนอกลำดับเดินดังกล่าว ณ จุดใดก็ตาม ซอฟต์แวร์ของนักวิจัยในฐานะฝ่ายตรงข้ามจะรับประกันผลเสมอหรือชนะได้
- ผลลัพธ์นี้สอดคล้องกับการคาดการณ์ของผู้เชี่ยวชาญ Othello ที่เป็นมนุษย์ว่าเกมจะเสมอ นักวิจัยจึงมองว่าผลลัพธ์เองไม่ได้เหนือความคาดหมาย
ขอบเขตของการแก้และค่าเชิงทฤษฎีเกม
- การแก้เกมที่มีข้อมูลสมบูรณ์หมายถึงการกำหนดผลลัพธ์สุดท้ายเมื่อทั้งสองฝ่ายเล่นอย่าง สมบูรณ์แบบ หรือก็คือ game-theoretic value
- เกมที่ถูกแก้มักแบ่งออกเป็นสามระดับ
- การแก้แบบอ่อนมาก (ultra-weakly solved): รู้เพียงค่าเชิงทฤษฎีเกมของตำแหน่งกระดานเริ่มต้น
- การแก้แบบอ่อน (weakly solved): รู้ค่าเชิงทฤษฎีเกมของตำแหน่งเริ่มต้น และรู้กลยุทธ์ที่ทั้งสองฝ่ายจะทำให้ได้ค่านั้นภายในทรัพยากรคำนวณที่สมเหตุสมผล
- การแก้แบบแข็ง (strongly solved): คำนวณผลลัพธ์ของทุกตำแหน่งที่เป็นไปได้ซึ่งอาจเกิดขึ้นระหว่างเกม
- งานวิจัยนี้เป็นกรณีที่แก้ Othello แบบ อ่อน ไม่ใช่การแก้แบบแข็งที่คำนวณทุกตำแหน่งที่เป็นไปได้
- checkers ก็ถูกยกเป็นตัวอย่างเกมที่ถูกแก้แบบอ่อนในความหมายเดียวกัน
เหตุผลที่ Othello ยังคงเหลืออยู่มานาน
- Othello เป็นเกมยอดนิยมที่มีความลึกเชิงกลยุทธ์สูง ถูกประดิษฐ์ขึ้นในอังกฤษช่วงศตวรรษที่ 19 ก่อนที่รูปแบบปัจจุบันจะแพร่หลายในญี่ปุ่นช่วงศตวรรษที่ 20 และถูกเล่นทั่วโลก
- การแข่งขันชิงแชมป์โลกจัดขึ้นทุกปีตั้งแต่ 1977 สะท้อนถึงความนิยมระดับโลก
- พื้นที่การค้นหามีขนาดใหญ่มาก
- เฉลี่ยประมาณ 10 ตาเดิน ต่อหนึ่งตำแหน่ง
- เฉลี่ยประมาณ 58 ตาเดิน ต่อเกมทั้งหมด
- บันทึกเกมที่เป็นไปได้ประมาณ 10^58
- ตำแหน่งบนกระดานที่เป็นไปได้ประมาณ 10^28
- ขนาดนี้ถูกระบุว่าใหญ่กว่าเกมที่เคยถูกแก้ในฐานะปัญหายากมาก่อน โดยเฉพาะ checkers อย่างมาก
- ด้วยพื้นที่การค้นหาขนาดใหญ่ Othello จึงยังคงเป็นโจทย์ระยะยาวในวิทยาการคอมพิวเตอร์
วิธีการค้นหาและประสิทธิภาพการคำนวณ
- นักวิจัยใช้ alpha-beta search โดยมีเป้าหมายเป็นการแก้แบบอ่อน
- อัลกอริทึมแก้เกมแตกต่างกันไปตามเป้าหมายและลักษณะของเกม
- การแก้แบบอ่อนมักใช้ alpha-beta search
- การแก้แบบแข็งมักใช้ retrograde analysis
- สำหรับพัซเซิลที่มีลำดับคำตอบยาวมาก มีการพัฒนาวิธีอย่าง df-pn search
- alpha-beta search เป็นอัลกอริทึมที่ค้นหากราฟเกมตามลำดับในแบบ depth-first จึงยากที่จะเพิ่มประสิทธิภาพการค้นหาได้มากด้วยการทำ parallelization แบบง่าย ๆ เพียงอย่างเดียว
- มีการศึกษาวิธีการค้นหาแบบขนานหลายแบบ
- ในสภาพแวดล้อมหน่วยความจำร่วม YBWC และ Lazy SMP เป็นวิธีที่ได้รับความนิยม
- ในสภาพแวดล้อมหน่วยความจำแบบกระจาย APHID และ ABDADA ถูกนำเสนอเป็นอัลกอริทึมที่เกี่ยวข้อง
- ในสภาพแวดล้อมหน่วยความจำแบบกระจาย เงื่อนไขอย่างแบนด์วิดท์และเวลาแฝงระหว่างโหนดแตกต่างกันมาก นักพัฒนาจึงอาจต้องเลือกอัลกอริทึมที่เหมาะกับสภาพแวดล้อมหรือพัฒนาใหม่
- แม้ใช้คลัสเตอร์คอมพิวเตอร์สมัยใหม่ การแก้ Othello ก็ยังเป็นอุปสรรคใหญ่ และจุดที่ทำให้เกิดความก้าวหน้าคือการปรับแต่งซอฟต์แวร์ Othello รุ่นใหม่เพื่อเพิ่มประสิทธิภาพการค้นหา
เกมอื่นที่ถูกแก้และความเป็นไปได้ในการนำไปใช้
- ก่อน Othello ตัวอย่างล่าสุดของปัญหายากที่ถูกแก้ได้คือ checkers
- เกมที่ไม่เรียบง่ายอย่าง Connect Four, Qubic, Go-Moku, Nine Men’s Morris และ Awari ก็ถูกระบุเป็นตัวอย่างที่ถูกแก้แล้ว
- ความยากในการแก้เกมโดยทั่วไปขึ้นอยู่กับจำนวนตำแหน่งหรือสถานการณ์ภายในเกมเป็นอย่างมาก
- การแก้เกมไม่ได้จำกัดอยู่แค่การเปิดเผยผลลัพธ์สุดท้าย แต่ยังสามารถนำไปใช้กับการ สร้างพัซเซิล ที่อิงจากเกมนั้นได้ด้วย
- นักวิจัยจัดเตรียมข้อมูลดิบและโปรแกรมสำหรับทำซ้ำผลลัพธ์ไว้ที่ GitHub, Zenodo และ figshare
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
บอกว่า “เลือก 2,587 ตำแหน่ง จากทั้งหมด 2,958,551 ตำแหน่ง แล้วตั้งสมมติฐานเกี่ยวกับผลลัพธ์ไว้ และถ้าสมมติฐานเหล่านี้ถูกทั้งหมด ก็จะพิสูจน์ได้ว่าตำแหน่งเริ่มต้นเป็นการเสมอ” แต่ไม่มีคำอธิบายละเอียดกว่านั้น
ฟังดูเหมือนผู้เขียนพยายามหาลำดับเดินที่ชนะอย่างหนักแต่หาไม่เจอ มากกว่าจะเป็นการแก้เกมได้อย่างสมบูรณ์
มีเขียนไว้ว่า “มีหลายวิธีในการเลือกเซตย่อยที่สามารถพิสูจน์ได้ว่าตำแหน่งเริ่มต้นเป็นการเสมอ แต่เราใช้ Algorithm 1 เพื่อให้ได้เซตย่อยขนาดเล็ก”
Algorithm 1 อธิบายว่า รับคะแนนทำนายของทุกตำแหน่งที่มีช่องว่าง 50 ช่อง แล้วคืนค่าเซตย่อยที่ “หากทุกตำแหน่งในเซตย่อยนั้นถูกแก้ และคำตอบตรงกับค่าทำนาย ตำแหน่งเริ่มต้นก็จะถูกแก้ตามไปด้วยในที่สุด”
โดยรวมแล้วการเขียนของ论文ไม่ค่อยเป็นเชิงสัญชาตญาณ ผู้เขียนอาจจะถูกก็ได้ แต่คงต้องนั่งไล่ตรรกะอย่างจริงจัง และความประทับใจแรกของผมคือยังค่อนข้างกังขา
การพิสูจน์ลักษณะนี้มีที่อื่นด้วย เช่น ทฤษฎีบทสี่สี ก็ลดรูปเป็นจำนวนรูปแบบจำกัด แล้วใช้การลงสีด้วยมือ
สคริปต์ที่ https://github.com/eukaryo/reversi-scripts/blob/main/reversi... เล่นได้อย่างสมบูรณ์ภายใต้สมมติฐานว่าทั้งหมดถูกต้อง สคริปต์อื่น ๆ ในรีโพซิทอรีใช้ข้อมูลที่คำนวณจากคำตอบของตำแหน่งว่าง 36 ช่อง และระดับนี้ดูเหมือนทำได้บนเครื่องทั่วไปด้วย
โดยแก่นแล้วโครงสร้างน่าจะเป็นการค้นหาใน ตารางขนาดไม่เกิน 300GB ที่บรรจุตำแหน่งทั้งหมดที่มีช่องว่าง 37~64 ช่องซึ่งเข้าถึงได้จาก weak solution และแก้ตำแหน่งที่มีช่องว่างไม่เกิน 36 ช่องด้วย
-solveของ edaxOthello เป็นเกมที่เหมาะมากสำหรับแสดงให้เห็นว่าแค่ ฮิวริสติก พื้นฐานก็ทำให้แข็งแกร่งได้แค่ไหน
ระหว่างเล่นเกมจะมีช่องที่ห้ามลงเด็ดขาด และในทางกลับกันก็มีช่องที่ถ้าเป็นไปได้ควรลงให้ได้
แค่ทำกฎพวกนี้ก็กลายเป็นคู่ต่อสู้ที่ใช้ได้ทีเดียว และน่าสนใจที่เห็นว่าผู้คนมอบความเป็น “ปัญญา” ให้กับสิ่งที่เรียบง่ายมากได้รวดเร็วแค่ไหน
เขาบอกว่าเอาแอปที่ใช้ฮิวริสติกง่าย ๆ คล้ายกัน ไปแข่งกับแอปที่ใช้กลยุทธ์ “พลิกให้ได้มากที่สุด” ซึ่งง่ายพอ ๆ กันแต่แย่มาก
อัลกอริทึมแบบฮิวริสติกชนะขาดลอย จำได้ว่า 60 ต่อ 4 หรืออาจจะหนักกว่านั้นอีก
พอเหลือช่องว่าง 19 ช่อง มันก็แก้เกมที่เหลือทั้งหมดได้เลย น่าทึ่งมาก
Othello เป็นเกมที่เคยอยู่ใน เครื่องเกม LCD ราคา 10 ดอลลาร์ ที่ใส่ถ่าน AA สองก้อนด้วยซ้ำ
ถ้าสนใจเกม ตอนนี้ การแข่งขันชิงแชมป์โลก Othello ซึ่งได้รับความนิยมในหมู่นักวิทยาการคอมพิวเตอร์และนักวิจัยปัญญาประดิษฐ์ กำลังจัดอยู่ที่กรุงโรม ประเทศอิตาลี
การแข่งขันถ่ายทอดสดที่ liveothello.com และ Youtube @WorldOthello -论文นี้ทำให้การแข่งขันชิงแชมป์หมดความหมายหรือเปล่า? ก็สงสัยด้วยว่ามีซอฟต์แวร์ที่อิงจาก论文นี้เข้าร่วมหรือไม่
สงสัยว่า Othello เป็นเกมที่แมตช์ระดับสูงส่วนใหญ่จบเสมอเหมือนหมากฮอสหรือเปล่า
เจ๋ง
ประมาณ 15 ปีก่อน ผมเคยแก้เกมที่ง่ายกว่านี้ซึ่งเล่นกับพี่น้อง เป็นเกมแอฟริกันที่มีหลุมประมาณฝั่งละ 10 หลุมบนกระดานและใส่เมล็ดหินลงไป
พอเขียนเอนจิน alpha-beta มันก็พบ กลยุทธ์ที่ชนะเสมอ แบบเหลือเชื่อซึ่งปรับกับวิธีที่เราเล่นอยู่ หลังจากนั้นผมก็ชนะทุกกระดานขึ้นมาทันที และพี่น้องก็ไม่ยอมเล่นด้วยอีกเลย เป็นการดวลแบบคลาสสิกระหว่างนักวิทยาการคอมพิวเตอร์กับนักทัศนมาตรศาสตร์
การดูชาวแอฟริกันสูงวัยเล่น Mancala มีอะไรให้เรียนรู้เยอะมาก พวกเขาเล่นเร็วมาก และให้ความรู้สึกเหมือนโป๊กเกอร์ที่การหลอกลวงเป็นส่วนหนึ่งของเกม
ถ้าโปรยเมล็ดหินเร็วพอ ก็อาจข้ามถ้วยหนึ่งใบหรือหย่อนเมล็ดเพิ่มอีกเมล็ดเพื่อให้ได้เปรียบได้
ผมไม่ได้ชำนาญขนาดนั้น และเล่นกับครอบครัวจึงไม่โกง แต่ถึงอย่างนั้นมันก็กลายเป็นเกมที่ต่างไปมาก เหมือนความแตกต่างระหว่างสุภาพสตรีอังกฤษจิบชาแล้วเล่น Mahjong ช้า ๆ กับการเล่นพนันเอาเงินจริงในบ่อนจีน
ถ้าชนะมากเกินไปหรือแพ้มากเกินไป ก็จะไม่สนุกกับเกม
แต่ไม่รู้ว่าอาชีพนักทัศนมาตรศาสตร์เกี่ยวข้องอะไรตรงนี้
นี่จริงหรือเปล่า? รู้สึกแปลกนิดหน่อยที่ผู้เขียนมีคนเดียว และสังกัด สตาร์ทอัพด้านดีปเลิร์นนิง ที่ไม่เคยได้ยินชื่อมาก่อน
คงกำลังอยู่ระหว่างการ peer review อยู่ละมั้ง?
และ Othello ก็ไม่ได้อยู่ระดับเดียวกับสมมติฐานรีมันน์เสียทีเดียว งานวิจัยเกี่ยวกับมันจึงน้อยกว่า และอาจยังมีผลไม้ห้อยต่ำเหลืออยู่ก็ได้
Othello เป็นหนึ่งในเกมที่เหมาะมากสำหรับเล่นกับเด็ก ๆ
กติกาเรียบง่าย มีแพตเทิร์นให้เรียนรู้ และยังสนุกกับการพลิกหมากจำนวนมากด้วย ที่สำคัญคือไม่ใช่แค่เด็ก ๆ แต่ผู้ใหญ่ก็สนุกได้พอ ๆ กัน
ผมเองก็สนุกได้เต็มที่ โดยไม่ทำให้เด็ก 6 ขวบรู้สึกถูกกดดันจนเกินไป และก็ไม่รู้สึกเหมือนเป็นเกมที่พึ่งดวงล้วน ๆ
https://mancala.fandom.com/wiki/Hus
ในทางทฤษฎีไม่มีดวงเข้ามาเกี่ยว แต่ในทางปฏิบัติ ผลแบบลูกโซ่ทำให้คำนวณไปได้ไม่ไกลขนาดนั้น
กระดานทำเองได้ง่าย ๆ
ถ้าอยากลองเล่นเกมนี้ ผมอัปโหลดสิ่งที่ทำไว้กับเด็ก ๆ ไว้ที่นี่: https://jawj.github.io/fliptiles
ผู้เล่น “AI” อ่อนมาก
ได้เรียนรู้เกมใหม่แล้ว
คอมพิวเตอร์ได้ 33 คะแนน ส่วนผมได้ 31 คะแนน
ถ้าคิดว่า Othello เป็นเรื่องง่าย ๆ ลอง Zebra ดูก็ได้
เว็บไซต์ผู้เขียนต้นฉบับ: http://radagast.se/othello/
ซอร์สบน GitHub: https://github.com/hoshir/zebra
สิ่งที่ผมชอบใน Othello คือ ความขัดแย้งระหว่างการลงมือกับพื้นที่ครอบครอง
ระหว่างที่เกมดำเนินไป การวางหมากในตาของตัวเองในแง่หนึ่งเป็นผลเสียต่อตัวเอง แต่ก็ยังจำเป็นต้องวาง
ดังนั้นจนกว่าจะถึงจุดที่พื้นที่เล็กเกินไปและต้องกู้คืนอิทธิพลที่แน่นอนกลับมา คุณจึงต้องครอบครองพื้นที่ไปพร้อมกับรักษาตำแหน่งให้เล็กและอยู่ด้านใน
ที่เกี่ยวข้องกัน ยังมีการเล่น 6x6 Reversi แบบสมบูรณ์แบบด้วย
https://mame.github.io/6x6-reversi-oracle/
ที่มา: https://twitter.com/mametter/status/1476379841004183556
เพิ่งรู้ตอนนี้เองว่า 8x8 ยังไม่ถูกแก้จนสมบูรณ์