บันทึก:ความท้าทายนี้กำลังจะตายเนื่องจากฉันไม่สามารถติดตั้งภาษาที่จำเป็นในการเรียกใช้การแข่งขัน หากคนอื่นมีเวลาและความสนใจที่จะทำฉันก็จะไม่คัดค้าน
ดูด้านล่างของโพสต์สำหรับกระดานแต้มนำ
นี่เป็นความท้าทายแบบกึ่งร่วมมือกันของกษัตริย์ที่บอตสร้างเส้นทางผ่านกราฟกริดสองมิติ บอทที่ควบคุมโหนดที่มีปริมาณการใช้งานมากที่สุดคือผู้ชนะ อย่างไรก็ตามต้องใช้ทรัพยากรของบอทมากกว่าหนึ่งแห่งในการสร้างเส้นทางเชื่อมต่อดังนั้นบอตจะต้องทำงานร่วมกัน - ในระดับหนึ่ง
เพลย์
ในต่อไปนี้ให้N > 0
เป็นจำนวนของบอทในการเล่น
ตาราง
เป็นเกมที่เล่นบนตารางจำนวนเต็มสองมิติขนาดซึ่งล่างซ้ายประสานงานที่ แต่ละประสานงานกับมีขอบขาออกไปยังสามพิกัด, และเหนือที่-coordinates จะถูกนำโมดูโล ซึ่งหมายความว่ากริดล้อมรอบที่ขอบตะวันออกและตะวันตก ทุกด้านล่างประสานงานเป็นแหล่งที่มาและประสานงานด้านบนทุกเป็นอ่างล้างจาน⌊4/3N2⌋ × ⌊4/3N2⌋
(0,0)
(x,y)
0 ≤ y < ⌊4/3N2⌋-1
(x-1,y+1)
(x,y+1)
(x+1,y+1)
x
⌊4/3N2⌋
(x,0)
(x,⌊4/3N2⌋-1)
ภาพต่อไปนี้แสดง8 × 8
ตาราง
จุดสุดยอดของกราฟแต่ละคนเป็นอย่างใดอย่างหนึ่งไม่ได้ใช้งาน , การใช้งานหรือเสียเสียทุกจุดเริ่มต้นไม่ได้ใช้งานและสามารถเปิดใช้งานโดยบอทซึ่งจะเป็นเจ้าของของพวกเขา นอกจากนี้บอตสามารถทำลายจุดยอดและไม่สามารถซ่อมแซมได้
เปิดคำสั่งซื้อ
เลี้ยวประกอบด้วยขั้นตอนการทำลายและขั้นตอนการเปิดใช้งาน ในขั้นตอนการทำลายบอทแต่ละอันอาจทำลายจุดสุดยอดที่ไม่ทำงานหนึ่งจุด จุดสุดยอดนั้นเสียตั้งแต่นั้นมาและอาจไม่ถูกเปิดใช้งานโดยใครก็ได้ ในขั้นตอนการเปิดใช้งานบอทแต่ละตัวอาจเปิดใช้งานจุดสุดยอดที่ไม่ได้ใช้งานหนึ่งจุด ตั้งแต่นั้นมาพวกเขาเป็นเจ้าของจุดสุดยอดนั้นและไม่สามารถเปิดใช้งานได้โดยผู้อื่น บอตจำนวนมากอาจมีจุดสุดยอดเดียวถ้าพวกเขาทั้งหมดเปิดใช้งานในเทิร์นเดียวกัน ในแต่ละเฟสการเลือกจุดสุดยอดจะทำพร้อมกัน
เกณฑ์การให้คะแนน
หนึ่งรอบเวลาว่าผลัดกัน หลังจากนี้คะแนนจะเป็นดังนี้ จากจุดสุดยอดแหล่งที่ใช้งานแต่ละแห่งเราดำเนินการN2
N
ครั้งที่การค้นหาความลึกครั้งแรกแบบสุ่มไปตามจุดยอดที่ใช้งาน หากพบเส้นทางจากต้นทางไปยังอ่างล้างจานสำหรับจุดยอดทั้งหมดตามเส้นทางนั้นเจ้าของจุดสุดยอดทุกคนจะได้หนึ่งจุด
เกมทั้งหมดมีจำนวน 100 รอบและบอทที่มีคะแนนรวมมากที่สุดคือผู้ชนะ ฉันอาจเพิ่มจำนวนนี้ถ้าความแปรปรวนของคะแนนสูงเกินไป
กฎเพิ่มเติม
- ไม่มีล้อเล่นกับตัวควบคุมหรือการส่งอื่น ๆ
- ส่งได้มากที่สุดหนึ่งรายการต่อผู้แข่งขัน
- ไม่มีทรัพยากรภายนอกยกเว้นไฟล์ข้อความส่วนตัวหนึ่งไฟล์ซึ่งจะถูกลบทิ้งในตอนเริ่มเกม
- อย่าออกแบบบอทของคุณเพื่อเอาชนะหรือสนับสนุนคู่ต่อสู้ที่เฉพาะเจาะจง
- จัดเตรียมคำสั่งเพื่อคอมไพล์และรันบ็อตของคุณ คอมไพเลอร์ / ล่ามที่สามารถใช้ได้อย่างอิสระสำหรับ Debian Linux นั้นเป็นที่ยอมรับ
ผู้ควบคุม
ตัวควบคุมถูกเขียนในหลาม 3 และสามารถพบได้ใน GitHub ดูไฟล์ README สำหรับคำแนะนำโดยละเอียด นี่คือ API เพื่อให้คุณเริ่มต้น:
- บ็อตจะเริ่มในตอนต้นของแต่ละรอบและคงอยู่จนกระทั่งจบรอบ การสื่อสารกับคอนโทรลเลอร์ผ่าน STDIN และ STDOUT โดยใช้ข้อความที่ยกเลิกการขึ้นบรรทัดใหม่
BEGIN [num-of-bots] [num-of-turns] [side-length]
เป็นอินพุตที่จุดเริ่มต้นDESTROY [turn]
คืออินพุตที่จุดเริ่มต้นของแต่ละช่วงการทำลาย บอตของคุณจะตอบสนองด้วยVERTEX x,y
การเลือกจุดสุดยอดหรือNONE
ที่จะเลือกจุดสุดยอดหรือBROKEN [turn] [your-choice] [other-choices]
คืออินพุตที่ส่วนท้ายของแต่ละช่วงการทำลาย ลำดับของบ็อตอื่น ๆ จะถูกสุ่มในช่วงเริ่มต้นของแต่ละเกม แต่จะยังคงอยู่ระหว่างนั้น ตัวเลือกจะถูกนำเสนอเป็นx,y
หรือN
หรือACTIVATE [turn]
และOWNED [turn] [your-choice] [other-choices]
มีค่าเทียบเท่าข้างต้นสำหรับขั้นตอนการเปิดใช้งานและมีความหมายเดียวกันSCORE [your-score] [other-scores]
เป็นอินพุตในตอนท้ายของเกม- บอทของคุณมี1 วินาทีในการวิเคราะห์ผลลัพธ์ของเฟสและเลือกจุดสุดยอดถัดไปและ1 วินาทีเพื่อออกหลังจากได้รับคะแนน ฉันจะทดสอบการส่งข้อมูลในแล็ปท็อปที่ค่อนข้างเก่าดังนั้นจึงเป็นการดีกว่าที่จะปล่อยให้ส่วนต่าง ๆ อยู่ที่นี่
โปรดจำไว้ว่าให้ล้างบัฟเฟอร์การส่งออกของคุณ ไม่ทำเช่นนั้นอาจวางคอนโทรลเลอร์ในบางสภาพแวดล้อม
ลีดเดอร์บอร์ด
อัปเดต 3/13/2015
ผู้สร้างสันตินั้นเปิดใช้งานแล้วและ Funnelweb ได้รับการอัปเดตด้วย คะแนนเพิ่มขึ้นตามลำดับความสำคัญ ตัวเชื่อมต่อเกินขีด จำกัด เวลาในสองเกม
Funnelweb: 30911
Connector: 18431
Watermelon: 3488
Annoyance: 1552
Explorer: 735
Checkpoint: 720
Random Builder: 535
FaucetBot: 236
Peacemaker: 80
บันทึกที่เต็มไปด้วยกราฟิกศิลปะ ASCII graphical_log.txt
สามารถพบได้ในพื้นที่เก็บข้อมูลของตัวควบคุมใน
ข้อสังเกตบางอย่าง:
- ขั้วต่อสามารถหยุดได้ง่ายมากโดยการทำลายจุดสุดยอดด้านหน้าเดียว ฉันสงสัยว่า Annoyance ทำสิ่งนี้บ่อยครั้ง อย่างไรก็ตามในปัจจุบันมันมีเหตุผลเล็กน้อยเนื่องจากมีเพียงขั้วต่อเท่านั้นที่สามารถสร้างเส้นทางได้
- แตงโมสามารถได้รับคะแนนที่ดีโดยเพียงแค่เกิดขึ้นบนเส้นทางเชื่อมต่อ (เนื่องจาก DFS มีแนวโน้มที่จะใช้จุดยอด)
- Explorer ชอบเถาวัลย์เติบโตจากแตงโม
- Funnelweb ที่อัปเดตได้รับคะแนนที่ดีมากเนื่องจากตัวเชื่อมต่อมักจะสลักลงในครึ่งล่างของตาราง
- เกมเริ่มค่อนข้างยาวโดยเฉลี่ยแล้วใช้เวลาประมาณ 25 วินาทีในเครื่องของฉัน
4/3*N^2
และแม้ที่นั่นบอทก็มีปัญหาในการสร้างเส้นทางที่ถูกต้อง อย่างไรก็ตามตัวเชื่อมต่อถูกตัดสิทธิ์ชั่วคราวเนื่องจากข้อผิดพลาดและตอนนี้มันได้รับการแก้ไขแล้วฉันคาดหวังว่าเกมจะน่าสนใจยิ่งขึ้น ฉันจะรันอีกชุดในคืนนี้