มีอัลกอริทึมที่สมบูรณ์แบบสำหรับหมากรุกหรือไม่? [ปิด]


109

เมื่อเร็ว ๆ นี้ฉันกำลังสนทนากับบุคคลที่ไม่ได้เขียนโค้ดเกี่ยวกับความเป็นไปได้ของคอมพิวเตอร์หมากรุก ฉันไม่ได้เชี่ยวชาญในทฤษฎี แต่คิดว่าฉันรู้เพียงพอ

ฉันแย้งว่าไม่สามารถมีเครื่องจักรทัวริงที่กำหนดได้ซึ่งจะชนะหรือนิ่งในหมากรุกเสมอไป ฉันคิดว่าแม้ว่าคุณจะค้นหาพื้นที่ทั้งหมดของการเคลื่อนไหวของผู้เล่น 1/2 ชุดทั้งหมดการเคลื่อนไหวเพียงครั้งเดียวที่คอมพิวเตอร์ตัดสินใจในแต่ละขั้นตอนนั้นขึ้นอยู่กับฮิวริสติก ด้วยพื้นฐานของฮิวริสติกจึงไม่จำเป็นต้องเอาชนะการเคลื่อนไหวทั้งหมดที่คู่ต่อสู้ทำได้

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

คอมพิวเตอร์หมากรุกส่วนใหญ่พยายามจับคู่เกมจบที่เป็นไปได้กับเกมที่กำลังดำเนินอยู่ซึ่งโดยพื้นฐานแล้วเป็นการย้อนกลับการเขียนโปรแกรมแบบไดนามิก อีกครั้ง endgame ที่เป็นปัญหาสามารถหลีกเลี่ยงได้

แก้ไข: อืม ... ดูเหมือนว่าฉันจะขนที่นี่ ดีแล้ว.

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

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


1
+1: หัวข้อที่ยอดเยี่ยม อย่างไรก็ตามฉันคิดว่านี่ควรเป็นวิกิที่แสดงให้เห็นถึงความหลากหลายและปริมาณของคำตอบ
IAbstract

1
"คิดว่าฉันได้ชี้ให้เห็นสิ่งที่ยังไม่สามารถพิสูจน์ได้อย่างน่าพอใจ"? คุณชี้ให้เห็นอะไรที่ยังไม่ได้รับการพิสูจน์อย่างเป็นทางการ?
S.Lott

2
แอค! จะมีคำตอบที่แตกต่างกัน 20 ข้อสำหรับคำถามขาวดำเช่นนี้ได้อย่างไร! (ไม่มีการเล่นสำนวน)
Peter Recore

5
ฉันก็ประหลาดใจเช่นกันที่มีคนจำนวนมากที่โพสต์คำตอบเชิงคาดเดาของพวกเขาโดยไม่ทราบว่าคำตอบนั้นได้รับการกำหนดทางคณิตศาสตร์ - ตอบในแง่ที่ได้รับการพิสูจน์แล้วว่าหมากรุกมีวิธีแก้ปัญหา - การคำนวณนั้นใช้ไม่ได้จริง
DJClayworth

3
ทำให้ฉันนึกถึงเรื่องตลกเกี่ยวกับ Perfect Chess Playing Computer เล่นเอาขาวมันคิดแล้วคิดอีกแล้ว .... ลาออก!

คำตอบ:


104

"ฉันเถียงว่าไม่มีเครื่องจักรทัวริงที่กำหนดได้ซึ่งจะชนะหรือสะดุดเสมอไปที่หมากรุก"

คุณไม่ถูกต้อง สามารถมีเครื่องดังกล่าวได้ ปัญหาคือความใหญ่โตของพื้นที่ของรัฐที่จะต้องค้นหา มัน จำกัด มันใหญ่จริงๆ

นั่นเป็นเหตุผลว่าทำไมหมากรุกจึงตกอยู่ในการวิเคราะห์พฤติกรรม - พื้นที่ของรัฐมีขนาดใหญ่เกินไป (แต่มี จำกัด ) หากต้องการแจกแจง - ค้นหาน้อยลงมากสำหรับทุกการเคลื่อนไหวที่สมบูรณ์แบบในทุก ๆ เกมที่เป็นไปได้ - จะเป็นปัญหาในการค้นหาที่ยิ่งใหญ่มาก

ช่องต่างๆจะถูกเขียนขึ้นเพื่อนำคุณไปสู่ช่วงกลางเกมที่ทำให้คุณอยู่ในตำแหน่งที่ "แข็งแกร่ง" ไม่ทราบผลลัพธ์ แม้กระทั่งจบเกม - เมื่อมีจำนวนน้อยลงก็ยากที่จะแจกแจงเพื่อกำหนดแนวทางต่อไปที่ดีที่สุด ในทางเทคนิคพวกเขามีจำนวน จำกัด แต่จำนวนทางเลือกนั้นมีมาก แม้แต่ 2 rooks + king ก็มีบางอย่างเช่น 22 ท่าที่เป็นไปได้ และถ้าต้องใช้เวลา 6 ท่าในการจับคู่คุณกำลังดูการเคลื่อนไหว 12,855,002,631,049,216 ครั้ง

ทำคณิตศาสตร์ในการเปิดการเคลื่อนไหว ในขณะที่มีการเปิดเพียง 20 ท่า แต่ก็มีบางอย่างเช่นการเคลื่อนไหว 30 วินาทีหรือมากกว่านั้นดังนั้นในการเคลื่อนไหวครั้งที่สามเรากำลังดูสถานะเกมทางเลือก 360,000 สถานะ

แต่เกมหมากรุกนั้นมีข้อ จำกัด (ในทางเทคนิค) ใหญ่โต แต่มีข้อ จำกัด มีข้อมูลที่สมบูรณ์แบบ มีการกำหนดสถานะเริ่มต้นและสิ้นสุดไม่มีการทอยเหรียญหรือทอยลูกเต๋า


22
endgames ทั้งหมดที่มี 6 ชิ้นหรือน้อยกว่าได้รับการแจกแจงและแก้ไขแล้ว ดู tablebase และ bitbase ที่นี่: en.wikipedia.org/wiki/Tablebase ตัวอย่างเช่นมี KQNKRBN endgame ที่ต้องใช้การเคลื่อนไหว 517 ครั้งเพื่อบังคับเพื่อน! แต่จำนวนเกมหมากรุกทั้งหมดอยู่ที่ประมาณ (10 ^ (10 ^ 50))
HTTP 410

2
สคริปต์ที่จะชนะเป็นสิ่งหนึ่ง การแจกแจงอย่างละเอียดถี่ถ้วนเป็นสิ่งที่แตกต่างกัน ไม่ว่าจะด้วยวิธีใดข้อมูลก็สมบูรณ์แบบ - ทุกอย่างเป็นที่รู้จัก - เกมถูกกำหนดโดยคำจำกัดความ
ล็อต

11
@RoadWarrior: ไม่เห็นด้วย สุ่มใช้กับสภาพอากาศ พระเจ้าทอยลูกเต๋า Random ใช้ไม่ได้กับหมากรุก - ตามคำจำกัดความ หมากรุกมีข้อมูลครบถ้วน สภาพอากาศมีผลกระทบทางควอนตัม - ไม่สามารถสมบูรณ์ได้
ล็อต

3
สิ่งที่ทำให้พยากรณ์อากาศยากคือปัจจัยที่ไม่เป็นเชิงเส้นที่วุ่นวายไม่ใช่ผลกระทบทางควอนตัมใด ๆ ด้วยพลังการคำนวณและความรู้ที่เพียงพอในทางทฤษฎีเราสามารถสร้างการพยากรณ์อากาศที่ "ถูกต้อง" ได้
HTTP 410

3
@monojohnny: กฎห้ามทำซ้ำสามตำแหน่งในตำแหน่งเดียวกัน หมากรุกเป็นเพียง จำกัด มีขนาดใหญ่ แต่มีจำนวน จำกัด
ล็อตต์

72

ฉันไม่รู้อะไรเลยเกี่ยวกับสิ่งที่ถูกค้นพบเกี่ยวกับหมากรุก แต่ในฐานะนักคณิตศาสตร์นี่คือเหตุผลของฉัน:

อันดับแรกเราต้องจำไว้ว่าไวท์ต้องไปก่อนและบางทีนี่อาจทำให้เขาได้เปรียบ บางทีมันอาจทำให้ Black ได้เปรียบ

สมมติว่าไม่มีกลยุทธ์ที่สมบูรณ์แบบสำหรับ Black ที่ทำให้เขาชนะ / จนมุมได้ตลอดเวลา นี่หมายความว่าไม่ว่า Black จะทำอะไรก็มีกลยุทธ์ที่ White สามารถทำตามเพื่อชนะได้ รอสักครู่ - ที่นี้หมายถึงมีเป็นกลยุทธ์ที่สมบูรณ์แบบสำหรับสีขาว!

นี้จะบอกเราว่าอย่างน้อยหนึ่งในผู้เล่นที่สองไม่มีกลยุทธ์ที่สมบูรณ์แบบซึ่งจะช่วยให้ผู้เล่นมักจะชนะหรือเสมอ

มีเพียงสามความเป็นไปได้:

  • ไวท์สามารถชนะได้เสมอหากเขาเล่นได้อย่างสมบูรณ์แบบ
  • แบล็คสามารถชนะได้เสมอหากเขาเล่นได้อย่างสมบูรณ์แบบ
  • ผู้เล่นคนหนึ่งสามารถชนะหรือเสมอถ้าเขาเล่นได้อย่างสมบูรณ์แบบ (และถ้าผู้เล่นทั้งสองเล่นได้อย่างสมบูรณ์แบบพวกเขาก็จะจนมุม)

แต่ข้อใดที่ถูกต้องเราอาจไม่เคยรู้มาก่อน

คำตอบสำหรับคำถามคือใช่ : ต้องมีอัลกอริทึมที่สมบูรณ์แบบสำหรับหมากรุกอย่างน้อยสำหรับผู้เล่นหนึ่งในสองคน


2
+1 นั่นเป็นวิธีที่ยอดเยี่ยมมากในการอธิบาย ไม่อยากจะเชื่อเลยว่าฉันไม่เคยคิดแบบนั้นมาก่อน!
Zifre

