Penyelesaian masalah knapsack dengan algoritma genetika - USD Repository

  

PENYELESAIAN MASALAH KNAPSACK

DENGAN ALGORITMA GENETIKA

Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat

  

Memperoleh Gelar Sarjana Sains

Program Studi Matematika

Disusun oleh:

Archy Tussasy XQ

  

023114025

PROGRAM STUDI MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

  

2009

  

PENYELESAIAN MASALAH KNAPSACK

DENGAN ALGORITMA GENETIKA

Skripsi

Diajukan untuk Memenuhi Salah Satu Syarat

  

Memperoleh Gelar Sarjana Sains

Program Studi Matematika

Disusun oleh:

Archy Tussasy XQ

  

023114025

PROGRAM STUDI MATEMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS SANATA DHARMA

YOGYAKARTA

  

2009

  

SOLVING THE KNAPSACK PROBLEM

WITH GENETIC ALGORITHM

THESIS

Presented As a Partial Fulfillment of The Requirements

To Obtain The Sarjana Sains Degree

  

In Mathematics

by:

Archy Tussasy XQ

023114025

  

MATHEMATICS STUDY PROGRAM

DEPARTMENT OF MATHEMATICS

FACULTY OF SCIENCE AND TECHNOLOGY

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2009

  HALAMAN PERSEMBAHAN Bersyukurlah bahwa kita belum siap memiliki segala sesuatu yang kita inginkan.

  Seandainya sudah, apalagi yang harus diinginkan? Bersyukurlah apabila kita tidak tahu sesuatu. Karena itu memberimu kesempatan untuk belajar. Bersyukurlah untuk masa-masa sulit. Dimasa itulah kita akan bertumbuh..... Bersyukurlah untuk keterbatasanmu Karena itu memnberimu kesempatan untuk berkembang Bersyukurlah untuk setiap tantangan baru Karena itu akan membangun kekuatan dan karaktermu Bersyukurlah untuk kesalahan yang kamu buat. Karena itulah pelajaran yang berharga. Bersyukurlah Selalu!!

  Karya ini kupersembahkan Untuk Tuhan Yesus Kristus

  Untuk Ayah, Ibu dan Adikku Saudara, sahabat dan temanku

  

ABSTRAK

  Masalah knapsack merupakan salah satu masalah NP-Complete(Non Determisnistic Polynomial Complete Problem), yang merupakan masalah yang sampai saat ini belum ditemukan adanya algoritma eksak yang dapat memberikan solusi yang eksak dalam waktu komputasi yang efisien.Pada umumnya masalah ini diselesaikan dengan algoritma pendekatan atau algoritma heuristic. Salah satu algoritma heuristic yang dapat digunakan dalam menyelesaikan masalah knapsack ini adalah Algoritma Genetika.

  Sistem kerja Algoritma Genetika dimulai dari inisialisasi populasi secara random. Setiap individu di dalam populasi akan mengalami proses yang didasarkan pada tiga operator genetik, yakni seleksi, crossover, mutasi. Anak(offspring) yang dihasilkan adalah solusi-solusi yang diberikan. Karena populasi dijaga untuk tetap konstan, maka sesulit apapun permasalahan optimasi tersebut,dengan Algoritma Genetika masalah tersebut akan selalu mempunyai penyelesaian, walaupun terkadang hasilnya belum tentu optimal.

  ABSTRACT

  Knapsack problem was one of the problem of NP-Complete (Non Deterministic Polynomial Complete Problem), that problem was not found yet about the exact algorithm that can give the exact solution in efficient computation time. Generally, this problem is solved by approached algorithm or heuristic algorithm. One of heuristic algorithm that can be used to solve knapsack problem is Genetics Algorithm.

  The standard Genetic Algorithm starts with an initial population of individuals created at random. Then, this population evolves through time by a string manipulation process based in three genetic operators: reproduction,

  

crossover and mutation. Offspring that resulted from that process was the

  solutions of this problem. Because the population was kept to be constant, so although the optimization problem was so complete, the problem will be solved with Genetics Algorithm, even tough the result was not optimal yet.

  K ATA PENGANTAR Puji syukur kehadirat Allah Bapa di Surga yang telah melimpahkan kasih

dan karuniaNya sehingga penulis dapat menyelesaikan skripsi dengan judul

“Penyelesaian Masalah Knapsack dengan Algoritma Genetika”

  Selama penulisan skripsi ini ada berbagai kesenangan, kesusahan, dan

tantangan yang penulis hadapi. Namun karena kuasa dan campur tangan Allah

sendiri yang senantiasa menaungi penulis dan keterlibatan pihak-pihak yang

membantu semua hal itu dapat teratasi.

  Oleh karena itu pada kesempatan yang baik ini penulis ingin mengucapkan terimakasih kepada:

  1. Ibu Lusia Krismiyati Budiasih, S.Si., M.Si. selaku Ketua Prodi Matematika, dosen pembimbing dan dosen penguji, yang telah berkenan meluangkan waktu memberikan pengarahan, motivasi, saran dan masukan dalam menyelesaikan skripsi ini.

2. Bapak Yosef Agung Cahyanta, S.T., M.T, selaku Dekan Fakultas Sains dan Teknologi.

  3. Bapak Drs. H. J Haris Sriwindono, selaku dosen pembimbing yang telah berkenan meluangkan waktu memberikan pengarahan, motivasi dan

