Anda di halaman 1dari 11

algoritma genetika ditemukan oleh John H. Holland dari University of Michigan.

Manurut Holland Apabila evolusi dapat bekerja dengan sangat baik untuk organism, mengapa tidak dapat digunakan untuk program computer ?. Teori dasarnya ialah genetic bawaan dari populasi yang ada secara potensial memiliki solusi, atau solusi yang lebih baik, terhadap masalah yang akan dihadapi. solusi ini belum aktif karena karena kombinasi genetic yang dialami terpecah dalam beberapa subjek. Algoritma genetika merupakan cabang dari algoritma evolusi yang merupakan metode adaptif yang biasa digunakan untuk memecahkan untuk suatu pencarian nilai dalam sebuah masalah optimisasi. Algoritma genetic adalah teknik pencarian stokastik yang bekerja berdasarkan mekanisme seleksi alami dan genetika alami. Dan setiap individu dalam populasi disebut kromosom yang direpresentasikan sebagai suatu solusi awal terhadap masalah yang sedang ditemui. Algoritma genetika didasarkan pada proses genetika yang ada dalam mahluk hidup yaitu perkembangan generasi dalam sebuah populasi yang alami, secara lambat laun mengikuti prinsip seleksi alam atau siapa yang kuat dia yang akan beetahan.dengan meniru proses tersebut , algoritma genetika dapat digunakan untuk mencari solusi permasalahan permasalahan yang ada dalam dunia nyata. Algoritma genetic merupakan suatu algoritma pencarian (searching ) yang memanfaatkan analogi mekanisme seleksi alamiah dan mekanisme kawin silang, mutasi, inverse, dan lain-lain yang ada pada genetika. pada genetika, kromosom tersusun dari gen-gen. Tiap gen mempunyai sifat tertentu (allele), dan posisi tertentu (locus). Satu atau lebih kromosom membentuk paket genetic yang disebut genotip. interaksi genotip dengan lingkungannya disebut fenotip. pada algoritma genetika, kromosom berpadanan dengan string, dan gen dengan karakter. setiap karakter mempunyai posisi (locus) dan arti tertentu (allele). satu atau lebih string bergabung membentuk struktur (genotip), dan bila struktur tersebut di-decode-kan akan diperoleh salah satu alternative solusi (fenotif). Dalam algoritma genetic solusi dari permasalahan yang dihadapi dikodekan sebagai kromosomkromosom. dalam tahap awal, kromosom-kromosom ini dibangkitkan secara acak dalam sebuah populasi. kromosom-kromosom ini kemudian dievaluasi tingkat penyesuaian diri terhadap lingkungannya dengan sebuah nilai yang dinamakan sebagai nilai suaian (fitness value). niali suaian ini biasanya berhubungan erat dengan fungsi tujuan dari permasalahan yang hendak diselesaikan. Beberapa teori dasar evolusi yang diadopsi oleh algoritma genetika adalah : 1. Evolusi adalah proses yang bekerja pada kromosom bukan pada makhluk hidup yang dikodekannya. 2. Seleksi alamiah adalah hubungan antara kromosom dan kinerja dari struktur yang dikodekannya. proses seleksi alamiah menyebabkan kromosom yang mengkodekan struktur yang sesuai lebih banyak direproduksi dibandingkan yang tidak sesuai. 3. proses reproduksi adalah titik saat terjadi evolusi, mutasi, dapat menyebabkan kromosom anak berbeda dengan induknya, dan rekombinasi akan menciptakan kromosom yang jauh berbeda dengan mengkobinasikan bagian kromosom dari kedua induknya.

