Penjelasan konsep, implementasi, dan teknologi yang digunakan
Aplikasi ini mengimplementasikan Genetic Algorithm (GA) untuk menyelesaikan masalah optimasi kombinasi suplemen kesehatan harian. GA adalah metode pencarian heuristik yang terinspirasi dari proses evolusi alam individu terbaik bertahan, bereproduksi, dan menghasilkan generasi yang semakin baik dari waktu ke waktu.
Setiap individu dalam populasi direpresentasikan sebagai array biner dengan panjang sama dengan jumlah suplemen yang tersedia. Gen bernilai 1 berarti suplemen tersebut dipilih dalam kombinasi, nilai 0 berarti tidak dipilih. Contoh: [1,0,1,0,0,1] berarti suplemen ke-1, ke-3, dan ke-6 dipilih.
Nilai fitness dihitung berdasarkan rata-rata persentase pemenuhan 6 nutrisi harian (Vitamin C, D, Zinc, Omega-3, Calcium, Iron) terhadap nilai RDA standar WHO. Kombinasi yang total harganya melebihi budget langsung mendapat fitness = 0 sehingga tidak akan dipilih oleh algoritma.
Sejumlah individu dipilih secara acak untuk bertanding. Individu dengan nilai fitness tertinggi memenangkan turnamen dan berhak untuk bereproduksi menghasilkan generasi berikutnya. Metode ini memberikan tekanan seleksi yang konsisten.
Probabilitas setiap individu dipilih sebanding dengan nilai fitnessnya dibandingkan total fitness seluruh populasi. Ibarat memutar roda roulette — individu dengan fitness lebih tinggi mendapat bagian roda yang lebih besar.
Dua parent dipotong di satu titik acak. Bagian pertama parent 1 digabungkan dengan bagian kedua parent 2 untuk menghasilkan dua offspring baru. Begitu pula sebaliknya. Contoh: Parent1=[1,0,1|1,0] + Parent2=[0,1,0|0,1] menghasilkan Child1=[1,0,1,0,1] dan Child2=[0,1,0,1,0].
Pemotongan dilakukan di dua titik acak sehingga segmen tengah ditukar antar kedua parent. Menghasilkan keberagaman offspring yang lebih tinggi dibandingkan single-point crossover.
Setiap gen dalam offspring berpeluang terbalik (0 menjadi 1 atau 1 menjadi 0) sesuai dengan probabilitas mutasi yang diatur. Mutasi mencegah konvergensi prematur dan menjaga keberagaman populasi agar algoritma tidak terjebak di solusi lokal.
Individu dengan fitness tertinggi dari setiap generasi otomatis dipertahankan dan masuk ke generasi berikutnya tanpa melalui crossover atau mutasi. Ini memastikan kualitas solusi terbaik tidak pernah hilang selama proses evolusi berlangsung.