คุณมีเคล็ดลับอะไรบ้างสำหรับการสร้างบอทเพื่อเข้าร่วมการแข่งขัน King of the Hill? คุณใช้กลยุทธ์อะไรในการพิจารณาความท้าทายในการสร้างบอทของคุณ โครงสร้างข้อมูลใดที่คุณคิดว่ามีประโยชน์มากที่สุด
กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
คุณมีเคล็ดลับอะไรบ้างสำหรับการสร้างบอทเพื่อเข้าร่วมการแข่งขัน King of the Hill? คุณใช้กลยุทธ์อะไรในการพิจารณาความท้าทายในการสร้างบอทของคุณ โครงสร้างข้อมูลใดที่คุณคิดว่ามีประโยชน์มากที่สุด
กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
คำตอบ:
นี่เป็นแนวคิดที่สำคัญมากเมื่อ KOTH เกี่ยวข้องกับชุดการตัดสินใจที่ค่อนข้างง่ายเกี่ยวข้องกับผู้เล่นเพียงไม่กี่คน (โดยทั่วไปคือ 2) และไม่แน่นอน ความสมดุลของแนชอธิบายถึงตำแหน่ง "gridlock": หากผู้เล่นสองคนตัดสินใจใช้กลยุทธ์ทั้งสองของพวกเขาผู้เล่นสองคนจะถูกล็อคอย่างมีประสิทธิภาพในตำแหน่งเหล่านั้น: ผู้เล่นทั้งสองเปลี่ยนกลยุทธ์ของพวกเขาเพียงแค่สร้างช่องโหว่เพิ่มเติม
ตัวอย่างของเกมที่สมดุลของ Nash มีความสำคัญคือ:
วิธีหาจุดสมดุล
การค้นหาความสมดุลนั้นจริงแล้วค่อนข้างง่ายสำหรับเกมที่เล่นง่ายที่สุดและมักจะใช้งานได้ง่าย ตันของรายละเอียดเกี่ยวกับวิธีการต่างๆที่สามารถพบได้บนอินเทอร์เน็ต แนวคิดพื้นฐานที่ใช้งานได้ตามปกติคือการสร้างรายการของกลยุทธ์ที่เป็นไปได้ที่ผู้เล่นสองคนสามารถใช้ (ตัวเลือกที่มีให้โดยเกม) หากกลยุทธ์หนึ่งเป็น "ครอบงำ" โดยกลยุทธ์อื่นก็สามารถลบออกจากรายการและกระบวนการซ้ำแล้วซ้ำอีก โดย "การปกครอง" ฉันหมายถึงว่าหากกลยุทธ์ A ให้ผลเสมอหรือดีกว่ากลยุทธ์ B เสมอกับกลยุทธ์ของฝ่ายตรงข้ามที่เหลือทั้งหมดกลยุทธ์ B ก็สามารถลบออกจากรายการได้
ตัวอย่าง: Rock-Paper-Scissors
RPS มีบางสิ่งที่เรียกว่าดุลยภาพ "แบบผสม" ซึ่งหมายความว่ามีการแจกแจงที่เกี่ยวข้อง แทนที่จะเล่นแบบเดียวกันซ้ำ ๆ (ซึ่งจะนำไปสู่ความพ่ายแพ้อย่างรวดเร็ว) ความสมดุลคือการเล่นก้อนหินขนาด 1/3, 1/3 กระดาษและ 1/3 กรรไกรในการแจกแจงแบบสุ่ม ถ้าฉันเล่นแบบสุ่มไม่มีอะไรที่คู่ต่อสู้ของฉันสามารถทำได้เพื่อให้ได้เปรียบกับฉันระยะเวลา หากคู่ต่อสู้ของฉันเลือกที่จะไม่เล่นแบบสุ่มนั่นจะสร้างความอ่อนแอในส่วนของเขา
เกมที่มีความสมดุลแบบผสมนั้นเป็นเกมที่พบได้บ่อยที่สุดใน PPCG เนื่องจากพวกเขาสามารถเล่นได้หลายรูปแบบ ( เกมที่น่าสนใจเพียงเกมเดียวที่ฉันสามารถนึกถึงสมดุลที่แท้จริงคือภาวะที่กลืนไม่เข้าคายไม่ออกของนักโทษ) ฉันควรทราบว่าดุลยภาพที่ผสมกันนั้นไม่จำเป็นต้องมีการสุ่มอย่างสม่ำเสมอแต่อย่างใดนอกจากการเล่นแบบเดียวกันทุกครั้ง
ใช้ข้อมูลนี้
สมดุลของแนชของเกมมักจะหมายถึง "พื้นฐาน" ซึ่งคุณควรพยายามใช้งาน ใน RPS การเล่นแบบสุ่มรับประกันจุดสิ้นสุดรอบจุดกึ่งกลางของแพ็ค ในการย้ายไปด้านบนคุณต้องเริ่มระบุจุดอ่อนของผู้เล่นคนอื่น
ในการทำเช่นนี้คุณควรติดอยู่กับดุลยภาพเมื่อไม่แน่ใจในจุดอ่อนของคู่ต่อสู้ เมื่อระบุจุดอ่อนเหล่านั้นแล้ว (คุณตรวจพบว่าคู่ต่อสู้ของคุณไม่อยู่ในสภาวะสมดุล) จากนั้นคุณต้องค่อยๆขยับตัวออกจากสภาวะสมดุลเพื่อใช้ประโยชน์จากฝ่ายตรงข้าม การกระทำนี้จะสร้างจุดอ่อนในส่วนของคุณเอง จากนั้นคุณจะต้องตรวจจับเมื่อฝ่ายตรงข้ามกำลังเปลี่ยนกลยุทธ์เพื่อหยุดการโจมตีและเล่นแบบสุ่มต่อ
การตรวจจับการเปลี่ยนแปลงจากสมดุล
มันค่อนข้างยากและฉันไม่ใช่ผู้เชี่ยวชาญ การเปลี่ยนแปลงสามารถมาได้หลายรูปแบบ:
บอตสามารถเขียนได้หลายภาษา (และเวอร์ชั่นของภาษาเหล่านั้น) ดังนั้นมันจะช่วยให้ทุกคนออกมาเมื่อคุณ
เป็นโบนัส: หากคุณใช้ภาษาที่ไม่ค่อยมีคนรู้จักให้ลิงก์ไปยังตำแหน่งที่ผู้คนสามารถดาวน์โหลดไบนารี / แหล่งที่มาเพื่อเรียกใช้
ในขณะที่คุณสามารถเขียนบอทที่ทำงานเดี่ยวเพื่อทำงานให้เสร็จสมบูรณ์เพื่อช่วยให้ทีมของคุณมีประโยชน์มากขึ้นเมื่อคุณประสานงานทั้งในและนอกเกม ตัวอย่างที่สำคัญของเรื่องนี้สามารถเห็นได้ในสีแดงกับสีน้ำเงิน - Pixel ทีม BattleBots
ในระหว่างการพัฒนาทีมสามารถสนทนาและหารือเกี่ยวกับวิธีประสานงานบอทของพวกเขาให้ทำงานได้ดีกว่าคนเดียว ในขณะที่ในทางเทคนิคบอทเดียวกันSphiNotPi3000นั้นถูกเขียนขึ้นเพื่อทำงานควบคู่กับตัวมันเองอีกตัวหนึ่งและสามารถเคลื่อนไหวในลักษณะที่เป็นจุดอ่อนได้หากมันเป็นของตัวเอง ผลลัพธ์ที่ได้คือว่าพวกเขาก็สามารถที่จะเกือบสมบูรณ์ครองสนามรบแม้ในขณะที่มันเป็นเพียงแค่สองของพวกเขากับทีมอื่น ๆ ทั้งหมด
ดังนั้นนอกเกมวางแผนและประสานงานกับเพื่อนร่วมทีมของคุณเกี่ยวกับกลยุทธ์ที่จะครอบคลุม อาจมีบางคนที่มีบอทที่สแกนแผนที่ในแนวทแยงมุม? ให้คุณสแกนในแนวนอน (เป็นตัวอย่าง) ภายในเกมถ้าความท้าทายอนุญาตให้มีการสื่อสารแบบทีมให้ใช้ประโยชน์จากมัน ตัวอย่างเช่นในเกม battlebots คุณสามารถส่งข้อความถึงเพื่อนร่วมทีมของคุณเกี่ยวกับตำแหน่งของบอทที่อยู่นอกเขตการมองเห็นจากนั้นกระตุ้นให้พวกเขาเขียนบอทในแบบที่เข้ากันได้เพื่อใช้ประโยชน์จากสัญญาณเหล่านั้น
สำหรับกลยุทธ์ที่ชาญฉลาดเกือบทุกประเภทจะมีอีกกลยุทธ์หนึ่งที่เอาชนะมันได้ตัวอย่างเช่นฝ่ายตรงข้ามของคุณอาจใช้เหตุผลเดียวกันกับที่คุณคาดการณ์ว่าจะมีการเคลื่อนไหวครั้งต่อไปจากนั้นก็รับมือกับมัน ตอนนี้คุณอาจจะพยายามสองเดาของฝ่ายตรงข้ามอีกครั้ง แต่ก็ยากที่จะรู้ว่าเมื่อใดที่จะหยุด
ปัญหาอีกประการคือกลยุทธ์ที่ดีในการคาดเดาคู่ต่อสู้ที่ฉลาดอาจอยู่ไกลจากการต่อสู้ที่ง่ายกว่า
คุณจะแก้ปัญหานี้อย่างไร คุณปล่อยให้บ็อตของคุณตัดสินใจได้ทันทีว่าจะใช้กลยุทธ์ใด!
สำหรับสิ่งนี้คุณเริ่มต้นด้วยการมอบบอทของคุณให้เป็นบทละครของกลยุทธ์ที่แตกต่างกัน จากนั้นก่อนการย้ายแต่ละครั้งบอทของคุณจะดูประวัติของเกมที่บันทึกไว้และประเมินว่ากลยุทธ์ที่แตกต่างเหล่านี้จะมีอาการอย่างไร จากนั้นภาพที่จะประสบความสำเร็จมากที่สุด
รวมถึงกลยุทธ์ที่แข็งแกร่งในตอนแรกจะช่วยให้ตัวเลือกบอทที่ดีของคุณให้เลือก แต่คุณควรรวมสิ่งที่ง่าย ๆ ไว้ด้วยเพราะมันมักจะทำงานได้ดีกว่ากับคู่แข่งที่เป็นใบ้
คุณอาจพิจารณาวางอคติในกลยุทธ์บางอย่างเพื่อหลีกเลี่ยงการ overfitting (เช่นพยายามเอาชนะรูปแบบที่คู่ต่อสู้เพิ่งทำแบบสุ่ม) หรือให้ความช่วยเหลือกลยุทธ์บางอย่างในตอนแรกเมื่อยังไม่มีข้อมูลมากนัก
แน่นอนว่าวิธีการนี้จะใช้ได้กับความท้าทายบางประเภทเท่านั้น มันไม่ดีจริงๆสำหรับฉันในการแข่งขันเป่ายิ้งฉุบ-Lizard-สป็อค ในเกมอื่น ๆ แทบจะเป็นไปไม่ได้เลยที่จะประเมินว่ากลยุทธ์บางอย่างจะมีอาการถ้าไม่ได้เล่นจริง
รูปแบบสุดขีดของวิธีการเมตานี้ (ที่ชายแดนกับการโกง) จะรวมถึงพฤติกรรมที่รู้จักของบอทอื่น ๆ ทั้งหมดลงในบอทของคุณเองเพื่อที่จะสามารถคาดการณ์การเคลื่อนไหวของพวกเขาได้อย่างสมบูรณ์แบบ