dengan penuh sabar membimbing penulis dalam menyusun skripsi ini.

  4. Bapak Eko Hari Parmadi, St, S.Si., M.Kom dan Bapak Joko Nugroho, Y., S.Si Selaku dosen penguji yang telah memberikan saran dan masukan bagi penulis dalam menyelesaikan skripsi ini.

  

5. Bapak Ir. Ig. Aris Dwiatmoko, selaku Dosen Pembimbing Akademik, yang

telah memberikan bimbingan selama studi dan menjadi teman dalam menjalani suka dan duka selama perkuliahan

  

6. Bapak dan Ibu Dosen Fakultas Sains dan Teknologi yang telah membantu

dan membimbing penulis selama belajar di USD

  

7. Segenap Staff di sekretariat Fakultas Sains dan Teknologi atas bantuan

dan kerjasamanya dalam melayani kepentingan mahasiswa

  

8. Ayahku Boyong XQ, ibuku Tuti Mulyaningsih, dan Adikku Maxi

Resitama XQ atas doa, kesabaran, perhatian, kesempatan yang diberikan baik material dan spiritual sehingga skripsi ini dapat selesai.

  

9. Sahabat dan keluargaku di Kost “Zusi Arib”, bapak& ibu kost, N3, Mitha,

Lian, Meme, Imeth, Alin, M’Tutik, M’Mely, Makdum, Evi, Kasis, Indah, Coy, Iles, Ina yang telah memberi kasih sayang, perhatian, motivasi selama menyusun skripsi dan menempuh kuliah di USD.

10. Damasus Arif Syaifudin,dan Sahabatku Agung Cole, Nusi A, Novita C yang telah membantu dalam penyusunan skripsi.

  

11. Ibu Yossie Retnaningrum, BA. selaku Kepala Sekolah, Ibu Lanny

Kristiani ( Sie Kurikulum), rekan-rekan kerja yang lain di SMP Pantekosta dan Keluarga Besar Yayasan Sekolah Pantekosta Magelang yang telah memberikan doa ndan motivasi dalam penyusunan skripsi.

  

12. Sahabatku Altoria Mavida, Ika C, Yolenta, Debby dan teman-teman kuliah

angkatan 2002 yang telah membantu penulis selama menyusun skripsi dan selama menempuh kuliah di USD.

13. Dan semua pihak yang telah bersedia membantu yang tidak bisa saya sebutkan satu persatu.

  Penulis sadar bahwa skripsi ini masih jauh dari sempurna, oleh karena itu

masih perlu penyempurnaan dari teman sekalian. Semoga skripsi ini bermanfaat

bagi kita semua.

  Yogyakarta, Februari 2009 Penulis

  DAFTAR ISI

  HALAMAN JUDUL………………………………………………………….... i HALAMAN PERSETUJUAN PEMBIMBING………………………………... ii HALAMAN PENGESAHAN………………………………………………….. iii HALAMAN PERSEMBAHAN………………………………………………... iv PERNYATAAN KEASLIAN KARYA………………………………………... v ABSTRAK…………………………………………………………………….... vi ABSTRACT……………………………………………………………………. vii KATA PENGANTAR………………………………………………………..... viii DAFTAR ISI………………………………………………………………….... xi DAFTAR TABEL…………………………………………………………….... xiv DAFTAR GAMBAR........................................................................................... xv DAFTAR LAMPIRAN………………………………………………………... xiv

  BAB I PENDAHULUAN

  1 A. Latar Belakang Masalah...............................................................1

  B. Perumusan Masalah……………………………………………. 4

  C. Pembatasan Masalah…………………………………………… 4

  D. Tujuan Penulisan……………………………………………….. 5

  E. Metode Penulisan ……………………………………………… 5

  F. Manfaat Penulisan……………………………………………… 5

  G. Sistematika Penulisan…………………………………………..5

  BAB II ALGORITMA GENETIKA

  7 A. Latar Belakang Biologi………………………………………… 7

  B. Algoritma Genetika……………………………………………. 8

  1. Pengantar Algoritma Genetika……………………………8

  2. Deskripsi Algoritma Genetika………………………........10

  3. Struktur Umum Algoritma Genetika………………….. ...13

  4. Operator dan Fungsi Evaluasi………………………........ 15

  5. Pengkodean…………………………………………..... ...16

  5.1 Pengkodean Biner……………………………... 16

  5.2 Pengkodean Permutasi……………………….... 17

  5.3 Pengkodean Nilai……………………………….18

  5.4 Pengkodean Pohon………………………………18

  6. Seleksi…………………………………………………… 19

  6.1 Seleksi Roda Roulette…………………………. 19

  6.2 Seleksi Ranking………………………………... 20

  6.3 Seleksi Tournament……………………………. 21

  7. Evolusi…………………………………………………....22

  7.1 Persilangan / Crossover………………………... 22

  7.1.1 Persilangan Satu Titik…………………. 23

  7.1.2 Persilangan Dua titik…………………... 24

  7.2 Mutasi………………………………………….. 24

  C. Masalah Knapsack…………………………………………….. 26

