knapsack problem with algorithm genetic solving

Download Knapsack Problem with Algorithm Genetic Solving

If you can't read please download the document

Upload: ronaldsaragih1

Post on 29-Jun-2015

354 views

Category:

Documents


8 download

TRANSCRIPT

A.

RENCANA JUDUL PENELITIAN STUDI ALGORITMA GENETIKA DALAM PENYELESAIAN PERMASALAHAN KNAPSACK

B.

BIDANG ILMU Matematika, yaitu optimasi

C.

PENDAHULUAN

Prinsip utama dalam dunia perekonomian adalah berusaha untuk mendapatkan keuntungan yang sebesar-besarnya dengan biaya pengeluaran sekecil mungkin. Pencapaian keuntungan ini dapat diperoleh dengan mengoptimalkan infrastruktur yang dimiliki, salah satunya adalah tempat penyimpanan atau pengangkut barang dagangan. Di dalam kehidupan sehari-hari, kita dapat melihat penjaja dagangan keliling atau tukang kanvas yang membawa barang dagangannya sebanyak mungkin dalam setiap kali berjualan dari satu tempat ke tempat lainnya. Dibutuhkan keterampilan dalam penyusunan barang agar kapasitas ruang bisa optimal tanpa melebihi kemampuan daya tampung ruangan. Harapannya agar keuntungan yang diperoleh semaksimal mungkin dari sejumlah banyaknya barang yang dibawa. Hal tersebut diatas merupakan salah satu contoh kajian permasalahan knapsack. Permasalahan Knapsack atau dikenal juga dengan istilah knapsack problem merupakan suatu persoalan yang menarik untuk diteliti dan diimplementasikan pada situasi nyata. Persoalan ini banyak diterapkan pada situasi nyata utamanya pada bidang jasa, seperti pengangkutan barang pada peti kemas atau dalam skala kecil pada pengangkutan barang dalam kemasan. Inti dari permasalahan ini adalah bagaimana menentukan kombinasi barang yang akan diangkut untuk memperoleh keuntungan yang maksimal, dengan pertimbangan tidak melebihi kapasitas alat angkut yang digunakan (Komang Setemen, SNATI 2010).

Penyelesaian permasalahan knapsack yang akan kita bahas menggunakan algoritma genetika. Algoritma ini adalah algoritma pencarian suatu nilai tertentu dari beberapa parameter yang menganalogikan mekanisme dari seleksi alam dan prinsip-prinsip genetika sebagai suatu metode yang digunakan dalam proses algoritma pencarian. Pencarian algoritma genetika didasarkan pada mekanismemekanisme evolusi dan genetika alam. Ketertarikan pada algoritma pencarian heuristik yang didukung oleh proses-proses fisik dan alam dimulai tahun 1960-an, ketika John Holland dari Universitas Michigan mengajukan algoritma genetika untuk pertama kalinya[GOL89]. Dalam bukunya, Adaption in Natural and Artificial System, yang dipublikasikan pada tahun 1975 disebutkan bahwa algoritma genetika mampu untuk melakukan optimasi parameter lebih efisien. Karena keunggulannya itulah, saat ini telah banyak diaplikasikan dalam berbagai bidang. Bermacam-macam penerapan antara lain untuk sintesa genetik, teknologi VLSI, strategi perencanaan, dan machine learning (mesin belajar). Algoritma genetika adalah suatu algoritma pencarian yang meniru mekanisme dari genetika alam. Algoritma genetika ini banyak dipakai pada aplikasi bisnis, ini dapat dipakai teknik maupun pada bidang keilmuan. Algoritma untuk mendapatkan solusi yang tepat untuk masalah optimal

dari satu variabel atau multi variabel. Sebelum algoritma ini dijalankan, masalah apa yang ingin dioptimalkan itu harus dinyatakan dalam fungsi tujuan, yang dikenal dengan fungsi fitness. Jika nilai fitness semakin besar, maka sistem yang dihasilkan semakin baik. Operasi yang dilakukan adalah reproduksi, pindah silang (crossover), dan mutasi untuk mendapatkan sebuah solusi menurut nilai fitnesssnya. Selanjutnya konstruksi dasar dari algoritma genetika adalah sebagai berikut: Pendefinisian kromosom Pendefinisian fungsi fitness Membangkitkan populasi awal Reproduksi Pindah silang

Mutasi

