PEMBUATAN LIBRARY ALGORITMA GENETIK DAN WHALE OPTIMIZATION


Pencarian solusi terbaik pada suatu permasalahan menjadi suatu hal yang terus dikembangkan dari waktu ke waktu. Berbagai penelitian dilakukan dalam berbagai bidang untuk dapat menyelesaikan masalah-masalah tersebut. Salah satu cara yang dapat menjadi solusi adalah digunakannya algoritma evolusioner. Algoritma evolusioner bekerja dengan menggabungkan metode metaheuristik dan metode stokastik. Salah satu algoritma evolusioner yang terkenal adalah algoritma genetik (GA). Selain algoritma genetik, terdapat berbagai macam algoritma baru yang terus dimunculkan dan berkembang. Salah satu algoritma evolusioner baru yang dikembangkan adalah algoritma Whale Optimization (WOA). Meskipun begitu, penyelesaian algoritma evolusioner pada umumnya membutuhkan waktu yang lama. Hal tersebut dapat ditanggulangi dengan penggunaan GPU Programming pada algoritma evolusioner yang dibuat. Atas dasar tersebut, akan dibuat general purpose library algoritma genetik dan Whale Optimization Algorithm berbasis GPU Programming.

Sifat dari library yang dibuat adalah general purpose, di mana library dibuat untuk dapat menyelesaikan seluruh permasalahan yang dapat diselesaikan dengan menggunakan algoritma evolusioner. Pada library ini, user diharuskan membuat satu class yang diturunkan dari class dalam library. User harus memanggil konstruktor, mengatur parameter yang dibutuhkan, mengimplementasikan abstract method, dan memanggil method run pada library untuk dapat menjalankan algoritma. Seluruh proses yang terjadi dalam library bersifat transparan, dan apabila telah selesai, user dapat mengambil nilai fitness terbaik, solusi terbaik, nilai fitness terbaik di setiap generasi, dan nilai rata-rata fitness di setiap generasi.


Dengan dibuatnya library ini, diharapkan pengguna library dapat mengimplementasikan algoritma genetik dan Whale Optimization dalam menyelesaikan suatu permasalahan dengan mudah dan dalam waktu yang lebih cepat dibandingkan dengan library lainnya. Selain itu, pada uji coba library, dilakukan perbandingan kecepatan algoritma evolusioner pada GPU dan CPU dengan perbedaan kode seminimal mungkin. Berdasarkan hasil uji coba, library WOA yang dihasilkan telah menghasilkan kecepatan hingga 10 kali lebih cepat dibandingkan implementasi pada CPU dengan solusi yang optimal. Di sisi lain, library GA yang dibuat masih belum dapat menghasilkan kecepatan yang optimal jika dibandingkan dengan CPU, tetapi solusi yang dihasilkan sudah optimal. Pengembangan library lebih lanjut dapat dilakukan untuk meningkatkan skalabilitas, fungsionalitas, dan kecepatan yang dihasilkan