8

Pembagian Modul Algoritma dan Masalah

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

Dalambasis terdekopel terbukaEvoX, sebuah alur evolusi yang utuh dipecah menjadi dua "balok" yang dapat diganti:modul algoritmamenjawab "bagaimana mencari",modul masalahmenjawab "apa yang dievaluasi dan bagaimana lingkungan memberi umpan balik". Keduanya terhubung melalui serangkaian kontrak antarmuka yang jelas, membentuk alur evolusi yang dapat digunakan ulang, diganti, dan dipindahkan.

Basis Terdekopel Terbuka EvoXDiagram interaksi antarmuka modul algoritma dan modul masalahmodul algoritmaEnkapsulasi: bagaimana mencariPembangkitan solusi kandidat dan inisialisasi populasiMutasi / persilangan / seleksiKendali pencarian: jumlah iterasi, ukuran populasi, kriteria konvergensiTidak bergantung pada bentuk fisik fungsi tujuanmodul masalahEnkapsulasi: evaluasi dan umpan balik lingkunganNilai tujuan, kebugaran, besaran pelanggaran kendalaHasil interaksi lingkunganDimensi variabel dan rentang nilaiMemberikan evaluasi yang konsisten untuk kumpulan solusi kandidat yang samaBatch solusi kandidatHasil evaluasi: vektor tujuan / besaran pelanggaran kendalaKontrak antarmukaRingkas namun lengkap① Kirim batch solusi kandidat② Kembalikan hasil evaluasi③ Perbarui populasi, maju ke generasi berikutnyaSatu siklus "kirim ⇄ kembalikan" membentuk satu generasi evolusiKontrak antarmuka yang stabil → algoritma dan masalah dapat diganti, diperluas, dan digunakan ulang lintas tugas secara independen

Modul algoritma: mengenkapsulasi "bagaimana mencari"

  • Pembangkitan solusi kandidat dan pembaruan populasi: logika evolusi seperti inisialisasi, mutasi, persilangan, seleksi, dan elitisme diimplementasikan secara terpadu oleh modul algoritma.
  • Kendali pencarian: jumlah iterasi, ukuran populasi, restart dan kriteria konvergensi, serta penjadwalan parameter operator, semuanya merupakan keputusan di sisi algoritma.
  • Modul algoritma hanya bergantung pada premis abstrak bahwa "solusi kandidat akan dievaluasi", dan tidak peduli dengan makna fisik serta bentuk konkret fungsi tujuan.

Modul masalah: mendefinisikan "apa yang dievaluasi dan bagaimana lingkungan memberi umpan balik"

  • Mengubah solusi kandidat menjadi umpan balik yang dapat dibandingkan: nilai tujuan, kebugaran, besaran pelanggaran kendala, atau hasil dari satu interaksi lingkungan.
  • Mendeklarasikan batas masalah dan kendala: dimensi variabel, rentang nilai, aturan daerah layak, sehingga algoritma mengetahui di mana solusi kandidat dapat dibangkitkan.
  • Memberikan evaluasi yang konsisten untuk kumpulan solusi kandidat yang sama, sehingga individu yang berbeda, generasi yang berbeda, dan algoritma yang berbeda dapat dibandingkan secara horizontal.

Kontrak antarmuka: batch solusi kandidat ⇄ hasil evaluasi

Modul algoritma menyerahkan ke modul masalahsatu batch solusi kandidat; modul masalah mengembalikanhasil evaluasi yang terstruktur(vektor tujuan, besaran pelanggaran kendala, dan informasi diagnostik tambahan yang opsional); modul algoritma memperbarui populasi dan melanjutkan ke generasi berikutnya berdasarkan hal tersebut. Siklus "kirim—kembalikan" inilah yang membentuk satu generasi evolusi.