Pendefinisian Kromosom Algoritma genetika bekerja dari populasi yang merupakan himpunan solusi yang dihasilkan secara acak. Setiap anggota himpunan yang merepresentasikan satu solusi masalah dinamakan kromosom. Kromosom dalam suatu populasi berevolusi dalam iterasi yang dinamakan generasi, tiap kromosom dievaluasi berdasarkan pada fungsi evaluasi (fitness function). Kromosom-kromosom diseleksi menurut nilai fitness masing-masing. Kromosom yang kuat mempunyai kemungkinan tinggi untuk bertahan hidup pada generasi berikutnya tetapi tidak menutup kemungkinan juga kromosom lemah untuk tetap bertahan hidup dari proses seleksi tersebut kemudian ditentukan kromosom-kromosom baru (offspring) melalui proses crossover dan mutasi dari kromosom yang terpilih (parents). Dari dua proses tersebut di atas maka terbentuk suatu generasi baru yang akan diulangi secara terus menerus sampai tercapainya suatu konvergensi yaitu sebanyak generasi yang diinginkan.

Pendefinisian Fungsi Fitness Pada algoritma genetika, fitness biasanya dapat berupa fungsi objektif dari masalah yang akan dioptimasi. Setiap individual dievaluasi dengan fungsi fitness. Sebuah fungsi fitness mengembalikan nilai tertinggi untuk individual yang terbaik. Individu akan diurutkan berdasarkan nilai atau disebut dengan selection.

Pendefinisian Populasi Awal Inisialisasi populasi awal dilakukan untuk menghasilkan solusi awal dari suatu permasalahan algoritma genetika. Inisialisasi ini dilakukan secara acak sebanyak jumlah kromosom/populasi yang diinginkan. Selanjutnya dihitung nilai fitness dan seterusnya dilakukan seleksi dengan menggunakan metode roda roullete, tournament atau ranking. Kemudian dilakukan perkawinan silang (crossover) dan mutasi. Setelah melalui beberapa generasi maka algoritma ini akan berhenti sebanyak generasi yang diinginkan.

Seleksi Orang Tua Seleksi orang tua merupakan pemilihan dua buah kromosom yang akan dipindahsilangkan, biasanya dilakukan secara proposional sesuai dengan nilai fitnesssnya. Suatu metode seleksi yang umum digunakan adalah metode roda roulette (roulette-wheel method). Metode ini menirukan permainan roda roulette dimana masimg-masing kromosom menempati potongan lingkaran pada roda roulette secara proposional sesuai dengan nilai fitnessnya. Kromosom yang memiliki nilai fitness lebih besar akan menempati potongan lingkaran yang lebih besar dibandingkan dengan kromosom bernilai fitness rendah.

Pindah Silang Pindah silang merupakan salah satu komponen yang paling penting dalam algoritma genetika. Sebuah kromosom yang mengarah pada solusi yang bagus bisa diperoleh dari proses memindahsilangkan dua buah kromosom.

Mutasi Mutasi merupakan mengubah susunan gen pada kromosom secara random berdasarkan probabilitas mutasi tertentu. Untuk semua gen yang ada, jika bilangan random yang dibangkitkan kurang dari probabilitas mutasi yang ditentukan maka ubah gen tersebut menjadi nilai kebalikannya (dalam binary encoding, 0 diubah 1 dan 1 diubah 0). Secara umum Thiang, dkk (2001) mengemukakan bahwa struktur dari suatu algoritma genetika dapat didefinisikan dengan langkah-langkah sebagai berikut: Membangkitkan populasi awal Populasi awal ini dibangkitkan secara random sehingga didapatkan solusi awal. Populasi itu sendiri terdiri dari sejumlah kromosom yang merepresentasikan solusi yang diinginkan. Membentuk generasi baru