2
เหตุใดสีดำจึงไม่มีกลยุทธ์ที่สมบูรณ์แบบบ่งบอกว่าสีขาวมีกลยุทธ์ที่สมบูรณ์แบบ? แล้วผู้เล่นทั้งสองไม่มีกลยุทธ์ที่สมบูรณ์แบบล่ะ? หากความหมายของคุณเป็นจริงมันจะไม่เป็นความจริงสำหรับทุกเกมที่เล่น 2 คนหมายความว่าทุกเกมมีกลยุทธ์ที่สมบูรณ์แบบหรือไม่?
John M Naglick

8
@john: เนื่องจากหมากรุกมีข้อมูลที่สมบูรณ์แบบและไม่มีองค์ประกอบแบบสุ่ม (ซึ่งแตกต่างจากเกมที่มีผู้เล่น 2 คนอื่น ๆ อีกมากมาย) วิธีเดียวที่เป็นไปได้ที่จะไม่มีกลยุทธ์ที่สมบูรณ์แบบสำหรับสีดำคือถ้าสีขาวสามารถบังคับให้ชนะได้แม้จะพยายามก็ตาม ดำ - กล่าวอีกนัยหนึ่งหากมีกลยุทธ์ที่สมบูรณ์แบบสำหรับสีขาว
Dave Sherohman

2
อันที่จริงตรรกะนี้ไม่ได้ถือเสมอไป แต่ในกรณีนี้จะเป็นจริงหรือไม่
BlueRaja - Danny Pflughoeft

4
@john "ทำไมถึงมาคุยกันที่นี่" - เพราะบางคนไม่รู้คำตอบ แต่ก็โพสต์ที่นี่อยู่ดี
DJClayworth

30

ได้รับการพิสูจน์แล้วสำหรับเกมหมากฮอสว่าโปรแกรมสามารถชนะหรือเสมอกันในเกม นั่นคือไม่มีทางเลือกในการเคลื่อนไหวที่ผู้เล่นคนหนึ่งสามารถทำให้ผู้เล่นคนอื่นแพ้ได้

นักวิจัยใช้เวลาเกือบสองทศวรรษในการผ่านตำแหน่งตัวตรวจสอบที่เป็นไปได้ 500 พันล้านล้านตำแหน่งซึ่งยังคงเป็นเพียงส่วนเล็ก ๆ น้อย ๆ ของจำนวนตำแหน่งหมากรุกโดยวิธีการ ความพยายามของหมากฮอสรวมถึงผู้เล่นอันดับต้น ๆ ซึ่งช่วยทีมวิจัยตั้งโปรแกรมหมากฮอสให้เป็นซอฟต์แวร์ที่แบ่งประเภทการเคลื่อนไหวว่าประสบความสำเร็จหรือไม่สำเร็จ จากนั้นนักวิจัยก็ปล่อยให้โปรแกรมทำงานโดยเฉลี่ยคอมพิวเตอร์ 50 เครื่องต่อวัน บางวันโปรแกรมวิ่ง 200 เครื่อง ในขณะที่นักวิจัยติดตามความคืบหน้าและปรับแต่งโปรแกรมตามนั้น ในความเป็นจริงชีนุกเอาชนะมนุษย์เพื่อคว้าแชมป์โลกหมากฮอสในปี 1994

ใช่คุณสามารถแก้หมากรุกได้ไม่เร็ว ๆ นี้


6
"[Y] คุณจะไม่ถึงเวลาอีกในเร็ว ๆ นี้" เป็นการพูดที่ไม่ชัดเจน นอกจากขีด จำกัด ของระยะเวลาที่คาดไว้ของจักรวาลแล้วคุณยังมีปัญหาในการจัดเก็บ - จำนวนรัฐในหมากรุกมีมากกว่า 500 พันล้านล้านตัว ในความเป็นจริงมันเกินจำนวนอนุภาคในจักรวาล
Michael Dorfman

30
"[... ] อันที่จริงมันเกินจำนวนอนุภาคในจักรวาล". ตราบใดที่ไม่เกินจำนวนสถานะของอนุภาคในจักรวาลก็ยังมีความหวัง ;-)
Carsten

1
จะเกิดอะไรขึ้นเมื่อโปรแกรมที่มักจะบังคับให้คู่ต่อสู้แพ้คือเล่นกันเอง ????
John Demetriou

1
@BCS อืมจะเกิดอะไรขึ้นถ้ามีการทำนายว่าถ้าฉันเล่นเป็นผู้เล่นคนที่สองและอีกคนหนึ่งใช้ฮิวริสติกแบบเดียวกับฉันก็ทำตามฮิวริสติกนี้เพื่อชนะและถ้าผู้เล่นคนแรกมีฮิวริสติกที่คล้ายกัน ???? เหรอ?
John Demetriou

1
สิ่งที่ฉันพูดคือถ้ามีอัลกอริทึมที่สมบูรณ์แบบและผู้เล่นทั้งสองมีมันจะมีความน่าจะเป็นไม่ จำกัด จำนวนที่อัลกอริทึมสามารถเปลี่ยนแปลงเพื่อให้มันสมบูรณ์แบบ
John Demetriou

15

นี่ไม่ใช่คำถามเกี่ยวกับคอมพิวเตอร์ แต่เกี่ยวกับเกมหมากรุกเท่านั้น

คำถามคือมีกลยุทธ์ที่ปลอดภัยสำหรับการไม่แพ้เกมหรือไม่? หากมีกลยุทธ์ดังกล่าวคอมพิวเตอร์ที่รู้ทุกอย่างสามารถใช้งานได้ตลอดเวลาและไม่ใช่วิธีการฮิวริสติกอีกต่อไป

ตัวอย่างเช่นเกม tic-tac-toe โดยปกติจะเล่นตามการวิเคราะห์พฤติกรรม แต่มีกลยุทธ์ที่ไม่ปลอดภัยอยู่ ไม่ว่าฝ่ายตรงข้ามจะเคลื่อนไหวอะไรคุณก็จะหาทางหลีกเลี่ยงการแพ้ในเกมได้เสมอหากคุณทำถูกต้องตั้งแต่เริ่มต้น

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


แล้วใครล่ะที่อยากจะลงคะแนนคำตอบของฉัน? มีอะไรผิดปกติหรือไม่? อยากให้ตัวเองอยู่ข้างหน้า?
ypnos

@ypnos ฉันไม่ได้ลงคะแนนคำตอบของคุณเลย ฉันแค่แสดงความคิดเห็นเพื่อบอกว่าอย่าให้ผู้ลงคะแนนแบบสุ่มทำให้คุณผิดหวัง คุณได้รับ 30 ตัวแทนและแพ้ 1 เท่านั้นนอกจากนี้ +1;)
mmcdole

1
เหตุผลหลายประการในการโหวตลด 1) เป็นที่ทราบกันดีว่ามีอัลกอริทึมสำหรับการแก้เกมเป็นเพียงว่าอัลกอริทึมนั้นไม่สามารถคำนวณได้โดยใช้เทคโนโลยีที่เป็นไปได้ 2) การแก้เกมไม่ได้หมายความว่าพวกเขามีกลยุทธ์ที่ไม่ปลอดภัย Tic-tac-toe ได้รับการแก้ไขแล้ว แต่ไม่มีกลยุทธ์สำหรับผู้เล่นคนที่สองที่หลีกเลี่ยงการสูญเสีย
DJClayworth

2
"นี่ไม่ใช่คำถามเกี่ยวกับคอมพิวเตอร์ แต่เกี่ยวกับเกมหมากรุกเท่านั้น" วิทยาศาสตร์คอมพิวเตอร์ไม่ได้เกี่ยวกับคอมพิวเตอร์จริงๆ พวกเขาเป็นเพียงเครื่องมือ วิทยาการคอมพิวเตอร์ทำงานได้โดยไม่ต้องใช้คอมพิวเตอร์
Janus Troelsen

1
มันเป็นคำถามเกี่ยวกับคอมพิวเตอร์จริงๆเนื่องจากคำถามคือว่า Turing Machine (= Computer) มีอยู่จริงหรือไม่ที่แก้หมากรุกได้
SDwarfs

14

ฉันมาที่หัวข้อนี้ช้ามากและคุณได้ตระหนักถึงปัญหาบางอย่างแล้ว แต่ในฐานะอดีตผู้เชี่ยวชาญและอดีตโปรแกรมเมอร์หมากรุกมืออาชีพฉันคิดว่าฉันสามารถเพิ่มข้อเท็จจริงและตัวเลขที่เป็นประโยชน์ได้ มีหลายวิธีในการวัดความซับซ้อนของหมากรุก :

  • จำนวนเกมหมากรุกทั้งหมดอยู่ที่ประมาณ 10 ^ (10 ^ 50) ตัวเลขนั้นมีขนาดใหญ่มากอย่างไม่น่าเชื่อ
  • จำนวนเกมหมากรุก 40 ท่าหรือน้อยกว่าอยู่ที่ประมาณ 10 ^ 40 นั่นยังคงเป็นจำนวนที่มากอย่างไม่น่าเชื่อ
  • จำนวนตำแหน่งหมากรุกที่เป็นไปได้อยู่ที่ประมาณ 10 ^ 46
  • แผนภูมิค้นหาหมากรุกที่สมบูรณ์ (หมายเลขแชนนอน) อยู่ที่ประมาณ 10 ^ 123 โดยพิจารณาจากปัจจัยการแยกสาขาเฉลี่ย 35 และความยาวของเกมโดยเฉลี่ย 80
  • สำหรับการเปรียบเทียบจำนวนอะตอมในเอกภพที่สังเกตได้โดยทั่วไปจะอยู่ที่ประมาณ 10 ^ 80
  • endgames ทั้งหมด 6 ชิ้นหรือน้อยกว่าได้รับการจัดเรียงและแก้ไขแล้ว

ข้อสรุปของฉัน: ในขณะที่หมากรุกสามารถแก้ปัญหาได้ในทางทฤษฎี แต่เราจะไม่มีเงินแรงจูงใจพลังคอมพิวเตอร์หรือพื้นที่เก็บข้อมูลที่จะทำมันได้