Manfaat dari dekopling

  • Perluasan independen: menambah atau mengganti algoritma tidak mempengaruhi definisi masalah; mengubah atau menambah masalah juga tidak menuntut penulisan ulang modul algoritma.
  • Dapat dikombinasikan: modul masalah yang sama dapat dihubungkan dengan algoritma evolusi yang berbeda, dan modul algoritma yang sama juga dapat dialihkan ke modul masalah yang berbeda.
  • Dapat dipindahkan: selama kontrak antarmuka stabil, algoritma dan masalah dapat digunakan ulang, diganti, dan dipindahkan lintas tugas.

Mengapa hal ini sangat penting dalam skenario pelajaran ini: pertukaran multi-tujuan dan umpan balik yang mahal

Pelajaran ini berfokus pada masalah teknik di dunia fisik nyata—misalnyadesain airfoil superkritisCOMAC. Masalah semacam ini biasanya memiliki tiga karakteristik sekaligus: beberapa tujuan yang saling bertentangan (misalnya meningkatkan gaya angkat sering kali menyebabkan peningkatan hambatan dan penurunan stabilitas), kendala yang saling bersarang (seperti koefisien gaya angkat buffeting kritis, tegangan maksimum tidak boleh melampaui nilai izin material), sertaumpan balik yang mahal dan jarang(biaya satu kali evaluasi simulasi berpresisi tinggi sangat mahal). Pembagian modul justru lahir untuk mengatasi ketiga hal tersebut.

Di sisi modul masalah, multi-tujuan dan kendala dikonversi secara terpadu menjadi hasil evaluasi yang dapat dibandingkan: vektor tujuan menggambarkan setiap indikator, besaran pelanggaran kendala menggambarkan tingkat pelanggaran, dan bila perlu dibantu denganmodel surrogateuntuk memberikan evaluasi perkiraan dengan biaya lebih rendah, sehingga meredakan hambatan umpan balik akibat simulasi berpresisi tinggi. Di sisi modul algoritma, pencarian tidak lagi mengejar konvergensi dini menuju satu "jawaban optimal" tunggal, melainkan memeliharasekumpulan solusi kandidat yang beragam, sehingga para ahli dapat melakukan optimasi preferensi dan pertukaran antara gaya angkat, hambatan, dan margin keamanan.

Oleh karena itu, kontrak "batch solusi kandidat ⇄ hasil evaluasi" tidak hanya harus mampu membawa kebugaran skalar tunggal, tetapi juga harus mampu membawa vektor tujuan dan besaran pelanggaran kendala: pertukaran multi-tujuan menuntut algoritma mampu melakukan perbandingan non-dominasi, dan penanganan kendala menuntut algoritma mampu membedakan layak dan tidak layak. Begitu kontrak menjadi tidak lengkap, informasi multi-tujuan dan kendala akan hilang secara permanen di antarmuka, dan kemampuan penggunaan ulang serta pemindahan yang dihasilkan dari dekopling ikut menjadi tidak berlaku.

Kesalahpahaman umum
Menuliskan fungsi tujuan, penanganan kendala, atau aturan heuristik khusus masalah ke dalam modul algoritma, atau mengimplementasikan seleksi dan pembaruan populasi di dalam modul masalah. Sekilas tampak seperti "menghemat satu lapisan", namun sebenarnya menggabungkan kembali kedua sisi: mengganti masalah berarti harus mengubah algoritma, mengganti algoritma berarti harus mengubah masalah, dan kemampuan penggunaan ulang serta pemindahan sekaligus menjadi tidak berlaku.
Antarmuka harus "ringkas namun lengkap"
Ringkas berarti bidang data sedikit dan stabil—hanya mengirimkan dua jenis informasi yaitu batch solusi kandidat dan hasil evaluasi; lengkap berarti informasi tidak boleh tidak lengkap—vektor tujuan, besaran pelanggaran kendala, dan batas variabel harus ada semua. Hanya mengembalikan kebugaran skalar tunggal akan menghilangkan informasi kendala secara permanen, sehingga masalah berkendala sulit ditangani dengan benar.