Untuk membentuk generasi baru digunakan operator reproduksi/seleksi, crossover dan mutasi. Proses ini dilakukan berulang-ulang sehingga didapatkan jumlah kromosom yang cukup untuk membentuk generasi baru dimana generasi baru ini merupakan representasi dari solusi baru. Generasi baru ini dikenal dengan istilah anak (offspring). Evaluasi solusi Pada tiap generasi, kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang dinamakan fitness. Nilai fitness suatu kromosom menggambarkan kualitas kromosom dalam populasi tersebut. Proses ini akan mengevaluasi setiap populasi dengan menghitung nilai fitness setiap kromosom dan mengevaluasinya sampai terpenuhi kriteria berhenti. Bila kriteria berhenti belum terpenuhi maka akan dibentuk lagi generasi baru dengan mengulangi langkah 2. Beberapa kriteria berhenti yang sering digunakan antara lain: berhenti pada generasi tertentu, berhenti setelah dalam beberapa generasi berturut-turut didapatkan nilai fitness tertinggi tidak berubah, berhenti bila dalam n generasi berikut tidak didapatkan nilai fitnesss yang lebih tinggi. Sebelum algoritma genetika dilakukan, ada dua hal penting yang harus dilakukan yaitu pendefinisian kromosom yang merupakan suatu solusi yang masih berbentuk simbol dan fungsi fitness atau fungsi obyektif. Dua hal ini berperan penting dalam algoritma genetika untuk menyelesaikan suatu masalah.

Penerapan Algoritma Genetika Dalam Knapsack Problem Dalam penerapan implementasi sistem dilakukan sebagai berikut: Representasi Barang Representasi barang dalam dua array, dimana array pertama berisi weight (berat) barang dan arraya kedua berisi profit (keuntungan)

Constraint Adapun constraint yang digunakan adalah weight. Jadi total berat dari sekumpulan barang tidak melebihi kapasitas knapsack. Encoding Kromosom Dalam merepresentasikan kromosom digunakan array satu dimensi yang berisi 1 atau 0. Misal: Kromosom Arti :100100011101010100 : Barang 1, 4, 8, 9, 10, 12, 15, 16 diambil Barang 2, 3, 5, 6, 7, 11, 13, 14, 17, 18 tidak diambil Fungsi Fitness Fitness dihitung dengan menjumlahkan profit tiap barang yang masuk ke dalam knapsack. Jika berat total dalam satu kromosom lebih besar dari pada kapasitas maksimum knapsack, maka nilai fitnesssnya 0. Jika apabila ada kromosom yang berat totalnya melebihi kapasitas dari knapsack, maka akan dilakukan pencarian gen dalam kromosom tersebut yang diberi nilai 1 untuk diganti dengan nilai 0. Hal ini dilakukan terus menerus sampai dipastikan semua kromosom tidak ada yang melanggar constraint. Untuk mencegah adanya individu yang dominan dalam suatu populasi (dalam pemilihan parent untuk dicrossover), maka diperlukan suatu fungsi Linier Fitness Ranking. Fungsi ini akan menurunkan perbedaan nilai fitness antar individu, sehingga perbedaan antara nilai fitness terbaik dengan nilai fitness terendah dapat diperkecil. Dengan begitu setiap kromosom memiliki kemungkinan untuk terpilih menjadi parent secara lebih merata (lebih adil).

D.

DIAGRAM KONSEPSI

Diagram alur algoritma genetika dapat digambarkan sebagai berikut:

E.

PERUMUSAN MASALAH

Bagaimana pemamfaatan dan implementasi algoritma genetika dalam permasalahan knapsack.

F.

PEMBATASAN MASALAH

Cakupan

bahasan

penyelesaian

permasalahan

knapsack

dengan

memamfaatkan algoritma genetika yaitu sebagai berikut: 1. Menggunakan array 2 dimensi yaitu berang berat dan keutungan tiap barang dalam representasi barang. 2. Menggunakan encoding kromosom yang memiliki keanggotaan 1 atau 0

guna dianggap da dimasukkan dalam knapsack 3. Pemamfaatan metode seleksi roulette-wheel sebagai metode pemilihan kromosom yang akan dijadikan sebagai kromosom parent.

G.

TINJAUAN PUSTAKA

Algoritma genetika pertama kali dikembangkan oleh John Holland dari Michigan University, New York pada tahun 1970 untuk aplikasi seluler automata. Pada tahun 1975, Holland bersama murid dan teman kerjanya menghasilkan buku berjudul Adaption in Natural and Artificial System. Sedikit menengok ke belakang, sebenarnya cikal bakal perkembangan Algoritma Genetika ini berawal dari prakarsa beberapa ahli Biologi. Para ahli Biologi tersebut menggunakan komputer digital untuk mengerjakan simulasi dari sistem genetika. Para ahli tersebut diantaranya adalah Baricelli, N.A yang pada tahun 1957 melakukan penelitian evolusi simbiogenetik dan pada tahun 1962 mengajukan teori evolusi beserta analisis numeriknya. Selain Baricelli, satu lagi nama yang menjadi pemrakarsa Algoritma Genetika adalah Fraser, A.S. yang pada tahun 1960 mensimulasikan sistem genetika dengan komputer. Penelitian yang dilakukan para ahli Biologi tersebut memberikan ide bagi Jhon Hollad dan muridnya David Goldberg untuk mengaplikasikan proses genetika ini pada sistem buatan.

