มีเอ็นจิ้นหมากรุกที่ไม่ใช้การค้นหาแบบโหดร้ายหรือไม่?


10

เอ็นจิ้นหมากรุกทุกตัวที่ฉันเคยได้ยิน (รวมถึงสิ่งที่ฉันพบในวิกิพีเดีย) ใช้การค้นหาแบบไร้เดียงสาพร้อมฟังก์ชั่นการประเมินผล

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

มีเอ็นจิ้นหมากรุกที่ไม่พึ่งพาการใช้กำลังเพื่อค้นหาการเคลื่อนไหวหรือไม่?


9
แมกนัสคาร์ลเซ่น ;)
เวสสตรีท

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

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

คำตอบ:


6

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

การฝึกอบรมโครงข่ายประสาทเทียมเพื่อเลือกท่าที่เหมาะสมดูเหมือนว่าจะเป็นงานวิจัยที่มีแนวโน้ม ที่นี่และที่นี่อาจเป็นสองเอกสารที่เกี่ยวข้อง (FWIW ไม่ใช่สาขาของฉันสำหรับ Sc Sci)


5

คุณอาจดูยีราฟที่เพิ่งมีข่าว:

https://thestack.com/iot/2015/09/14/neural-network-chess-computer-abandons-brute-force-for-selective-human-approach/

hype คือใน 3 วันมันสอนตัวเองเกมและถึงระดับ IM ในขณะที่การวิจัยอยู่ที่

http://arxiv.org/abs/1509.01549


ไม่เป็นความจริงเลย ... ดูคำตอบของฉัน
SmallChess

3

ฉันต้องการเพิ่มรายละเอียดให้กับคำตอบของ @ Ian_Bush เกี่ยวกับ Giraffe

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

ตามเนื้อผ้าโปรแกรมเมอร์โปรแกรมพารามิเตอร์เพลงด้วยตนเองในเครื่องยนต์ ฉันทำไปมาก ตัวอย่างเช่นคุณจะให้น้ำหนักเท่าใดกับอธิการและอัศวิน? 3.0? 3.1? 3.2? มันยากที่จะบอก

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

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


จริงหรือที่ยีราฟใช้ Stockfish เป็นเป้าหมาย? ถ้าเป็นเช่นนั้นมันจะไม่ "เรียนรู้หมากรุก" ด้วยตัวเองมันแค่เรียนรู้การประมาณค่า Stockfish eval โดยใช้ nnet ที่ด้านบนของคุณสมบัติกระดาน
เฟอร์นันโด

@Ferando Giraffe ไม่มีส่วนเกี่ยวข้องกับ Stockfish ฉันเชื่อว่า
SmallChess

ฉันจะอ่านบทความทั้งหมด แต่หน้า 18 บอกว่า: We evaluated board representations by training neural networks to predict the output of Stock- fish’s evaluation function in a supervised fashion, given 5 million positions as input, in the board representation under evaluation. ดังนั้นนี่ไม่ใช่การเรียนรู้ด้วยการเล่น IMO
เฟอร์นันโด

1

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

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

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


0

Claude Shannon เสนออัลกอริธึมสองประเภทสำหรับการสร้างเอ็นจิ้นหมากรุก เอ็นจิ้น "type A" จะตรวจสอบการเคลื่อนไหวที่เป็นไปได้ทั้งหมดในระดับความลึกที่ จำกัด , ย่อขนาดต้นไม้และจากนั้นเล่นการเคลื่อนที่ด้วยการประเมินผลสูงสุดจากต้นย่อขนาดเล็ก (aka brute force) เอ็นจิน Type B จำกัด การค้นหาของพวกเขาให้เฉพาะชุดย่อยของการเคลื่อนที่ที่เป็นไปได้ตามเกณฑ์บางอย่าง ฉันเชื่อว่าเขาชื่นชอบ Type B ว่ามีแนวโน้มมากกว่า

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

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