4. evolusi biologis tidak mempunyai memori. apapun yang berhubungan dengan fungsi individu dalam lingkungannya terdapat dalam gen ( sekumpulan kromosom yang dibawa individu) dan struktur yang dikodekannya. Individu-individu dalam suatu populasi dianalogikan dengan set-set solusi yang mungkin dari suatu permasalahan optimisasi. sebagai kromosom pada umumnya digunakan string dengan digit biner 1 dan 0. Namun hal ini tidak selalu demikian, tergantung dasar yang digunakan untuk mempresentasikan sebuah set solusi dalam permasalahan yang dihadapi. Setiap set solusi mempunyai fungsi suaian (fitness) terhadap tujuan yang akan dicapai. semakin tinggi suaiannya maka set solusi tersebut akan memiliki peluang yang besar untuk menuju solusi optimum yang dikehendaki. Set solusi mempunyai nilai suaian yabg rendah akan dihapus dan diganti dengan set solusi yang baru. Set solusi yang baru tersebut dibentuk berdasarkan informasi-informasi genetika yang bermanfaat dari set solusi sebelumnya yang mempunyai nilai suaian tinggi. Algoritma genetic bekerja dengan sebuah populasi yang terdiri dari individu-individu yang masing-masing individu mempresentasikan sebuah solusi yang mungkin bagi persoalan yang ada. dalam kaitan ini individu dilambangkan dengan sebuah nilai fitness yang akan digunakan untuk mencari solusi terbaik dari persoalan yang ada. Terminologi Algoritma Genetika Banyak problem optimisasi yang sulit dipecahkan dengan teknik optimisasi yang deterministic. Para peneliti kemudian meniru proses evolusi atau mahluk hidupnya dalam usahanya untuk memecahkan masalah tersebut. Pendekatan ini melahirkan teknik optimasi yang disebut evolutionary algorithms. Karena GA berakar pada genetika dan ilmu computer, maka banyak digunakan istilah-istilah dari kedua bidang tersebut. Istilah-istilah tersebut dapat disesuaikan sebagai berikut : a. Kromosom Kromosom merupakan tempat penyimpanan informasi genetika. Di dalam GA pada umumnya string dianalogikan sebagai kromosom. b. Genotype (struktur) Kombinasi satu atau beberapa kromosom membentuk fungsi kerja suatu organism. Interaksi sekumpulan kromosom tersebut genotype. c. Phenotype (set parameter) interaksi di dalam struktur terjadi karena adanya proses transformasi kode-kode genetika. Modifikasi ini disebut phenotype. Phenotype tersebut merupakan representasi set parameter masalah yang sedang dihadapi. Representasi kode dapat berupa numeric atau non numeric. d. Genes Suatu kromosom dibentuk oleh beberapa gen e. Alleles (feature value) Suatu feature memiliki nilai feature tertentu yang disebut dengan allele f. Locus (positioning)

Letak gen dalam suatu kromosom disebut locus. Setiap feature memiliki urutan posisi di dalam string. Ruang Pencarian Algoritma genetika dapat dijalankan berdasarkan teori evolusi, maka setiap evolusi harus direpresentasikan dalam sebuah kode yang sesuai untuk persoalan. Kode yang digunakan harus dapat mewakili seluruh ruang penyelesaian. Pada algoritma genetika sebuah solusi pada sebuah persoalan diasumsikan sebagai sebuah kromosom yang terdiri dari beberapa gen. Sedangkan populasi adalah himpunan dari beberapa kromosom di atas populasi tersebut yang digunakan algoritma genetika untuk memulai melakukan pencarian pengkodean dan dapat digambarkan seperti terlihat pada gambar 4.1 . Algoritma genetika bekerja pada daerah pengkodean dan juga daerah solusi. Operasi genetika (tukar silang dan mutasi) bekerja pada daerah pongkedean (kromosom ) sedangkan proses evaluasi dari proses seleksi bekerja pada daerah solusi. Kromosom gen 1 2 1 1 2 2 3 3 .. .. N N Populasi M-1 M 1 1 2 2 3 3 .. .. N N M=besar N = panjang kromosom

Representasi Bgaimana merepresentasikan permasalahan dalam kromosom merupakan salah satu isu yang terpenting dalam GA. Dalam praktik selain string biner, juga sering digunakan floating point dan abjad. Goldberg (1989) berpendapat bahwa representasi dengan string biner mempunyai jumlah skema yang terbesar . Sebaliknya Antonisse (1992) mengatakan bahwa representasi dengan abjad mempunyai jumlah skema yang lebih banyak.

