Kecerdasan Buatan
Algoritma Genetika
Oleh Politeknik Elektronika Negeri Surabaya
2017
Konten
• Algoritma Genetika
• Siklus Algoritma Genetika
• Membangkitkan Populasi Awal
• Fungsi Fitness
• Seleksi
• Crossover
• Mutasi
Tujuan Instruksi Umum
Mahasiswa memahami filosofi Kecerdasan Buatan dan mampu menerapkan beberapa metode Kecerdasan
Komputasional dalam menyelesaikan sebuah
permasalahan, baik secara individu maupun
berkelompok/kerjasama tim.
Tujuan Instruksi Khusus
• Mengetahui konsep Algoritma Genetika
• Mengetahui proses dalam Algoritma Genetika
• Mengetahui penerapan Algoritma Genetika
Algoritma Genetika
Algoritma Genetika adalah algoritma yang memanfaatkan proses seleksi alamiah yang dikenal dengan proses evolusi.
Dalam proses evolusi, individu secara terus-menerus mengalami perubahan gen untuk menyesuaikan dengan lingkungan hidupnya. “Hanya individu-individu yang kuat yang mampu bertahan”.
Proses seleksi alamiah ini melibatkan perubahan gen yang terjadi pada individu
melalui proses perkembang-biakan. Dalam algoritma genetika ini, proses perkembang- biakan ini menjadi proses dasar yang menjadi perhatian utama, dengan dasar berpikir:
“Bagaimana mendapatkan keturunan yang lebih baik”.
Algoritma genetika ini ditemukan oleh John Holland dan dikembangkan oleh muridnya David Goldberg.
Siklus Algoritma Genetika
Populasi Awal
Seleksi Individu
Reproduksi:
Cross-Over Dan Mutasi
Populasi Baru
Evaluasi Fitness
Proses Algorima Genetika
Populasi Awal
Populasi Akhir
Individu Dalam Algoritma Genetika
Gen Kromosom
Individu
Gen Kromosom
Gen Kromosom
Populasi
Beberapa Definisi Penting Dalam Algoritma Genetika
Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom. Dalam algoritma genetika, gen ini bisa berupa nilai biner, float, integer maupun karakter, atau
kombinatorial.
Allele, nilai dari gen.
Kromosom, gabungan gen-gen yang membentuk nilai tertentu.
Individu, menyatakan satu nilai atau keadaan yang menyatakan salah satu solusi yang mungkin dari permasalahan yang diangkat
Populasi, merupakan sekumpulan individu yang akan diproses bersama dalam satu siklus proses evolusi.
Generasi, menyatakan satu-satuan siklus proses evolusi.
Nilai Fitness, menyatakan seberapa baik nilai dari suatu individu atau solusi yang didapatkan.
Hal-Hal Yang Harus Dilakukan Dalam Menggunakan Algoritma Genetika
Mendefinisikan individu, dimana individu menyatakan salah satu solusi (penyelesaian) yang mungkin dari permasalahan yang diangkat.
Mendefinisikan nilai fitness, yang merupakan ukuran baik-tidaknya sebuah individu atau baik-tidaknya solusi yang didapatkan.
Menentukan proses pembangkitan populasi awal. Hal ini biasanya dilakukan dengan menggunakan pembangkitan acak seperti random-walk.
Menentukan proses seleksi yang akan digunakan.
Menentukan proses perkawinan silang (cross-over) dan mutasi gen yang akan digunakan.
Pengertian Individu
• Individu bisa dikatakan sama dengan kromosom, yang merupakan kumpulan gen.
Gen ini bisa biner, float, dan kombinatorial.
• Individu menyatakan salah satu solusi yang mungkin. Misalkan dalam TSP individu menyatakan jalur yang ditempuh, dalam penentuan nilai maksimal dari F(x,y)
individu menyatakan nilai (x,y).
1
2
3
4
5
6
7
Individu : 1 3 5 7 6 4 2
1 1
2
3
4
5
6
7
Individu : 1 2 3 6 7 5 4
1
Nilai Fitness
• Nilai fitness adalah nilai yang menyatakan baik tidaknya suatu solusi (individu).
• Nilai fitness ini yang dijadikan acuan dalam mencapai nilai optimal dalam algoritma genetika.
• Algoritma genetika bertujuan mencari individu dengan nilai fitness yang paling tinggi.
• Dalam TSP, karena TSP bertujuan meminimalkan jarak, maka nilai
fitnessnya adalah inversi dari jarak.
Membangkitkan Populasi Awal
• Membangkitkan populasi awal adalah proses membangkitkan sejumlah individu secara acak atau melalui prosedur tertentu. Syarat-syarat yang harus dipenuhi untuk
menunjukkan suatu solusi harus benar-benar diperhatikan dalam pembangkitan setiap individunya.
• Dalam TSP, populasi menyatakan sejumlah solusi (jalur) yang dicari secara acak. Misalkan dalam populasi terdapat 4 individu, maka contoh populasi awal TSP dengan 7 kota adalah sebagai berikut:
1 2 4 3 6 5 7 5 7 4 6 2 3 1 7 2 6 4 5 1 3 4 6 5 7 3 2 1
1
2
3
4
5
6
7
1
2
3
4
5
6
7
Seleksi
• Seleksi dilakukan untuk mendapatkan calon induk yang baik. “Induk yang baik akan menghasilkan keturunan yang baik”.
• Semakin tinggi nilai fitness suatu individu semakin besar kemungkinannya untuk terpilih.
• Seleksi dapat dilakukan dengan menggunakan dua macam teknik,
yaitu mesin roullete, dan turnamen.
Seleksi Dengan Mesin Roullete
Individu 1: fitness = 20 = 10 % Individu 2: fitness = 50 = 25 % Individu 3: fitness = 80 = 40 % Individu 4: fitness = 30 = 15%
Individu 5: fitness = 20 = 10%
Individu terpilih
24 : Individu 2 82 : Individu 4 59 : Individu 3 34 : Individu 2 46 : Individu 3
Pr(hi)= Fitness(hi)/j=1p Fitness(hj)
Individu 1: jatah bil 1-10 Individu 2: jatah bil 11-35 Individu 3: jatah bil 36-75 Individu 4: jatah bil 76-90 Individu 5: jatah bil 91-100
Bangkitkan bil random sebanyak #populasi
Cross Over
• Cross Over (Pindah Silang) merupakan salah satu operator dalam algoritma genetika yang melibatkan dua induk untuk menghasilkan keturunan yang baru.
• Cross over dilakukan dengan melakukan pertukaran gen dari dua induk secara acak.
• Macam-macam Cross-Over yang banyak digunakan antara lain: pertukaran gen secara langsung dan pertukaran gen secara aritmatika.
• Proses cross over dilakukan pada setiap individu dengan probabilitas cross-over yang ditentukan.
Induk 1 Induk 2 p = random[0,1]
p < probCO
Cross Over
ya
tidak
Cross Over
Pertukaran secara langsung
1 1 0 0 1 1 1
1 1 0 1 0 1 1
1 1 0 1 1 0 0
0 1 1 0 0 0 1
1 1 0 0 0 0 0
1 0 1 0 1 0 1
1 0 1 1 1 1 1
1 1 1 0 0 0 1
Ditentukan probabilitas Cross-Over = 0.9
1 1 0 1 0 1 1
1 1 0 0 1 1 1
1 1 0 1 1 0 0
0 1 1 0 0 0 1
1 0 1 0 1 0 0
1 1 0 0 0 0 1
1 0 1 0 0 1 1
1 1 1 1 1 0 1
P = 0.70
P = 0.95
P = 0.35
P = 0.65
Cross Over
Pertukaran Secara Aritmatika
1.2 0.2 1.5 1.2 0.2 2.0 1.0 1.0 0.2 2.5
1.2 0.7 1.2 1.2 0.2 2.0 0.5 1.3 0.2 2.5
r = 0.4
(0.4)(0.2)+(0.6)(1.0)=0.68 (0.4)(1.0)+(0.6)(0.2)=0.52
(0.4)(1.5)+(0.6)(1.0)=1.2 (0.4)(1.0)+(0.6)(1.5)=1.3
Mutasi Gen
• Mutasi Gen merupakan operator yang menukar nilai gen dengan nilai inversinya, mialnya gennya bernilai 0 menjadi 1.
• Setiap individu mengalami mutasi gen dengan probabilitas mutasi yang ditentukan.
• Mutasi dilakukan dengan memberikan nilai inversi atau menggeser nilai gen pada gen yang terpilih untuk dimutasikan.
Individu p = random[0,1]
p<probMut
r=random Gen(r) dimutasi
ya
tidak
Mutasi Gen
1 0 0 1 1 r = 2 1 1 0 1 1
1.2 0.2 1.5 1.2 0.2
1.2 0.3 1.5 1.2 0.2
R = 2 e = 0.1
Hal penting yang harus diketahui dalam pemakaian Algoritma Genetika
Algoritma Genetika adalah algoritma yang dikembangkan dari proses pencarian solusi menggunakan pencarian acak, ini terlihat pada
proses pembangkitan populasi awal yang menyatakan sekumpulan solusi yang dipilih secara acak.
Berikutnya pencarian dilakukan berdasarkan proses-proses teori genetika yang memperhatikan pemikiran bagaimana memperoleh individu yang lebih baik, sehingga dalam proses evolusi dapat
diharapkan diperoleh individu yang terbaik.
22
1. Carilah artikel tentang Algoritma Genetika!
2. Carilah artikel yang membahas permasalahan yang diselesaikan dengan Algoritma Genetika!