Oleh : Yusuf Nurrachman, ST, MMSI Algoritma Genetika Oleh : Yusuf Nurrachman, ST, MMSI
Pendahuluan Algoritma Genetika (AG) adalah algoritma pencarian yang didasarkan pada mekanisme seleksi alamiah dan genetika alamiah. Seleksi alamiah, sebagai contoh jerapah, pada suatu kondisi pada saat dimana makanan sangat terbatas dan hanya ada pada tempat tinggi, maka jerapah yang memiliki leher panjang yang dapat bertahan, sedangkan yang berleher pendek akan punah, maka yang berleher panjang mempunyai suatu kualitas sehingga dapat lolos dari seleksi alamiah. Genetika alamiah, hubungannya dengan kromosom yang dalam bentuk molekul DNA, dan berisi sejumlah gen.Dimana kita ketahui bahwa setiap makhluk hidup mempunyai ciri yang berbeda, contoh manusia: memiliki banyak perbedaan seperti warna mata , warna kulit, bentuk rambut dsb.
Evolusi Konsep penting pada teori evolusi adalah fitness dan selection. Proses reproduksi ada 2 cara sexual reproduction dan asexual reproduction Sexual reproduction terjadi persilangan antara kromosom orang tua atau biasa disebut dengan crossover. Asexual reproduction tidak terjadi crossover. Kesalahan pada proses pengkopian gen orang tua dikenal dengan istilah mutation(mutasi).
Adopsi teori evolusi pada AG AG dimulai dengan sekumpulan solusi awal(individu) yang disebut dengan populasi . Yang terpenting adalah “ satu individu menyatakan satu solusi”. Populasi awal akan berevolusi menjadi populasi baru melalui serangkaian iterasi (generasi),dan pada setiap generasi akan melalui proses evaluasi dengan menggunakan fungsi fitness(akan dilihat kualitas dari kromosom).Generasi berikutnya disebut dengan istilah anak(offspring)
Evolusi yang terjadi pada AG Dua individu dipilih sebagai orang tua(parent) berdasarkan mekanisme tertentu. Kedua parent dikawinkan melalui operator crossover untuk menghasilkan dua individu anak atau offspring. Dengan probabilitas tertentu, dua individu anak ini mungkin mengalami perubahan gen melalui operator mutation. Suatu skema penggantian (replacement scheme) tertentu diterapkan sehingga menghasilkan populasi baru. Dan akan terus berulang sampai kondisi berhenti(stopping condition)tertentu, kondisi disini bisa berupa jumlah iterasi tertentu, waktu atau ketika variansi individu – individu dalam populasi tersebut sudah lebih kecil dari suatu nilai tertentu yang diinginkan.
Algoritma Genetika Sederhana Misalkan P(Generasi) adalah populasi dari satu generasi, maka secara sederhana algoritma genetika terdiri dari langkah – langkah : Generasi=0(generasi awal) Inisialisasi populasi awal,P(generasi),secara acak. Evaluasi nilai fitness pada setiap individu dalam P(Generasi). Kerjakan langkah – langkah berikut hingga generasi mencapai maksimum generasi: Generasi = generasi + 1(tambah generasi) Seleksi populasi tersebut untuk mendapatkan kandidat induk,P’(generasi). Lakukan crossover pada P’(generasi). Lakukan mutasi pada P’(generasi) Lakukan evaluasi fitness setiap individu pada P’(generasi). Bentuk populasi baru : P(generasi) = {P(generasi – 1) yang survive,P’(generasi)}
Komponen – komponen AG AG terdiri dari enam komponen yaitu : skema pengkodean, nilai fitness, seleksi orang tua, crossover, mutasi, kriteria penghentian.
Skema Pengkodean Untuk dapat diproses menggunakan AG, suatu permasalahan harus dikonversi terlebih dahulu kedalam bentuk individu yang diwakili oleh satu atau lebih kromosom dengan kode tertentu. AG merepresentasikan gen (buatan) secara umum sbg bilangan Real, desimal atau biner, yaitu : Real-Number encoding, pada skema ini, nilai gen berada dalam interval [0,R], dimana R adalah bilangan real positif dan biasanya R = 1. Discrete decimal encoding, pada skema ini , setiap gen bisa berupa deretan bilangan bulat dalam interval [0,9]. Binary encoding. Setiap gen bisa berupa deretan 0 atau 1
Nilai Fitness Pada AG, suatu individu dievaluasi berdasarkan suatu fungsi tertentu sebagai ukuran nilai fitnessnya. Pada masalah optimasi,jika yang dicari adalah memaksimalkan sebuah fungsi h(dikenal sebagai masalah maksimasi), maka nilai nilai fitness yang digunakan adalah nilai dari h tersebut,nilai fitness yang digunakan adalah f=h. Jika yang dicari minimasi maka fungsi h tidak dapat digunakan secara langsung. Karena AG menggunakan suatu aturan bahwa nilai individu yang bernilai fitness tinggi akan lebih tinggi kemampuan bertahan hidupnya dibanding fitness yang rendah. Nilai fitness untuk masalah minimasi adalah f=1/h, yang artinya semakin kecil nilai h semakin besar nilai f. maka formula fitnessnya adalah sebagai berikut : f=1/(h+a), dimana a adalah bilangan yang dianggap sangat kecil dan bervariasi sesuai dengan masalah yang akan diselesaikan. Misalkan : jika diketahui bahwa x1,x2 elemen [-4,+4], bagaimana formula fungsi fitness yang bisa digunakan untuk mencari nilai minimal dari fungsi pada persamaan h(x1,x2)=5x14+4x22 , maka masukkan nilai x1 dan x2 dengan menggunakan rumus f=1/(h+a), fungsi h akan bernilai minimum ketika x1 dan x2 =0, jika didefiniskan a=0,001 maka nilai maksimum f adalah 1000 (ketika h=0)
Seleksi Orang Tua (roulette-wheel) Proses pemilihan 2 individu sebagai orang tua biasanya dilakukan secara proporsional berdasarkan nila fitnessnya. Salah satu yang digunakan adalah roulete-wheel. Apabila dilihat pada gambar maka S5 memiliki peluang sebesar 0,25 untuk terpilih sebagai orang tua. String Nilai Fitness S1 0.6 S2 0.2 S3 S4 S5 0.8 S6 S7 S8 S9 Jumlah 3.2 9 8 1 7 6 2 5 3 4
Pindah Silang (Cross Over) Pindah Silang satu titik(single-point cross over), pindah silang ini merupakan skema pindah silang yang paling sederhana Titik pindah silang hanya satu dengan posisi yang dibangkitkan secara acak. Posisi penyilangan terpilih=4,Titik potong Orang Tua 1 1 1 Anak 1 Orang Tua 2 1 1 Anak 2 Contoh Pindah silang 1 titik dengan panjang kromosom 7 Pindah Silang banyak titik (multi-point cross over), dilakukan apabila ada kasus banyaknya gen yang harus dicari. Contoh 2 kromosom dengan panjang 7, posisi penyilangan terpilih (m=3) 2 6, dibangkitkan secara acak Orang Tua 1 1 1 Anak 1 Orang Tua 2 1 1 Anak 2
Pindah Silang (Cross Over) Penyilangan Seragam (Uniform Crossover),pada penyilangan seragam ini digunakan mask bit/pola. Disini anak 1 akan dihasilkan dari induk_1 jika bitmask bernilai 1, atau sebaliknya, anak_1 akan dihasilkan dari induk 2 jika bit mask bernilai 0, sedangkan anak_2 dihasilkan dari kebalikan mask. Misal ada kromosom dengan panjang 12 : Mask bit : Kromosom Baru Induk 1: 0 1 1 1 0 0 1 0 1 1 1 0 Sample 1: 1 0 0 1 1 1 0 0 1 1 0 1 Anak 1: 0 1 0 1 0 0 0 0 1 1 0 0 Induk 2: 1 1 0 1 0 0 0 0 1 1 0 1 Sample 2: 0 1 1 0 0 0 1 1 0 0 1 0 Anak 2: 1 1 1 1 0 0 1 0 1 1 1 1 Contoh Lain Orang Tua 1 1 1 Anak 1 Pola 1 Orang Tua 2 1 1 Anak 2
Mutasi (Mutation) Mutasi diperlukan untuk mengembalikan informasi bit yang hilang akibat cross over. Mutasi diterapkan dengan probabilitas yang sangat kecil. Jika mutasi dilakukan terlalu sering maka akan menghasilkan individu yang lemah, karena konfigurasi gen pada individu yang unggul akan dirusak. 1 1 Mutasi pada tingkat kromosom, semua gen pada kromosom berubah 1 1 Gen 1 Gen 2 Mutasi pada tingkat gen, semua bit dalam 1 gen akan berubah 1 1 Mutasi pada tingkat bit, hanya 1 bit yang berubah