Pengertian Algoritma Genetika Algoritma Genetika pada dasarnya adalah program komputer yang mensimulasikan proses evolusi. Secara alamiah, individu di dalam populasi akan saling bersaing untuk mendapatkan sumber daya yang tersedia. Individu yang berhasil mendapatkan sumber daya akan tetap bertahan hidup, sedangkan yang tidak, akan mati dan punah. Algoritma Genetika melakukan teknik pencarian untuk menemukan penyelesaian perkiraaan untuk optimasi dan masalah pencarian. Selain itu, algoritma ini juga menggunakan teknik yang terinspirasi oleh biologi revolusioner seperti warisan, mutasi, seleksi alam dan persilangan.

Dalam hal ini, populasi dari kromosom dihasilkan secara random dan memungkinkan untuk berkembang biak sesuai dengan hukum yang berlaku untuk proses evolusi dengan harapan akan menghasilkan individu dengan kromosom yang prima. Kromosom inilah yang pada kenyataannya merupakan penyelesaian masalah (solusi), sehingga bila kromosom yang baik berkembang, maka solusi bagi masalah pun diharapkan dapat dihasilkan.

Prosedur Algoritma Genetika Algoritma Genetika memiliki prosedur sebagai berikut: 1. [Start] Generate populasi pertama secara random sebanyak n individu 2. [Fitness] Evaluasi nilai fitness f(x) dari setiap individu x di dalam populasi 3. [New Populasi] Bentuk populasi baru dengan melakukan pengulangan langkah-langkah di bawah ini sehingga didapatkan populasi baru a. [Selection] Pilih 2 individu sebagai orangtua dari sebuah populasi sesuai dengan fitness mereka (semakin besar nilai fitness, maka semakin besar pula peluang untuk terpilih) b. [Crossover] Lakukan persilangan antara kedua orangtua seseuai dengan probabilitas crossover untuk menghasilkan keturunan yang baru. Jika tidak terjadi persilangan maka keturunan yang dihasilkan akan sama persis dengan orangtuanya c. [Mutation] Mutasi setiap keturunaan yang baru sesuai dengan probabilitas mutasi di setiap gen d. [Accepting] Tempatkan keturunan yang baru sesuai populasi yang baru 4. [Replace] Gunakan populasi yang baru dibentuk untuk menjalankan algoritma 5. [Test] Jika kondisi akhir dipenuhi maka berhenti dan tampilkan solusi dari populasi 6. [Loop] Kembali ke langkah 2

Seperti yang diutarakan Negnevitsky, 2005 tentang Basic Genetic Algorithm

Gambar 1. Basic Genetic Algoritm (Negnevitsky, 2005)

H.

KONTRIBUSI PENELITIAN Tujuan dari penelitian ini adalah: 1. Mempelajari algoritma genetika dalam penyelesaian permasalahan knapsack 2. Implementasi sistem dalam memberikan solusi dari permasalahan knapsack.

I.

METODOLOGI PENELITIAN Penelitian ini dilakukan dengan langkah-langkah sebagai berikut: 1. Melakukan studi literatur algoritma genetika dalam penyelesaian permasalahan knapsack 2. Mengidentifikasi permasalahan atau kendala yang dihadapi dalam penerapan algoritma genetika.

J.

DAFTAR PUSTAKA 1. http://thomasandrianto.wordpress.com/2010/03/26/algoritma-genetika/ diakses tanggal 21 Oktober 2010, pukul 06.00 WIB 2. Setiawan, Henry. Thiang. Ferdinando,Hany. 2001 Aplikasi Algoritma Genetika Untuk Merancang Fungsi Keanggotaan Pada Kendali Logika Fuzzy. Proceeding, Seminar of Intelligent Technology and Its Applications (SITIA 2001). Institut Teknologi Sepuluh Nopember, Surabaya. 3. Shrestha, Dipti dan Maya Hristakeva. Solving the 01 Knapsack Problem with Genetic Algorithms. USA : Computer Science Department, Simpson College. 4. Firmansyah, Kiki. 2009. Studi Algoritma Genetika Untuk Optimasi Penjadwalan Mata Kuliah. Universitas Pendidikan Indonesia