3
C'mon. คุณต้องคิดปัญหาให้แตกต่างออกไป อย่าคิดถึงจำนวนเกมเพราะการเปลี่ยนตำแหน่งและอัลกอริทึมอัลกอรึธึมอัลฟ่าเบต้าและการตัดทอนนั้นกลับยิ่งใหญ่ ลองนึกถึงตำแหน่งกระดาน (10 ^ 60) หรือชุดตัวหมากรุก (100 ล้าน) ด้วย Quantum Computing มันเป็นเรื่องเล็กน้อย
lkessler

2
อัลฟาเบต้าในบริบทนี้ (การแก้หมากรุก) จะต้องมีฟังก์ชันการประเมินที่สมบูรณ์แบบ ตำแหน่งบอร์ดและการรวมชิ้นส่วนก็เช่นกัน เราไม่มีฟังก์ชันการประเมินที่สมบูรณ์แบบดังนั้นการคำนวณควอนตัมจึงไม่ช่วยเรา
HTTP 410

1
ทุกครั้งที่ฉันคิดว่ามีบางอย่าง "เล็กน้อย" และฉันแน่ใจว่าไม่มีใครทำแล้วฉันก็มั่นใจว่าฉันเคยผิดพลาดอย่างน้อยหนึ่งครั้ง
Dean J

2
@lkessler: ตำแหน่งบอร์ดไม่ได้บอกเล่าเรื่องราวทั้งหมด อย่างน้อยประวัติของเกมบางส่วนก็จำเป็นสำหรับการจับหรือวาดผู้เล่นเนื่องจากไม่มีการจับหรือการย้ายจำนำและประวัติศาสตร์ทั้งหมดสำหรับการวาดโดยการทำซ้ำ ยิ่งไปกว่านั้นเนื่องจากเป็นผลการวิจัยที่น่าทึ่งเมื่อไม่นานมานี้สำหรับคอมพิวเตอร์ควอนตัมที่จะแยกตัวประกอบ 15 ฉันจึงบอกว่าไม่มีอะไรน่าสนใจกับการคำนวณควอนตัม
David Thornley

2
สำหรับการเปรียบเทียบที่นี่หากคุณสามารถสร้างตำแหน่งหมากรุกที่เป็นไปได้ทั้งหมดคุณสามารถบังคับรหัสใด ๆ ด้วยคีย์ 128 บิตได้เล็กน้อยเนื่องจาก 10 ^ 46 มีค่าประมาณ 2 ^ 152 หรือ 2 ^ 153 มีเหตุผลที่ดีที่จะคิดว่าสิ่งนี้เป็นไปไม่ได้ก่อนที่จักรวาลจะตายอย่างร้อนแรง
David Thornley

9

ในความเป็นจริงบางเกมได้รับการแก้ไขแล้ว Tic-Tac-Toe เป็นวิธีที่ง่ายมากในการสร้าง AI ที่จะชนะหรือเสมอกัน เมื่อเร็ว ๆ นี้ Connect 4 ได้รับการแก้ไขแล้วเช่นกัน (และแสดงว่าไม่ยุติธรรมกับผู้เล่นคนที่สองเนื่องจากการเล่นที่สมบูรณ์แบบจะทำให้เขาแพ้)

อย่างไรก็ตามหมากรุกยังไม่ได้รับการแก้ไขและฉันไม่คิดว่าจะไม่มีข้อพิสูจน์ใด ๆ ว่ามันเป็นเกมที่ยุติธรรม (กล่าวคือการเล่นที่สมบูรณ์แบบจะส่งผลให้เสมอกันหรือไม่) พูดอย่างเคร่งครัดจากมุมมองทางทฤษฎี Chess มีการกำหนดค่าชิ้นส่วนที่เป็นไปได้จำนวน จำกัด ดังนั้นพื้นที่ค้นหาจึงมี จำกัด (แม้ว่าจะมีขนาดใหญ่มากก็ตาม) ดังนั้นเครื่องจักรทัวริงที่กำหนดไว้ซึ่งสามารถเล่นได้อย่างสมบูรณ์แบบจึงมีอยู่จริง อย่างไรก็ตามไม่ว่าจะมีใครสร้างขึ้นมาได้หรือไม่นั้นเป็นเรื่องที่แตกต่างกัน


8

เดสก์ท็อปเฉลี่ย $ 1,000 จะสามารถแก้ปัญหาหมากฮอสได้ในเวลาเพียง 5 วินาทีภายในปี 2040 (การคำนวณ 5x10 ^ 20)

แม้จะใช้ความเร็วเท่านี้ก็ยังต้องใช้คอมพิวเตอร์ 100 เครื่องประมาณ 6.34 x 10 ^ 19 ปีในการแก้หมากรุก ยังไม่มีความเป็นไปได้ ไม่ได้ใกล้เคียง.

ประมาณปี 2080 เดสก์ท็อปเฉลี่ยของเราจะมีการคำนวณประมาณ 10 ^ 45 ต่อวินาที คอมพิวเตอร์เครื่องเดียวจะมีพลังในการคำนวณเพื่อแก้หมากรุกภายในเวลาประมาณ 27.7 ชั่วโมง แน่นอนว่าจะเสร็จสิ้นภายในปี 2080 ตราบใดที่พลังคอมพิวเตอร์ยังคงเติบโตอย่างต่อเนื่องเช่นเดียวกับ 30 ปีที่ผ่านมา

ภายในปี 2090 พลังการคำนวณเพียงพอจะมีอยู่บนเดสก์ท็อปมูลค่า 1,000 เหรียญเพื่อแก้หมากรุกในเวลาประมาณ 1 วินาที ... ดังนั้นเมื่อถึงวันนั้นมันจะเป็นเรื่องเล็กน้อย

เนื่องจากตัวตรวจสอบได้รับการแก้ไขในปี 2550 และพลังในการคำนวณในการแก้ปัญหาใน 1 วินาทีจะล่าช้าไปประมาณ 33-35 ปีเราอาจประมาณว่าหมากรุกจะได้รับการแก้ไขในช่วงปี 2055-2057 อาจเร็วกว่านั้นเนื่องจากเมื่อมีพลังในการคำนวณมากขึ้น (ซึ่งจะเป็นเช่นนั้นใน 45 ปี) ก็สามารถทุ่มเทให้กับโครงการเช่นนี้ได้มากขึ้น อย่างไรก็ตามฉันจะบอกว่าอย่างเร็วที่สุดในปี 2050 และอย่างช้าที่สุดในปี 2060

ในปี 2060 จะใช้เวลา 100 เดสก์ท็อปเฉลี่ย 3.17 x 10 ^ 10 ปีในการแก้หมากรุก ตระหนักดีว่าฉันใช้คอมพิวเตอร์มูลค่า 1,000 เหรียญเป็นเกณฑ์มาตรฐานในขณะที่ระบบขนาดใหญ่และซูเปอร์คอมพิวเตอร์อาจพร้อมใช้งานเนื่องจากอัตราส่วนราคา / ประสิทธิภาพของพวกเขาดีขึ้นเช่นกัน นอกจากนี้ลำดับของขนาดของพลังการคำนวณของพวกเขาก็เพิ่มขึ้นอย่างรวดเร็ว พิจารณาว่าซูเปอร์คอมพิวเตอร์สามารถคำนวณได้ 2.33 x 10 ^ 15 ต่อวินาทีและคอมพิวเตอร์ราคา 1,000 เหรียญสหรัฐประมาณ 2 x 10 ^ 9 จากการเปรียบเทียบ 10 ปีที่แล้วความแตกต่างคือ 10 ^ 5 แทนที่จะเป็น 10 ^ 6 ภายในปี 2060 ลำดับความแตกต่างของขนาดอาจเป็น 10 ^ 12 และแม้จะเพิ่มขึ้นเร็วกว่าที่คาดการณ์ไว้

ส่วนใหญ่ขึ้นอยู่กับว่าเราในฐานะมนุษย์มีแรงผลักดันในการแก้หมากรุกหรือไม่ แต่พลังในการคำนวณจะทำให้เป็นไปได้ในช่วงเวลานี้ (ตราบใดที่เรายังคงก้าวต่อไป)

ในอีกข้อหนึ่งเกม Tic-Tac-Toe ซึ่งง่ายกว่ามากมีการคำนวณที่เป็นไปได้ 2,653,002 รายการ (ด้วยกระดานเปิด) พลังการคำนวณในการแก้ปัญหา Tic-Tac-Toe ในเวลาประมาณ 2.5 (1 ล้านการคำนวณต่อวินาที) สำเร็จในปี 1990

เมื่อย้อนกลับไปในปีพ. ศ. 2498 คอมพิวเตอร์มีอำนาจในการแก้ปัญหา Tic-Tac-Toe ในเวลาประมาณ 1 เดือน (การคำนวณ 1 ครั้งต่อวินาที) อีกครั้งนี่ขึ้นอยู่กับสิ่งที่คุณจะได้รับ $ 1,000 หากคุณสามารถบรรจุลงในคอมพิวเตอร์ (เห็นได้ชัดว่าเดสก์ท็อป $ 1,000 ไม่มีอยู่ในปีพ. ศ. 2498) และคอมพิวเตอร์เครื่องนี้จะทุ่มเทให้กับการแก้ปัญหา Tic-Tac-Toe .... ไม่ได้เป็นเช่นนั้นในปี 1955 การคำนวณมีราคาแพงและจะไม่ถูกนำมาใช้เพื่อจุดประสงค์นี้แม้ว่าฉันจะไม่เชื่อว่าจะมีวันใดที่ Tic-Tac-Toe ถือว่า "แก้ไข" โดยคอมพิวเตอร์ แต่ฉัน แน่ใจว่ามันล้าหลังพลังการคำนวณจริง

นอกจากนี้ให้คำนึงถึง $ 1,000 ใน 45 ปีจะมีมูลค่าน้อยกว่าปัจจุบันประมาณ 4 เท่าดังนั้นเงินจำนวนมากสามารถเข้าสู่โครงการเช่นนี้ได้ในขณะที่พลังการคำนวณจะยังคงถูกลง


9
"คุณรู้ไหมว่ายอดขายแผ่นเสียงดิสโก้เพิ่มขึ้น 400% สำหรับปีสิ้นสุดปี 2519 หากแนวโน้มเหล่านี้ยังดำเนินต่อไป ... AAY!" - Disco Stu
Jeremy Friesner

