top of page
Search
  • Writer's picturePiko Prasetyo

Genetic Algorithm (part II)

Updated: Feb 26, 2020

Setelah mengetahui secara singkat mengenai GA dari part I, mari kita pelajari bagaimana cara membuat GA untuk menyelesaikan masalah "monkey type writing". Algoritma GA sendiri secara umum dan runtutnya dapat dibagi sebagai berikut :

  1. menginisialisasi populasi.

  2. menghitung nilai "fitness" dari populasi tersebut.

  3. memilih anggota populasi yang diperbolehkan kawin.

  4. mengawinkan dua anggota populasi (individu) untuk menghasilkan keturunan baru.

  5. melakukan mutasi pada saat proses pengawinan untuk menciptakan diversitas.

  6. menghitung ulang nilai fitness.

  7. melakukan proses pada no 3 hingga no 6 sampai individu dan target sama.

Menginisialisasi populasi :

Untuk menginisialisasi populasi anda harus mendefine berapa populasi dari data random yang akan dibuat, lalu mengeneratenya secara satu persatu (kali ini dengan penggunaan class yang diloop). Simaklah program berikut.

Penginisialisasian jumlah data random awal
Berikut ini 3 fungsi utama yang digunakan untuk mengenerate kromosom untuk setiap individu

3 fungsi utama tersebut terbagi menjadi :

  • angka_random() = berfungsi mengenerate angka acak yang akan dibuat untuk membuat probabilitas acak.

  • mutasi_genetika() = berfungsi mengenerate gen acak dengan bantuan angka_random() yang diambil dari pool (dalam kasus ini pool berupa seluruh karakter huruf).

  • buat_genome() = berfungsi mengenerate satu set gen (genome) untuk satu individu.

Menghitung nilai "fitness" dari populasi tersebut :

Seperti layaknya seleksi alam, hanya individu dengan kromosom unggul yang dapat menghasilkan keturunan. agar setiap individu yang digenerate pada sistem GA dapat berjalan dengan baik maka dibuatlah sistem pengukuran keunggulan dari suatu individu.

Dalam pengukuran fitness suatu kalimat, individu akan dibandingkan dengan target. Apabila individu memiliki kromosom yang berbeda dengan target maka nilai fitness semakin besar.

Memilih anggota populasi (individu) yang diperbolehkan untuk kawin :

Pada saat seluruh data dalam satu generasi terbentuk, dipilihlah sebagian individu dengan nilai fitness yang kecil untuk kawin dan menghasilkan individu generasi selanjutnya dengan nilai fitness yang kemungkinan lebih kecil. Pada bagian pengawinan inilah GA memiliki berbagai model cara untuk mengawin silangkan dua individu. Pada contoh kali ini program yang dibuat menggunakan bantuan peluang acak yang digenerate secara random, peluang ini yang digunakan untuk menentukan gen milik parent pertama atau kedua atau gen mutasi yang menjadi gen dari individu baru tersebut.

Cara mengawinkan dua individu.

Selain cara pengawinan dua individu tersebut dilakukan elitism (10% dari generasi awal lolos ke generasi berikutnya) dan mate percentage (50% dari generasi yang diperbolehkan kawin).

Pengawinan individu ini akan terus dilakukan hingga muncul individu seperti target. Agar lebih jelas silahkan download full program pada link berikut https://github.com/PikoPrasetyo/GA. Semoga artikel kali ini dapat bermanfaat bagi kita semua.

50 views0 comments

Recent Posts

See All
bottom of page