แนวทางอื่นในการเขียนโปรแกรมกลไกหมากรุก


14

เท่าที่ฉันเข้าใจกลไกการพูดเกี่ยวกับหมากรุกทำงานโดย:

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

ฉันเข้าใจอย่างถ่องแท้ว่าการมีเอ็นจิ้นที่มีประสิทธิภาพนั้นมีวิธีการตัดบางบรรทัดจำกัดความลึก ฯลฯ แต่นี่ไม่ใช่คำถามของฉัน

คำถามคือ: มีความพยายามอื่นในการเขียนโปรแกรมเอ็นจิ้นหมากรุก (ไม่จำเป็นต้องแข็งแกร่ง แต่ไม่สุ่ม) เช่นกันหรือไม่ซึ่งไม่เป็นไปตามรูปแบบนี้?


บอตวินนิกพยายามที่จะตัดที่รูทย้ายโดยให้คอมพิวเตอร์ค้นหาเฉพาะการย้ายที่ดีที่สุด ไม่เคยมีความพยายามที่ประสบความสำเร็จและหมากรุกจะดีกว่าสำหรับมัน
Fred Knight

คำตอบ:


13

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

เมื่อเร็ว ๆ นี้มีความพยายามอีกครั้งที่จะให้เครื่องมือสอนหมากรุกตัวเองผ่านการเรียนรู้ลึก (อาจได้รับการสนับสนุนจากความสำเร็จของGo AIของGoogle ) จากบทความที่ฉันเชื่อมโยงไปพวกเขาค่อนข้างประสบความสำเร็จและสามารถเข้าถึงความแรงของ IM ได้


1
ตามความเข้าใจของฉัน Alpha Go ทำงานเหมือนกับ OP ที่อธิบายไว้และมีเพียงฟังก์ชัน eval จาก (2. ) เท่านั้นที่สร้าง / สร้างขึ้นผ่านการเรียนรู้ลึก คำตอบอื่น ๆดูเหมือนจะเห็นด้วย
Hermann Döppes

According to the article I linked to, they were quite successful and managed to reach IM strengthแต่ถ้าคุณจะอ่านบทความต้นฉบับคุณจะเห็นว่าบทความประสบความสำเร็จอย่างสูงเกินจริง
Salvador Dali

1
@ HermannDöppesไม่ AlphaGo ขึ้นอยู่กับการค้นหาต้นไม้ Monte-Carlo
HelloWorld

3

@Glorfindel ไม่ผิด แต่วิธีการเรียนรู้ที่ลึกซึ้งเกี่ยวกับหมากรุกเป็นคำศัพท์ที่แปลกใหม่สำหรับการปรับแต่งพารามิเตอร์ในการเขียนโปรแกรมหมากรุก

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

ความเป็นไปได้อื่น ๆ :

  • การเขียนโปรแกรมหมากรุก GPU
  • ค้นหาต้นไม้ Monte-Carlo

คำตอบส่วนใหญ่ของคุณควรเป็นความคิดเห็นภายใต้ [คำตอบของ Glorfindel] ( chess.stackexchange.com/a/16293/2789ส่วนที่เกี่ยวกับคำถามประกอบด้วยเพียงเจ็ดคำซึ่งไม่เพียงพอสำหรับคำตอบ "การเขียนโปรแกรมหมากรุก GPU" เป็นเพียงวิธีการขนานอัลกอริทึมใด ๆ ก็ตามที่คุณอาจใช้ดังนั้นฉันไม่คิดว่ามันเป็น "แนวทาง" จริง ๆ ในแง่ที่ว่าคำถามกำลังมองหา แต่มันเป็นเพียงวิธีการใช้งาน
David Richerby

-2

แน่นอน! ถ้าคุณแค่หมายถึง .... "ในทางทฤษฎีมีวิธีอื่นในการเขียนโปรแกรมหมากรุกหรือไม่?" ... ใช่แล้ว !!

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

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