P. 1
PAGES Knapsack

PAGES Knapsack

|Views: 95|Likes:
Published by Winda Irianto

More info:

Published by: Winda Irianto on Jun 03, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/15/2013

pdf

text

original

Perbandingan Algoritma Exhaustive Search dan Algoritma Genetika untuk memecahkan Knapsack Problem

Ari Agustina1, Hanifa Vidya Rizanti2, Arianty Anggraini3, Winda Ayu Irianto4
Program Studi Teknik Informatika, Fakultas Teknik, Universitas Brawijaya, Malang, 65145, Indonesia
2

kytty.rindra@yahoo.com hanifavidyarizanti@gmail.com 3 lovely_days22@yahoo.co.id 4 ayrie33@ymail.com

1

Abstract— Keterbatasan wadah yang digunakan saat memilih barang yang akan dibawa merupakan perhatian utama pada kasus distribusi dari sekian banyak barang yang harus di distribusikan, yang masing-masing memiliki berat dan harga. Permasalahan ini dinamakan Knapsack Problem. Untuk menyelesaikan masalah ini, banyak algoritma yang dapat digunakan. Salah satunya yakni Algoritma Genetika. Algoritma ini bekerja dengan sebuah populasi yang terdiri dari individuindividu, yang masing-masing individu merepesentasikan sebuah solusi yang mungkin bagi persoalan yang ada untuk selanjutnya mengalami proses seleksi, pindah silang dan mutasi sehingga didapatkan populasi baru yang memberikan solusi yang mendekati solusi optimal. Selain algoritma genetika, knapsack problem akan diselesaikan dengan algoritma Brute Force. Algoritma Brute Force adalah algoritma yang mempunyai tingkatan terendah dalam pencarian solusi terhadap sebuah permasalahan karena kesederhanaannya. Sifat sifat algoritma Brute Force yang seperti itu memberikan beberapa kelebihan maupun kekurangan. Contoh kelebihan yang dimilikinya adalah kehandalannya dalam menemukan solusi dari sebuah permasalahan , akan tetapi kelemahannya yaitu algoritma ini tidak mangkus / efisien , mempunyai kompleksitas yang terbesar dalam pemecahan suatu permasalahan dan tidak efisien untuk jumlah kemungkinan solusi yang banyak . Walaupun begitu , algoritma ini handal dalam artian algoritma ini dapat dipakai untuk menyelesaikan hampir seluruh permasalahan yang ada . Adapun dalam tulisan ini akan dianalisa tentang pemakaian algoritma Brute Force pada kasus Knapsack Problem. Dalam kaitannya dengan permasalahan Knapsack, pemakaian brute force sering disebut dengan exhaustive search. Dari dua algoritma diatas akan dibandingkan untuk mengetahui penyelesaian knapsack problem secara optimal. Dari dua algoritma diatas akan dibandingkan efisiensi waktu dan profit barang yang akan diangkut. Aplikasi ini dibangun dengan menggunakan bahasa C#. Keywords— algoritma genetik, mutasi, rekombinasi, brute force, exhaustive search, knapsack problem.

I. PENDAHULUAN

Knapsack problem merupakan masalah di mana orang dihadapkan pada persoalan optimasi pada pemilihan benda yang dapat dimasukkan ke dalam sebuah wadah yang memiliki keterbatasan ruang atau daya tampung. Dengan adanya optimasi dalam pemilihan benda yang akan dimasukkan ke dalam wadah tersebut diharapkan dapat menghasilkan keuntungan yang maksimum. Benda-benda yang akan dimasukkan ini masing-masing memiliki berat dan sebuah nilai yang digunakan untuk menentukan prioritasnya dalam pemilihan tersebut. Nilainya dapat berupa tingkat kepentingan, harga barang, nilai sejarah, atau yang lainnya. Wadah yang dimaksud di sini juga memiliki nilai konstanta yang merupakan nilai pembatas untuk benda-benda yang akan dimasukkan ke dalam wadah tersebut sehingga harus diambil sebuah cara memasukkan benda-benda tersebut ke dalam wadah sehingga menghasilkan hasil optimum tetapi tidak melebihi kemampuan wadah untuk menampungnya. Sedangkan pada tulisan ini akan dibandingkan antara metode exhaustive search dan algoritma genetika. Algoritma genetik itu sendiri adalah algoritma pencarian yang berdasarkan pada mekanisme sistem natoural yakni genetik dan seleksi alam. Algoritma genetik menggunakan istilah gen dalam menyimpan informasi. Gen merupakan struktour paling sederhana pada algoritma genetik. Pada algoritma ini, solusi optimal direpresentasikan sebagai untaian gen. Berbeda dengan teknik pencarian konvensional, algoritma genetik berangkat dari himpunan solusi yang dihasilkan secara acak. Himpunan ini disebut populasi. Sedangkan setiap individu dalam populasi disebut kromosom yang merupakan representasi dari solusi. Kromosom-kromosom berevolusi dalam suatu proses iterasi yang berkelanjutan yang disebut generasi. Pada setiap generasi, kromosom dievaluasi berdasarkan suatu fungsi evaluasi (Gen dan Cheng,1997). Setelah beberapa generasi maka algoritma genetik akan

