ทำไมบางครั้งเอ็นจิ้นหมากรุกถึงพลาดท่าทีที่ดี


17

ไม่ใช่ครั้งแรกที่ฉันพบว่าการเคลื่อนไหวที่เหนือชั้นกว่ากลไกหมากรุกทำมันใช้เวลาสักครู่ในการทำความเข้าใจการเคลื่อนไหวเหล่านี้หลังจากที่คุณสร้างมันขึ้นมา

ตัวอย่างเช่นการย้าย15 ... Bf2ในเกมด้านล่าง:

NN - NN, 0-1
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO NG4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13 KH2 BF1 + 14. KG3 RH3 + 15 Kg4 Bf2 16. Rxf1 Rg3 + 17 KF5 Rxf3 + 18 Kg4 Rg3 + 19. KF5 F6 20. d3 Kf7 0-1

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

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

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

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

หมายเหตุ:กับดักเป็นที่รู้จักกันในนามFishing Poleฉันรู้ว่าฉันพลาดเพื่อนใน 3 (และเพื่อนใน 7) :( จำกัด เวลาต่อการย้ายคือวัน (หมากรุกติดต่อทางจดหมาย) แต่ใช้เวลา 5-10 นาที เพื่อคำนวณทุกอย่างให้เสร็จ


1
น่าสนใจมาก. Stockfish บนพีซีที่มีความแข็งแรงเฉลี่ยของฉันไม่พบ15... Bf2เลยหลังจาก 5 นาที
Tony Ennis

... และใช้เวลากว่า 7 นาทีเพื่อหาคู่ที่คล้ายกันในการย้ายครั้งต่อไป
Tony Ennis

20 d3 เป็นข้อผิดพลาด ลอง 20 d4
dcaswell

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

มันพลาดการเคลื่อนไหวที่ดีขึ้นมากมาย ทำไมคนโสดถึงรู้เรื่องนั้นโดยเฉพาะ?
yobamamama

คำตอบ:


33

เหตุใดเอ็นจิ้นหมากรุกจึงไม่สามารถมองเห็นท่าทีที่ดีในบางตำแหน่ง

เหตุผลที่เรียกว่าเทคนิคการตัดแต่งล่วงหน้า (ดูhttp://chessprogramming.wikispaces.com/Pruning ) ด้วย ProbCut ในบรรทัดแรก

การเคลื่อนไหว 15 ... Bf2 ถูกตัดบนที่ตื้นเนื่องจากมีการเสียสละ 16.Rxf1 โดยไม่ต้องคืนสภาพคอนกรีตพร้อมหลักฐานทันที matenet นั้นมองเห็นได้ยากเพราะมันมีการเคลื่อนไหว 'เงียบ' ต่อไปเช่น 17 ... Ke7 และใช่ด้วยเครื่องยนต์ไม่ใช่แค่มนุษย์เท่านั้นที่มีปัญหาในการมองเห็นการเคลื่อนไหวเงียบที่อยู่ไกลออกไปเนื่องจากพวกมันถูกตัดแต่ง

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

สุดท้าย แต่ไม่ท้ายสุดคุณต้องจำไว้ว่าความแข็งแกร่งของเครื่องยนต์นั้นถูกวัดเสมอในแง่ของ elo-strengh และไม่ใช่ความสามารถในการหาวิธีที่สั้นที่สุดที่จะชนะ มันไม่สำคัญว่าถ้าเครื่องยนต์ชนะ 8 การเคลื่อนไหวหรือ 25 การเคลื่อนไหว การค้นหามากสำหรับการชนะที่สั้นที่สุดจะหมายถึงการเสียเวลาเพราะเวลาส่วนใหญ่ไม่มีการเคลื่อนไหวที่ดีอย่างลับ ๆ เลย และเสียเวลาจะทำให้เครื่องยนต์เสียหาย ELO-Rating


1
คำตอบที่ดียินดีต้อนรับสู่เว็บไซต์!
แอนดรูว์

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

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

คำตอบที่ยอดเยี่ยม
Xonatron

12

ฉันกำลังลองสิ่งนี้กับ Houdini 1.5 (รุ่นฟรี) ในวันที่ 15 แรก ... Bf2 ไม่ปรากฏในการเคลื่อนไหว 5 อันดับแรกจากนั้นเมื่อถึงระดับความลึก 15 มันจะเป็น # 1 ใช้เวลาประมาณ 19 วินาทีในคอมพิวเตอร์อายุสี่ขวบของฉันไม่นาน

ดังนั้นมันจึงไม่ล้มเหลวที่จะมองเห็นมัน แต่จะพิจารณาว่ามันเป็นการเคลื่อนไหวที่ดีที่สุดเมื่อถึงความลึก 15 เห็นได้ชัดว่าตราบใดที่มันดูลึก 14 ชั้นการเคลื่อนไหวอื่น ๆ ก็ดีกว่า (เช่นผู้ชนะ 15 ... f5 +)

เห็นได้ชัดว่า 15 ... Bf2 เป็นเพื่อนร่วมใน 8 ซึ่งเป็น 15 ชั้น (8 ย้ายด้วยสีดำ 7 สีขาว) แต่ในตอนแรกมันแค่คิดว่ามัน +10 หรือมากกว่านั้นแล้ว +20 จากนั้นคู่ใน 10 แล้วคู่ใน 8

คู่ใน 8 บรรทัดคือ:

NN - NN
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO NG4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13 KH2 BF1 + 14. KG3 RH3 + 15 Kg4 Bf2 16. Rxf1 rH4 + 17 Kg5 Ke7 18. Rh1 Rxh1 19. Nc3 Rah8 20. ND5 + cxd5 21. d3 R8h5 + 22 Kg4 R1h4 #

เห็นได้ชัดว่าเมื่อฮูดินี่ 1.5 คิดลึก 15 ชั้นจะไม่พิจารณาเส้นที่เป็นไปได้ทั้งหมดที่ลึก 15 ชั้นหรือจะเห็นคู่ใน 8 เมื่อเสร็จสิ้นการค้นหาความลึก 15 ชั้น

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

มันอาจจะเกี่ยวข้องกับการเคลื่อนไหวเงียบ ๆ ... Ke7 และ ... Rah8 สองคนที่ไม่ได้ตรวจสอบการจับในบรรทัดที่ดำเป็นชิ้นลง อาจเป็นไปได้ว่าจะตัดสินใจที่ไหนสักแห่งที่ไม่มีประโยชน์ที่จะมองหาในบรรทัดนี้ ต่อมาเมื่อมันต่อสายและพบเพื่อนที่ปลายสายอื่น ๆ ที่ยืดเกม (ด้วย 18.Rh1 Rxh1 และอื่น ๆ ) จากนั้นปรากฏขึ้น

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


ฉันเดาว่าทำไมลูกพรุนถึงเป็นเพราะ 16. Rxf1 ดู "heuristically" ไม่ใช่กษัตริย์ผู้ยิ่งใหญ่สีขาวเปิดออก แต่ไม่มีการรุกฆาตในทันที มันไม่ใช่จนกระทั่งการวิเคราะห์ที่ลึกซึ้งเกิดขึ้น (ดังที่คุณพูด) ว่าคุณค่าของ "การเสียสละ" นี้ชัดเจน
Joe K

โปรดทราบว่า "15 ชั้น" หมายถึงก็มองไปที่การเคลื่อนไหวบางอย่างที่ระดับความลึก 15 ไม่ย้ายทั้งหมด ที่จะนำwaayนานกว่า 4 วินาทีแม้ในซุปเปอร์คอมพิวเตอร์
BlueRaja - Danny Pflughoeft

2

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

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

TL; DR

  • Q1: พวกเขาไม่เคยพลาดการเคลื่อนไหวพวกเขายังไม่พบพวกเขา
  • Q2: พวกเขาใช้เวลาเพราะถูกตั้งโปรแกรมให้ประหยัดทรัพยากรและพวกเขาจะจัดลำดับความสำคัญของบรรทัดเหนือบรรทัดอื่น (เช่นรายการที่ไม่มีการเคลื่อนไหวแบบพาสซีฟหรือไม่มีการกู้คืนเนื้อหาในการย้ายครั้งต่อไป)

-1

ฉันคิดว่าทุกคนหายตัวไปเร็วกว่ามาก เมื่อตรวจสอบตำแหน่งด้วย Houdini 3 สีดำจะมีคู่อยู่ในตำแหน่งที่ 3 ในการเคลื่อนที่ 13 แทนที่จะเป็น Bf1 + สีดำควรจะเล่น Bf2 และมันประกอบด้วย 14 d3 bf1 + 15. Bh6 Rxh6 # ดังนั้นในคำตอบที่ผิดปกติสำหรับคำถามของคุณบางทีเครื่องมือบางอย่างไม่เห็นการเคลื่อนไหวของคุณในทันที แต่ในกรณีของฮูดินี่ 3 พบว่าเพื่อนของคุณเร็วกว่ามาก


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