2
กฎของมัวร์ - พลังคอมพิวเตอร์เพิ่มขึ้นเป็นสองเท่าทุก ๆ 18 เดือน - มีแนวโน้มที่จะล้มเหลวในราวปี 2015 หรือการออกแบบตัวประมวลผลคอมพิวเตอร์จะต้องแตกต่างกันอย่างสิ้นเชิง ดังนั้นปี 2080 จึงไม่ใช่เป้าหมายที่แท้จริง
Philip Smith

3
@Philip: ความเร็วสัญญาณนาฬิกาของโปรเซสเซอร์ของคอมพิวเตอร์เดสก์ท็อปเพิ่มขึ้นเพียงเล็กน้อยตั้งแต่ปี 2546 และการปรับปรุงตั้งแต่นั้นมาส่วนใหญ่เป็นการเพิ่มแคชและหลายคอร์ เนื่องจากโปรเซสเซอร์ 3 GHz มีหนึ่งรอบสัญญาณนาฬิกาในช่วงเวลาที่แสงต้องเคลื่อนไหว 4 นิ้ว / 10 ซม. จึงไม่สามารถคาดหวังว่าความเร็วสัญญาณนาฬิกาจะเพิ่มขึ้นไปเรื่อย ๆ ยิ่งไปกว่านั้นความเท่าเทียมกันมักเป็นเรื่องยาก การคาดการณ์การเพิ่มขึ้นของเลขชี้กำลังเป็นเวลาห้าสิบปีเมื่อมันเริ่มทำลายลงเมื่อเจ็ดปีก่อนดูเหมือนจะไม่ปลอดภัย
David Thornley

1
@ เดวิด - นั่นคือความจริงทั้งหมด แต่คิดถึงประเด็น. หากคุณมีขนาดครึ่งหนึ่งของส่วนประกอบบนชิปอิเล็กตรอนจะทำได้มากขึ้นเป็นสองเท่าที่ความเร็วสัญญาณนาฬิกาเท่ากัน นี่คือสิ่งที่กระตุ้นกฎของมัวร์
Philip Smith

3
@ ฟิลิป: การแบ่งครึ่งไม่สามารถดำเนินต่อไปได้ตลอดไป อะตอมของซิลิกอนมีขนาดประมาณหนึ่งในสี่ของนาโนเมตรและการผลิตชิปก็ลดลงเหลือหลายสิบนาโนเมตรแล้ว ยิ่งไปกว่านั้นในระดับควอนตัมอนุภาคเป็นไปตามกฎทางสถิติไม่ใช่กฎสัมบูรณ์ดังนั้นจึงจำเป็นต้องเคลื่อนที่ไปรอบ ๆ อิเล็กตรอนให้เพียงพอในแต่ละครั้งเพื่อเรียกใช้กฎของจำนวนมาก จนถึงตอนนี้กฎของมัวร์อยู่ระหว่างกฎหมายกับคำทำนายที่ตอบสนองตัวเองได้ แต่จะสิ้นสุดลงในไม่ช้า
David Thornley

7

มันจริงเป็นไปไม่ได้สำหรับผู้เล่นทั้งสองจะมีกลยุทธ์ในการเล่นเกมที่ไม่มีที่สิ้นสุดโดยไม่มีการสั่งซื้อชนะ; อย่างไรก็ตามหมากรุกได้รับคำสั่งอย่างดี ในความเป็นจริงเนื่องจากกฎ 50 ท่ามีขีด จำกัด สูงสุดสำหรับจำนวนการเคลื่อนไหวที่เกมสามารถมีได้ดังนั้นจึงมีเพียงเกมหมากรุกที่เป็นไปได้มากมายเท่านั้น(ซึ่งสามารถแจกแจงเพื่อแก้ปัญหาได้อย่างแน่นอน .. ในทางทฤษฎีแล้ว อย่างน้อย :)


4
ในทางเทคนิคกฎห้าสิบท่าเช่นการทำซ้ำสามท่า (ซึ่ง จำกัด สิ่งต่างๆด้วยเช่นกันมีตำแหน่งที่เป็นไปได้จำนวน จำกัด ดังนั้นการคูณจำนวนนั้นด้วยสามจะทำให้เรามีขีด จำกัด สูงสุด) จึงไม่ทำให้เกิดการเสมอกัน แต่จะเปิดโอกาสให้ผู้เล่นฝ่ายใดฝ่ายหนึ่งเรียกร้องผลเสมอ โดยปกติผู้เล่นที่แพ้จะทำเช่นนั้น แต่ไม่จำเป็น ดังนั้นต่อไปนี้เป็นเกมที่ถูกกฎหมายทั้งหมด: 1. Nc3 Nc6 2. Nb1 Nb8 3. Nc3 Nc6 4. Nb1 Nb8 ซ้ำตลอดไป และถ้าฉันจำไม่ผิดก็ยังไม่มีการพิสูจน์ว่านั่นไม่ใช่ผลของอัลกอริทึมที่สมบูรณ์แบบสองแบบที่เล่นเป็นสีขาวและสีดำ
Lenoxus

6

ในตอนท้ายของการโต้แย้งของคุณได้รับการสนับสนุนโดยวิธีการที่โปรแกรมหมากรุกที่ทันสมัยทำงานในขณะนี้ พวกเขาทำงานในลักษณะนั้นเนื่องจากเป็นวิธีที่ใช้ทรัพยากรมากเกินไปในการเขียนโค้ดโปรแกรมหมากรุกเพื่อดำเนินการตามกำหนด พวกเขาจะไม่จำเป็นต้องเสมอทำงานวิธีที่ เป็นไปได้ว่าสักวันหนึ่งหมากรุกจะได้รับการแก้ไขและหากเป็นเช่นนั้นคอมพิวเตอร์ก็จะแก้ไขได้


5

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


1
สามารถทำได้ แต่สามารถทำได้บนคอมพิวเตอร์ที่เราเคยเห็นหรือไม่?
BCS

1
อาจไม่ได้อยู่ในช่วงชีวิตของเรา การวิจัยที่น่าสนใจทั้งหมดในสาขานี้กำลังดำเนินการอยู่ในเกม Go :)
Bill the Lizard

IIRC เด็กอายุ 6 ปีส่วนใหญ่สามารถใช้คอมพิวเตอร์เครื่องใดก็ได้ที่ Go
BCS

2
@BCS: ไม่อีกแล้ว โปรแกรม Go ที่ดีที่สุดกำลังเอาชนะผู้เล่นระดับแดน (มืออาชีพ) ในขณะนี้
Bill the Lizard

1
@BlueRaja: นั่นคือในปี 2008 ฉันไม่รู้ว่าสถิติปัจจุบันคืออะไร แต่ MoGo เอาชนะมืออาชีพด้วยหิน 6 และ 7 ก้อนในขนาด 19x19 ireport.cnn.com/docs/DOC-214010
Bill the Lizard

5

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

มีโปรแกรมหมากรุกอีกประเภทหนึ่งที่ใช้การเรียนรู้ของเครื่องจริงหรืออัลกอริธึมการเขียนโปรแกรมทางพันธุกรรม / วิวัฒนาการ บางโปรแกรมได้รับการพัฒนาและใช้เครือข่ายประสาทเทียมและอื่น ๆ ในการตัดสินใจ ในกรณีแบบนี้ฉันคิดว่าคอมพิวเตอร์อาจ "ผิดพลาด" แต่ก็ยังจบลงด้วยชัยชนะ

มีหนังสือที่น่าสนใจเกี่ยวกับ GP ประเภทนี้ชื่อBlondie24ที่คุณอาจอ่าน เป็นเรื่องเกี่ยวกับหมากฮอส แต่สามารถใช้กับหมากรุกได้


นั่นคือวิธีที่คุณเอาชนะคอมพิวเตอร์ในยุคปัจจุบันด้วยการเล่นหมากรุก พรุ่งนี้จะดีขึ้น ฉันเห็นด้วยกับคุณว่า Blondie24 นั้นน่าสนใจ
Bill the Lizard

โหวตสำรอง โพสต์นี้ไม่สมควรได้รับคะแนนติดลบ
Cybis

น่าเสียดายที่ปัญหาเกมหมากรุกมีขนาดใหญ่เกินกว่าที่แมชชีนเลิร์นนิงจะทำงานได้ พวกเขาไม่เคยได้รับโปรแกรมการเรียนรู้หมากรุกเพื่อเล่นใหม่โดยไม่ผิดพลาด ฮิวริสติกจะดีกว่า แต่ Brute Force ดีกว่า สาขาการเรียนรู้ของเครื่องเรียนรู้จากความล้มเหลวของหมากรุกเท่านั้น
lkessler

โปรแกรมหมากรุกไม่ผิดพลาดในระยะสั้นและโปรแกรมที่ดีที่สุดจะเล่นได้ดีกว่าแชมป์โลก ฉันคิดว่าเวอร์ชันล่าสุดของ Rybka 64 บิตได้รับการจัดอันดับเช่น 3200 ELO
Alex

5

จากทฤษฎีเกมซึ่งเป็นคำถามเกี่ยวกับคำตอบคือใช่หมากรุกสามารถเล่นได้อย่างสมบูรณ์แบบ พื้นที่เกมเป็นที่รู้จัก / คาดเดาได้และใช่ถ้าคุณมีคอมพิวเตอร์ควอนตัมรุ่นหลานคุณอาจกำจัดฮิวริสติกทั้งหมดได้

คุณสามารถเขียนเครื่อง tic-tac-toe ที่สมบูรณ์แบบได้แล้ววันนี้ในภาษาสคริปต์ใดก็ได้และมันจะเล่นได้อย่างสมบูรณ์แบบในแบบเรียลไทม์

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

หมากรุกเป็นไปได้ในทางทฤษฎี แต่ไม่สามารถทำได้ในทางปฏิบัติ (ในปี 2008)

i-Go เป็นเรื่องยุ่งยากพื้นที่แห่งความเป็นไปได้นั้นมีมากกว่าจำนวนอะตอมในจักรวาลดังนั้นเราอาจต้องใช้เวลาสักพักในการสร้างเครื่อง i-Go ที่สมบูรณ์แบบ



4
ในทางเทคนิคมันเป็นทฤษฎีเกมแบบผสมผสาน
Anaphory

5