BAB III ALGORITMA GENETIKA UNTUK MASALAH KNAPSACK 33 A. Analisis…………………………………………………………. 33

  1. Representasi Masalah………………………………………. 33

  2. Pembangkitan Kromosom………………………………….. 35

  3. Pencarian Nilai Fitness Untuk Masing-masing kromosom …………………………………………………..36

  4. Pemilihan Kromosom Untuk Dijadikan Orang Tua……........37

  5. Proses Reproduksi Untuk Mendapatkan Kromosom Baru .....38

  a. Operasi Persilangan…………………………………. ….39

  b. Operasi Mutasi……………………………………….…..40

6. Skema Update Generasi……………………………………. 41

  BAB IV IMPLEMENTASI DAN ANALISA HASIL PROGRAM

  43 A. Flowchart…………………………………………………….…43

  B. Analisis Hasil Program………………………………………...44

  BAB V PENUTUP

  48

  1. Kesimpulan…………………………………………………….. 48

  2. Saran…………………………………………………………… 48 DAFTAR PUSTAKA………………………………………………………….. 51 LAMPIRAN........................................................................................................ 52

  

DAFTAR TABEL

  Tabel 2. 2. 2. 1 Tabel istilah dalam algoritma genetika…………………. 12 Tabel 2. 2. 6. 1 Contoh populasi dengan 5 kromosom yang diberi fitness baru........................................................................ 21 Tabel 2. 3. 1. 1 Contoh masalah knapsack…………………………….... 28 Tabel 2.

  3.

  1.

  2 Tabel feasible solution knapsack dengan pendekatan matematika........................................................................ 29 Tabel 3. 1. 1 Daftar 10 barang yang akan dimuat ransel........................ 34

  

DAFTAR GAMBAR

  Gambar 2. 2. 3. 1 Ilustrasi Algoritma Genetika............................................. 14 Gambar 2. 2. 5. 1 Contoh kromosom dengan pengkodean biner................... 17 Gambar 2. 2. 5. 2 Contoh kromosom dengan pengkodean permutasi........... 17 Gambar 2. 2. 5. 3 Contoh kromosom dengan pengkodean nilai.................... 18 Gambar 2. 2. 5. 4 Contoh kromosom dengan pengkodean pohon..................19 Gambar 2. 2. 6. 1 Contoh penggunaan metode seleksi roda roulette............. 20 Gambar 2. 2. 7. 1. 1 Contoh proses persilangan 1 titik ..................................... 24 Gambar 2. 2. 7. 1. 2 Contoh proses persilangan 2 titik ..................................... 24 Gambar 2. 2. 7. 2 Contoh proses Mutasi........................................................ 25 Gambar 3. 1. 2 Contoh inisialisasi populasi awal sebanyak 10 kromosom.......................................................................... 36 Gambar 3. 1. 5. 1 Contoh perkawinan silang 1 titik pada titik ke 5............... 40 Gambar 3. 1. 5. 2 Contoh mutasi invers......................................................... 42

  

DAFTAR LAMPIRAN

  1. Listing program MainMenu............................................................................ 52

  2. Listing program Menu..................................................................................... 53

  3. Listing program Contoh.................................................................................. 53

  4. Listing program Count.................................................................................... 54

  5. Listing program Inisialisasi kromosom........................................................... 64

  6. Listing program Pencarian nilai fitness…………………………………...... 64

  7. Listing program Menampilkan Nilai Fitness.................................................. 65

  8. Listing program Menghitung Linear Fitness Ranking……………………… 66

  9. Listing program MenampilkanFitness Ranking…………………………….. 66

  10. Listing program Proses seleksi........................................................................ 67

  11. Listing program Operasi Persilangan atau Crossover..................................... 67

  12. Listing program Mutasi................................................................................... 68

  13. Listing program tampil.................................................................................... 68

  14. Contoh output masalah knapsack.................................................................... 69

