มีเอ็นจิ้นหมากรุกที่สามารถแสดงว่าด้านใดด้านหนึ่งมีการจั่วไพ่หรือไม่?


11

มีเอ็นจิ้นหมากรุกที่มีโหมดการวิเคราะห์ที่สามารถแสดงได้ว่าตำแหน่งนั้นถูกบังคับจากทั้งสองข้างหรือไม่?

เป็นเรื่องปกติสำหรับเครื่องยนต์ที่จะทำการประเมินผล 0.0 เมื่อตรวจจับการจับฉลาก แต่การประเมิน 0.0 มีความหมายหลายอย่าง ตัวอย่างเช่นสมมติว่าเป็นสีขาวที่จะเคลื่อนที่การประเมิน 0.0 อาจหมายถึง:

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

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

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

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

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


ไม่ทราบว่าเป็นส่วนหนึ่งของจุดสิ้นสุดของตารางเกม 6 ชิ้นหรือไม่
Tony Ennis

2
ตารางฐานช่วยเพราะคุณรู้แล้วว่าคะแนน 0.0 มีไว้สำหรับการจับที่ถูกบังคับด้วยการเล่นที่ดีที่สุด แต่ฉันต้องการให้เครื่องยนต์บอกฉันหากพบว่ามีการดึงการบังคับจากตำแหน่งเริ่มต้นโดยพลการใด ๆ รวมถึง (โดยเฉพาะ) เมื่อมีมากกว่า 6 ชิ้น ตัวอย่างเช่นหากสีขาวเข้าสู่ตำแหน่งที่พวกเขาสามารถบังคับให้ตรวจสอบได้ตลอดเวลาฉันต้องการให้เครื่องยนต์บอกฉันว่าแม้ว่าสีขาวจะไม่ได้เคลื่อนไหวดีที่สุดตามฟังก์ชันการประเมิน
Mark Byers

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

1
แต่ถูกบังคับอย่างไร ฉันคิดว่าในหลาย ๆ กรณีของการจับที่เรียกว่าการบังคับคู่ต่อสู้ยังคงสามารถเบี่ยงเบนได้ แต่ด้วยตำแหน่งที่แย่กว่าอย่างเห็นได้ชัด ตำแหน่งที่สีขาวสามารถบังคับได้ทั้งการเสมอกันหรือการเล่นแบบเต็มจะไม่เป็นการถูกบังคับ
RemcoGerlich

หากสีขาวสามารถบังคับให้วาดแทนที่จะไปโกงขึ้นแล้วฉันอยากจะรู้ว่า
Mark Byers

คำตอบ:


9

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

ตำแหน่งล็อค, การจับสลาก

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

ดังนั้นด้วยพื้นหลังนั้นไปยังข้อมูลเฉพาะ! ขั้นแรกหากเกมเป็นเพียงการดึงเนื่องจากตำแหน่ง (เช่นทางตันวัสดุไม่เพียงพอและอื่น ๆ ) GUI ส่วนใหญ่จะปรากฏข้อความที่ระบุว่า "Game Drawn" หรืออะไรบางอย่างที่ทำให้เกิดผลนั้น กรณีนี้ทำให้เกิดกรณีที่ซับซ้อนกว่าที่คุณพูดถึงในคำถามของคุณ เพื่อให้ครอบคลุมส่วนใหญ่ฉันจะแนะนำตำแหน่งอื่น สิ่งนี้นำมาจาก Morphy-NN 1-0, นิวออร์ลีนส์ปิดตา Simul:

Morphy - NN 1-0, นิวออร์ลีนส์ปิดตา Simul

