8

การแบ่งโมดูลอัลกอริทึมและโมดูลปัญหา

AI999第4课:现代计算底座与张量化并行演化
00:00

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

ฐานรากแบบเปิดที่แยกส่วนของ EvoXแผนภาพแสดงการโต้ตอบผ่านอินเทอร์เฟซระหว่างโมดูลอัลกอริทึมกับโมดูลปัญหาโมดูลอัลกอริทึมห่อหุ้ม:จะค้นหาอย่างไรการสร้างคำตอบตัวเลือกและการเริ่มต้นประชากรการกลายพันธุ์ / การผสมข้าม / การคัดเลือกการควบคุมการค้นหา:จำนวนรอบ ขนาด เกณฑ์การลู่เข้าไม่ขึ้นกับรูปแบบทางกายภาพของฟังก์ชันเป้าหมายโมดูลปัญหาห่อหุ้ม:การประเมินและการตอบสนองของสภาพแวดล้อมค่าของเป้าหมาย ค่าความเหมาะสม ปริมาณการละเมิดข้อจำกัดผลลัพธ์ของการโต้ตอบกับสภาพแวดล้อมมิติของตัวแปรและช่วงค่าที่เป็นไปได้ให้การประเมินที่สอดคล้องกันต่อคำตอบตัวเลือกชุดเดียวกันชุดคำตอบตัวเลือกผลการประเมิน:เวกเตอร์เป้าหมาย / ปริมาณการละเมิดข้อจำกัดสัญญาอินเทอร์เฟซแคบแต่ครบถ้วน① ส่งชุดคำตอบตัวเลือก② ส่งคืนผลการประเมิน③ อัปเดตประชากร ผลักดันรุ่นถัดไปการไปกลับหนึ่งรอบของ "ส่ง ⇄ คืน" ก่อให้เกิดวิวัฒนาการหนึ่งรุ่นสัญญาอินเทอร์เฟซมั่นคง → อัลกอริทึมและปัญหาสามารถสับเปลี่ยน ขยาย และนำกลับมาใช้ซ้ำข้ามงานได้อย่างอิสระ

โมดูลอัลกอริทึม:ห่อหุ้ม "จะค้นหาอย่างไร"

  • การสร้างคำตอบตัวเลือกและการอัปเดตประชากร:ตรรกะวิวัฒนาการ เช่น การเริ่มต้น การกลายพันธุ์ การผสมข้าม การคัดเลือก และการรักษาตัวที่ดีเยี่ยม ถูกนำไปใช้อย่างเป็นเอกภาพโดยโมดูลอัลกอริทึม
  • การควบคุมการค้นหา:จำนวนรอบการทำซ้ำ ขนาดประชากร การรีสตาร์ทและเกณฑ์การลู่เข้า การจัดตารางพารามิเตอร์ตัวดำเนินการ ล้วนเป็นการตัดสินใจของฝั่งอัลกอริทึม
  • โมดูลอัลกอริทึมพึ่งพาเพียงสมมติฐานเชิงนามธรรมที่ว่า "คำตอบตัวเลือกจะได้รับการประเมิน" โดยไม่สนใจความหมายทางกายภาพและรูปแบบเฉพาะของฟังก์ชันเป้าหมาย

โมดูลปัญหา:นิยาม "จะประเมินอะไร สภาพแวดล้อมตอบสนองอย่างไร"

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

สัญญาอินเทอร์เฟซ:ชุดคำตอบตัวเลือก ⇄ ผลการประเมิน

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

ประโยชน์ที่ได้จากการแยกส่วน

  • ขยายได้อย่างอิสระ:การเพิ่มหรือสับเปลี่ยนอัลกอริทึมไม่กระทบนิยามของปัญหา;การแก้ไขหรือเพิ่มปัญหาใหม่ก็ไม่ต้องเขียนโมดูลอัลกอริทึมใหม่
  • ประกอบกันได้:โมดูลปัญหาเดียวกันสามารถเชื่อมต่อกับอัลกอริทึมวิวัฒนาการที่แตกต่างกันได้ และโมดูลอัลกอริทึมเดียวกันก็สามารถสลับไปใช้โมดูลปัญหาที่แตกต่างกันได้
  • ย้ายข้ามงานได้:ตราบใดที่สัญญาอินเทอร์เฟซมั่นคง อัลกอริทึมและปัญหาก็สามารถนำกลับมาใช้ซ้ำ สับเปลี่ยน และย้ายข้ามงานได้

เหตุใดจึงสำคัญเป็นพิเศษในบริบทของบทเรียนนี้:การ权衡หลายเป้าหมายกับผลตอบกลับที่มีต้นทุนสูง

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

ในฝั่งโมดูลปัญหา หลายเป้าหมายและข้อจำกัดถูกแปลงเป็นผลการประเมินที่เปรียบเทียบได้อย่างเป็นเอกภาพ:เวกเตอร์เป้าหมาย描绘ตัวชี้วัดแต่ละรายการ ปริมาณการละเมิดข้อจำกัด描绘ระดับการล้ำเส้น เมื่อจำเป็นก็อาศัยโมเดลตัวแทนเพื่อให้การประเมินโดยประมาณด้วยต้นทุนที่ต่ำลง บรรเทาคอขวดของผลตอบกลับที่เกิดจากการจำลองความแม่นยำสูง ในฝั่งโมดูลอัลกอริทึม การค้นหาไม่มุ่งสู่การลู่เข้าไปยัง "คำตอบที่ดีที่สุด" เพียงหนึ่งเดียวตั้งแต่เนิ่น ๆ อีกต่อไป แต่จะดูแลชุดทางเลือกที่หลากหลายเพื่อให้ผู้เชี่ยวชาญทำการปรับแต่งตามความพึงพอใจและการ权衡ระหว่างแรงยก แรงต้าน และส่วนเผื่อความปลอดภัย

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

ข้อเข้าใจผิดที่พบบ่อย
การเขียนฟังก์ชันเป้าหมาย การจัดการข้อจำกัด หรือกฎฮิวริสติกเฉพาะของปัญหาลงในโมดูลอัลกอริทึม หรือการนำการคัดเลือกและการอัปเดตประชากรมาใช้ในโมดูลปัญหา ดูเผิน ๆ เหมือน "เขียนชั้นน้อยลงหนึ่งชั้น" แต่แท้จริงแล้วเป็นการเชื่อมสองฝั่งกลับเข้าด้วยกัน:เปลี่ยนปัญหาต้องแก้อัลกอริทึม เปลี่ยนอัลกอริทึมต้องแก้ปัญหา ความสามารถในการนำกลับมาใช้ซ้ำและย้ายข้ามงานก็เสื่อมสลายไปพร้อมกัน
อินเทอร์เฟซต้อง "แคบแต่ครบถ้วน"
แคบหมายถึงมีฟิลด์น้อยและมั่นคง——ส่งเพียงข้อมูลสองประเภทคือชุดคำตอบตัวเลือกกับผลการประเมิน;ครบถ้วนหมายถึงข้อมูลต้องไม่บกพร่อง——ต้องมีเวกเตอร์เป้าหมาย ปริมาณการละเมิดข้อจำกัด และขอบเขตของตัวแปร การส่งคืนเพียงค่าความเหมาะสมแบบสเกลาร์เดียวจะสูญเสียข้อมูลข้อจำกัดอย่างถาวร ทำให้ปัญหาที่มีข้อจำกัดยากต่อการจัดการอย่างถูกต้อง