kombinasi. K1 0 1 0 1 b1 b2 b3 b4 1 1 0 1 b1 b2 b3 b4 Gambar 3. Selanjutnya konstruksi dasar dari Algoritma Genetika adalah sebagai berikut :  Pendefinisian Kromosom  Pendefinisian Fungsi Fitness  Membangkitkan Sebuah Populasi Awal  Reproduksi  Crossover  Mutasi  Pelestarian A.1. Operasi rekombinasi dapat dilakukan dengan dua cara. • Unbounded Knapsack problem Setiap barang tersedia lebih dari 1 unit.. 2.1 Kromosom Dalam kasus knapsack problem. PEMBAHASAN A. Caranya yaitu dengan memilih barang secara manual pada Tabel 3. B. Hitung fungsi fitness untuk masing-masing kromosom eval(vi). tepung. digunakan metode seleksi induk yaitu seleksi berdasarkan roulette wheel. Pada setiap generasi. masing-masing memiliki berat dan nilai.3 Seleksi Untuk menyelesaikan masalah knapsack problem. biasanya di antara objek-objek kombinatorik seperti permutasi. Algoritma Genetika 3. Operasi yang dilakukan berupa rekombinasi kromosom. Populasi awal dibangun secara acak. pop_size (ukuran populasi) .1 Daftar barang yang dapat diangkut Nama Berat Nilai Pilihan Kode Pilihan I Barang (kg) (kg) II b1 A 3 6 x  b2 B 2 5   b3 C 5 9 x x b4 D 4 8   Sehingga didapatkan kromosom seperti pada gambar berikut ini. Tabel 3. sedangkan populasi berikutnya merupakan hasil evolusi kromosom-kromosom melalui iterasi yang disebut dengan istilah generasi. Kromosom ini merupakan suatu solusi yang masih berbentuk simbol.1. Versi problem ini menjadi masuk akal apabila barang yang tersedia dapat dibagi-bagi misalnya gula. Individu yang terdapat dalam satu populasi disebut dengan istilah kromosom. cara kedua ialah mutasi. teknik pencarian dilakukan sekaligus atas sejumlah solusi yang mungkin dikenal dengan istilah populasi.1. 2. atau himpunan bagian dari sebuah himpunan. • Fractional Knapsack problem Barang boleh dibawa sebagian saja (unit dalam pecahan). TINJAUAN PUSTAKA A. yakni menemukan sejumlah barang yang total nilainya paling besar (maksimasi) dan total beratnya kurang atau sama dengan total berat yang diijinkan sehingga bisa ditulis fungsi fitness-nya adalah K2 Batasan total beratnya adalah di mana bi bernilai 1 atau 0 yang menyatakan barang ke-i diambil atau tidak diambil.1 Representasi kromosom Inisialisasi terhadap secara kromosom dilakukan secara acak (random). gen direpresentasikan dalam bentuk string bit. bisa dimulai dengan tujuan yang ingin dicapai. Langkah-langkah penyeleksiannya: 1. yang menentukan jumlah barang yang dapat dibawa sehingga total berat tidak melebihi kapasitas tas dan dengan total nilai yang sebesar mungkin. III. yang diharapkan merupakan solusi optimal (Goldberg. Knapsack Problem 2. dan sebagainya. .1 Pengertian Knapsack problem Knapsack problem atau rucksack problem adalah masalah optimasi kombinatorial.1..2 Fungsi fitness Untuk membangun fungsi fitness dalam kasus knapsack problem. Namanya berasal dari masalah maksimasi untuk pilihan paling tepat dari barang-barang yang akan dibawa dalam sebuah tas pada sebuah perjalanan. Cara pertama ialah persilangan.2 Jenis-Jenis Knapsack Problem Terdapat beberapa variasi Knapsack problem: • 0/1 Knapsack problem Setiap barang hanya tersedia 1 unit. kromosom akan melalui proses evaluasi dengan menggunakan alat ukur yang disebut dengan fungsi fitness.konvergen pada kromosom terbaik. di mana barang yang terpilih diberi tanda  dan tanda x untuk barang yang tidak dipilih. Exhaustive search Exhaustive search adalah teknik pencarian solusi secara solusi brute force untuk masalah yang melibatkan pencarian elemen dengan sifat khusus. • Bounded Knapsack problem Setiap barang tersedia sebanyak N unit (jumlahnya terbatas). Dengan demikian representasi kromosom untuk masalah di atas adalah pengkodean biner dengan panjang 4 bit (sejumlah barang yang ada) [8]. i = 1. Kedua tanda tersebut bisa dikodekan sebagai 1 untuk tanda  dan 0 untuk tanda x.1989).1. take it or leave it. jumlahnya tidak terbatas. 3.1. Sejumlah barang yang tersedia ini. Cara persilangan dilakukan dengan cara menyilangkan sebagian gen orang tua pada kromosom anak II. Algoritma Genetika Pada algoritma ini. vi menyatakan nilai barang ke-i dan wi menyatakan berat barang ke-i. 3. Lalu. Proses pencarian solusi dilakukan dengan cara melakukan operasi terhadap kromosom..

