Algoritma Genetik

Goldberg (1989) menjelaskan bahwa algoritma genetik merupakan algoritma pencarian berdasarkan mekanisme seleksi alam dan genetika alam. Algoritma genetik mengkawinkan struktur string yang bertahan untuk membentuk algoritma pencarian baru. Pada setiap generasi sejumlah individu baru diciptakan melalui bagian yang kuat dari orang tuanya. Metode algoritma genetik dikembangkan oleh John Holland dan mahasiswanya di Universitas Michigan. Tujuan dari penelitian yang dilakukan adalah untuk meneliti proses adaptasi dari sistem alam serta mendesain perangkat lunak yang memiliki kecerdasan buatan dengan mencontoh mekanisme sistem alam.

Goldberg (1989) menjelaskan beberapa istilah yang digunakan dalam algoritma genetik. Istilah strings dalam sistem genetik buatan analog dengan kromosom dalam sistem biologi. Pada sistem biologi, satu atau lebih kromosom dikombinasi untuk membentuk resep genetik secara keseluruhan. Resep genetika ini digunakan untuk pembentukan dan operasi beberapa organisme.

Pada sistem alamiah, keseluruhan paket genetik disebut genotip. Pada sistem genetik buatan, keseluruhan paket strings disebut sebuah struktur. Pada sistem alamiah, organisme dibentuk oleh interaksi dari keseluruhan paket genetik dengan lingkungannya yang disebut fenotip.

Pada sistem genetik buatan, struktur di-decode untuk membentuk paket parameter, alternatif solusi, atau titik pada ruang solusi. Pada sistem alamiah, kromosom terdiri dari gen-gen, yang terdiri dari sejumlah nilai yang disebut allel. Pada genetik, posisi (locus) dari sebuah gen diidentifikasi secara terpisah dari fungsi gen. Tabel 1 menjelaskan perbandingan istilah yang digunakan oleh sistem alamiah dan algoritma genetik.

Tabel 1. Perbandingan Istilah pada Sistem Alamiah dan Algoritma Genetik.

Sistem Alamiah

Algoritma Genetik

Kromosom String
Gen Fitur, Karakter, atau detektor
Allel Nilai fitur
Locus Posisi String
Genotip Struktur
Fenotip Set parameter, solusi alternatif, struktur yang di-decode
Epitasis Non linieritas

Sumber: Goldberg (1989)

Gen dan Cheng (2000) menjelaskan bahwa secara umum algoritma genetik memiliki lima komponen dasar yang telah diringkaskan oleh Michalewicz. Lima komponen dasar tersebut adalah:

1. Sebuah genetik yang merepresentasikan solusi dari masalah.

2. Sebuah cara untuk menciptakan populasi awal dari penyelesaian masalah.

3. Sebuah fungsi evaluasi untuk menilai fitness.

4. Operator genetik yang mengubah komposisi genetik anak selama reproduksi.

5. Nilai untuk parameter algoritma genetik.

Gen dan Cheng (2000) menjelaskan bahwa algoritma genetik memelihara populasi dari individu (Pi) pada setiap generasi i. Setiap individu merepresentasikan sebuah solusi potensial. Setiap individu dievaluasi untuk dinilai fitness-nya. Setiap individu menjalani stochastic transformations dengan menggunakan opreasi genetik untuk membentuk individu baru. Ada dua jenis transformasi yang digunakan yaitu mutasi dan kawin silang (crossover). Individu baru yang disebut offspring C(i) dievaluasi kembali. Setelah beberapa generasi diharapkan setiap individu menjadi konvergen menjadi individu terbaik. Individu terbaik inilah yang diharapkan menjadi solusi optimal atau suboptimal dari masalah. Struktur umum dari algoritma genetik dijelaskan sebagai berikut:

Teroma Skema

Tahap1
Teorema skema merupakan dasar teori yang menjelaskan bagaimana Algoritma Genetik bekerja. Skema adalah keserupaan pola dalam mendeskripsikan suatu himpunanan bagian dari beberapa string yang mempunyai kesamaan pada posisi tertentu. Sebuah skema dibentuk dengan menambahkan sebuah simbol spesial, yaitu sebuah simbol * (don’t care) dalam representasi biner (0 atau 1).

Contoh: *01 adalah 101 atau 001 yaitu 5 atau 1

Tahap2
Tingkatan dari sebuah skema S(dinotasikan denga o(S)) menunjukkan jumlah dari posisi angka 0 atau 1 yang sudah tetap(Bukan posisi don’t care) yang ada dalam skema. Tingkatan ini menunjukkan spesialisasi dari sebuah skema. Contoh:

S1=(* * * 0 0 1 * 1 1 0)

S2=(* * * * 0 0 * * 0 * )

S3=(1 1 1 0 1 * * 0 0 1)

Dimana

o(S1)= 6

o(S2)= 3

o(S3)= 8

