Sistem
Cerdas
Sekilas Tentang Algoritma
Genetika dan Aplikasinya
14
Fakultas Teknik Teknik Elektro FADLI SIRAIT, S.Si, MT
Abstract Kompetensi
Pada modul ini dibahas tentang Artificial Intelligent (AI) Mampu
merupakan salah satu bagian ilmu komputer yang membuat menjelaskan
agar mesin (komputer) dapat melakukan pekerjaan seperti dan
dan sebaik yang dilakukan oleh manusia. memahami
tentang
Artificial
Intelligent (AI)
Definisi :
1. Sudut pandang Kecerdasan : mesin menjadi ‘cerdas’ (mampu berbuat apa yang
dilakukan oleh manusia)
2. Sudut pandang Penelitian : studi bagaimana membuat agar komputer dapat
melakukan sesuatu sebaik yang dilakukan oleh manusia.
Domain penelitian :
a. Mundande task
Persepsi (vision & speech)
Bahasa alami (understanding, generation & translation)
Pemikiran yang bersifat commonsense
Robot control
b. Formal task
Permainan/games
Matematika (geometri, logika, kalkulus, integral, pembuktian)
c. Expert task
Analisis finansial
Analisis medikal
Analisis ilmu pengetahuan
Komputer
Input Output
Basis Motor
Masalah Jawaban
Pengetahuan Inferensi
Pertanyaan Solusi
dll
- dapat didokumentasi
- lebih cepat
- dapat mengerjakan pekerjaan lebih baik
Sejarah AI :
7. Game Playing
Soft Computing
Soft computing (Lotfi A.Zadeh, 1992) adalah koleksi dari beberapa metodologi yang
bertujuan untuk mengeksploitasi adanya toleransi terhadap ketidaktepatan, ketidakpastian
dan kebenaran pasial untuk dapat diselesaikan dengan mudah, robustness, dan biaya
penyelesaian yang murah.
Soft computing merupakan inovasi baru dalam membangun AI yang memiliki keahlian
seperti manusia pada domain tertentu, mampu beradaptasi dan belajar agar dapat bekerja
lebih baik jika terjadi perubahan lingkungan.
Reasoning
Domain dari variabel xj adalah [aj, bj] dan presisinya adalah 5 tempat di belakang koma,
maka range dari setiap variabel dapat dibagi dalam (bj – aj) x 105 unit.
Bit yang dibutuhkan (dilambangkan dengan mj) untuk variabel tadi dapat dihitung dari:
mj 1
2 < (bj - aj) x 105 <= 2 m j -1
bj a j
Variabel keputusan (decision variable) xj = aj + decimal(substringj) x mj
2 1
Dimisalkan presisinya adalah 5 tempat di belakang koma. Bit yang dibutuhkan untuk
variabel x1 dan x2 adalah:
33 bit
vj 000001010100101001 101111011111110
18 bit 15 bit
Biner Desimal
x1 000001010100101001 5417
x2 101111011111110 24318
12.1 (3.0)
x1 = -3.0 + 5417 x = -2.687969
218 1
5 .8 4 .1
x2 = 4.1 + 24318 x = 5.361653
215 1
Prosedur-prosedur yang harus ada dalam program anda adalah (tercetak tebal):
Evaluation. Dalam proses ini evaluasi nilai fitness dari kromosom yang terdiri dari 3
langkah:
biner ke nilai real relatif dari xk = ( x1k , x 2k ), dengan k = 1,2, ..., pop_size.
2. Evalusi fungsi obyektifnya: f(xk).
3. Konversikan nilai dari fungsi obyektifnya ke fitness. Untuk kasus memaksimalisasikan,
fitness-nya adalah sama dengan nilai fungsi obyektifnya: eval(vk) = f(xk), k = 1,2, ...,
pop_size.
eval(v1) = f(-2.687969,5.361653) = 19.805119
Terlihat disitu bahwa kromosom v4 adalah kromosom terkuat dan kromosom v3 adalah
yang terlemah.
Selection. Dalam kebanyakan kasus, pendekatan roulette wheel (roda rolet) sering
digunakan untuk prosedur seleksi; ini dimiliki oleh seleksi fitness-proportional dan dapat
memilih populasi baru yang berhubungan dengan distribusi probabilitas pada nilai fitness-
nya. Roda rolet ini dapat dijelaskan sbb:
Prosedur selection dimulai dengan memutar roda rolet sebanyak pop_size kali; setiap
waktu satu kromosom dipilih untuk populasi baru selanjutnya, dengan langkah sbb:
Probablitas kumulatif qk untuk setiap kromosom vk(k = 1, ..., 10) adalah sbb:
Sekarang marilah kita coba memutar roda rolet sebanyak 10 kali, dan setiap waktu kita
memilih 1 kromosom untuk populasi baru selanjutnya. Diasumsikan misalnya 10 bilangan
random dengan range [0,1] adalah sbb:
Bilangan pertama r1: 0.301431 lebih besar daripada q3 dan lebih kecil daripada q4, yang
berarti bahwa kromosom q4 dipilih untuk populasi baru berikutnya; bilangan kedua r 2:
0.322062 lebih besar daripada q3 dan lebih kecil daripada q4, yang berarti bahwa
kromosom q4 lagi-lagi dipilih untuk populasi baru berikutnya; dan demikian seterusnya.
Akhirnya populasi baru yang terbentuk adalah sbb:
v1 = [100110110100101101000000010111001]
v2 = [001011010100001100010110011001100]
Didapatkan hasil Offspring dengan menggantikan bagian kanan dari kromosom induk
sebagai berikut:
Probabilitas crossover di set sebagai pr = 0.25, maka kita dapat berharap bahwa sekitar
25% dari kromosom yang ada akan mengalami crossover. Crossover dapat dilakukan
dengan langkah sbb:
procedure: Crossover
begin
k 0;
end
k k + 1;
end
end
Dari situ bisa kita lihat bahwa kromosom v’5 dan v’7 akan dipilih untuk dilakukan crossover
padanya. Kita generate bilangan integer pos secara random dengan range [1,32] (sebab
33 adalah panjang dari kromosom) sebagai titik potong atau dengan kata lain adalah
posisi titik crossover. Diasumsikan bahwa bilangan pos yang dihasilkan sama dengan 1,
dua kromosom dipotong setelah bit ke-1, dan offspring dihasilkan dengan menggantikan
bagian kanan dari kromosom yang bersangkutan sbb:
v’5 = [100110110100101101000000010111001]
v’7 = [001110101110011000000010101001000]
menjadi:
v’5 = [101110101110011000000010101001000]
v’7 = [000110110100101101000000010111001]
Mutation. Mutasi mengubah satu atau lebih gen dengan probabilitas sama dengan angka
mutasi. Diasumsikan bahwa gen ke-18 dari kromosom v1 dipilih untuk bermutasi. Karena
gen di posisi itu (posisi ke-18) bernilai 1, maka setelah bermutasi nilainya menjadi 0. Maka
setelah bermutasi, kromosom menjadi:
v1 = [100110110100101101000000010111001]
v1 = [100110110100101100000000010111001]
Probabilitas mutasi diset sebagai pm = 0.01, sehingga diharapkan bahwa sekitar 1% total
bit dari populasi akan bermutasi. Ada m x pop_size = 33 x 10 = 330 bit dalam keseluruhan
populasi; diharapkan 3.3 mutasi terjadi setiap generasi. Setiap bit memiliki kesempatan
yang sama untuk bermutasi. Maka kita perlu meng-generate serangkaian bilangan random
rk (k= 1, ..., 330) dengan range [0,1]. Dimisalkan bahwa gen-gen berikut ini akan
bermutasi:
105 4 6 0.009857
164 5 32 0.003113
199 7 1 0.000946
Setelah mutasi, didapatkan populasi baru sebagai generasi berikutnya, sebagai berikut:
Baru saja tadi kita sudah menyelesaikan satu iterasi dari algoritma genetik (GA). Program
nantinya akan dihentikan setelah 1000 iterasi (1000 generasi). Didapatkan kromosom
terbaik pada generasi ke-419 sbb:
v* = (111110000000111000111101001010110)
x*1 = 11.631407
x*2 = 5.724824
Program anda nanti harus mengimplementasikan hal-hal diatas, dan sebagai inputnya,
minimal adalah jumlah populasi awal pop_size, probabilitas crossover pr, probabilitas
mutation pm, banyak iterasi, kromosom terbaik dan nilai-nilai yang ada padanya.