Berikut flowchart program algoritma genetika: (fittest[0]!=fittest[1] && fittest[1]!=fittest[2]) || Fittest[0]==0 TIDAK YA jumlahIndividuBaru individuBaru individuBaru[0] = getIndividuTerbaik(individu).. Hitung total fitness dari populasi tersebut: START 3.. j++ YA individuBaru[j]. Hitung probabilitas dari seleksi pi untuk masing-masing kromosom vi. pop_size bobotMaX volumeMax jumlahbarang Individu Fittest[3] generatePopulasi Deklarasi variabel Proses seleksi berdasarkan atas pemutaran roulette wheel sebanyak pop_size kali. TIDAK Evaluasi fitness ke dalam fittest individu=individuBaru STOP .4 Operator logika Metode crossover yang digunakan pada kromosom berbentuk string biner ini adalah crossover satu titik (onepoint crossover). bila tidak pilih kromosom ke-i vi (2 ≤ i ≤ pop_size) sedemikian rupa sehingga qi-1 < r ≤ qi 3. Adapun mutasi yang digunakan pada knapsack problem ini adalah mutasi yang bernilai biner. i = 1. dengan cara:  Bangkitkan bilangan acak r  Bila r < q1 maka pilih kromosom pertama (v1). pop_size 4... setiap kali dipilih kromosom tunggal sebagai populasi baru. 2. j<jumlahIndividuBaru. Hitung komulatif p qi untuk masing-masing kromosom vi.. .. i = 1.2. Deklarasi variabel jumlahIndividuBaru++ jumlahIndividuBaru < jumlahPopulasi YA seleksi crossover mutasi TIDAK j=0.fitness = getFitness(individuBaru[j]).1. . 2.