หมากรุกเป็นตัวอย่างของเกมเมทริกซ์ซึ่งตามความหมายแล้วมีผลลัพธ์ที่ดีที่สุด (คิดว่าสมดุลของแนช) หากผู้เล่น 1 และ 2 แต่ละคนมีการเคลื่อนไหวที่ดีที่สุดผลลัพธ์ที่แน่นอนจะมาถึงเสมอ (ไม่ทราบว่าจะเป็นแพ้ชนะเสมอหรือไม่)


5

ในฐานะโปรแกรมเมอร์หมากรุกจากปี 1970 ฉันมีความเห็นเกี่ยวกับเรื่องนี้อย่างแน่นอน สิ่งที่ฉันเขียนขึ้นเมื่อ 10 ปีที่แล้วยังคงเป็นความจริงในวันนี้:

"งานที่ยังไม่เสร็จและความท้าทายของโปรแกรมเมอร์หมากรุก"

ในตอนนั้นฉันคิดว่าเราสามารถแก้หมากรุกได้ตามอัตภาพถ้าทำได้อย่างถูกต้อง

Checkers ได้รับการแก้ไขเมื่อเร็ว ๆ นี้ (Yay, University of Alberta, Canada !!!) แต่นั่นก็ทำได้อย่างมีประสิทธิภาพ Brute Force ในการเล่นหมากรุกตามอัตภาพคุณจะต้องฉลาดขึ้น

เว้นแต่ว่าQuantum Computingจะกลายเป็นความจริง ถ้าเป็นเช่นนั้นหมากรุกจะแก้ไขได้ง่ายเหมือน Tic-Tac-Toe

ในช่วงต้นปี 1970 ใน Scientific American มีการล้อเลียนสั้น ๆ ที่ดึงดูดความสนใจของฉัน เป็นการประกาศว่าเกมหมากรุกได้รับการแก้ไขโดยคอมพิวเตอร์หมากรุกรัสเซีย ได้พิจารณาแล้วว่ามีการเคลื่อนไหวที่สมบูรณ์แบบสำหรับชุดขาวที่จะทำให้ชนะด้วยการเล่นที่สมบูรณ์แบบจากทั้งสองฝ่ายและการเคลื่อนไหวนั้นคือ 1. a4!


3

คำตอบมากมายที่นี่ทำให้ประเด็นสำคัญของเกม - ทฤษฎี:

  1. หมากรุกเป็นเกมที่มีเงื่อนไข จำกัด พร้อมข้อมูลที่ครบถ้วนเกี่ยวกับสถานะของเกม
  2. คุณสามารถแก้เกมที่ จำกัด และระบุกลยุทธ์ที่สมบูรณ์แบบได้
  3. อย่างไรก็ตามหมากรุกมีขนาดใหญ่พอที่คุณจะไม่สามารถแก้ปัญหาได้อย่างสมบูรณ์ด้วยวิธีการบังคับแบบเดรัจฉาน

อย่างไรก็ตามข้อสังเกตเหล่านี้พลาดจุดสำคัญในทางปฏิบัติ: ไม่จำเป็นต้องแก้เกมที่สมบูรณ์อย่างสมบูรณ์แบบเพื่อสร้างเครื่องจักรที่เหนือชั้น

ในความเป็นจริงมีโอกาสมากทีเดียวที่คุณสามารถสร้างเครื่องหมากรุกที่ไม่มีใครเทียบได้ (กล่าวคือจะไม่มีวันแพ้และจะบังคับให้ชนะหรือเสมอเสมอ) โดยไม่ต้องค้นหาแม้แต่เศษเสี้ยวเล็ก ๆ ของพื้นที่สถานะที่เป็นไปได้

ตัวอย่างเทคนิคต่อไปนี้ทั้งหมดลดพื้นที่การค้นหาที่ต้องการลงอย่างมาก:

  • เทคนิคการตัดแต่งกิ่งไม้เช่น Alpha / Beta หรือMTD-fช่วยลดพื้นที่ในการค้นหาลงอย่างมาก
  • ตำแหน่งที่สามารถชนะได้ ตอนจบจำนวนมากอยู่ในหมวดหมู่นี้: คุณไม่จำเป็นต้องค้นหา KR vs K เช่นมันเป็นการชนะที่พิสูจน์แล้ว ด้วยผลงานบางอย่างเป็นไปได้ที่จะพิสูจน์ชัยชนะที่รับประกันได้อีกมากมาย
  • เกือบจะชนะ - สำหรับการเล่นที่ "ดีพอ" โดยไม่มีข้อผิดพลาดที่โง่เขลา (พูดถึง ELO 2200+?) ตำแหน่งหมากรุกหลายตำแหน่งแทบจะเป็นชัยชนะที่แน่นอนตัวอย่างเช่นความได้เปรียบด้านวัสดุที่ดี (เช่นอัศวินพิเศษ) โดยไม่มีข้อได้เปรียบด้านตำแหน่งชดเชย หากโปรแกรมของคุณสามารถบังคับตำแหน่งดังกล่าวและมีฮิวริสติกที่ดีเพียงพอสำหรับการตรวจจับความได้เปรียบของตำแหน่งก็สามารถสรุปได้อย่างปลอดภัยว่าจะชนะหรืออย่างน้อยก็เสมอด้วยความน่าจะเป็น 100%
  • การวิเคราะห์พฤติกรรมการค้นหาต้นไม้ - ด้วยการจดจำรูปแบบที่ดีเพียงพอคุณสามารถโฟกัสไปที่ชุดย่อยที่เกี่ยวข้องของการเคลื่อนไหว "น่าสนใจ" ได้อย่างรวดเร็ว นี่คือวิธีการเล่นของปรมาจารย์มนุษย์ดังนั้นจึงไม่ใช่กลยุทธ์ที่ไม่ดีอย่างชัดเจน ..... และอัลกอริทึมการจดจำรูปแบบของเราก็ดีขึ้นเรื่อย ๆ
  • การประเมินความเสี่ยง - แนวความคิดที่ดีขึ้นเกี่ยวกับ "ความเสี่ยง" ของตำแหน่งจะช่วยให้การค้นหามีประสิทธิภาพมากขึ้นโดยเน้นพลังการคำนวณในสถานการณ์ที่ผลลัพธ์ไม่แน่นอนมากขึ้น (นี่คือส่วนขยายตามธรรมชาติของQuiescence Search )

ด้วยการผสมผสานที่ลงตัวของเทคนิคข้างต้นฉันจึงมั่นใจได้ว่าจะสามารถสร้างเครื่องเล่นหมากรุกที่ "เหนือชั้น" ได้ เราคงไม่ไกลเกินไปกับเทคโนโลยีปัจจุบัน

โปรดทราบว่าการพิสูจน์ว่าเครื่องนี้ไม่สามารถเอาชนะได้ยากกว่าแน่นอน มันอาจจะเป็นสมมติฐานของ Reimann - เราค่อนข้างแน่ใจว่ามันเล่นได้อย่างสมบูรณ์แบบและจะมีผลลัพธ์เชิงประจักษ์ที่แสดงให้เห็นว่ามันไม่เคยแพ้ (รวมถึงการดึงตรงสองสามพันล้านตรงกับตัวมันเอง) แต่เราไม่มีความสามารถในการ พิสูจน์สิ.

หมายเหตุเพิ่มเติมเกี่ยวกับ "ความสมบูรณ์แบบ":

ฉันระวังที่จะไม่อธิบายว่าเครื่อง "สมบูรณ์แบบ" ในแง่ทฤษฎีเกมเพราะนั่นหมายถึงเงื่อนไขเพิ่มเติมที่ผิดปกติเช่น:

  • ชนะเสมอในทุกสถานการณ์ที่สามารถบังคับให้ชนะได้ไม่ว่าชุดค่าผสมที่ชนะจะซับซ้อนเพียงใด จะมีสถานการณ์ในขอบเขตระหว่างการชนะ / เสมอซึ่งยากมากที่จะคำนวณได้อย่างสมบูรณ์แบบ
  • ใช้ประโยชน์จากข้อมูลที่มีอยู่ทั้งหมดเกี่ยวกับความไม่สมบูรณ์แบบที่อาจเกิดขึ้นในการเล่นของฝ่ายตรงข้ามตัวอย่างเช่นการอนุมานว่าคู่ต่อสู้ของคุณอาจโลภเกินไปและจงใจเล่นในแนวที่อ่อนแอกว่าปกติเล็กน้อยเนื่องจากมีโอกาสล่อให้คู่ต่อสู้ทำผิดได้มากกว่า เมื่อเทียบกับคู่ต่อสู้ที่ไม่สมบูรณ์ในความเป็นจริงแล้วจะเป็นการดีที่สุดที่จะแพ้หากคุณประเมินว่าคู่ต่อสู้ของคุณอาจจะไม่มองเห็นการชนะที่ถูกบังคับและทำให้คุณมีโอกาสชนะตัวเองสูงขึ้น

ความสมบูรณ์แบบ (โดยเฉพาะอย่างยิ่งที่ได้รับไม่สมบูรณ์และฝ่ายตรงข้ามที่ไม่รู้จัก) เป็นมากปัญหาหนักกว่าแค่ถูกที่สุด


การมีคู่ต่อสู้ที่ไม่สมบูรณ์ไม่ใช่ปัญหาที่แท้จริง สิ่งนี้ทำให้ผู้เล่นที่สมบูรณ์แบบชนะ / เสมอ (ผลที่สมบูรณ์แบบคืออะไร) ในการเคลื่อนไหวน้อยลง การเคลื่อนไหวที่เหมาะสมที่สุดในแต่ละตำแหน่งมักจะดีกว่าหรือเท่ากับการเคลื่อนไหวอื่น ๆ ที่เป็นไปได้ (ตามคำจำกัดความ) ดังนั้นการเคลื่อนไหวที่ไม่เหมาะสมช่วยให้คู่ต่อสู้ของคุณไปถึงสถานะสุดท้ายที่เหมาะสม (ชนะ / เสมอ) ก่อนหน้านี้หรือแม้กระทั่งอนุญาตให้บังคับให้ได้ผลลัพธ์ที่ดีกว่า ตัวอย่างเช่นหากสีดำมักจะหลุดออกไปหากสีขาวเล่นได้สมบูรณ์แบบก็เป็นไปได้ที่สีดำจะชนะหากสีขาวเล่นเพียงหนึ่งท่าที่ไม่เหมาะสมเพียงครั้งเดียว แต่ใช่สิ่งนี้ควรเพิ่มความซับซ้อนในการวิเคราะห์อีกเล็กน้อย
SDwarfs

