AI ที่ไม่เหมือนหมากรุกนั้นเป็นเกมที่ใช้กลยุทธ์แบบเทิร์นเบสหรือไม่?


13

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

ฉันสงสัยว่าอัลกอริธึม min-max บางส่วนที่ จำกัด ตัวเองกับการกำหนดค่า N board ในแต่ละระดับความลึกนั้นไม่ดีพอหรือไม่? การใช้อัลกอริธึมทางพันธุกรรมอาจเป็นไปได้ที่จะหาจำนวนของการกำหนดค่าบอร์ดที่ดีกับฟังก์ชันการประเมินผล หวังว่าการกำหนดค่าเหล่านี้อาจเป็นเป้าหมายที่ดีในระยะยาว

ฉันจะแปลกใจถ้านี่ไม่เคยคิดมาก่อนและลอง มันได้หรือไม่ มันทำงานยังไง?


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

สิ่งที่เกี่ยวกับAlpha-Beta Prunning ? เป็นรุ่นที่ดีกว่าของ min-max
user712092

ฉันเห็น Alpha-Beta Prunning เป็น min-max ชนิดหนึ่ง
Joh

ใช่แล้ว. แต่ควรจะเร็วกว่า ไม่ทราบว่าจะช่วยคุณ ...
user712092

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

คำตอบ:


5

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


9

นี่ไม่ใช่อัลกอริธึมมินิแมกซ์ แต่พวกที่รับผิดชอบ Killzone AI ได้ปล่อยกระดาษตามฟังก์ชั่นการประเมินตำแหน่งซึ่ง AI AI บางอย่างก็ใช้เช่นกัน

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

บทความนี้สามารถพบได้ในAI Game Programming Wisdom 3และมีชื่อการประเมินตำแหน่งทางยุทธวิธีแบบไดนามิก

แบบร่างของกระดาษสามารถพบได้ทั่วไปที่นี่:
http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf

หวังว่าจะช่วย


2

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


2

ฉันจะแนะนำอย่างน้อยที่สุดการใช้ min-max ด้วยการตัดแต่งกิ่งด้วยอัลฟ่า - เบต้า

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

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

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

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


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

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

1

ผู้ชนะของการแข่งขัน Google AI 2011 ใช้ min-max (ความลึก 1) ผู้เข้าประกวดด้านบนอีกใช้วิธีการสุ่ม ผู้เข้าแข่งขันรายนี้กล่าวว่าการผสมตัวอย่างขั้นต่ำและการสุ่มแบบสุ่มซึ่งเป็นสิ่งที่ฉันอธิบายไว้ในคำถามของฉันนั้นทำได้ไม่ดีนัก ฉันเดาว่า

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


1

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

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

ถ้าฉันใช้เกมเทิร์นเบสแบบง่าย (อารยธรรม 2) พวกคุณแต่ละคนสามารถย้ายไปรวม 8 สี่เหลี่ยม (หรือ 24) ในรอบเดียว หากคุณมี 10 คน (ซึ่งไม่มากนักโดยทั่วไปคุณจะมีเวลามากขึ้นตามเวลาที่เริ่มน่าสนใจ) จำนวน "การเคลื่อนไหว" ที่เป็นไปได้ทั้งหมดจากสถานะปัจจุบัน (ดังนั้นระดับเดียว) มีอยู่แล้ว 8 ^ 10 หรือประมาณ 4 พันล้าน แม้ว่าคุณจะตัดส่วนที่ 99.99% คุณก็ยังไม่สามารถเจาะลึกลงบนต้นไม้ได้เนื่องจากจำนวนการเคลื่อนไหวที่เป็นไปได้จะเพิ่มขึ้นอย่างรวดเร็ว

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

กล่าวอีกนัยหนึ่งกลยุทธ์ที่จะพบจะทำซ้ำได้ แต่ไม่ดี

สำหรับปัญหาที่เกิดขึ้นจริงวิธีการสร้าง AI ที่เหมาะสมฉันจะไปในทิศทางของการเคลื่อนที่แบบสุ่มโดยทั่วไป ทำแบบนี้ขนานกับคนละ 100 หรือ 1,000 คนแล้วเลือกอันที่ดีที่สุด คุณสามารถส่งข้อเสนอแนะผลลัพธ์จากสิ่งนี้ไปที่พวงมาลัยอัจฉริยะดั้งเดิมเพื่อปรับแต่งอีกครั้ง บิตเช่นการจำลอง monte-carlo


0

ในการปรับใช้ขั้นต่ำ / สูงสุดให้เป็นเกมการวางแผนอย่างประสบความสำเร็จคุณจะต้องใช้เทคนิคหมากรุกที่มีอยู่ทั้งหมด ...

ฟังก์ชั่นการประเมินผล