Exhaustive Search Langkah-langkah metode exhaustive search: 1. 2. Evaluasi setiap kemungkinan solusi satu per satu. Bila pencarian berakhir. namun waktu atau sumberdaya yang dibutuhkan dalam pencarian solusinya sangat besar. 3} 17 tidak layak {1. Algoritma exhaustive secara teoritis menghasilkan solusi. 3} dengan total keuntungan adalah 80. 3} 15 80 {2. Kompleksitas algoritma exhaustive search untuk persoalan 0/1 Knapsack adalah T(n) = O(n.i++ YA TIDAK Solusi ke[i] layak? YA Hitung kelayakan solusi ke[i] Kelayakan terbaik < kelayakan solusi ke[i] TIDAK YA Terbaik = solusi ke[i] STOP . Langkah-langkah pencarian solusi 0/1 Knapsack secara exhaustive search dirangkum dalam tabel di bawah ini: Tabel 3. Solusi persoalan 0/1 Knapsack di atas adalah X = {0. 2.B. 0}. i<jumlahSolusi. 3. karena tidak mungkin dapat ditemukan algoritma polinomial untuk memecahkannya. mungkin saja beberapa kemungkinan solusi yang tidak layak dikeluarkan. 1. 2. 4} 7 30 {2. 4} 17 tidak layak {2. umumkan solusi terbaik (the winner). 4} 22 tidak layak Himpunan bagian objek yang memberikan keuntungan maksimum adalah {2. 3. 3} 12 70 {1. 3. Enumerasi (list) setiap solusi yang mungkin dengan cara yang sistematis. 4} 15 60 {1. dan simpan solusi terbaik yang ditemukan sampai sejauh ini (the best solusi found so far). Waktu untuk menghitung total bobot objek yang dipilih = O(n). 2. 3.i++ YA nilai=1 j=0. 1. j<jumlahSolusi. 2n) 0/1 Knapsack adalah contoh persoalan yang mempunyai kompleksitas algoritma eksponensial. 2} 7 50 {1. Sehingga. 4} 20 tidak layak {1. 0/1 Knapsack digolongkan sebagai persoalan NP (Non-deterministic Polynomial). i<jumlahBarang.2 langkah-langkah pencarian solusi Himpunan Bagian Total Bobot Total keuntungan {} 0 0 {1} 2 20 {2} 5 30 {3} 10 50 {4} 5 10 {1. 4} 12 60 {1. 4} 10 40 {3.j++ YA pembagi = 2^(i+1) TIDAK j modulus (jumlahSolusi/ pembagi)=0 && j!=0 YA TIDAK nilai==0 TIDAK YA nilai=1 nilai=0 Set solusi ke[i] kombinasi ke [j] = nilai TIDAK i=0. Berikut flowchart program algoritma exhaustive search: START jumlahSolusi = 2 ^ jumlahBarang buat solusi sebanyak jumlahSolusi generate kombinasi tiap solusi TIDAK i=0.

volume max: 50 Gambar 3.6 ms box3 bobot: 20 volume: 10 box4 bobot: 10 volume: 5 box5 bobot: 20 volume: 30 box1 bobot: 10 volume: 30 box2 bobot: 5 volume: 20 box3 bobot: 20 volume: 10 box4 bobot: 10 volume: 5 1107. Terdiri dari 3 bagian. masing-masing memiliki berat dan nilai. Sedangkan bagian kanan adalah form tampilan pengangkutan barang menggunakan algoritma genetika dan exhaustive search dengan total waktu pengangkutan masing.680 box4 bobot: 10 volume: 5 3 ms 7 ms box5 bobot: 20 volume: 30 box6-1 bobot: 35 volume: 30 IV. dilakukan perbandingan jarak yang dihasilkan serta waktu yang dibutuhkan oleh sistem untuk menjalankan algoritma tersebut. Bagian kiri terdiri dari form untuk mnginputkan barang dan menentukan bobot max dan volume max. Form bagian tengah berisi list barang yang akan di angkut. Karena dengan peningkatan jumlah populasi akan memberikan ruang solusi yang semakin banyak. Hal tersebut disebabkan konkurensi dapat menghemat waktu pengerjaan jika proses komputasi dilakukan oleh lebih dari satu buah mesin komputasi (prosesor multicore). algoritma genetik mengembangkan prinsip greedy. Tabel 3.6 ms ms box6-1 bobot: 35 volume: 30 box7-1 bobot: 38 volume: 41 box8-1 bobot: 33 volume: 15 box8-2 bobot: 33 volume: 15 box1 bobot: 10 volume: 30 box2 bobot: 5 volume: 20 box3 bobot: 20 volume: 10 12812. Hasil dari program bergantung kepada penentuan parameter dan data yang diinputkan. Namanya berasal dari masalah maksimasi untuk pilihan paling tepat dari barang-barang yang akan dibawa dalam sebuah tas pada sebuah perjalanan. .6019 box5 bobot: 20 volume: 30 15. yang menentukan jumlah barang yang dapat dibawa sehingga total berat tidak melebihi kapasitas tas dan dengan total nilai yang sebesar mungkin. Dapat kita simpulkan bahwa Algoritma genetika cukup baik digunakan pada knapsack problem selain itu peningkatan jumlah populasi akan memberikan nilai fitness yang semakin tinggi.2 Interface aplikasi Untuk pengujian. Sistem ini dikembangkan sehingga pengguna dapat melakukan penentuan barang dan berat sesuai dengan yang dikehendaki.3 Perbandingan waktu pengakutan barang dengan algoritma genetika dan exhaustive search Algoritma Exhaustive Barang Genetika Search box1 bobot: 10 volume: 30 box2 bobot: 5 volume: 20 452. Karena Aplikasi ini akan menghasilkan optimasi kombinatorial yang mendekati solusi optimalnya. Dalam mencari solusi. Sejumlah barang yang tersedia ini.C. KESIMPULAN Algoritma genetik mengandalkan konkurensi yang dimilikinya.189 22549. box7-1 bobot: 38 volume: 41 box7-2 bobot: 38 volume: 41 box7-3 bobot: 38 volume: 41 box7-4 bobot: 38 volume: 41 box7-5 bobot: 38 volume: 41 box7-6 bobot: 38 volume: 41 box7-7 bobot: 38 volume: 41 box8-1 bobot: 33 volume: 15 box8-2 bobot: 33 volume: 15 box8-3 bobot: 33 volume: 15 box8-4 bobot: 33 volume: 15 box8-5 bobot: 33 volume: 15 box8-6 bobot: 33 volume: 15 box8-7 bobot: 33 volume: 15 box8-8 bobot: 33 volume: 15 box8-9 bobot: 33 volume: 15 box8-10 bobot: 33 volume: 15 box8-11 bobot: 33 volume: 15 box8-12 bobot: 33 volume: 15 box8-13 bobot: 33 volume: 15 box8-14 bobot: 33 volume: 15 box8-15 bobot: 33 volume: 15 box8-16 bobot: 33 volume: 15 box8-17 bobot: 33 volume: 15 box8-18 bobot: 33 volume: 15 box8-19 bobot: 33 volume: 15 box8-20 bobot: 33 volume: 15 *) bobot max : 40. digunakan bahasa pemrograman Visual Studio C#. yang berarti bahwa solusi optimal yang ditemukan semakin baik. Knapsack problem adalah masalah optimasi kombinatorial. Adapun hasil interface sistem dapat dilihat pada gambar di bawah ini. Prinsip greedy digunakan pada saat pengambilan individu-individu yang memiliki nilai kelayakan yang baik untuk kemudian dilakukan reproduksi dari individu-individu tersebut.4008 ms 15.masing algoritma. Implementasi dan Hasil Pengujian Untuk implementasi sistem.

Rumbai: Politeknik Caltex Riau. Yogyakarta: Graha Ilmu. Algoritma itu Mudah. kita akan mengerti kapan kita harus menyelesaikan masalah optimasi pengangkutan barang dengan menggunakan algoritma exhaustive search maupun algoritma genetika. algoritma exhaustive search akan selalu menemukan solusi yang terbaik karena semua solusi yang mungkin akan diperhitungkan dan dibandingkan. selain itu . Teori dan Aplikasi Praktisnya.jumlah datanya banyak menggunakan GA lebih cepat daripada brute force. Agus Urip Ari . algoritma genetika menemukan solusi lebih cepat daripada algoritma exhaustive search. Suyanto. Prasetyo Andy. Meski begitu. sedangkan apabila sebaliknya . crossover dan mutasi yang bersifat random.kelemahan dari GA adalah belum tentu ditemukannya solusi yang optimal. apabila jumlah data sedikit . Robert. Tetapi untuk barang dalam jumlah banyak. Bandung: STEI. Kendali Cerdas. Yogyakarta: Andi Offset. Dari hasil perbandingan algoritma yang diperoleh ini. Dipti dan Maya Hristakeva. Sri. USA: Computer Science Department. Simpson College. Juni Nurma Sari dan Kori Cahyono. Makalah IF2251 Strategi Algoritmik: Eksplorasi Algoritma Brute Force. Sedangkan algoritma genetika tidak selalu menemukan solusi terbaik karena proses seleksi. V. Shrestha. Evolutionary Computation: Komputasi Berbasis “Evolusi” dan “Genetika”. Setiadi. 2007. algoritma brute force dapat menemukan solusi lebih cepat daripada GA. Artificial Intelligence (Teknik dan Aplikasinya). 2008. REFERENCES [1] [2] [3] [4] Kusumadewi. 2008. Kuswadi. Bahasa Pemrograman I. Tidak ada satupun solusi yang terlewatkan. Wibowo. 2003. KONTRIBUSI Perbandingan algoritma exhaustive search dan algoritma genetika untuk mencari solusi dari knapsack problem kami wujudkan dalam bentuk program berbahasa visual C#. Son. Jakarta: Prima Infosarana Media. Dalam hal efektivitas solusi. exhaustive search memiliki waktu pencarian solusi yang lebih cepat daripada algoritma genetika. dapat diketahui bahwa untuk jumlah barang yang sedikit. Institut Teknologi Bandung. 2003. Solving the 0-1 Knapsack problem with Genetic Algorithms. Greedy dan Pemrograman Dinamis pada Penyelesaian Masalah 0/1 Knapsack. 2007. [5] [6] [7] . sedangkan dengan menggunakan brute force pasti ditemukannya solusi karena brute force melakukan pengecekan terhadap semua solusi yang dimungkinkan. Dari program ini. Bandung: Informatika. Wicaksono. tidak jarang algoritma genetika menemukan solusi terbaik untuk knapsack problem.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->