Tahap3
Batasan panjang dari skema S (dinotasikan dengan δ(S)) adalah jarak antara posisi angka 0 atau 1 yang pertama hingga terakhir. Angka ini menunjukkan kerapatan informasi yang ada dalam sebuah skema. Contoh:

δ(S1)= 10-4=6

δ(S2)= 9-5 =4

δ(S3)= 10-1=9

Procedure: Algoritma Genetik

begin

i ← 0;

initialize P(i);

evaluate P(i);

while (not termination condition) do

begin

recombine P(i);

evaluate C(i);

select P(i+1) from P(i) and C(i);

i ← i + 1;

end

end

Besarnya populasi pada setiap generasi akan mempengaruhi kecepatan konvergensi. Semakin besar jumlah populasi akan mengakibatkan konvergensi yang lambat, akan tetapi bila jumlah populasi awal semakin kecil maka dapat terjadi konvergensi prematur. Jumlah titik coba yang dipakai oleh Harb dan Matthews pada tahun 1987 adalah sebesar jumlah variabel desain ditambah 1. Box mengusulkan jumlah titik coba adalah 2 kali jumlah variabel desain. Sedangkan Biles pada tahun 1983 mengusulkan jumlah titik coba adalah jumlah variabel desain ditambah dengan 2.

Pengkodean adalah suatu teknik untuk menyatakan populasi awal sebagai kandidat solusi suatu masalah ke dalam suatu kromosom. Gen dan Cheng (2000) juga menjelaskan bahwa pengkodean merupakan kunci pokok persoalan, dalam melakukan pengkodean harus diperhatikan apakah dapat membangun pencarian genetik yang efektif menggunakan pengkodean. Beberapa prinsip untuk mengevaluasi pengkodean adalah yang diajukan oleh Rechenberg (1973) dalam Gen dan Cheng (2000):

1. Tidak berlebihan (non redundancy), pemetaan antara kode dan solusi harus 1-to-1 mapping. Pemetaan 1-to-1 menjamin tidak ada operasi sia-sia yang terjadi ketika membuat keturunan. Pada pemetaan n-to-1, algoritma genetik akan membuang waktu saat mencari, karena dua individu diduplikasi pada ruang fenotip tetapi tidak pada ruang genotip, pengukuran jarak pada ruang genotip tidak dapat memperlakukan individual sebagai identik, hal ini akan menjadikan algoritma genetik menjadi konvergen secara prematur. Pada pemetaan 1-to-n, dibutuhkan prosedur tambahan pada ruang fenotip untuk menentukan sebuah solusi di antara banyak kemungkinan solusi.

2. Legality, permutasi dari sebuah pengkodean berhubungan pada sebuah solusi. Prinsip ini menjamin bahwa sebagian besar operator genetik yang ada dapat dengan mudah diaplikasikan pada pengkodean.

3. Completeness, solusi mempunyai hubungan dengan pengkodean. Prinsip ini menjamin bahwa suatu titik pada ruang solusi dapat dicapai pada pencarian genetik.

4. Sifat Lamarckian, allel untuk sebuah gen tidak tergantung pada konteks. Sifat Lamarckian pada pengkodean berhubungan dengan apakah sebuah kromosom dapat mewariskan sifatnya pada generasi yang akan datang melalui operasi genetik. Sebuah teknik pengkodean diharapkan dapat mewariskan sifat baik orang tua.

5. Causality, berarti variasi kecil pada ruang genotip karena mutasi berimplikasi pada variasi kecil pada ruang fenotip.

Gen dan Cheng (2000) menjelaskan bahwa berdasarkan jenis simbol yang digunakan sebagai nilai suatu gen maka pengkodean dapat diklasifikasikan sebagai berikut:

1. Pengkodean biner, yaitu metode pengkodean yang menggunakan bilangan biner. Metode ini banyak digunakan karena sederhana untuk diciptakan dan mudah dimanipulasi (Davis, 1991).

2. Pengkodean bilangan riil, yaitu metode pengkodean dalam bentuk bilangan riil. Masalah optimalisasi fungsi dan optimalisasi kendala lebih tepat jika diselesaikan dengan pengkodean bilangan riil karena struktur topologi ruang genotip untuk pengkodean bilangan riil identik dengan ruang fenotipnya, sehingga mudah membentuk operator genetika yang efektif dengan cara memakai teknik yang dapat digunakan yang berasal dari metode konvensional.

3. Pengkodean bilangan bulat, yaitu metode pengkodean menggunakan bilangan bulat. Pengkodean ini baik digunakan untuk masalah optimasi kombinatorial.

4. Pengkodean struktur data, yaitu model pengkodean yang menggunakan struktur data.

Goldberg (1989) mengemukakan bahwa ada empat hal yang membedakan algoritma genetik dari teknik optimasi tradisional. Perbedaan tersebut adalah:

1. Manipulasi langsung dari pengkodean.

2. Pencarian dari sebuah populasi, bukan dari single point.

3. Pencarian melalui metode sampel.

4. Pencarian menggunakan operator stochastic, bukan deterministik.

