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.
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.
