Teny Handhayani
Algoritma Genetika Algoritma yang meniru seleksi alam
Diperkenalkan oleh Prof. John Holland pada tahun1975
Algoritma Genetika terdiri atas siklus sederhana yaitu:
1. Membuat populasi string secara acak
2. Evaluasi setiap string
3. Seleksi string terbaik
4. Manipulasi genetika untuk memperoleh populasibaru yang lebih baik
Siklus Algoritma Genetika
Population(chromosomes)
Fitness EvaluationGenetic Operators
Selection(Mating Pool)
Parents
Decoded strings
ReproductionManipulation
OffspringNew Generation
Algoritma Genetika Elemen-elemen dalam populasi dikodekan sebagai
bit-strings
Bit-string disebut sebagai kromosom
Fitness digunakan sebagai istilah untuk performastring
Crossover
11010 1010
11010 1001
10101 1001
10101 1010
Parents
Offspring
10101 1001 10011
10101 1110 10011
01101 1110 11101
01101 1001 11101
Single point crossover
Two point crossover
Parents
Offspring
Mutation
1 0 1 0 1 1 0 1 0 1 0 1
1 0 1 0 1 1 1 1 0 1 0 1
Contoh Algoritma Genetika untuk fungsi pada
interval 0 ≤ x ≤ 31
Dimuali dengan 4 string inisialisasi
� � = ��
String no
Initial population x F(x) Strength fitness(% of total)
1 01101 13 169 14.4
2 11000 24 576 49.2
3 01000 8 64 5.5
4 10011 19 361 30.9
Sum-Fitness 1170 100.00
String no
Mating Pool MatesString
Swapping New Population
1 01101 2 0110[1] 01100
2 11000 1 1100[0] 11001
3 11000 4 01[000] 11011
4 10011 2 10[011] 10000
InitialPopulation
x F(x)(fitness)
Strength (% of total)
01100 12 144 8.2
11001 25 635 35.6
11011 27 729 41.5
10000 16 256 14.7
Sum-Fitness 1754 100.00
Nilai fitness pada generasi ke dua
Latihan
Mencari solusi
Tahap 0 Inisialisasi populasi
Menggunakan 10 kromosom dengan 5 bit string
� � = �� − 64
� � = �� − 64
Tahap 1: Evaluasi fitness function
Fungsi yang digunakanx adalah nilai desimal dari kromosom
Mencari nialai �� − 64 = 0 � = ±8
Misalnya dicari solusi x = 8, sehingga fungsi f akan memberikan nilai mendekati 0
�� =�(��)
∑ �(��)�����
��
= � ��
�
�=1
= �1
+ �2
+ ⋯ + ��−1
+ ��
= ��−1
+ ��
Untuk menyeleksi kromosom, maka dibuat 10 nilai secara acak pada rentang [0 1]Misalnya nilai tersebut yaitu:
0.5436 0.7412 0.8924 0.2455 0.6874 0.2842 0.3864 0.9981 0.3684 0.7240
1 2 3 4 5 6 7 8 9 10
Mencari qj > 0.5436 dan qj-1 <0.5436Sehinggaq8 = 0.6221 > 0.5436q7 = 0.5063 < 0.5436 sehingga kromosom 8 dipilih pertama
Diperoleh sebagai berikut:
Tahap 2 Cross Over
Memilih probabilitas crossover sebesar pc = 0.25Membuat 10 bilangan random pada rentang [0 1], cross over dilakukan jika bilangan < 0.25
0.2890 0.1527 0.2690 0.1890 0.2630 0.1442 0.1628 0.2585 0.5830 0.6532
1 2 3 4 5 6 7 8 9 10
�6′′ = 10 000
�7′′ = 11 001
� �ℎ�����
�6′ = 10 001
�7′ = 11 000
� ������
Hasil crossover
Tahap 3: Mutation
Menentukan pm =0.01Membuat 10 bilangan random pada rentang [0 1]Bilangan yang pm < 0.01 maka dilakukan mutasi
Perulahan tahapan algoritma genetikadilakukan sampai pada threshold tertentu (batasan yg ditetapkan) ataurata-rata fitness telah melewatithreshold
Algoritma Genetika MenggunakanMATLAB
Contoh 1 Sum Squares Function
function y = sum2(x)% The default value of n = 15.n = 15;s = 0;for j = 1:n s=s+j*x(j)^2;
endy = s;
Contoh 2 Ackley Function
Contoh 3 Rastrigin’s Function
function y = rast(x)n = 2;s = 0;for j = 1:n
s = s+(x(j)^2-10*cos(2*pi*x(j))); endy = 10*n+s;
Contoh 4 Easom Function
function y = easom(x)y = -cos(x(1))*cos(x(2))*exp(-(x(1)-pi)^2-(x(2)-pi)^2);
Tugas 1 Buatlah script untuk menyelesaikan persamaan
Carilah nilai best fitness dan mean fitness untukkedua nilai!
Ada berapa banyak generasi?
� � = �� − 64a
b