biakan. Dalam algoritma genetika ini, proses perkembang-biakan ini menjadi
proses dasar yang menjadi perhatian utama, dengan dasar berpikir: “Bagaimana
...
ALGORITMA GENETIKA Suatu Alternatif Penyelesaian Permasalahan Searching, Optimasi dan Machine Learning
Achmad Basuki Politeknik Elektronika Negeri Surabaya PENS-ITS Surabaya 2003
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 perkembangbiakan. 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.
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). 3
3
6 1
1
5
5 2
6
2
4 7
Individu : 1 3 5 7 6 4 2
4 7
Individu : 1 2 3 6 7 5 4
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.
Siklus Algoritma Genetika
Populasi Awal
Evaluasi Evaluasi Fitness Fitness
Seleksi Seleksi Individu Individu Reproduksi: Reproduksi: Cross-Over Cross-Over Dan Dan Mutasi Mutasi
Populasi Baru
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 5 7 4
2 7 2 6
4 4 6 5
3 6 4 7
6 2 5 3
5 3 1 2
7 1 3 1
3 1 2
6 1
5 4
3
2 7
6 5
4 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 = 10 % Individu 2: fitness = 25 % Individu 3: fitness = 40 % Individu 4: fitness = 15% Individu 5: fitness = 10%
Individu terpilih
Individu 2 Individu 4 Individu 3 Individu 2 Individu 3
Cross Over • Cross Over (Pindah Silang) Induk 1 merupakan salah satu operator dalam algoritma genetika yang melibatkan Induk 2 dua induk untuk menghasilkan keturunan yang baru. p = random[0,1] • Cross over dilakukan dengan melakukan pertukaran gen dari dua induk secara acak. tidak • Macam-macam Cross-Over yang p < probCO banyak digunakan antara lain: pertukaran gen secara langsung dan ya pertukaran gen secara aritmatika. • Proses cross over dilakukan pada Cross Over setiap individu dengan probabilitas cross-over yang ditentukan.
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
P = 0.70
P = 0.95
P = 0.35
P = 0.65
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
Ditentukan probabilitas Cross-Over = 0.9
Cross Over Pertukaran Secara Aritmatika
1.2
0.2
1.5
1.2
0.2 r = 0.4
2.0
1.0
1.0
0.2
(0.4)(0.2)+(0.6)(1.0)=0.68 (0.4)(1.0)+(0.6)(0.2)=0.52
2.5
1.2
0.7
1.2
1.2
0.2
2.0
0.5
1.3
0.2
2.5
(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> >> >> >> >> >> >> >> >> >> >>
Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness
= = = = = = = = = = = =
83 127 120 95 85 103 113 88 119 114 103 90
Seleksi, Cross-Over & Mutasi • •
•
Seleksi dilakukan dengan menggunakan roulette-wheel. Cross-over, dilakukan dengan menukar gen-gen terpilih antar dua induk, seperti pada gen biner. 8 5 15 15 24 6 5 22 14 11 19 23
-- H E O O X F -- E V N K S W
8 5 14 11 19 6 5 22 15 15 24 23
-- H E N K S F -- E V O O X W
Mutasi dilakukan dengan mengacak kembali nilai 1-26 dari gen yang dimutasikan. 8
5 14 11 19
6
-- H E N K S F
8
5 19 11 19
6
-- H E S K S F
Hasil Algoritma Genetika 5 5 5 5 5 5 5 5 5 5 5 5 1 2 2 2 2 2 2 2
3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1
19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19 19
19 19 19 19 24 19 22 22 22 21 21 21 21 21 21 21 21 21 21 21
14 14 14 10 11 11 10 11 11 11 11 11 11 11 11 11 11 11 11 11
18 10 10 10 10 10 10 10 10 10 10 10 10 10 10 9 9 9 9 9
-----------------------------------------
E E E E E E E E E E E E A B B B B B B B
C C C C C B B B B B B B B B B B B B B A
S S S S S S S S S S S S S S S S S S S S
S S S S X S V V V U U U U U U U U U U U
N N N J K K J K K K K K K K K K K K K K
R J J J J J J J J J J J J J J I I I I I
>> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness Fitness
= = = = = = = = = = = = = = = = = = = =
137 145 145 147 147 149 149 150 150 151 151 151 153 154 154 155 155 155 155 156
Beberapa Implementasi Algoritma Genetika Yang Sudah Dilakukan • • • • • • • • • • • •
Algoritma Genetika untuk mengoptimalkan model antenna array dengan memperbesar main-lobe dan menurunkan side-lobe Algoritma Genetika untuk menyusun jadwal kuliah di PENS-ITS Algoritma Genetika untuk menyelesaikan TSP (Traveling Salesman Problem) Algoritma Genetika untuk menyusun jadwal pendistribusian produk (TSP multikriteria) Algoritma Genetika untuk menyelesaikan masalah Knapsack Algoritma Genetika untuk menentukan filter optimal yang dapat mereduksi noise pada gambar Algoritma Genetika untuk menentukan nilai maksimal atau minimal sistem non linier. Algoritma Genetika untuk mencari bentuk lingkaran pada suatu gambar Algoritma Genetika untuk menentukan posisi suatu obyek gambar pada keseluruhan gambar. Algoritma Genetika untuk menyusun jadwal penguji proyek akhir di Jurusan Telekomunikasi dan Jurusan Teknologi Informasi PENS-ITS. Algoritma Genetika untuk menentukan pembobot nilai optimal dalam melakukan ranking pegawai. Algoritma Genetika untuk peramalan time-series.
Algoritma Genetika Untuk Langkah Berikutnya • Algoritma Genetika sangat handal untuk melakukan proses pencarian dan optimasi. • Salah satu hal yang menggembirakan adalah kecepatan komputasi algoritma genetika untuk proses optimasi bisa dikatakan sangat baik. • Proses-proses optimasi yang membutuhkan kecepatan komputasi dengan kompleksitas yang tinggi membutuhkan algoritma genetika.
Notes