@ Stefan - คู่ต่อสู้ที่ไม่สมบูรณ์แบบเป็นปัญหาใหญ่หากคุณสนใจเกี่ยวกับการเล่นที่ดีที่สุด โดยเฉพาะอย่างยิ่งคุณสามารถนึกภาพสถานการณ์ที่ควรเล่นแบบแพ้ชนะ (เช่นการเคลื่อนไหวที่คู่ต่อสู้ที่สมบูรณ์แบบจะเอาชนะคุณได้อย่างแน่นอน) หากคุณรู้ว่าความน่าจะเป็นที่คู่ต่อสู้ของคุณทำผิดนั้นสูงพอสมควร
mikera

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

1
นั่นไม่ใช่คำจำกัดความตามปกติของทฤษฎีเกมที่ดีที่สุด ความเหมาะสมมักหมายถึงการเพิ่มผลลัพธ์ที่คาดหวังให้ได้สูงสุด ซึ่งในกรณีนี้ผู้เล่นที่ดีที่สุดที่จะยอมรับความเสี่ยงบางอย่างให้ได้รับผลที่ดีกว่าค่าเฉลี่ย
mikera

ในกรณีนี้คุณพูดถูก!
SDwarfs

2

หากคุณค้นหาพื้นที่ทั้งหมดของชุดการเคลื่อนไหวของผู้เล่น 1/2 การเคลื่อนไหวเพียงครั้งเดียวที่คอมพิวเตอร์ตัดสินใจในแต่ละขั้นตอนจะขึ้นอยู่กับฮิวริสติก

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


จริงๆแล้วคำพูดนั้นถูกต้อง โปรแกรมจะดูการเคลื่อนไหวที่เป็นไปได้ทั้งหมดสำหรับทั้งสองฝ่ายในตำแหน่งปัจจุบันและใช้การวิเคราะห์พฤติกรรมเพื่อค้นหาการเคลื่อนไหวที่ดีเพื่อขับเคลื่อนเกมไปในทิศทางที่เหมาะสมสำหรับคอมพิวเตอร์
Bill the Lizard

1
ไม่พวกเขาไม่ได้มองไปที่การเคลื่อนไหวที่เป็นไปได้ทั้งหมด พวกเขาใช้การฮิวริสติกแบบเคลื่อนที่เป็นโมฆะเพื่อตัดต้นไม้
Alex

2

"มีอัลกอริทึมที่สมบูรณ์แบบสำหรับหมากรุกหรือไม่"

ใช่มี. บางทีมันอาจจะเป็นสำหรับไวท์ที่จะชนะเสมอ บางทีอาจเป็นเพราะแบล็คชนะเสมอ บางทีอาจเป็นเพราะทั้งคู่เสมอกันเป็นอย่างน้อย เราไม่รู้ว่าสิ่งไหนและเราไม่มีทางรู้ แต่มันมีอยู่จริง

ดูสิ่งนี้ด้วย


1
ในฐานะที่เป็นผู้เล่นหมากรุกที่ดีพอสมควรและได้ศึกษาปัญหาอย่างกว้างขวางในช่วงหลายปีที่ผ่านมาฉันมั่นใจ 99.9% ว่ากลยุทธ์ของนายอำเภอในการเล่นหมากรุกสำหรับผู้เล่นทั้งสองฝ่ายจะออกผลเสมอกัน (เช่นเดียวกับที่ได้รับการพิสูจน์ด้วยหมากฮอส) นอกจากนี้ยังมีหลักฐานว่าเมื่อความแข็งแกร่งของผู้เล่นเพิ่มขึ้นเปอร์เซ็นต์ของการเสมอก็จะสูงขึ้นเช่นกัน
mikera

2

ฉันพบนี้บทความโดยจอห์น MacQuarrieที่ทำงานโดยการอ้างอิง "บิดาแห่งทฤษฎีเกม" เอิร์นส์ฟรีดริชเฟอร์ดินานด์ Zermelo สรุปได้ดังนี้

ในหมากรุกสีขาวสามารถบังคับให้ชนะหรือสีดำสามารถบังคับให้ชนะหรือทั้งสองฝ่ายสามารถบังคับให้เสมอกันได้

ตรรกะน่าฟังสำหรับฉัน


2

มันสามารถแก้ไขได้อย่างสมบูรณ์แบบ

มี 10 ^ 50 ตำแหน่งคี่ แต่ละตำแหน่งโดยการคำนวณของฉันต้องการอย่างน้อย 64 รอบไบต์ในการจัดเก็บ (แต่ละตารางมี: 2 Affiliation bits, 3 piece bits) เมื่อเรียงกันแล้วจะสามารถระบุตำแหน่งที่เป็นเพื่อนร่วมทีมได้และสามารถเปรียบเทียบตำแหน่งเพื่อสร้างความสัมพันธ์โดยแสดงว่าตำแหน่งใดนำไปสู่ตำแหน่งอื่นในแผนผังผลลัพธ์ขนาดใหญ่

จากนั้นโปรแกรมต้องการค้นหารูทรุกฆาตด้านเดียวที่ต่ำที่สุดเท่านั้นหากมีสิ่งนั้นอยู่ ไม่ว่าในกรณีใดหมากรุกได้รับการแก้ไขอย่างเป็นธรรมในตอนท้ายของย่อหน้าแรก


1

ฉันเชื่อมั่นเพียง 99.9% จากการอ้างว่าขนาดของพื้นที่ของรัฐทำให้ไม่สามารถหวังวิธีแก้ปัญหาได้

แน่นอนว่า 10 ^ 50 เป็นจำนวนที่มากจนเป็นไปไม่ได้ ลองเรียกขนาดของสเตทสเปซ n

อะไรคือจำนวนการเคลื่อนไหวในเกมที่ยาวที่สุดที่เป็นไปได้? เนื่องจากเกมทั้งหมดจบลงด้วยการเคลื่อนไหวจำนวน จำกัด จึงมีการผูกมัดเช่นนี้จึงเรียกมันว่า m

เริ่มจากสถานะเริ่มต้นคุณไม่สามารถระบุ n การเคลื่อนไหวทั้งหมดในช่องว่าง O (m) ได้หรือไม่? แน่นอนว่าต้องใช้เวลา O (n) แต่ข้อโต้แย้งจากขนาดของจักรวาลไม่ได้กล่าวถึงสิ่งนั้นโดยตรง พื้นที่ O (m) อาจไม่มากนัก สำหรับพื้นที่ O (m) คุณไม่สามารถติดตามได้ในระหว่างการข้ามผ่านนี้ไม่ว่าความต่อเนื่องของสถานะใด ๆ ตามเส้นทางที่คุณข้ามผ่านจะนำไปสู่ ​​EitherMayWin, EitherMayForceDraw, WhiteMayWin, WhiteMayWinOrForceDraw, BlackMayWin หรือ BlackMayWinOrForceDraw หรือไม่ (มีช่องตาข่ายขึ้นอยู่กับว่าเป็นตาของใครใส่คำอธิบายประกอบแต่ละรัฐในประวัติศาสตร์ของการข้ามผ่านของคุณด้วยตาข่ายที่พบกัน)

เว้นแต่ฉันจะพลาดอะไรไปนั่นคืออัลกอริธึมช่องว่าง O (n) เวลา / O (m) สำหรับพิจารณาว่าหมากรุกประเภทใดที่เป็นไปได้ วิกิพีเดียอ้างอิงอายุของเอกภพโดยประมาณประมาณ 10 ^ 60th พลังค์ โดยไม่ต้องโต้แย้งเกี่ยวกับจักรวาลวิทยาลองเดาว่ามีเวลาเหลืออยู่ประมาณนั้นก่อนที่ความร้อน / เย็น / ความตายของจักรวาลจะเป็นอย่างไร นั่นทำให้เราต้องประเมินการเคลื่อนไหวหนึ่งครั้งทุก ๆ 10 ^ 10 พลังค์หรือทุกๆ 10 ^ -34 วินาที นั่นเป็นช่วงเวลาสั้น ๆ ที่เป็นไปไม่ได้ (ประมาณ 16 คำสั่งขนาดสั้นกว่าเวลาที่สั้นที่สุดที่เคยสังเกตมา) สมมติในแง่ดีว่าด้วยการใช้งาน super-duper-good ที่ทำงานอยู่ด้านบนของบรรทัดปัจจุบันหรือสำหรับคนที่ไม่ใช่ quantum-P-is-a-suitable-subset-of-NP เราหวังว่าจะประเมินได้ (ใช้ a ก้าวไปข้างหน้า จัดหมวดหมู่สถานะผลลัพธ์เป็นสถานะกลางหรือหนึ่งในสามสถานะสิ้นสุด) ที่อัตรา 100 MHz (ทุกๆ 10 ^ -8 วินาที) เนื่องจากอัลกอริทึมนี้สามารถขนานกันได้มากสิ่งนี้ทำให้เราต้องใช้คอมพิวเตอร์ดังกล่าว 10 ^ 26 หรือประมาณหนึ่งเครื่องสำหรับทุกอะตอมในร่างกายของฉันพร้อมกับความสามารถในการรวบรวมผลลัพธ์

ฉันคิดว่ามีเศษเสี้ยวแห่งความหวังสำหรับการแก้ปัญหาที่ดุร้ายอยู่เสมอ เราอาจจะโชคดีและในการสำรวจท่าเปิดที่เป็นไปได้เพียงหนึ่งเดียวของไวท์ทั้งสองเลือกหนึ่งที่มีแฟนเอาต์ต่ำกว่าค่าเฉลี่ยมากและอันที่ขาวเสมอหรือชนะหรือเสมอ