Gen dan Cheng (2000) menjelaskan bahwa selama dua dekade beberapa metode seleksi telah diperkenalkan, dipelajari dan dibandingkan. Beberapa jenis seleksi yang umum dipakai adalah:

1. Roulette wheel selection. Metode ini diajukan oleh John Holland. Ide dasarnya adalah untuk menentukan proporsi probabilitas seleksi atau probabilitas survival pada tiap kromosom sesuai dengan nilai fitness-nya. Individu dipetakan dalam suatu segmen garis secara berurutan sedemikian hingga tiap segmen individu memiliki ukuran yang sama dengan ukuran fitness-nya. Sebuah bilangan random dibangkitkan dan individu yang memiliki segmen dalam kawasan bilangan random tersebut akan terseleksi. Proses ini diulang hingga diperoleh sejumlah individu yang diharapkan.

2. (μ + λ) selection. Metode ini merupakan prosedur deterministik yang memilih kromosom terbaik dari orang tua dan keturunan. Metode ini biasanya digunakan pada masalah optimasi combinatorial.

3. Tournament selection. Metode ini memilih secara acak sejumlah kromosom dan memilih kromosom terbaik untuk reproduksi.

4. Steady-state reproduction. Pada metode ini sejumlah fitness parents yang terburuk digantikan dengan sejumlah individu baru (offspring).

5. Ranking and scaling. Ide dasar metode ini adalah mengurutkan berdasarkan ranking fitness-nya, kemudian menetapkan probabilitas seleksi tiap kromosom berdasarkan urutan ranking-nya.

6. Sharing. Teknik sharing diperkenalkan oleh Goldberg dan Richardson untuk optimasi dengan fungsi multi model. Teknik ini digunakan untuk menjaga keanekaragaman populasi. Fungsi sharing adalah sebuah cara untuk menentukan degradasi fitness individu dikarenakan jaraknya dengan tetangga. Dengan adanya degradasi, probabilitas reproduksi individu pada puncak keramaian ditahan, individu lain akan memperoleh keturunan.

Gen dan Cheng (2000) menjelaskan bahwa beberapa operator cross-over untuk pengkodean dengan bilangan riil dapat dibagi menjadi 4 metode:

1. Operator konvensional. Operator konvensional merupakan adaptasi operator biner untuk yang dipakai untuk operator bilangan riil.

2. Operator aritmatika. Konsep dasar operator jenis ini diambil dari convex set theory. Operator kawin silang (cross-over) aritmatika didefinisikan sebagai kombinasi dari dua kromosom yang menggunakan persamaan di bawah ini.

x1′ = λ1. x1 + λ2. x2

x2′ = λ1. x2 + λ2. x1

λ1 + λ1 = 1

λ1 ≥ 0

λ2 ≥ 0

3. Operator berdasarkan arah. Pada metode ini digunakan nilai dari fungsi sasaran untuk menentukan arah dari pencarian genetik. Operator akan membuat keturunan tunggal x’ dari dua orang tua x1 dan x2 sesuai dengan persamaan (21), r merupakan bilangan acak antara 0 dan 1. Diasumsikan bahwa x2 lebih baik dari x1.

x’ = r(x2 – x1) + x2

4. Operator Stokastik. Metode ini menggunakan bilangan acak untuk melakukan mutasi genetik individu. Mutasi diperlukan untuk memperluas ruang pencarian genetik, sehingga hasil optimasi tidak terjebak pada solusi optimum lokal.

Yohan Naftali
http://yohanli.com

56 Comments

ismet

Pak Yohan…
saya mw tanya.

current system Algoritma genetika yg ada sekarang sprt apa?
dan apa kelemahan2 pada Algoritma genetika?

karena skripsi saya menggunakan metode Algoritma genetika.

Thx ya. :-)

Saiful

Bang Yohan kasih tau donk tips cara buat cromosom + kasih contoh masalahnya skalian sampai kita dapat nilai fitness yg sesuai.
makasi bang yohan.

cho

halo mas admin

saya ingin mempelajari tentang cara mengoptimasi bobot pada jaringan saraf tiruan dengan menggunakan algoritma genetika. bagaimanakah mekanismenya?
software apa yang bisa saya gunakan?
jika ada literatur yang berhubungan dan memungkinkan untuk saya pelajari mohon di-share ya, mas…. (via email lebih ok)
mohon sangat pncerahannya
terima kasih

Kun hery

Bingung cari penerapan kombinatorial pada gps

sisilia

sya mau tnya.. metode dr stiap operator dlm algen yg lbh baik untuk dgunakan dlm penjadwalan kuliah itu apa ya?? Dan ada ga’ contoh2 implemtsi algen pnjadwalan kuliah dlm delphi??? trma kasih sblmx…

jevi

saya mau tanx gan ..? mencari kromoson sampai nilai fitnesx gmna gan.untuk optimasi pengisian gudang..terimakasih gan mintak tolong….

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.