Fisibilitas dan legalitas Fisibilitas mempertanyakan apakah sebuah solusi yang direpresentasikan terletak dalam daerah yang feasible dari domain permalahan

Infeasible

Daerah Pengkodean

Feasible Ilegal

daerah feasible

Gambar 4.3 Fisibilitas dan Legalitas Legalitas merujuk pada kenyataan apakah sebuah kromosom benar-benar merepresentasikan sebuah solusi dari domain permasalahan. Pemetaan Pemetaan dari kromosom ke solusi dapat dikelompokan menjadi : Pemetaan satu satu Pemetaan n satu Pemetaan satu n Pemetaan 1 - n Daerah Pengkodean Pemetaan n-1 Pemetaan 1-1 Daerah solusi

Gambar 4.3 Pemetaan dari Kromosom ke Solusi

Pemetaan satu satu merupakan yang terbaik karena pada pemetaan satu kromosom tepat dipasangkan dengan satu solusi. pada pemetaan n satu, sejumlah n cromosom mewakili satu solusi

yang sama. Pemetaan satu n merelasikan satu kromosom dengan beberapa solusi. Hal ini menyebabkan ketidakjelasan solusi yang sebenarnya dituju.

4.2 STRUKTUR GA GA merupakan teknik pencarian yang didasarkan pada mekanisme seleksi alam dan genetika alami. Berbeda dengan teknik pencarian konvensioanl, GA berangkat dari himpunan solusi yang dihasilkan secara acak. Himpunan solusi dinamakan populasi (population). Masing-masing individu dalam populasi disebut cromossom yang merupakan representasi dari suatu solusi. Sebuah kromosom dinyatakan dengan rangkaian (string) dari symbol, dan biasanya dengan string biner kromosom-kromosom berevolusi dalam suatu proses iterasi yang berkelanjutan yang disebut dengan generasi (generation). Pada setiap generasi, kromossom dievaluasi berdasarkan suatu fungsi evaluasi (fitness function). Kromosom dengan nilai fitness (fitness value). Yang lebih tinggi mempunyai kemungkinan yang lebih besar untuk dipilih menjadi parents dalam proses reproduksi. Unutk menghasilkan generasi berikutnya, dibentuk kromosom baru yang disebut dengan offspring melalui suatu proses tukar silang dan atau mutasi dari parent. Setelah beberapa generasi maka GA akan konvergen pada kromosom terbaik yang diharapkan merupakan solusi yang optimal. Biasanya inisialisasi dihasilkan secara random. Reproduksi khususnya akan melakasanakan proses evaluasi dengan dua macam operator yang dimiliki oleh GA yaitu tukar silang dan mutasi sehingga akan dihasilkan kromosom baru yang disebut offspring. Dapat dinyatakan bahwa pada GA terdapat hanya 2 operasi pokok yaitu: Operator genetika : Crossover dan mutation Operasi evaluasi : Seleksi Operasi genetika meniru proses penurunana gen gen pada proses evaluasi untuk menghasilkan offspring pada setiap generasi. Nilai Awal Dari Proses Pencarian Kebanyakan metode optimasi klasik memasukan urutan deterministic dari komputasi berdasarkan gradient atau turunan dengan orde lebih tinggi dari fungsi objektif. Motedi ini diterapkan pada titik tunggal dalam space search. Pendekatan point to point ini dapat menyebar pada lokasi optimal. GA menampilkan multiple directional search dengan menga populasi dari solusi potensial . Pada pendekatan algoritma konvensional, pencarian solusi berangkat dari satu nilai awal, kemudian algoritma mengeksploitasi nilai awal tersebut melalui serangkaian iterasi.

Penkodean Agar Algoritma genetika dapat dijelaskan berdasarkan teori evolusi di atas, maka setiap solusi harus direpresentasikan dalam sebuah kode yang sesuai dengan persoalan. Kode yang digunakan harus dapat mewakili seluruh ruang penyelesaian.