ในปี 1990 Chris Wittington ได้กล่าวถึงการใช้ความรู้ด้านหมากรุกเพิ่มเติมและสร้างโปรแกรมที่เรียกว่า Chess System Tal ซึ่งค่อนข้างแข็งแกร่งสำหรับเวลา

Kasparov, Anand และ Tord Romstad ได้กล่าวว่า Hiarcs ดูเหมือนจะมีการประเมินรายละเอียดมากกว่าเครื่องยนต์ชั้นนำหลายเครื่องที่มีความแข็งแกร่งมาจากการค้นหาที่รวดเร็ว


-2

โดยพื้นฐานแล้วพวกเขาทั้งหมด!

เอ็นจิ้นหมากรุกจริงๆใช้แรงเดรัจฉานเมื่อ:

  • บอกให้
  • กำลังวิเคราะห์ตำแหน่ง (การแก้ปัญหา)
  • กำลังมองหารุกฆาต (การแก้ปัญหาไม่ใช่เมื่อเล่นกับเช่น "ค้นหาเพื่อนใน N" ปัญหาสไตล์)

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

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

มันจะดุร้ายเมื่อการค้นหาแบบเลือกไม่มีประโยชน์มาก นี่คือเหตุผลที่เครื่องยนต์ใช้เวลานานกว่าเมื่อมีเหลือ 3 ชิ้น พวกเขาต้องดุร้ายเพราะอัลกอริธึมการเลือกไม่สามารถให้คะแนนการเคลื่อนไหวได้ อัลกอริธึมการเลือกนั้นยอดเยี่ยมในช่วง midgame เพราะมันอาจเป็นเช่น "Oohh การทำเช่นนี้กับการจำนำบล็อกของเขา [อะไรก็ตาม] และสำรอง [อะไรก็ตาม] ของฉันและ [อะไรก็ตาม] ที่ฉันมีจำนวนน้อยกว่าการป้องกันการโจมตี" - เช่น .

หากคุณมีราชาอยู่กลางกระดานมีการเคลื่อนไหว 8 ครั้งการค้นหาแบบเลือกจะเหมือนกับ "ไม่มีสิ่งใดที่ทำประโยชน์ได้ฉันไม่สามารถบอกได้"

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

เครื่องยนต์ก็ทำเช่นเดียวกันจากมุมมองของคุณและกลับไปกลับมาและกลับไปกลับมา

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

UNLESS (selective :)) มันไปถึงที่นั่นด้วยวิธีอื่นหรือต้องการสำรวจเพิ่มเติม สมมติว่าตัวอย่างพบว่า ... rook ของคุณมีความสำคัญต่อการโจมตีที่กำลังจะเกิดขึ้นเครื่องยนต์อาจประเมินค่าอีกครั้งเมื่อพบสิ่งนี้ น้ำหนักก่อนหน้านี้ที่ใส่ไว้ในโกง (เช่น 5 คะแนนความสำคัญต่อคุณ) อาจต่ำกว่าที่คาด

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

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

มันยากมากที่จะให้คะแนนตำแหน่งโดยใช้วิธี brute-force นี่คือเหตุผลที่การค้นหาแบบเลือกทำงานได้ดี

แรงเดรัจฉานจากตำแหน่งเริ่มต้นอาจพบว่าคู่สมรสที่มีชื่อเสียงที่เกี่ยวข้องกับราชินี f7 ที่ถูกบิชอปปกคลุมไปด้วยและถ้ามันให้คะแนนที่สูง (ฉันได้พบเช็คอิน! JOB DONE! PLAY!) จะผิดเพราะสีดำจะเห็นได้ชัด อัตราการค้นหาแบบเลือกตำแหน่ง (สำหรับการประเมินผลเพิ่มเติม) เพราะดูเหมือนว่าจะดี ซึ่งหมายความว่าเมื่อพิจารณาการตอบกลับของคุณจะสามารถตัดสินใจได้ว่าอะไรจะดีสำหรับคุณ ....

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

ดังนั้นอะไรคือการเคลื่อนไหวครั้งแรกที่ถูกเลือก (สีขาว) โดยเครื่องมือหมากรุกพลังเดรัจฉาน?

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