นอกจากนี้เรายังสามารถหวังว่าจะลดความหมายของหมากรุกลงบ้างและชักชวนให้ทุกคนเห็นว่าเกมนี้ยังคงเป็นเกมที่มีศีลธรรม เราจำเป็นต้องกำหนดตำแหน่งเพื่อทำซ้ำ 3 ครั้งก่อนการจับฉลากหรือไม่? เราจำเป็นต้องทำให้ฝ่ายวิ่งหนีแสดงความสามารถในการหลบหนีเป็นเวลา 50 กระบวนท่าหรือไม่? ไม่มีใครเข้าใจว่าห่าขึ้นอยู่กับกฎen passantหรือไม่? ;) อื่น ๆ อย่างจริงจังเราทำจริงๆต้องบังคับให้ผู้เล่นที่จะย้าย (เมื่อเทียบกับการวาดภาพหรือการสูญเสีย) เมื่อเขาหรือเธอเพียง แต่ย้ายที่จะหลบหนีการตรวจสอบหรือทางตันเป็นการกินจับ? เราสามารถ จำกัด ตัวเลือกของชิ้นส่วนที่จะเลื่อนจำนำได้หรือไม่หากการเลื่อนตำแหน่งที่ไม่ใช่ราชินีที่ต้องการไม่ได้นำไปสู่การตรวจสอบหรือรุกฆาตทันที?

ฉันยังไม่แน่ใจว่าการอนุญาตให้คอมพิวเตอร์แต่ละเครื่องเข้าถึงฐานข้อมูลขนาดใหญ่ของสถานะเกมในช่วงท้ายและผลลัพธ์ที่เป็นไปได้ (ซึ่งอาจเป็นไปได้ค่อนข้างมากในฮาร์ดแวร์ที่มีอยู่และฐานข้อมูล endgame ที่มีอยู่) จะช่วยในการตัดการค้นหาก่อนหน้านี้ เห็นได้ชัดว่าคุณไม่สามารถบันทึกฟังก์ชันทั้งหมดได้โดยไม่ต้องจัดเก็บ O (n) แต่คุณสามารถเลือกจำนวนเต็มขนาดใหญ่และบันทึกว่าเกมจบจำนวนมากที่ระบุไปข้างหลังจากแต่ละรายการที่เป็นไปได้ (หรือแม้แต่ไม่สามารถพิสูจน์ได้อย่างง่ายดายฉันคิดว่า) สถานะสิ้นสุด


1
m = 5898 ของคุณกฎหมากรุก FIDE กำหนดว่าคุณต้องย้ายเบี้ยหรือรับชิ้นส่วน (สิ่งที่เปลี่ยนเกมกลับไม่ได้) อย่างน้อยทุกๆ 50 ท่า (เรียกว่ากฎการเคลื่อนที่ 50 ครั้ง) หรือผู้เล่นคนใดคนหนึ่งสามารถเรียกร้องการจับฉลากได้ มีการคำนวณว่าเกมที่ยาวที่สุดที่เป็นไปได้คือ 5898 การเคลื่อนไหวที่ยาวนานหากผู้เล่นทั้งสองร่วมมือกันและเรียกร้องการจับฉลากโดยเร็วที่สุด มันไม่สมเหตุสมผลที่จะเล่นต่อไปหากผู้เล่นทั้งสองสามารถเรียกร้องการเสมอกันได้ หากผู้เล่นสังเกตเห็นว่าเขา / เธอสูญเสียเขา / เธอสามารถอ้างสิทธิ์ในการจับฉลากได้ซึ่งจะให้ผลลัพธ์เดียวกัน ดู: chess.com/blog/kurtgodden/the-longest-possible-chess-game
SDwarfs

1
หมายเหตุ: m = 5898 คือจำนวน "การเคลื่อนไหว" จำนวนการเคลื่อนไหวสูงสุดครึ่งหนึ่งคือ (118-3) * 100 + 3 * 99 = 11797 คุณสามารถค้นหาข้อพิสูจน์ได้ที่นี่ (เยอรมัน!): de.wikipedia.org/wiki/50-Z%C3%BCge-Regel# Schachmathematik
SDwarfs

1

ฉันรู้ว่านี่เป็นเรื่องที่น่าตกใจ แต่ฉันต้องใส่ 5 เซ็นต์ของฉันที่นี่ เป็นไปได้ที่คอมพิวเตอร์หรือบุคคลในเรื่องนั้นจะจบเกมหมากรุกทุกเกมที่เขา / เธอมีส่วนร่วมไม่ว่าจะเป็นการชนะหรือทางตัน

อย่างไรก็ตามเพื่อให้บรรลุเป้าหมายนี้คุณต้องรู้อย่างแม่นยำทุกการเคลื่อนไหวและปฏิกิริยาที่เป็นไปได้และอื่น ๆ ตลอดไปจนถึงผลลัพธ์ของเกมแต่ละเกมที่เป็นไปได้และเพื่อให้เห็นภาพสิ่งนี้หรือเพื่อให้ง่ายต่อการวิเคราะห์ข้อมูลนี้ให้นึกถึง เป็นแผนที่ความคิดที่แผ่ขยายออกไปอย่างต่อเนื่อง

โหนดกลางจะเป็นจุดเริ่มต้นของเกม แต่ละกิ่งก้านของแต่ละโหนดจะเป็นสัญลักษณ์ของการเคลื่อนไหวซึ่งแต่ละอันจะแตกต่างกันไป การนำเสนอในคฤหาสน์นี้จะต้องใช้ทรัพยากรมากโดยเฉพาะอย่างยิ่งถ้าคุณทำสิ่งนี้บนกระดาษ ในคอมพิวเตอร์อาจต้องใช้ข้อมูลหลายร้อยเทอร์ราไบต์เนื่องจากคุณจะมีการเคลื่อนไหวซ้ำ ๆ หลายครั้งเว้นแต่คุณจะทำให้สาขากลับมา

อย่างไรก็ตามหากต้องการจดจำข้อมูลดังกล่าวจะไม่สามารถทำได้หากไม่สามารถทำได้ เพื่อให้คอมพิวเตอร์จดจำการเคลื่อนไหวที่เหมาะสมที่สุดในการกำจัด (มากที่สุด) 8 การเคลื่อนไหวที่เป็นไปได้ในทันทีนั้นเป็นไปได้ แต่ไม่น่าเชื่อถือ ... เนื่องจากคอมพิวเตอร์เครื่องนั้นจะต้องสามารถประมวลผลสาขาทั้งหมดที่ผ่านมา จนได้ข้อสรุปนับข้อสรุปทั้งหมดที่ส่งผลให้เกิดการชนะหรือทางตันจากนั้นดำเนินการตามจำนวนข้อสรุปที่ชนะการสูญเสียข้อสรุปและนั่นจะต้องใช้ RAM ที่สามารถประมวลผลข้อมูลใน Terrabytes หรือมากกว่านั้น! และด้วยเทคโนโลยีในปัจจุบันคอมพิวเตอร์แบบนั้นต้องการมากกว่ายอดเงินในธนาคารของผู้ชายและ / หรือผู้หญิงที่ร่ำรวยที่สุด 5 คนในโลก!

ดังนั้นหลังจากการพิจารณาทั้งหมดแล้วก็สามารถทำได้ แต่ไม่มีใครสามารถทำได้ งานดังกล่าวจะต้องใช้จิตใจที่สว่างไสวที่สุด 30 ชีวิตในปัจจุบันไม่เพียง แต่ในเรื่องหมากรุก แต่ในด้านวิทยาศาสตร์และเทคโนโลยีคอมพิวเตอร์และงานดังกล่าวสามารถทำได้เฉพาะใน (ให้นำมันไปสู่มุมมองพื้นฐานทั้งหมด) ... super-duper computer ... ซึ่งไม่อาจมีอยู่ได้อย่างน้อยหนึ่งศตวรรษ ฉันจะทำให้เสร็จ! ไม่ใช่แค่ในชีวิตนี้


1