BAB I PENDAHULUAN A. Latar Belakang Masalah. Manusia dalam mengatasi berbagai masalah, perlu adanya suatu alat

  bantu yang diyakini dapat memberikan suatu penyelesaian yang terbaik dari permasalahan yang ada. Lalu manusia mulai berpikir untuk dapat membuat atau menciptakan peralatan-peralatan tersebut. Salah satu teknologi yang berhasil diciptakan manusia dalam bidang komputasi adalah mesin komputer.

  Perkembangan teknologi komputer dewasa ini sangat pesat, baik dari segi hardware maupun software. Pada dasarnya fungsi awal komputer adalah sebagai alat bantu hitung. Karena alasan itulah mesin komputer telah dapat berkembang luas sampai saat ini, tetapi pemakaian komputer sebagai alat komputasi melekat pada dirinya sendiri. Salah satunya adalah dalam pencarian solusi yang optimal pada masalah knapsack.

  Masalah knapsack bila dipikirkan lebih luas, sangat banyak dijumpai dalam kehidupan sehari-hari. Masalah knapsack termasuk dalam kelompok masalah optimasi yang disebut masalah NP-Complete(Non Deterministic Polynomial Complete Problem), yaitu masalah yang sangat sulit ditemukan solusinya. Kesulitan dalam masalah knapsack berasal dari tidak mungkinnya menghasilkan suatu algoritma yang memberikan hasil eksak dalam waktu komputasi cepat. Masalah knapsack memerlukan banyak perhitungan serta berkembang secara eksponensial dengan semakin besarnya ukuran masalah.

  2 Dan pada umumnya masalah-masalah NP-Complete itu diselesaikan dengan algoritma pendekatan atau algoritma heuristik.

  Algoritma genetika merupakan suatu metode penyelesaian masalah yang tergolong heuristik. Algoritma genetika dapat memberikan kemungkinan penyelesaian masalah yang sangat banyak dan mempertimbangkan suatu kemungkinan tersebut dalam mengambil keputusan. Algoritma genetika telah digunakan pada masalah-masalah yang tergolong sulit dan dalam berbagai variasi telah diterapkan ke berbagai masalah sains dan teknik yang salah satunya adalah masalah knapsack.

  Algoritma genetika pertama kali diperkenalkan oleh John Holland dan murid-muridnya di Universitas Michigan pada tahun 1960. Algoritma genetika adalah algoritma yang berdasarkan konsep teori evolusi alam dan genetika. Teori evolusi alam dan genetika pertama kali dikemukakan oleh Charles Darwin. Dalam teori genetika disebutkan bahwa sifat tertentu dari suatu makhluk hidup ditentukan oleh susunan gen dan kromosom makhluk hidup tersebut. Teori genetika dalam algoritma genetika digunakan untuk mempresentasikan setiap solusi dari masalah yang ada, karena setiap solusi diandaikan mempunyai kromosom yang berbeda dengan solusi yang lainnya. Sedangkan evolusi alam adalah proses seleksi terhadap anggota dari berbagai populasi berdasarkan tingkat ketahanan hidup suatu makhluk hidup. Proses- proses dalam evolusi alam yang digunakan dalam algoritma genetika adalah seleksi alam dan reproduksi. Proses seleksi alam digunakan untuk memilih solusi yang baik, sedangkan proses reproduksi digunakan untuk menghasilkan

  3 solusi baru yang diharapkan mempunyai kromosom lebih baik dari solusi sebelumnya. Dengan pemodelan masalah yang tepat dan menerapkan mekanisme seleksi, perkawinan silang, mutasi, rekombinasi yang sesuai dengan fitnes (tingkat kesesuaian) masalah tersebut, algoritma genetika dapat memberikan solusi yang mendekati eksak. (Gen & Cheng, 1997)

  Dalam skripsi ini algoritma genetika akan digunakan untuk menyelesaikan masalah knapsack. Secara umum deskripsi permasalahan knapsack adalah sebagai berikut: dimisalkan terdapat n obyek dengan

  X i n

  masing-masing obyeknya dikatakan sebagai( ( ; = i 1 , 2 , 3 ,.... ) yang masing- masing obyek tersebut mempunyai berat atau disebut w . Setiap obyek i tersebut masing-masing memiliki nilai (profit) p yang berbeda-beda. Yang i menjadi permasalahan adalah bagaimana obyek-obyek tersebut dapat dimuat atau dimasukkan kedalam ransel (Knapsack) yang mempunyai kapasitas maksimum sebesar W. Secara Matematis permasalahan Knapsack dapat digambarkan dengan fungsi-fungsi sebagai berikut: n

  

p x

  Fungsi Tujuan Maksimum: i i ni =1

  w x W

  Fungsi Pembatas: ≤ i i

  ∑ i =1 x = atau x = i i

  1

  p > ; w > i i

  Meskipun proses kerja algoritma genetika terlihat sangat kompleks untuk permasalahan yang kecil, tetapi untuk ukuran permasalahan yang

  4 besar algoritma genetika akan memberikan hasil yang efisien. Dalam hal ini diberikan juga penyelesaian secara Zero-One(0/1) karena dalam pemilihan barang dari sejumlah barang yang ada sedemikian hingga jumlah barang yang diambil mempunyai nilai( profit ) yang maksimal tetapi total beratnya tidak melebihi kapasitas knapsack( kopor/ ransel ) yang ada. Dan setiap barang yang ada tidak dapat dipecah atau dibagi lagi, atau barang tersebut hanya mempunyai kemungkinan diambil atau ditinggalkan.

B. Perumusan Masalah

  Pokok-pokok permasalahan yang akan dibahas dalam skripsi ini adalah:

1. Bagaimana penerapan algoritma genetika pada masalah knapsck.

  2. Bagaimana membuat program untuk mendapatkan himpunan bagian dari n obyek tersebut yang dapat mengisi tepat atau kurang dari kapasitas ransel tersebut(masalah knapsack)? C.

   Pembatasan Masalah

  Pembahasan skripsi ini dibatasi pada:

  1. Ruang solusi hanya terdiri dari dua permasalahan yaitu mencari hasil yang paling baik secara Zero-One pada knapsack tersebut atau menentukan secara jelas nilai 0 atau 1 pada barang yang akan dipilih(nilai 1 berarti barang diambil sedangkan nilai 0 berarti barang tidak diambil/ ditinggalkan).

  5

  2. Barang yang akan dipilih bersifat utuh dan tidak dapat dibagi atau dipecah.

  3. Algoritma pemograman yang digunakan adalah algoritma genetika.

  4. Jumlah barang dibatasi maksimal 100 obyek.

  D. Tujuan Penulisan

  Tujuan dari penulisan skripsi ini adalah untuk menambah pengetahuan kepada pembaca mengenai algoritma genetika dan masalah knapsack, serta penerapan algoritma genetika untuk masalah knapsack.

  E. Metode Penulisan

  Penulisan skripsi ini menggunakan metode studi pustaka yaitu dengan menggunakan buku-buku, jurnal-jurnal, dan makalah-makalah yang telah dipublikasikan, sehingga tidak ditemukan hal baru.

  F. Manfaat Penulisan

  Manfaat yang diharapkan dari penulisan skripsi ini adalah dapat menyelesaikan masalah knapsack dengan waktu yang lebih singkat dengan algoritma genetika.

  G. Sistematika Penulisan

  Bab pertama adalah pendahuluan, yang berisi tentang latar belakang masalah, perumusan masalah, pembatasan masalah, tujuan penulisan, metode penulisan, manfaat penulisan, sistematika penulisan.

  6 Bab kedua adalah landasan teori,pada bab ini diuraikan tentang latar belakang biologi, algoritma genetika, pengertian masalah knapsack.

  Bab ketiga adalah penerapan algoritma genetika untuk masalah knapsack,pada bab ini akan menguraikan mengenai langkah-langkah algoritma genetika dalam menyelesaikan masalah knapsack, representasi masalah, pembentukan kromosom, pencarian nilai fitness masing-masing kromosom, operasi perkawinan silang, dan operasi mutasi.

  Bab keempat adalah implementasi dan analisa hasil program,pada bab ini berisi tentang implementasi sistem yang dibangun, meliputi penjelasan

  

flowchart , menampilkan hasil program saat dijalankan dan analisa hasil

program.

  Bab kelima adalah penutup,pada bab ini berisi kesimpulan dan saran dari sistem yang telah dibangun berdasarkan hasil pembahasan bab-bab sebelumnya

BAB II LANDASAN TEORI A. Latar Belakang Biologi Semua mahkluk hidup terdiri dari beberapa sel.Didalam masing-

  masing sel terdapat himpunan kromosom yang identik. Kromosom merupakan untaian DNA yang membentuk model yang membedakan masing-masing organisme. Sebuah kromosom terdiri dari gen-gen yang merupakan blok dari suatu DNA. Dan masing-masing gen mengkodekan sebuah susunan protein tertentu. Gen-gen tersebut mengkodekan sebuah trait (ciri bawaan), seperti warna mata, warna kulit, dan lain-lain.

  Kemungkinan “settings” untuk sebuah trait(seperti warna hitam, biru, coklat pada warna mata)disebut dengan allele. Masing-masing gen mempunyai posisi tersendiri di dalam kromosom, posisi ini disebut locus.

  Saat melakukan reproduksi, yang muncul pertama kali adalah rekombinasi (crossover atau persilangan). Gen-gen dari induk (parents) saling berekombinasi membentuk kromosom yang baru (offspring). Keturunan baru (offspring) ini juga dapat bermutasi. Mutasi merupakan perubahan yang terjadi pada elemen suatu DNA. Perubahan ini terjadi mungkin disebabkan karena kesalahan penggandaan gen-gen dari induknya (parents). Sedangkan fitness suatu mahkluk hidup diukur dari kesuksesan dalam mempertahankan hidupnya.

  8 Ruang pencarian.

  Ketika mencari penyelesaian suatu masalah, maka dicari solusi yang terbaik dari semua kemungkinan solusi yang ada. Kumpulan semua kemungkinan solusi tersebut berada dalam ruang pencarian (search space). Setiap titik pada ruang pencarian merupakan satu solusi yang mungkin (feasible solution) dan dapat diberi pengenal dalam bentuk nilai atau fitness- nya terhadap masalah yang akan diselesaikan. Proses pencarian solusi menjadi rumit jika tidak diketahui di mana harus mencari atau pencarian dimulai dari mana. Banyaknya metode yang dikenal untuk menemukan solusi yang layak, diantaranya adalah algoritma genetika yang dibuat berdasarkan analogi mekanisme yang terjadi terhadap proses evolusi.

B. Algoritma Genetika 1. Pengantar Algoritma Genetika

  Algoritma genetika pertama kali diperkenalkan oleh John Holland dan murid-muridnya di Universitas Michigan pada tahun 1960. Saat ini algoritma genetika mulai banyak digunakan pada masalah-masalah yang tergolong sulit dan dalam berbagai variasi telah diterapkan ke berbagai masalah sains dan teknik yaitu masalah optimasi yang kompleks. Algoritma ini merupakan metode optimasi yang tidak berdasarkan matematika, melainkan berdasarkan pada fenomena alam yang dalam penelusurannya mencari titik optimal berdasarkan ide yang ada pada genetika dan teori Darwin (1809-1882) yaitu “survival of the fittest”

  9 menyatakan bahwa evolusi jenis-jenis spesies makhluk hidup dan ekosistemnya terjadi karena seleksi alam. Individu yang lebih kuat (fit) akan memiliki tingkat survival dan tingkat reproduksi yang lebih tinggi jika dibandingkan dengan individu yang kurang fit. Beberapa aplikasi yang dapat diselesaikan dengan algoritma genetika yaitu sistem dinamikal nonlinear, lintasan robot, program LISP, perancangan jaringan syaraf tiruan, strategi perencanaan, Film-copy Deliverer Problem, Knapsack Problem, Quadratic Assigment Problem, Traveling Salesman Problem dan Minimum Spanning Tree Problem.

  Algoritma genetika merupakan suatu metode penyelesaian yang tergolong heuristik. Algoritma heuristik adalah algoritma yang mencari penyelesaian dengan menggunakan masalah optimasi dengan menggunakan algoritma eksak yang ada.

  Ciri-ciri dari algoritma heuristik adalah: i. Akan selalu memberikan solusi yang baik walaupun belum tentu merupakan solusi yang optimal. ii. Lebih cepat dan mudah untuk mengimplementasikan daripada algoritma eksak yang diketahui menjamin memberikan solusi yang lebih optimal.

  Sedangkan ciri-ciri dari algoritma genetika adalah: i. Bekerja dengan sebuah himpunan pengkodean solusi yang bukan merupakan himpunan solusi itu sendiri.

  10 ii. Mencari solusi dari suatu populasi yang bukan merupakan sebuah solusi yang tunggal. iii. Menggunakan informasi fungsi fitness. iv. Menggunakan operasi random dengan aturan perubahan probabilitas, bukan operasi dengan aturan tertentu dalam setiap iterasi.

2. Deskripsi Algoritma Genetika

  Algoritma genetika adalah teknik pencarian stokastik yang berdasarkan pada mekanisme seleksi alam dan sifat genetika. Dalam implementasinya, algoritma genetika meniru beberapa proses yang terdapat pada evolusi alam dimana evolusi terjadi pada kromosom yang mengkodekan struktur makhluk hidup. Individu-individu yang ada pada saat tertentu dalam suatu populasi merupakan individu-individu yang berhasil mempertahankan hidupnya sedangkan yang lemah akan punah. Individu-individu yang berhasil mempertahankan hidupnya akan membentuk individu baru.

  Beberapa teori dasar evolusi yang diadopsi oleh algoritma genetika adalah: a. Evolusi adalah proses seleksi alam dan reproduksi yang bekerja pada kromosom.

  b. Seleksi alamiah berhubungan dengan kinerja dari struktur yang dikodekan oleh kromosom.

  11 c.

  Proses reproduksi adalah titik dimana terjadi evolusi.

  Rekombinasi akan menciptakan kromosom baru yang berbeda dengan induknya, demikian pula dengan mutasi.

  Teori dasar evolusi tersebut bila diimplementasikan dalam bentuk algoritma genetika, maka diharapkan mampu menyelesaikan masalah- masalah yang sulit dengan cara yang sama seperti yang dilakukan melalui evolusi.

  Keuntungan algoritma genetika adalah sifat metode pencariannya yang lebih optimal, tanpa terlalu memperbesar ruang pencarian dan tanpa kehilangan kesempurnaan (completness) sehingga dapat dengan mudah diimplementasikan ke suatu permasalahan.

  Algoritma genetika merupakan algoritma yang bermanfaat dan efisien, ketika: a. Pencarian dalam ruang pencarian yang besar, kompleks atau hanya sedikit yang diketahui.

  b. Tidak ada analisis matematika yang memungkinkan.

  c. Kurang atau tidak ada pengetahuan yang memadai untuk merepresentasikan masalah ke dalam ruang pencarian yang lebih sempit.

  d. Metode konvensional sudah tidak mampu menyelesaikan masalah yang dihadapi.

  Algoritma genetika berbeda dengan teknik optimasi konvensional dan prosedur pencarian dalam beberapa segi fundamental:

  12 1)

  Algoritma genetika bekerja dengan sebuah himpunan pengkodean dari sekumpulan solusi, bukan pada solusi itu sendiri. 2)

  Algoritma genetika mencari beberapa solusi dari sebuah populasi, bukan satu solusi.

  3) Algoritma genetika menggunakan fungsi fitness, bukan menggunakan turunan atau pengetahuan lainnya.

  4) Algoritma genetika menggunakan aturan perubahan probabilistik, bukan aturan deterministik.

  Istilah-istilah yang digunakan dalam algoritma genetika, dijelaskan dalam tabel dibawah ini:

