2.1.6 Algoritma Genetika
2.1.6.2 Struktur Dasar Algoritma Genetika
2.1.6.2.2 Seleksi Individu
Setelah diketahui jenis representasi yang di butuhkan maka pembangkitan generasi awal (parent) dapat dilakukan.
Menurut, Suyanto (2005),Ada banyak cara yang bisa digunakan untuk memilih individu/kromosom sebagai orang tua beberapa yang sering digunakan antara lain :
1. Fitness Proportionate Selection (FPS)
FPS adalah seleksi individu/kromosom sebagai orang tua yang proporsional terhadap nilai fitness-nya. Artinya, semakin besar nilai fitness suatu individu semakin besar pula peluang individu tersebut untuk terpilih sebagai orangtua.
2. Rank-Based Selection
Rank-Based Selection adalah seleksi individu/kromosom dengan mengurutkan nilai fitness-nya bisa ascending ataupun descending. 3. Tournament Selection
Kedua metode seleksi di atas bersandar pada statistik dari seluruh individu pada populasi. Pada masalah tertentu di mana ukuran populasi cukup besar, misalnya 200 individu, kedua metode tersebut bisa mengakibatkan bottleneck. Artinya, banyak komputasi yang dihabiskan untuk proses seleksi sementara masih banyak komputasi lain yang harus dilakukan. Oleh karena itu, satu model seleksi ini bisa
dijadikan alternatif untuk mengatasi masalah tersebut. Prosedur yang digunakan yaitu dengan penyampling (sampling).
2.1.6.2.3 Rekombinasi (crossover)
Menurut, Achmad Basuki (2003), rekombinasi merupakan proses mengkombinasikan dua individu untuk memperoleh individu-individu baru yang diharapkan mempunyai fitness lebih baik dibandingkan dengan parent-nya.
Menurut, Suyanto (2005), rekombinasi dibagi menjadi dua yaitu : 1. Rekombinasi dua parent
Rekombinasi yang terjadi pada dua parent untuk diwariskan kepada anaknya.
2. Rekombinasi lebih dari dua parent
Rekombinasi yang terjadi pada lebih dari dua parent untuk diwariskan kepada anaknya.
Metode yang digunakan oleh kedua jenis rekombinasi di atas pun berbeda.
Metode yang sering digunakan untuk merekombinasi dua parent antara lain :
1. Untuk rekombinasi dengan representasi biner a. Rekombinasi satu titik (1-point crossover)
Memotong kromosom kedua parent pada satu titik kemudian ditukar untuk mendapatkan kromosom anak yang mewarisi sifat kedua parent-nya.
b. Rekombinasi banyak titik (n-point crossover)
Memotong kromosom kedua parent pada n titik kemudian ditukar untuk mendapatkan kromosom anak yang mewarisi sifat kedua parent-nya.
c. Rekombinasi seragam (uniform crossover)
Untuk menentukan tiap gen pada kromosom anak akan diacak antara 0 sampai 1, apabila hasilnya 0 maka akan diambil gen dari parent 1 untuk di masukan ke anak dan apabila hasilnya 1 akan diambil gen dari parent 2 untuk di masukan ke anak. 2. Untuk rekombinasi dengan representasi integer
Untuk Rekombinasi dengan representasi integer ini metode yang digunakan sama seperti Rekombinasi dengan representasi biner. 3. Rekombinasi untuk representasi Permutasi
a. Order crossover
Pada Metode ini, satu bagian kromosom ditukar tetapi urutan gen secara relatif yang bukan bagian dari kromosom tersebut tetap dijaga. Untuk menukar bagian kromosom dan menjaga urutannya, kromosom dipotong pada dua titik dan bagian
kromosom di antara titik potong tersebut diwariskan secara utuh ke anaknya aga urutannya tetap terjaga.
b. Partially Mapped Crossover
Sama dengan Order crossover, metode ini juga mewariskan sebagian gen orang tua secara searah dan sebagian lainnya secara menyilang kepada kedua anaknya. Pewarisan sebagian gen secara menyilang dilakukan dengan memanfaatkan posisi-posisi gen kedua orang tuanya yang memiliki nilai sama untuk dilakukan pemetaan (mapping). Karena pewarisan gen yang menggunakan pemetaan dilakukan hanya pada sebagian gen, maka metode rekombinasi ini dinamakan partially mapped crossover.
c. Cycle crossover
Sesuai dengan namanya, algoritma ini mencari siklus-siklus (cycles) yang terdapat pada kedua kromosom orang tua dan mewariskan cycles tersebut secara menyilang dan searah secara bergantian. Artinya, pada cycles pertama pewarisan dilakukan secara menyilang. Pada cycles kedua pewarisan dilakukan searah. Pada cycles ketiga pewarisan kembali dilakukan secara menyilang, dan seterusnya. Dengan cara ini biasanya akan dihasilkan dua anak yang selalu valid.
d. Edge recombination
Algoritma ini bekerja dengan cara membangun suatu yang mendaftar edges (sisi-sisi) gen yang berada pada kedua orang tuanya. Untuk mendapatkan edge dari suatu gen, kromosom dianggap melingkar. Artinya, gen pada posisi terakhir memiliki edge yang berupa gen posisi sebelumnya dan gen posisi satu. Jika edge berada pada kedua orang tua, maka edge tersebut diberi tanda positif ’+’ dan disebut sebagai common edge.
e. Rekombinasi path relinking
Rekombinasi dilakukan dengan membuat banyak anak yang memiliki perbedaan secara berurutan sehingga mirip suatu jalur. Kemudian akan dipilih sejumlah anak yang memiliki fitness tertinggi.
Metode yang sering digunakan untuk merekombinasi lebih dari dua parent antara lain :
1. Berdasarkan frekuensi allele
Pendekatan ini merupakan generalisasi dari rekombimasi seragam. Jika pada rekombinasi seragam dilakukan pembangkitan pola dengan dua kemungkinan nilai (berdasarkan random 0 dan 1), maka dengan pendekatan ini pembangkitan pola dilakukan dengan kemungkinan
nilai sebanyak jumlah orang tuanya. Jika parent berjumlah tiga, maka pembangkitan pola dilakukan berdasarkan rando 0,1 dan 2. 2. Berdasarkan segmentasi dan rekombinasi
Pendekatan ini merupakan generalisasi dari rekombinasi banyak titik.
2.1.6.2.4 Mutasi
Mutasi yaitu penambahan,pengurangan, atau pengubahan sebagian kromosom yang diharapkan akan memberikan nilai fitness yang lebih baik.
Metode yang sering digunakan antara lain : 1. Mutasi untuk representasi biner
Untuk setiap posisi gen di dalam suatu kromosom, bangkitkan suatu bilangan acak antara 0 sampai 1. jika bilangan acak tersebut lebih kecil atau sama dengan 1/jumlah gen dalam kromosom, maka gen pada posisi tersebut dimutasi. Mutasi dilakukan secara sederhana dengan cara membalik nilai binernya.
2. Mutasi untuk representasi integer
Sama dengan mutasi pada representasi biner, pemilihan posisi gen dilakukan dengan cara pembangkitan suatu bilangan acak antara 0 sampai 1. jika bilangan acak tersebut lebih kecil atau sama dengan 1/jumlah gen dalam kromosom, maka gen pada posisi tersebut
dimutasi. Mutasi gen dapat dilakukan dengan beberapa cara di antaranya adalah :
a. Membalik nilai integer
Cara ini merupakan perluasan dari mutasi pada representasi biner. Sebagai contoh, jika nilai gen berada dalam interval [0, 9], maka gen bernilai 0 dibalik menjadi 9, gen bernilai 1 dibalik menjadi 8, dan seterusnya.
b. Pemilihan nilai secara acak
Suatu gen yang terpilih untuk dimutasi nilainya diganti dengan gen baru yang dibangkitkan secara acak dalam interval nilai-nilai gen yang diizinkan. Misalnya, jika nilai-nilai gen berada dalam interval [0, 9], maka gen baru yang akan dibangkitkan juga berada dalam interval [0, 9]. Nilai gen baru yang dihasilkan bisa saja dibatasi dengan aturan harus berbeda dengan nilai gen lama. 3. Mutasi untuk representasi permutasi
a. Mutasi pertukaran (swap mutation)
Pilih dua posisi gen secara acak. Kemudian tukarkan gen pada kedua posisi tersebut.
b. Mutasi penyisipan (insert mutation)
Pilih dua posisi gen secara acak. Misalkan posisi P1 dan P2. Kemudian sisipkan gen posisi P2 setelah posisi P1.
c. Mutasi pengacakan (scramble mutation)
Buat suatu segmen kromosom dengan memilih dua titik potong secara acak. Misalkan posisi T1 dan T2. Kemudian lakukan pengacakan posisi pada semua gen yang berada dalam segmen tersebut.
d. Mutasi pembalikan (inversion mutation)
Buat suatu segmen kromosom dengan memilih dua titik potong secara acak. Misalkan posisi T1 dan T2. Kemudian lakukan pembalikan posisi semua gen yang berada dalam segmen tersebut. 2.1.7 Fuzzy Logic
Fuzzy Logic adalah suatu cara yang tepat untuk memetakan suatu ruang input ke dalam suatu ruang output. Fuzzy logic juga memiliki himpunan fuzzy yang mana pada dasarnya, teori himpunan fuzzy merupakan perluasan dari teori himpunan klasik (Kusumadewi,2005,p13). Dengan menggunakan fuzzy logic, hasil yang keluar tidak akan selalu konstan dengan input yang ada. Menggunakan himpunan fuzzy, hasil yang keluar juga akan menjadi output yang rasional sesuai dengan penalaran manusia.
Sebelum memulai dengan input, proses fuzzyfikasi, dan output, kita lebih baik mengenal beberapa scope dan variabel yang digunakan dalam proses tersebut. Ada beberapa hal yang perlu diketahui dalam memahami sistem fuzzy (Kusumadewi, 2003, p158) :
a. Variabel fuzzy, merupakan variabel yang hendak dibahas dalam suatu sistem fuzzy.
b. Himpunan fuzzy, merupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variabel fuzzy.
c. Semesta pembicaraan, merupakan keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variabel fuzzy.
d. Domain, merupakan keseluruhan nilai yang diijinkan dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy.
Cara kerja aplikasi fuzzy logic secara garis besar terdiri input, proses, dan output. Input dalam fuzzy logic merupakan perpaduan dari membership function dan variabel yang telah disesuaikan agar sesuai dengan fungsi yang dipakai dalam suatu aplikasi fuzzy.
Dalam penalaran fuzzy, dikenal proses penalaran Mamdani dan Sugeno. Dalam proses penalaran Mamdani, baik input maupun output merupakan sistem himpunan fuzzy. Sedangkan dalam proses penalaran sugeno, mirip dengan metode Mamdani hanya output sistem tidak berupa himpunan fuzzy, melainkan berupa konstanta atau persamaan linear.
Arsitektur pengembangan sistem fuzzy secara umum digambarkan secara di bawah ini :
Gambar 2.3 Arsitektur pengembangan sistem fuzzy
2.2 Teori – teori Khusus