Proses Algoritma Genetika Dalam pendekatan GA diawali dengan pembuatan himpunan solusi baru (initialization) yang ditempatkan pada penampungan populasi dilakukan evaluasi terhadap inisialisasi atau solusi. Apabila solusi tersebut bukan merupakan solusi optimal, kemudian dilakukan proses reproduksi (reproduction) dengan memiliki individu-individu yang akan dikembangkan. penggunaan operator-operator genetic seperti pindah silang (croosover) dan mutasi (mutation) terhadap individu yang terpilih dalam penampungan individu akan menghasilkan keturunan atau generasi baru. Setelah proses evaluasi untuk perbaikan populasi, maka generasi-generasi baru akan menggantikan himpunan generasi awal (original). Inisialisasi populasi Proses pencarian solusi yang optimal dengan GA tidak dimulai dari suatu nilai awal melainkan dari sekumpulan nilai awal yang disebut populasi. Populasi awal sebagai daerah awal pencarian solusi optimal dilakukan secara acak. Pada kebanyakan GA, panjang kromosom akan disesuaikan dengan banyaknya variable dalam fungsi objektif yang akan dioptimasi. Setiap individu atau kromosom tersusun atas urutan gen dari suatu alphabet. Suatu alphabet dapat terdiri dari binary digits (0 dan 1), floating point, integer, symbol-simbol seperti A,B,C, dan seterusnya, atau juga berupa matriks dan lain sebagainya. Rancangan asli GA oleh Holland menggunakan bilangan biner sebagai reperesentasi dari gen. Representasi kromosom individual dengan menggunakan bilangan biner dapat digmbarkan sebagai berikut: 1 Kolom (gen) bil. string 1 2 0 3 1 4 1 5 0 . n-1 1 n 0

Gambar 4.7 Representasi Kromosom Individual dengan Bilangan Biner

Selain masalah-masalah tersebut diatas, hal yang juga harus diperhatikan dalam hal inisialisasi populasi yaitu ukuran populasi (population size). Jika ukuran populasi terlalu kecil, proses pencarian nilai optimum akan konvergen dengan cepat karena populasi yang tidak menyediakan cukup materi untuk

mencakup ruang permasalahan. Sebaliknya jika ukuran populasi terlalu besar maka proses komputasi akan menjadi lambat. Fungsi Evaluasi Pemilihan individu untuk menghasilkan keturunan berikutnya sangat memegang peranan penting dalam GA. Evaluasi dapat dilakukan berdasarkan fitness value setiap individu. Fitness value setiap individu (cromossom) berhubungan langsung dengan nilai fungsi objektif. Dengan menggunaka n reperesentase biner, fitness value untuk individu dapat dihitung dengan menggunakan rumus: di mana adalah nilai bit (kolom) ke j yang berkoresponden dengan individu ke-I dan dari bit (kolom) ke-j. adalah biaya

Pemilihan individu dalam proses reproduksi dilakukan secara probabilistic., di mana satu individu dalam populasi dapat dipilih lebih dari satu kali untuk menghasilkan generasi berikutnya. Terdapat beberapa metode seleksi antara lain proportionate selection, roulette wheel selection, fitness scalling techniques, tournament elitist model dan ranking methods. Metode seleksi proporsional (proportionate selection) menghitung probabilitas individu untuk terpilih dengan rumus:

Di mana

adalah fitness value individu ke , dan

adalah ukuran populasi.

Reproduksi Reproduction (reproduksi) adalah proses penyalinan string individu berdasarkan nilai fungsi tujuannya disebut dengan fitness. Fungsi ini dapat dibayangkan sebagai pengukuran keuntungan (profit) atau kegunaan (utility) yang akan dimaksimalkan. Penyalinan string berdasarkan nilai fitness berarti bahwa string yang memiliki nilai fitness yang lebih tinggi akan mempunyai kemungkinan lebih besar untuk berpartisipasi dalam membentuk keturunan. Individu-individu baru hasil reproduksi (biasanya individu dengan nilai fitness value di atas ratarata) akan menggantikan individu-individu lama yang ada dalam populasi secara acak. Metode penggantian ini disebut dengan incremental replacement atau steady state replacement. Di samping itu terdapat metode replacement yaitu populasi generasi baru degenerate kesuluruhan dan kemudian akan menggantikan semua populasi parent.