Tabel 2.2.2.1 Tabel istilah dalam Algoritma Genetika Istilah dalam algoritma Keterangan.

  genetika Populasi Himpunan beberapa solusi. Kromosom Solusi . Gen Bagian dari kromosom. Parent Solusi yang akan dikenakan proses persilangan atau mutasi.

  

Offspring Solusi baru yang dihasilkan melalui

proses persilangan atau mutasi.

  Persilangan Proses yang melibatkan dua solusi untuk mendapatkan solusi baru. Mutasi Proses yang melibatkan satu solusi untuk mendapatkan solusi baru. Seleksi Pemilihan kromosom yang baik

  13

3. Struktur Umum Algoritma Genetika

  Bila P(t) dan C(t) adalah induk dan keturunan pada generasi t, struktur umum algoritma genetika adalah sebagai berikut:

  prosedur algoritma genetika :

  begin t

  ← 0; inisialisasi P(t); evaluasi P(t); while(kondisi terminasi tidak terpenuhi) do rekombinasi P(t) untuk menghasilkan anak

  C(t); evaluasi C(t); seleksi P(t+1) dari P(t) dan C(t); t

  ← t+1; end

  end

  Struktur umum algoritma genetika (Mitsuo Gen dan Runwei Cheng, 1997) dapat pula dideskripsikan seperti pada Gambar 2.2.3.1

  14

  Ilustrasi Algoritma Genetika

