Dalam komputasi evolusioner,keragamanmerupakan prasyarat agar algoritma bekerja efektif: hanya dengan mempertahankan cukup banyak solusi kandidat, tekanan seleksi tidak akan terlalu dini mendorong populasi ke optimum lokal. Namun keragaman juga berarti beban komputasi yang besar—satu kali eksekusi sering kali perlu mengevaluasi puluhan ribu hingga jutaan solusi kandidat. Ketika kandidat ditulis sebagai array objek biasa, dan dikirim satu per satu untuk dievaluasi dengan perulangan per item, sebagian besar waktu komputasi habis untuk penjadwalan per item dan alur kendali bahasa hos, bukan untuk operasi numerik yang sesungguhnya. Inilahalasan mendasar mengapa perulangan CPU serial tradisional menjadi tidak efisien saat menangani puluhan ribu evaluasi kandidatitu.
Lompatan dalam Cara Representasi: Dari Daftar Kandidat ke Graf Komputasi Tensor
Perubahan yang dibawa EvoX bukanlah percepatan lokal pada satu operator tertentu, melainkanperubahan cara representasi proses evolusi: dari pemrosesan bergaya daftar dengan kandidat satu per satu, beralih ke komputasi batch yang menempatkan tensor sebagai warga kelas satu. Himpunan kandidat tidak lagi tersebar di dalam array objek, melainkan diorganisasi secara terpadu bersama hasil evaluasi dan status algoritma sebagai tensor, sehingga semuanya dapat berpartisipasi dalam operasi secara menyeluruh.
- Tensor Kandidat: menulis seluruh generasi kandidat sebagai tensor berbentuk [ukuran populasi, dimensi solusi]. Kini "satu kandidat" hanyalah satu baris di dalam tensor, dan bukan lagi objek bahasa hos yang berdiri sendiri.
- Operator Batch: operasi seperti mutasi bekerja langsung pada seluruh populasi, satu kali pemanggilan menyelesaikan pembaruan seluruh kandidat, bukan pemanggilan berulang sebanyak N kali.
- Evaluasi Batch: dalam bentuk evaluate(tensor kandidat) untuk memperoleh hasil evaluasi seluruh generasi sekaligus; satuan kuantitas evaluasi berubah dari "buah" menjadi "batch".
- Graf Komputasi: seleksi dan pembaruan status bukan lagi sekadar logika kendali serial, melainkan node di dalam graf, sehingga memperoleh peluang optimasi kompilasi seperti fusi operator dan penjadwalan paralel.
Perbandingan Dua Gaya Penulisan
Gaya penulisan berbasis daftar kurang lebih seperti: mengambil kandidat satu per satu, mengevaluasi satu per satu, membandingkan satu per satu dan memperbarui status—setiap langkah bergantung pada perulangan bahasa hos, sulit dioptimalkan secara menyeluruh. Gaya penulisan tensor adalah: tensor kandidat → mutasi → evaluasi → seleksi → pembaruan status, seluruh rantai terdiri atas operasi tensor dan direpresentasikan sebagai sebuah graf komputasi, sehingga kompilator dapat melakukan fusi dan penjadwalan perangkat pada seluruh graf. Perhatikan: logika algoritma (distribusi mutasi, tekanan seleksi) tidak diubah; yang diubah adalahcara representasinya.