Proses seleksi Dalam praktik penggunaan putaran roulet, diambil sebagai procedure seleksi. Putaran roulet dapat digmbarkan sebagai berikut: a. Hitung harga ketahanan eva untuk masing-masing kromosom populasi b. Hitung kemempuan total untuk populasi; populasi c. Hitung probabilitas kumulatif untuk masing-masing kromosom populasi d. Hitung probabilitas kumulatif untuk masing-masing kromosom populasi eva

Proses seleksi dimulai dengan memutar roulet sejumlah populasi masing-masing waktu dari sini memilih satu kromosom dengan langkah-langkah sebagai berikut: Langkah 1 Langkah 2 Dibuat suatu angka random r pada kisar Jika r < q, kemudian pilih kromosom pertama ; sebaliknya, pilih kromosom ke sedemikian sehingga .

Proses Evaluasi Proses evaluasi fitness (ketahanan) kromosom terdiri atas tiga langkah seperti berikut: Langkah 1 konversi kromosom genotype ke phenotype. Di sini berarti konversi barisan biner menjadi harga nyata relative populasi. ( ) evaluasi fungsi objektif konversi harga fungsi objektif menjadi ketahapan, untuk maksimal soal. Ketahanan = harga fungsi objektif eva ( ) populasi

Langkah 2 Langkah 3

Crossover & Mutasi Penentuan jumlah kromosom induk yang diharapkan untuk melakukan persilangan dilakukan dengan cara menentukan probabilitas persilangan dari pop size kromosom induk . Kemudian melakukan pembentukan bilangan acak sejumlah pop size untuk memilih kromosom-kromosom induk yang akan melakukan persilangan, apabila bilangan acak yang dihasilkan adalah lebih kecil dari probabilitas persilangan yang telah ditentukan sebelumnya, maka kromosom induk tersebut terpilih untuk melakukan persilangan. Metode-metode crossover yang digunakan adalah sebagai berikut:

Crossover dengan Representasi Bit a. Satu titik persilangan dipilih, string biner pada kromosom sampai titik persilangan diambil dari induk pertama, dan sisanya dari induk ke dua. b. Two point crossover Dua titik persilangan dipilih, string biner pada kromosom sampai titik persilangan pertama, bagian dari titik persilangan pertama ke persilangan ke dua diambil dari induk ke dua dan sisanya dari induk pertama lagi. c. Uniform crossover Secara random diambil dari induk pertama atau dari induk kedua . d. Arithmetic crossover Banyak operasi aritmetik yang dilakukan untuk membuat offspring.

Crossover dengan Representasi Integer single point crossover, yaitu satu titik persilangan dipilih, kemudian menempatkan gen-gen sebelum titik potong tersebut ke dalam ruang gen anak, dan selanjutnya mengisi ruang kosong gen anak dengan gen dari induk ke dua yang belum ada dalm ruang gen anak yang sudah terisi.

Crossover dengan Representasi Pohon Tree crossover, yaitu satu titik dipilih diantara kedua induk , induk dibagi pada titik tersebut , dan bagian bawah dari titik persilangan diambil dari induk yang lain untuk mendapatkan offspring yang baru. / /

Pada penelitian ini akan dilakukan persilangan dengan menggunakan metode one point crossover. Persilangan merupakan binary operator, sehingga memerlukan dua kromosom iduk yang dipasangkan secara acak untuk menghasilkan satu atau dua kromosom anak. Jika jumlah kromosom induk yang terpilih adalah genap, maka kromosom-kromosom induk tersebut langsung dipasangkan satu sama lain secara acak, namun apabila jumlah kromosom kromosom induk yang terpilih adalah ganjil, maka kromosom induk yang terpilih terakhir akan dihapus, kemudian kromosom-kromosom induk tersebut dipasangkan satu sama lain secara acak.