มีข้อผิดพลาดสองประการในการทดลองทางความคิดของคุณ:

  1. หากเครื่องทัวริงของคุณไม่ "จำกัด " (ในหน่วยความจำความเร็ว ... ) คุณไม่จำเป็นต้องใช้ฮิวริสติกส์ แต่คุณสามารถคำนวณประเมินสถานะสุดท้าย (ชนะแพ้เสมอ) ในการค้นหาเกมที่สมบูรณ์แบบคุณจะต้องใช้อัลกอริทึม Minimax (ดูhttp://en.wikipedia.org/wiki/Minimax ) เพื่อคำนวณการเคลื่อนไหวที่เหมาะสมที่สุดสำหรับผู้เล่นแต่ละคนซึ่งจะนำไปสู่เกมที่เหมาะสมอย่างน้อยหนึ่งเกม

  2. นอกจากนี้ยังไม่มีข้อ จำกัด เกี่ยวกับความซับซ้อนของฮิวริสติกที่ใช้ หากคุณสามารถคำนวณเกมที่สมบูรณ์แบบได้นอกจากนี้ยังมีวิธีคำนวณฮิวริสติกที่สมบูรณ์แบบจากเกม หากต้องการมันเป็นเพียงฟังก์ชั่นที่แมปตำแหน่งหมากรุกในลักษณะ "ถ้าฉันอยู่ในสถานการณ์นี้ S การเคลื่อนไหวที่ดีที่สุดของฉันคือ M"

ดังที่คนอื่น ๆ ชี้ให้เห็นแล้วสิ่งนี้จะจบลงด้วยผลลัพธ์ที่เป็นไปได้ 3 ประการ: สีขาวสามารถบังคับให้ชนะสีดำสามารถบังคับให้ชนะหนึ่งในนั้นสามารถบังคับให้เสมอกันได้

ผลลัพธ์ของเกมหมากฮอสที่สมบูรณ์แบบได้รับการ "คำนวณ" แล้ว หากมนุษยชาติไม่ทำลายตัวเองเสียก่อนก็จะมีการคำนวณหมากรุกในบางวันเมื่อคอมพิวเตอร์มีการพัฒนามากพอที่จะมีหน่วยความจำและความเร็วเพียงพอ หรือเรามีคอมพิวเตอร์ควอนตัม ... หรือจนกว่าจะมีคน (นักวิจัยผู้เชี่ยวชาญด้านหมากรุกอัจฉริยะ) พบอัลกอริทึมบางอย่างที่ช่วยลดความซับซ้อนของเกมลงอย่างมาก ยกตัวอย่าง: ผลรวมของตัวเลขทั้งหมดระหว่าง 1 ถึง 1,000 คืออะไร? คุณสามารถคำนวณ 1 + 2 + 3 + 4 + 5 ... + 999 + 1000 หรือคุณสามารถคำนวณ: N * (N + 1) / 2 ด้วย N = 1000; ผลลัพธ์ = 500500 ตอนนี้นึกว่าไม่รู้เกี่ยวกับสูตรนั้นคุณไม่รู้เกี่ยวกับการอุปนัยทางคณิตศาสตร์คุณไม่รู้ด้วยซ้ำว่าจะคูณหรือเพิ่มตัวเลขอย่างไร ... อาจเป็นไปได้ว่ามีอัลกอริทึมที่ไม่รู้จักในขณะนี้ซึ่งช่วยลดความซับซ้อนของเกมนี้ได้ในที่สุดและจะใช้เวลาเพียง 5 นาทีในการคำนวณการเคลื่อนไหวที่ดีที่สุดกับคอมพิวเตอร์ปัจจุบัน บางทีอาจจะเป็นไปได้ที่จะประเมินว่ามันเป็นมนุษย์ด้วยปากกาและกระดาษหรือแม้กระทั่งในความคิดของคุณให้เวลามากขึ้น

ดังนั้นคำตอบอย่างรวดเร็วคือหากมนุษยชาติอยู่รอดได้นานพอก็เป็นเรื่องของเวลา!


0

มันอาจจะแก้ไขได้ แต่มีบางอย่างรบกวนฉัน: แม้ว่าต้นไม้ทั้งต้นจะสามารถเคลื่อนที่ได้ แต่ก็ยังไม่มีทางที่จะคาดเดาการเคลื่อนไหวต่อไปของคู่ต่อสู้ได้ เราต้องตั้งฐานการเคลื่อนไหวต่อไปของเราในสถานะของคู่ต่อสู้และทำให้ "ดีที่สุด" พร้อม จากนั้นขึ้นอยู่กับชาติหน้าเราจะทำอีกครั้ง ดังนั้นการเคลื่อนไหวที่ดีที่สุดของเราอาจเหมาะสมที่สุดหากคู่ต่อสู้เคลื่อนที่ไปในทางใดทางหนึ่ง สำหรับการเคลื่อนไหวบางอย่างของฝ่ายตรงข้ามการเคลื่อนไหวครั้งสุดท้ายของเราอาจไม่เหมาะสม

ฉันไม่เห็นว่าจะมีการเคลื่อนไหวที่ "สมบูรณ์แบบ" ได้อย่างไรในทุกขั้นตอน

เพื่อให้เป็นเช่นนั้นทุกสถานะ [ในเกมปัจจุบัน] จะต้องมีเส้นทางในต้นไม้ที่นำไปสู่ชัยชนะโดยไม่คำนึงถึงการเคลื่อนไหวต่อไปของฝ่ายตรงข้าม (เช่นเดียวกับ tic-tac-toe) และฉันก็มีความยาก เวลาคิดว่า


5
การเคลื่อนไหวที่สมบูรณ์แบบจะถูกตัดสินโดยกลยุทธ์ 'minmax': เป็นการเคลื่อนไหวที่เพิ่มคะแนนต่ำสุดที่เป็นไปได้ของคุณให้ได้มากที่สุด (ให้ได้ทุกท่าที่ฝ่ายตรงข้ามทำได้) หรือจะพูดอีกอย่างก็ถือว่าฝ่ายตรงข้ามเล่นได้อย่างยอดเยี่ยมเช่นกัน
Nick Johnson

นี่เป็นจุดที่น่าสนใจแม้ว่า สถานการณ์อาจเกิดขึ้นที่การตอบสนองต่อการเคลื่อนไหวที่ดีที่สุดเท่าที่จะเป็นไปได้จะทำให้คุณเสียเปรียบหากคู่ต่อสู้ของคุณไม่ทำการเคลื่อนไหวที่ดีที่สุดเท่าที่จะเป็นไปได้? สิ่งนี้มีผลกระทบอะไรบ้าง?
Nona Urbiz

ฉันไม่ใช่นักคณิตศาสตร์และไม่ใช่นักเล่นหมากรุกที่เก่งกาจ ฉันยังสันนิษฐานว่าในทางทฤษฎี (ควรรู้จักโครงสร้างเกมทั้งหมด) ว่าคำตอบนี้คือ 'ใช่' อย่างไรก็ตามเมื่อคุณพูดถึงปัญหานี้แล้ว [ตัวเลือกของผู้เล่นคนอื่น] นี่หมายความว่าระบบอาจไม่สามารถคาดเดาได้หรือไม่? มีจุดกึ่งกลางของเกมที่ผู้เล่นคนอื่นสามารถบังคับให้เสียเปรียบได้หรือไม่? นี่เป็นความจริงที่ว่า Perceptron (Neural Net) สามารถเรียนรู้ 'OR' และ 'AND' ได้ แต่ไม่สามารถเข้าใจ 'XOR' ได้หรือไม่? หมากรุกเป็นตัวอย่างของระบบ 'Chaotic' หรือไม่? FWIW, IMHO ฉันคิดว่าคำตอบน่าจะเป็น 'dunno' ในตอนนี้
monojohnny

@Nona ตามความหมายการเคลื่อนไหวนั้นจะเป็นการเคลื่อนไหวที่ดีที่สุด ไม่มีข้อสันนิษฐานใด ๆ
piccolbo

@piccolbo: ดีกว่า - หนึ่งในการเคลื่อนไหวที่ดีที่สุด มีตำแหน่งในหมากรุกที่การเคลื่อนไหวหลายครั้งส่งผลให้เกิดผลลัพธ์เดียวกัน (ชนะเสมอหรือแพ้ในจำนวนการเคลื่อนไหวเดียวกัน)
SDwarfs

0

ในทางคณิตศาสตร์หมากรุกได้รับการแก้ไขโดยอัลกอริทึม Minimaxซึ่งย้อนกลับไปในปี ค.ศ. 1920 (พบโดย Borel หรือ von Neumann) ดังนั้นเครื่องทัวริงสามารถเล่นหมากรุกที่สมบูรณ์แบบได้

อย่างไรก็ตามความซับซ้อนในการคำนวณของหมากรุกทำให้ไม่สามารถทำได้จริง เครื่องยนต์ปัจจุบันใช้การปรับปรุงและการวิเคราะห์พฤติกรรมหลายประการ เครื่องยนต์ชั้นนำในปัจจุบันมีมากกว่ามนุษย์ที่ดีที่สุดในแง่ของความแข็งแกร่งในการเล่น แต่เนื่องจากการวิเคราะห์พฤติกรรมที่พวกเขาใช้พวกเขาอาจเล่นได้ไม่สมบูรณ์แบบเมื่อได้รับเวลาที่ไม่สิ้นสุด (เช่นการชนแฮชอาจทำให้ได้ผลลัพธ์ที่ไม่ถูกต้อง)

ที่ใกล้เคียงที่สุดที่เรามีอยู่ในปัจจุบันในแง่ของการเล่นที่สมบูรณ์แบบtablebases ฤทธิ์ เทคนิคทั่วไปในการสร้างพวกเขาเรียกว่าการวิเคราะห์ถอยหลังเข้าคลอง ขณะนี้ตำแหน่งทั้งหมดที่มีมากถึงหกชิ้นได้รับการแก้ไขแล้ว


-1

ใช่ในทางคณิตศาสตร์หมากรุกถูกจัดประเภทเป็นเกมที่กำหนดซึ่งหมายความว่ามันมีอัลกอริธึมที่สมบูรณ์แบบสำหรับผู้เล่นคนแรกแต่ละคนสิ่งนี้ได้รับการพิสูจน์แล้วว่าเป็นจริงแม้กระทั่งสำหรับกระดานหมากรุกแบบอินฟินิตี้ดังนั้นวันหนึ่ง AI ควอนตัมอาจจะพบกลยุทธ์ที่สมบูรณ์แบบ และเกมก็หายไป

เพิ่มเติมเกี่ยวกับเรื่องนี้ในวิดีโอนี้: https://www.youtube.com/watch?v=PN-I6u-AxMg

นอกจากนี้ยังมีหมากรุกควอนตัมซึ่งไม่มีข้อพิสูจน์ทางคณิตศาสตร์ว่าเป็นเกมที่กำหนดhttp://store.steampowered.com/app/453870/Quantum_Chess/

และมีวิดีโอรายละเอียดเกี่ยวกับหมากรุกควอนตัมhttps://chess24.com/en/read/news/quantum-chess


-2

แน่นอนว่ามีเพียง 10 ยกกำลังจากห้าสิบชุดที่เป็นไปได้บนกระดาน เมื่อคำนึงถึงสิ่งนั้นในการเล่นกับการเปรียบเทียบทุกครั้งคุณจะต้องมีพลังต่ำกว่า 10 ถึงห้าสิบท่า (รวมถึงการทำซ้ำคูณจำนวนนั้นด้วย 3) ดังนั้นจึงมีพลังน้อยกว่าสิบถึงหนึ่งร้อยท่าในการเล่นหมากรุก เพียงแค่เลือกสิ่งที่นำไปสู่การรุกฆาตและคุณก็พร้อมที่จะไป


-3

คณิตศาสตร์ 64 บิต (= กระดานหมากรุก) และตัวดำเนินการแบบบิต (= การเคลื่อนไหวที่เป็นไปได้ถัดไป) คือทั้งหมดที่คุณต้องการ เพียงแค่ Brute Force มักจะหาวิธีที่ดีที่สุด แน่นอนว่าไม่มีอัลกอริทึมสากลสำหรับทุกตำแหน่ง ในชีวิตจริงการคำนวณก็มีเวลา จำกัด เช่นกันการหมดเวลาจะหยุด โปรแกรมหมากรุกที่ดีหมายถึงรหัสที่หนัก (ผ่านการเพิ่มเบี้ยสองเท่า ฯลฯ ) โค้ดขนาดเล็กต้องไม่แข็งแรงมาก การเปิดและฐานข้อมูล endgame ช่วยประหยัดเวลาในการประมวลผลข้อมูลที่ผ่านการประมวลผลล่วงหน้าบางประเภท อุปกรณ์ที่ฉันหมายถึง - ระบบปฏิบัติการอาจเกิดเธรดสภาพแวดล้อมฮาร์ดแวร์กำหนดข้อกำหนด ภาษาโปรแกรมมีความสำคัญ อย่างไรก็ตามกระบวนการพัฒนานั้นน่าสนใจ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.