Gambar 2.2.3.1 Ilustrasi Algoritma Genetika

  mutation 0011011001

  0011001001 crossover

  110010 1010

  1011101110

  1100101110

  1011101010 solutions evaluation

  1100101110 1011101010 0011001001 offspring fitness computation decoding

  1100101010 1011101110 0011011001 1100110001 chromosomes selection roulette wheel solutions encoding new population

  15 Keterangan Gambar 2.2.3.1 Dalam menyelesaikan masalah, algoritma genetika diawali dengan menginisialisasikan himpunan solusi yang dibangkitkan secara acak. Himpunan solusi ini disebut populasi. Setiap individu pada populasi disebut kromosom yang menggambarkan sebuah solusi dari masalah yang akan diselesaikan. Sebuah kromosom dapat dinyatakan dalam simbol string misalnya kumpulan string bit. Kromosom-kromosom dapat berubah terus menerus disebut dengan regenerasi. Pada setiap generasi, kromosom dievaluasi dengan mengunakan alat ukur yang disebut fungsi fittnes (tingkat kesesuaian). Untuk membuat generasi berikutnya, kromosom-kromosom baru yang disebut offspring (keturunan) terbentuk dengan cara menggabung dua kromosom dari generasi sekarang dengan menggunakan operator crossover (persilangan) atau mengubah sebuah kromosom dengan menggunakan operator mutasi. Generasi baru dibentuk dengan cara seleksi yang dilakukan terhadap parents dan offspring berdasarkan nilai fitness-nya dan menghilangkan yang lainnya. Kromosom-kromosom yang lebih sesuai memiliki probabilitas untuk dipilih. Setelah beberapa generasi, algoritma ini akan konvergen ke arah bentuk kromosom yang terbaik, dengan harapan dapat menyatakan solusi optimal dari permasalahan yang diselesaikan.

