ใน ฐานรากแบบเปิดและแยกส่วนของ EvoXนั้นโมดูลเวิร์กโฟลว์รับผิดชอบจัดการการแบ่งขั้นตอน ลำดับการทำงาน และวิธีการเชื่อมต่อของการวนซ้ำเชิงวิวัฒนาการโมดูลมอนิเตอร์รับผิดชอบเก็บสถานะและตัวชี้วัดแบบเรียลไทม์ระหว่างการทำงาน ทั้งสองส่วนรวมกันเปลี่ยน "วงจรวิวัฒนาการแบบกล่องดำที่ไม่รู้จัก" ให้กลายเป็นกระบวนการที่ควบคุมได้ สามารถสังเกตได้ ตัดสินได้ แทรกแซงได้ และทำซ้ำได้ สรุปสั้น ๆ : เวิร์กโฟลว์ตอบคำถาม "วิ่งตามลำดับใด" ส่วนการมอนิเตอร์ตอบคำถาม "ตอนนี้วิ่งไปถึงไหน ดีไหม และต้องขยับหรือไม่"
เวิร์กโฟลว์: การจัดลำดับและขอบเขตขั้นตอน
สิ่งที่เวิร์กโฟลว์จัดเรียงคือขั้นตอนและความสัมพันธ์เชิงพึ่งพาไม่ใช่ตรรกะของอัลกอริทึมเอง โดยกำหนดลำดับ เส้นทางย้อนกลับ และขอบเขตขั้นตอนของ "เริ่มต้นระบบ → ประเมินค่า → คัดเลือก → กลายพันธุ์/ผสมข้าม → อัปเดตสถานะ → ตัดสินยุติ" และเชื่อมโมดูลอัลกอริทึมกับโมดูลปัญหาผ่านอินเทอร์เฟซแบบ統一 หัวใจของการจัดเรียงอยู่ที่ความละเอียดและขอบเขต: มอง "การประเมินค่าแบบกลุ่มหนึ่งครั้ง" เป็นขั้นตอนที่จัดตารางได้ทั้งก้อน แทนที่จะผลักทีละรายบุคคล โดยขอบเขตขั้นตอนเป็นทั้งจุดเก็บตัวอย่างของมอนิเตอร์และจุดสลับของตัวจัดตารางในเวลาเดียวกัน
- ลำดับ: กำหนดความสัมพันธ์ก่อนหลังของแต่ละขั้นตอน และเมื่อใดควรกลับไปที่ "ประเมินค่า" เพื่อสร้างลูปหลัก
- เส้นทางย้อนกลับ: ระบุชัดเจนว่าเงื่อนไขใดกระตุ้นการวนซ้ำรอบถัดไป และเงื่อนไขใดออกจากลูป
- ขอบเขตขั้นตอน: เป็นทั้งจุดสลับของเวิร์กโฟลว์และจุดเก็บตัวอย่างตามธรรมชาติของการมอนิเตอร์
มอนิเตอร์: เก็บสถานะ เปิดเผยตัวชี้วัด ขับเคลื่อนการตัดสินใจ
โมดูลมอนิเตอร์เป็นชั้นเก็บและเปิดเผยสถานะการทำงาน: ติดตามขนาดประชากร จำนวนครั้งที่ประเมิน การกระจายของเป้าหมาย/ความฟิต การลู่เข้าและความหลากหลาย เวลาต่อหนึ่งรุ่น และตัวชี้วัดทรัพยากรอย่างหน่วยความจำ GPU/ปริมาณงานอย่างต่อเนื่อง แต่จุดประสงค์ของการสังเกตไม่ใช่การบันทึก หากแต่เป็นการตัดสินใจ— ตัวชี้วัดถูกใช้เพื่อกระตุ้นการยุติ การหยุดก่อนกำหนด การรีสตาร์ท การสลับพารามิเตอร์หรือกลยุทธ์ จึงเกิดเป็นลูปปิด "มอนิเตอร์ → ตัดสิน → แทรกแซง" ซึ่งเป็นจุดที่ทำให้กระบวนการวิวัฒนาการควบคุมได้จริง
การควบคุมได้ยังต้องการให้สถานะสามารถซีเรียลไลซ์ได้: การบันทึกและกู้คืนเช็กพอยต์ทำให้วิวัฒนาการระยะยาวหยุดชั่วคราวแล้วรันต่อได้ ระบุจุดล้มเหลวได้ และทำการทดลองซ้ำได้ ซึ่งเป็นเงื่อนไขของความน่าเชื่อถือทางวิศวกรรม ขณะเดียวกัน การแยกส่วนต้องการให้การมอนิเตอร์ติดตั้งในรูปแบบคอลแบ็ก/ฮุกโดยไม่รุกล้ำเข้าไปในโมดูลอัลกอริทึมและโมดูลปัญหา ดังนั้นแบ็กเอนด์มอนิเตอร์ที่แตกต่างกัน เช่น คอนโซล บันทึก และแผงกราฟ สามารถสลับเปลี่ยนกันได้ โดยไม่ต้องแก้ไขอัลกอริทึมหลัก
กลับมาที่ตัวอย่าง: ในการวิวัฒนาการแบบเทนเซอร์บน GPU เวิร์กโฟลว์จัดตาราง "การประเมินค่าแบบกลุ่ม" เป็นขั้นตอนเดียวทั้งก้อน โมดูลมอนิเตอร์บันทึกความฟิตที่ดีที่สุด/เฉลี่ย ความหลากหลายของประชากร และเวลาต่อหนึ่งรุ่นในแต่ละรุ่นภายในขั้นตอนเดียวกัน เมื่อตัวชี้วัดหยุดชะงักติดต่อกัน N รุ่น จึงกระตุ้นการตัดสินยุติหรือสลับไปใช้กลยุทธ์ที่รบกวนมากขึ้น พร้อมเขียนเช็กพอยต์ลงดิสก์พร้อมกัน ทำให้วิวัฒนาการครั้งนี้ทั้งทำซ้ำได้และรันต่อจากจุดที่หยุดได้