Mutasi Metode mutasi yang digunakan pada setiap jenis representasi adalah sebagai berikut: 1. Mutasi Kromosom dengan Representasi bit Caranya dengan memilih bit dan kemudian dibalikkan, apabial tadinya 0 maka dibalikkan menjadi 1, dan sebaliknya. 2. Mutasi Kromosom dengan Representasi Floating Point Caranya dengan melakukan penambahan bilangan kecil untuk pengkodean nilai riil. 3. Mutasi Kromosom dengan Representasi Integer Caranya dengan melakukan penukaran urutan dengan memilih dua titik dan menukarkan posisinya. 4. Mutasi Kromosom denga Representasi Pohon Dengan melakukan pemilihan satu titik di antara kedua induk dan kemudian dipotong, dilakukan perpindahan posisi sehingga akan didapat offspring baru yang berbeda dengan induknya. Penentuan jumlah krmosom induk yang diharapkan akan mengalami mutasi pada gen dilakukan dengan cara menetukan probabilitas mutasi dari pop size kromosom induk . Probabilitas mutasi bergerak dalam ruang kromosom seluruh populasi. Sehingga dimulai dari pemilihan substansi yang akan mengalami mutasi dilakukan pada kromosom. Setelah terpilih kromosom yang akan melakukan mutasi, baru kemudian dalam kromosom tersebut dipilih secara acak gen yang akan mengalami mutasi. Seperti halnya pada persilangan di atas, sehingga langkah selanjutnya adalah melakukan pembentukan bilangan acak sejumlah pop size, apabila bilangan acak yang dihasilkan adalah lebih kecil dari probabilitas mutasi yang telah ditentukan sebelumnya, maka kromosom induk tersebut terpilih sebagai kromosom yang akan mengalami mutasi pada gen. Mutasi adalah unary operator, sehingga hanya memerlukan satu kromosom induk untuk menghasilkan satu kromosom anak. pada kasus penjadwalan dengan memperhatikan urutan, perubahan sedikit pada urutan akan berpengaruh banyak pada hasil yang dicapai. Sehingga operator

mutasi yang sering digunakan untuk menyelesaikan kasus seperti ini adalah operator mutasi integer atau sering disebut mutasi shift. Mengingat operator mutasi shift lebih mempertahankan urutan di dalam proses mutasinya, maka operator mutasi yang akan digunakan dalam hal ini adalah operator mutasi shift.

KELEBIHAN DAN KEKURANGAN ALGORITMA GENETIKA Kelebihan algoritma genetic terdapat pada bebrapa hal, yaitu: 1. Algoritma genetic bekerja dengan memanipulasi kode-kode set parameter, bukan dengan hasil manipulasi nilai parameter itu sendiri. 2. Algoritma gentik bebas untuk mengkodekan masalah dengan berbagai cara sehingga algoritma genetic tidak dibatasi oleh batasan metode lainnya. 3. Algoritma genetic bekerja dengan populasi titik, bukan satu titik. 4. Algoritma genetic menggunakan informasi fungsi tujuan, bukan informasi turunan dan yang lainnya 5. Algoritma genetic menggunakan aturan perpindahan probabilistic, bukan deterministic. 6. Algoritma gentika memerlukan iterasi yang berulang-ulang dan dalam jumlah yang relative banyak, sehingga algoritma ini perlu dibangun dalam sebuah program aplikasi computer untuk menyelesaikan permasalahan yang dihadapi.

Kekurangan algoritma genetic terdapat pada beberapa hal, yaitu: 1. Algoritma genetika bekerja dengan bilangan acak pada kromosom awal, sehingga memungkinkan kromosom terbaik tidak terlibat dalam proses. 2. Algoritma genetika menggunakan pembangkitan bilangan random dalam setiap pemilihan kromosom baik untuk induk, proses persilangan maupun mutasi. 3. Solusi yang dihasilkan belum tentu merupakan solusi yang optimal, karena sangat dipengaruhi oleh bilangan acak yang dibangkitkan.