4. Operator dan Fungsi Evaluasi

  Biasanya, inisialisasi diasumsikan secara random. Rekombinasi melibatkan crossover dan mutasi untuk menghasilkan keturunan (offspring).

  Pada kenyataannya, hanya ada dua jenis operasi dalam algoritma genetika,

  16 yaitu operasi genetik (crossover/persilangan dan mutasi dan operasi evolusi (seleksi). Pada teori evolusi, mutasi ini merupakan operator kromosom yang memungkinkan makhluk hidup melakukan penyesuaian dengan lingkungannya walaupun lingkungan barunya tidak sesuai dengan lingkungan induknya semula.

  Faktor terbesar dalam teori evolusi yang menyebabkan suatu kromosom bertahan, punah, melakukan persilangan atau mutasi adalah lingkungan. Pada algoritma genetika, factor lingkungan diperankan oleh fungsi evaluasi. Fungsi evaluasi menggunakan kromosom sebagai masukan dan menghasilkan angka tertentu yang menunjukkan kinerja pada masalah yang diselesaikan. Pada masalah optimasi, fungsai evaluasi adalah fungsi tujuan (objective function). Nilai fungsi evaluasi disebut nilai kesesuaian (fitness value). Nilai inilah yang akan menentukan apakan suatu string akan muncul pada generasi berikutnya atau mati.

5. Pengkodean

  Beberapa jenis pengkodean yang sering digunakan dalam mengkodekan solusi terhadap suatu masalah, yaitu:

  5.1 Pengkodean Biner (Binary Encoding) Pengkodean biner ini merupakan cara pengkodean yang paling umum digunakan.Karena pengkodean ini merupakan yang pertama kali digunakan dalam algoritma genetika oleh Holland. Dalam pengkodean biner, setiap kromosom dinyatakan dalam bit 0 atau 1.

  17 Kromosom1 : 1 0 1 0 1 0 0 1 Kromosom2 : 0 0 1 1 1 0 1 0

Gambar 2.2.5.1 Contoh kromosom dengan pengkodean biner

  Pengkodean biner memberikan banyak kemungkinan untuk kromosom walaupun jumlah allele yang sedikit yaitu 0 atau 1. Pada pihak lain, pengkodean biner ini sering tidak sesuai untuk masalah dan kadang pengoreksian harus dilakukan setelah proses evolusi (perkawinan silang dan/atau mutasi). Contoh masalah yang sesuai untuk pengkodean biner antara lain masalah knapsack.

  5.2 Pengkodean permutasi (Permutation Encoding) Pengkodean permutasi dapat digunakan dalam masalah pengurutan( ordering problem). Dalam pengkodean permutasi setiap kromosom merupakan suatu barisan bilangan yang menyatakan bilangan dalam suatu urutan.

  Kromosom1 : 1 3 4 2 6 5 7 8 Kromosom2 : 3 4 6 1 5 2 8 7

Gambar 2.2.5.2 Contoh kromosom dengan pengkodean permutasi Pengkodean permutasi hanya berguna untuk masalah pengurutan.

  Contoh yang menggunakan pengkodean permutasi adalah masalah wiraniaga.

  18

  5.3 Pengkodean nilai (Value Encoding) Pengkodean nilai dapat digunakan untuk masalah yang mempunyai nilai yang rumit. Dengan pengkodean nilai, setiap kromosom merupakan suatu barisan dari nilai-nilai. Nilai-nilai dapat berupa apa saja yang berhubungan dengan masalah, bilangan biasa, bilangan riil, karakter sampai ke obyek-obyek yang rumit. Kromosom1 : 1.2 5.3 0.4 2.3 2.4 4.1 3.5 1.9 Kromosom2 : A B D J E

  I F J

Gambar 2.2.5.3 Contoh kromosom dengan pengkodean nilai

  Pengkodean nilai ini baik digunakan untuk beberapa masalah. Di pihak lain, untuk mengkodekan tipe ini sering perlu pengembangan persilangan dan mutasi baru yang spesifik untuk permasalahannya. Contohnya dalam masalah mencari bobot untuk jaringan syaraf.

  5.4 Pengkodean pohon (Tree Encoding) Pengkodean pohon ini lebih banyak digunakan untuk menyusun program atau ekspresi bagi pemrograman genetika. Dalam pengkodean pohon, setiap kromosom merupakan suatu pohon dari beberapa objek, seperti fungsi atau perintah dalam bahasa pemrograman.

  Pengkodean pohon ini baik digunakan untuk menyusun program.Contoh masalah yang menggunakan pengkodean pohon adalah masalah mencari fungsi berdasarkan nilai-nilai yang diberikan.

  19 kromosom

  • x

Gambar 2.2.5.4 Contoh kromosom dengan pengkodean pohon 6.

   Seleksi

  Seleksi akan menentukan individu-individu mana saja yang akan dipilih untuk dilakukan rekombinasi dan bagaimana offspring/keturunan terbentuk dari individu-individu terpilih. Langkah pertama yang dilakukan dalam seleksi ini adalah pencarian nilai fitness. Ada beberapa metode seleksi, antara lain:

  6.1 Seleksi Roda Roulette Metode seleksi roda roulette merupakan metode yang paling sederhana, dan sering juga dikenal dengan nama stochastic sampling

  with replacement. Sesuai dengan namanya, metode ini menirukan

  permainan roulette-wheel di mana masing-masing kromosom menempati potongan lingkaran pada roda roulette secara proporsional sesuai dengan

  / y

  8 Kromosom: ( + x (/ 5 y))

  20 nilai fitnessnya. Kromosom yang mempunyai nilai fitness lebih besar menempati potongan lingkaran yang lebih besar dibandingkan dengan kromosom bernilai fitness rendah. Gambar 2.2.6.1 ilustrasi sebuah contoh penggunaan metode roda roulette.

  K4 K1

  Kromosom Nilai Fitness Probabilitas

  K3

  K1 1 0.25 K2 2 0.5 K3 0.5 0.125

  K2

  K4 0.5 0.125 Jumlah 4

Gambar 2.2.6.1 Contoh penggunaan metode seleksi roda roulette.

  Kromosom K1 mempunyai probabilitas 25% untuk dipih setiap kali suatu kromosom dipilih (setiap roda diputar). Probabilitas masing- masing individu dapat dicari dari pembagian fitness masing-masing individu dengan total fitness dalam populasi.

  Seleksi dengan roda roulette berdasarkan skala fitness. Karena terpilihnya suatu kromosom dalam populasi untuk dapat berkembang biak adalah sebanding dengan fitnesnya, maka akan terjadi kecenderungan kromosom yang baik akan terpelihara terus sehingga dapat membawa ke hasil optimum lokal (konvergensi dini) ke suatu hasil yang bukan optimim global. Sebaliknya, jika semua kromosom dalam populasi mempunyai fitness yang hamper sama, maka seleksi ini akan menjadi seleksi yang bersifat acak.

  21

  6.2 Seleksi Ranking Seleksi dengan roda roulette sebelumnya memiliki kelemahan ketika fitness yang tersebar dalam populasi berbeda jauh misalnya jika fitness dari kromosom terbaik dalah 90% dari keseluruhan roda roulette, maka kromosom lain akan mempunyai kesempatan yang kecil untuk terpilih.

  Pada seleksi ranking, pertama yang dilakukan adalah merangkingkan kromosom dalam populasi kemudian setiap kromosom menerima nilai fitness dari ranking tersebut. Kromosom yang terjelek akan mendapatkan nilai fitness 1, yang kedua mendapat nilai fitness 2 dan seterusnya sampai yang terbaik mendapatkan nilai fitness N (jumlah kromosom dalam populasi). Sebagai ilustrasi dapat dilihat pada tabel di bawah ini

Tabel 2.2.6.1 Contoh populasi dengan 5 kromosom yang diberi fitness

  baru

  Kromosom Fitnes Fitnes Baru B

  5

  1 D

  5

  2 E

  5

  3 C

  10

  4 A

  15

  5

  6.3 Seleksi Turnament Seleksi turnamen merupakan jenis seleksi yang divariasi berdasarkan seleksi roda Roulette dan seleksi ranking. Sejumlah k kromosom tertentu dari populasi dengan n kromosom (k

  ≤ n) dipilih

  22 secara acak dengan probabilitas yang sama. Dari k kromosom yang terpilih tersebut kemudian dipilih suatu kromosom dengan fitness terbaik, yang diperoleh dari hasil pengurutanrangking fitness kromosom- kromosom yang dipilih tersebut.