ขอให้สังเกตว่า Morphy ปัจจุบันมีคู่ใน 6 18.b4+!เริ่มต้นด้วย อย่างไรก็ตามถ้า Morphy พลาดอย่างใดอย่างนี้เป็นเพื่อนเขายังคงมีการจับซ้ำโดยบังคับซึ่งคอมพิวเตอร์เห็นได้อย่างรวดเร็ว โดยการเพิ่มจำนวนของรูปแบบต่าง ๆ ที่คอมพิวเตอร์แสดงมันเป็นไปได้ที่จะเห็นว่าหลังจากที่เล่นละครเหมือน18.Qxc3+?สีขาวสีขาวยังสามารถบังคับให้วาดแม้จะเป็นเกมและชิ้นส่วน การประเมิน0.00 แสดงให้เราเห็นอีกครั้งว่านี่เป็นตำแหน่งพิเศษที่คอมพิวเตอร์สามารถคำนวณการตรวจสอบแบบต่อเนื่องได้ หากการเคลื่อนไหว18.Qxc3+? Kxd5เกิดขึ้นบนกระดานการประเมินจะเป็น0.00เพื่อระบุว่าการต่อเนื่องที่ดีที่สุดของไวท์คือการบังคับให้เสมอ ความล้มเหลวในการทำเช่นนี้จะนำไปสู่การสูญเสียของเกมด้วยการเล่นที่ดีที่สุด


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


และในที่สุดเพื่อพูดถึงประเด็นของคุณเกี่ยวกับ "ดูถูก"

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

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


นี่เป็นความคิดคร่าวๆเหมือนกับในความคิดเห็นของ Wes Freeman ต่อคำถามและเช่นเดียวกับสิ่งที่เขาอธิบายต้องใช้ข้อมูลจากมนุษย์ - "การจับแบบบังคับปรากฏขึ้นในรายการค่อนข้างชัดเจน [บางครั้ง] แต่บางครั้งก็ชัดเจนน้อย" - คำตอบของคุณ มนุษย์มีส่วนทำให้ "การวิเคราะห์สเปซบาร์" นี่คือเหตุผลที่ฉันแนะนำให้ปรับฟังก์ชั่นการประเมินในคำตอบของฉัน; เราสร้างมันขึ้นมาเพื่อให้เครื่องยนต์ค้นหาแรงดึงและแจ้งให้เราทราบว่าเมื่อใดที่มีการสรุปอย่างชัดเจน ที่ดูเหมือนจะเป็นความแตกต่างที่สำคัญระหว่างวิธีการ
ETD

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

การตั้งค่าดูถูกนั้นเป็นระเบียบ - ไม่ได้สังเกต
Eve Freeman

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

3
น่าสนใจ ใน stockfish มันไม่แน่นอน เพียงแค่วิเคราะห์ตำแหน่งเปิดไม่กี่วินาทีก็จะได้คะแนน 0.00 มากมาย
Eve Freeman

4

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

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

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

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


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

ไม่มีเครื่องยนต์ทำงานตามที่ฉันอธิบาย "ออกจากกล่อง" มันเป็นความจริงเพราะพวกมันถูกออกแบบมาเพื่อแสวงหาชัยชนะ ด้วยเหตุผลเดียวกันคุณจะต้องทำการปรับแต่งเพื่อให้เล่นเครื่องยนต์ปกติพูดฆ่าตัวตายหมากรุก ฉันให้เราแก้ไขฟังก์ชันการประเมินแล้ว; ปัจจัยการดูถูกใด ๆ สามารถปรับแต่ง / ปิดการใช้งานพร้อมกับสิ่งที่ฉันแนะนำถ้าจำเป็นต้องใช่หรือไม่ ประเด็นหลักของฉันคือฉันคิดว่าเครื่องยนต์ที่มีอยู่สามารถนำกลับมาใช้ใหม่ได้ (ตรงไปตรงมาอย่างสมเหตุสมผล) เพื่อให้ทำงานได้ตามที่มาร์คต้องการ อย่างน้อยตอนนี้ฉันก็ยังเห็นว่านี่เป็นวิธีการ "ใช้เครื่องยนต์ปัจจุบัน" ความคิดของฉันสามารถเปลี่ยนแปลงได้ตลอดเวลา :)
ETD
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.