แม้แต่เอนจิ้นหมากรุกก็มีจุดแข็งที่แย่มาก รุ่นที่ง่ายที่สุดของฟังก์ชั่นการประเมินผลคือ: 1 = เกมชนะโดยสีขาว, -1 = เกมที่ชนะโดยสีดำ, 0 = กรณีอื่นทั้งหมด; แต่นี่จะทำให้คุณมีประสิทธิภาพที่แย่มาก สิ่งเดียวกันนี้เกิดขึ้นกับเกมของคุณ! ถ้าคุณต้องการใช้ min / max (ด้วยการตัดอัลฟ่า / เบต้าและของอื่น ๆ ) เหมือนในหมากรุกคุณต้องใช้ฟังก์ชั่นการประเมินที่สมเหตุสมผล! มิฉะนั้นคุณจะไม่สามารถเปรียบเทียบประสิทธิภาพของอัลกอริทึมเหล่านั้นเมื่อนำไปใช้กับเกมกลยุทธ์ของคุณกับกรณีที่ใช้กับหมากรุก

ฟังก์ชั่นการประเมินผลของเครื่องมือหมากรุกคืออะไร

  • ตำแหน่งของชิ้นส่วนบนกระดานดีแค่ไหน?
  • ชิ้นส่วนถูกโจมตีกี่ครั้ง?
  • ชิ้นส่วนป้องกันกี่ครั้ง?
  • แต่ละชิ้นสามารถ "ย้าย" ได้อย่างอิสระบนกระดานได้ดีแค่ไหน? (หรือ: มีการควบคุม "จำนวน" กี่รายการ)

ส่วนต่าง ๆ ของฟังก์ชั่นการประเมินจะต้องเป็น "แปล" ในเกมของคุณก่อน:

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

การจัดอันดับที่แตกต่างกันจะต้องรวมกันตามฟังก์ชั่นการถ่วงน้ำหนัก (factor_a * rating_a + factor_b * ranting_b + ... ) สำหรับทุกหน่วย ...

ในเกมวางแผนจะต้องคำนึงถึงทรัพยากร (ทองไม้ ... ) ด้วย

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

การเคลื่อนไหวที่เป็นไปได้ในแต่ละตำแหน่ง

สิ่งที่เป็นปัญหามากที่สุดเกี่ยวกับการใช้ min / max สำหรับเกมวางแผนคือคุณสามารถสั่งหลายยูนิตในคราวเดียวในขณะที่ในเกมหมากรุกคุณจะได้รับอนุญาตให้สั่งหนึ่งยูนิตเท่านั้น นี่เป็นสาเหตุที่ทำให้สามารถเคลื่อนที่ได้ 5 ^ N สำหรับแต่ละหน่วย "ตำแหน่ง" (คำศัพท์หมากรุก) หากคุณตัดสินใจเฉพาะระหว่าง "ย้ายทิศเหนือทิศใต้ทิศตะวันตกทิศตะวันออกหรือหยุด" สำหรับแต่ละหน่วย คุณสามารถแก้ปัญหานี้ได้โดยการแบ่งคำสั่งที่ซับซ้อนออกเป็นคำสั่งระดับต่ำ: เช่นเลือกการกระทำสำหรับหน่วย A ไปสู่ระดับความลึกและตัดสินใจเลือกหน่วย B .... ตัดสินใจเลือกหน่วย N ... จากนั้นจบเทิร์นนี้ แต่สิ่งนี้ไม่เปลี่ยนความซับซ้อน! คุณต้องปรับลำดับการดำเนินการให้เหมาะกับหน่วย (เช่นหน่วย B, C, D และหน่วย A) คุณสามารถบันทึกผลกระทบของการตัดสินใจสำหรับแต่ละหน่วยในระหว่างการคำนวณครั้งสุดท้ายแล้วเรียงลำดับตามความสำคัญ วิธีนี้การตัดแต่งอัลฟ่าเบต้าสามารถใช้เพื่อตัดชุดค่าผสมที่ไม่ดีออกจากแผนผังการค้นหาได้เร็ว ลำดับความสำคัญสูงสุดควร "ไม่ทำอะไรมากและจบเทิร์นของคุณ" (ตัดการย้ายโมฆะเป็นโมฆะ) ในการทำซ้ำแต่ละครั้ง วิธีนี้คุณสามารถ "ข้าม" การมอบหมายงานส่วนใหญ่ให้กับหน่วยงานส่วนใหญ่และปล่อยให้พวกเขาทำสิ่งที่พวกเขาทำมาก่อน วิธีนี้การค้นหาจะเจาะลึกอย่างรวดเร็วโดยเพียงแค่ดูที่ "สำคัญ" หน่วย (เช่นที่อยู่ในการต่อสู้จริง ๆ ตอนนี้) ตรวจสอบให้แน่ใจว่าได้รับคำสั่งแต่ละหน่วยครั้งเดียวเท่านั้น ... คุณสามารถใช้การสุ่มเพื่อให้แน่ใจว่าหน่วย "สำคัญ" ได้รับคำสั่งเป็นครั้งคราวเช่นกัน โดยเฉพาะอย่างยิ่งหน่วยงานที่เสร็จงานบางอย่าง (เช่น

Iterative Deepening + Caching / Hash Table

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

พฤติกรรมที่ไม่ได้กำหนดไว้ล่วงหน้า

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

สรุป

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

แหล่งข้อมูลที่ดีสำหรับการอธิบายเทคนิคเหล่านั้น (สำหรับหมากรุก) คือhttp://chessprogramming.wikispaces.com/

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

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