ERWIEN TJIPTA WIJAYA, ST.,M.KOM
DEFINISI ALGEN adalah algoritma yang memanfaatkan proses seleksi alamiah yang dikenal dengan evolusi Dalam evolusi, individu terus menerus mengalami perubahan gen untuk menyesuaikan dengan lingkungan hidupnya Hanya individu yang kuat yang akan bertahan
STRUKTUR ALGEN Genotype (Gen) bagian dari kromosom yang mewakili 1 variabel (nilai biner, float, integer, character dan lain - lain) Allele, nilai dari gen Kromosom/individu gabungan gen – gen yang menyatakan salah satu solusi yang mungkin Populasi, sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi Generasi, satuan siklus proses evolusi Nilai Fitness, seberapa baik nilai dari suatu individu/solusi
PENERAPAN ALGEN Penyelesaian TSP (Traveling Solution Problem) / Sorthess path Mencari nilai maksimal dari suatu fungsi Mencari nilai optimasi Peramalan (Forecasting)
FLOWCHART ALGEN Bangkitkan populasi awal
Evaluasi fungsi tujuan
Apakah kriteria optimasi tercapai?
Ya
Individu – individu terbaik
Tidak Start
Hasil seleksi
rekombinasi
mutasi Bangkitkan populasi baru
DESKRIPSI Populasi awal, didapatkan dari inisialisasi kromosom dengan dilakukan secara acak Fungsi evaluasi, evaluasi kromosom ada 2 macam:
Evaluasi fungsi obyektif Konversi fungsi obyektif ke dalam fungsi fitness
Secara umum fungsi fitness diturunkan oleh fungsi obyektif dengan nilai yang positif (+), apabila fungsi obyektif bernilai negatif (-) maka perlu ditambahkan konstanta C agar nilai fitness yang terbentuk menjadi positif (+)
DESKRIPSI FLOWCHART Seleksi, seleksi ini bertujuan untuk memberikan kesempatan reproduksi yang lebih besar bagi anggota populasi yang paling fit. Ada beberapa metode seleksi, antara lain:
Rank-based fitness assigment Roulette wheel selection Stochastic universal sampling Local selection Truncation selection Tournament selection
DESKRIPSI
Operator Genetika, ada 2 operator genetika : Operator Rekombinasi ○ Rekombinasi bernilai real
○
Rekombinasi diskret Rekombinasi intermediate Rekombinasi garis Rekombinasi garis yang diperluas
Rekombinasi bernilai biner (crossover) Crossover 1 titik (single-point-crossover) Crossover banyak titik (Multi-point-crossover) Crossover seragam (uniform crossover)
○ Crossover dengan permutasi
Mutasi ○ Mutasi bernilai real ○ Mutasi bernilai biner
DESKRIPSI
Penentuan Parameter, parameter kontrol ALGEN, yaitu ukuran populasi (popsize), peluang crossover (pc) dan peluang mutasi (pm). Nilai parameter ini ditentuka juga berdasarkan permasalahan yang akan dipecahkan. Ada beberapa rekomendasi yang bisa digunakan, antara lain : Menurut De Jong, untuk permasalahan yang memiliki kawasan
solusi cukup besar, maka nilai parameter kontrol (popsize;pc;pm)=(50; 0,6 ;0,001) Menurut Grefenstette, bila rata – rata fitness setiap generasi
digunakan sebagai indikator, maka nilai parameter kontrol (popsize;pc;pm)=(30; 0,95 ;0,01) Bila fitness dari individu terbaik dipantau pada setiap generasi,
maka nilai parameternya adalah (popsize;pc;pm)=(80; 0,45; 0,01) Ukuran
populasi sebaiknya tidak lebih kecil dari 30, untuk sembarang jenis permasalahan
ALGORITMA GENETIKA SEDERHANA
Misalkan P (generasi) adalah populasi dari 1 generasi, maka secara sederhana urutan-urutan langkahnya adalah sebagai berikut: Generasi=0 (Generasi awal) Inisialisasi populasi awal, P(generasi) dengan bilangan acak Evaluasi nilai fitness pada setiap individu dalam P(Generasi) Kerjakan langkah-langkah berikut hingga generasi mencapai maksimum generasi :
1. 2. 3. 4. a. b. c. d. e. f. g.
Generasi= generasi + 1 (tambah generasi) Seleksi populasi tersebut untuk mendapatkan kandidat induk, P(Generasi) Lakukan crossover pada P(Generasi) Lakukan mutasi pada P(Generasi) Lakukan evaluasi fitness setiap individu pada P(Generasi) Bentuk populasi baru: P(Generasi)=P(Generasi-1) yang kuat/survive Kriteria berhenti apabila pada setiap generasi – generasi memiliki nilai fitness yang tidak berubah
CONTOH: TSP (TRAVELING SALES PROBLEM)
A
8
B 4
7
5 3
D
6
C
MEMBENTUK POPULASI AWAL
Populasi awal, dapat dibangkitkan secara acak atau melalui prosedur tertentu Tentukan parameter misalkan : Popsize = 4 Pc (Probabilitas Crossover) = 0,5 Pm(Probabilitas Mutasi) = 0,2 Maksimum Generasi = 10
Misal dibangkitkan populasi awal dengan 4 individu : Kromosom[1] = [A B C D] Kromosom[2] = [B C D A] Kromosom[3] = [C D A B] Kromosom[4] = [D A B C]
EVALUASI FITNESS Kromosom [1] = 8 + 5 + 6 = 19 Kromosom [2] = 5 + 6 + 7 = 18 Kromosom [3] = 6 + 7 + 8 = 21 Kromosom [4] = 7 + 8 + 5 = 20
NO
KROMOSOM
FITNESS
[1]
AB C D
19
[2]
B C DA
18
[3]
C DAB
21
[4]
DAB C
20
SELEKSI Seleksi untuk mendapatkan calon induk yang baik Induk yang baik akan mendapatkan keturunan yang baik Semakin tinggi nilai fitness suatu individu semakin besar kemungkinan terpilih Metode seleksi yang digunakan adalah Roulette Wheel
SELEKSI KROMOSOM
Pada TSP nilai fitness yang terpilih adalah nilai terkecil maka digunakan inverse : Q[i] = 1 / Fitness[i] Q[1] = 1 / 19 = 0,052 Q[2] = 1 / 18 = 0,056 Q[3] = 1 / 21 = 0,048 Q[4] = 1 / 20 = 0,05 Total Q[i] = Q[1]+Q[2] +Q[3] +Q[4]
0,052 + 0,056 + 0,048 + 0,05 = 0,207
SELEKSI KROMOSOM
Menghitung individu
probabilitas
P[i] = Q[i] / Total Q[i] P[1] = 0,052 / 0,207 = 0,256 P[2] = 0,056 / 0,207 = 0,27 P[3] = 0,048 / 0,207 = 0,232 P[4] = 0,05 / 0,207 = 0,242
/
fitness
relatif
tiap
SELEKSI KROMOSOM
Menghitung fitness kumulatif / nilai kumulatif dari probabilitas : C[1] = 0,256 C[2] = 0,256 + 0,27 = 0,526 C[3] = 0,526 + 0,232 = 0,758 C[4] = 0,758 + 0,242 = 1
SELEKSI KROMOSOM Memilih induk yang akan menjadi kandidat untuk di-crossover Membangkitkan bilangan acak (R)
R[1] = 0,314 R[2] = 0,743 R[3] = 0,418 R[4] = 0,203
Kemudian membandingkan antara (Random) dengan C (Komulatif)
nilai
C > R (pilih nilai C yang mendekati dengan nilai R)
Contoh :
R[1] = 0,314 maka nilai R[2] = 0,743 maka nilai R[3] = 0,418 maka nilai R[4] = 0,203 maka nilai
yang mendekati adalah yang mendekati adalah yang mendekati adalah yang mendekati adalah
= 0,526 C[2] = 0,758 C[3] = 0,526 C[2] = 0,256 C[1]
R
KROMOSOM BARU HASIL SELEKSI
NO
KROMOSOM
FITNESS
ASAL
[1]’
B C DA
18
[2]
[2]’
C DAB
21
[3]
[3]’
B C DA
18
[2]
[4]’
AB C D
19
[1]
LANGKAH-LANGKAH CROSSOVER
Karena peluang crossover (pc) = 0,5; maka diharapkan 50% dari total kromosom akan mengalami crossover (2 dari 4 kromosom) Untuk memilih kromosom-kromosom yang akan dilakukan crossover yaitu dengan cara membangkitkan bilangan acak [0 1] sebanyak 4 buah. Misal bilangan acak yang tercipta adalah :
R[1] = 0,442 R[2] = 0,206 R[3] = 0,895 R[4] = 0,319
Pilih bilangan – bilangan yang kurang / lebih kecil dari nilai pc dalam hal ini nilai pc = 0,5 untuk dilakukan crossover, nilai yang terpilih adalah : R[1] = 0,442 R[2] = 0,206
PROSES CROSSOVER
Kromosom yang akan ditukarkan adalah : Kromosom[1]’’ = B C D A Kromosom[2]’’ = C D A B
Tukarkan kromosom[1] dengan kromosom[2] Contoh
Kromosom[1] = Kromosom[2] Kromosom[2] = Kromosom[1]
Populasi setelah proses crossover : NO
KROMOSOM
FITNESS
[1]’’
C DAB
21
[2]’’
B C DA
18
[3]’
B C DA
18
[4]’
AB C D
19
LANGKAH – LANGKAH MUTASI
Hitung panjang Gen pada populasi
Panjang total gen = popsize * jumlah Gen pada setiap kromosom = 4 * 4 = 16 (total Gen)
Memilih posisi gen yang di mutasi dilakukan dengan membangkitkan bilangan acak antara 1 sampai dengan panjang total gen (1 - 16) Misal ditentukan pm=0,2 atau 20% maka jumlah gen yang akan dimutasi adalah : 0,2 * 16 = 3,2 =3 bit (setelah dibulatkan) Ciptakan bilangan acak [0 1] sebanyak 16 Gen kemudian kelompokan menjadi 4 kromosom Kemudian mutasi / pindahkan Gen tersebut dengan mengambil nilai Gen didepannya kemudian lakukan pertukaran, maka Gen = Gen + 1 dan Gen + 1 = Gen Apabila Gen pada posisi terakhir maka ambilkan dari Gen yang paling depan, kemudian tukar Gen depan = Gen terakhir dan Gen terakhir = Gen depan
TABEL BILANGAN ACAK MUTASI KROMOSOM[1] R[1] = 0,412
R[2] = 0,737
R[3] = 0,379
R[4] = 0,192
R[2] = 0,718
R[3] = 0,565
R[4] = 0,082
R[2] = 0,755
R[3] = 0,371
R[4] = 0,386
R[2] = 0,980
R[3] = 0,108
R[4] = 0,860
KROMOSOM[2] R[1] = 0,234 KROMOSOM[3] R[1] = 0,949 KROMOSOM[4] R[1] = 0,840
PROSES MUTASI
Kromosom dan Gen yang terkena mutasi Kromosom[1] dan Gen[4] Kromosom[2] dan Gen[4] Kromosom[4] dan Gen[3]
Bentuk populasi awal :
Kromosom[1]’’ = [C D A B] B ditukar dengan A Kromosom[2]’’ = [B C D A] A ditukar dengan D Kromosom[3]’ = [B C D A] Kromosom[4]’ = [A B C D] C ditukar dengan B
Bentuk populasi setelah mutasi :
Kromosom[1] ‘’’= [C D B A] Kromosom[2] ‘’’= [B C A D] Kromosom[3] ‘= [B C D A] Kromosom[4] ‘’’= [A C B D]
EVALUASI
Proses 1 Generasi selesai : Fitness[1] = 6 + 4 + 8 = 18 Fitness[2] = 5 + 3 + 7 = 15 Fitness[3] = 5 + 6 + 7 = 18 Fitness[4] = 5 + 3 + 4 = 12
Karena TSP adalah rute yang paling pendek yang harus dipilih maka dalam kasus ini nilai Fitness yang terkecil yang harus dipilih Pada kasus ini kromosom[4]=12 dengan rute [A C B D]
POPULASI BARU Populasi terakhir digunakan sebagai data awal / populasi baru pada iterasi berikutnya Lanjutkan sendiri sampai mendapatkan nilai fitness terkecil