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

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

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

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

yang berarti bahwa solusi optimal yang ditemukan semakin baik. Sistem ini dikembangkan sehingga pengguna dapat melakukan penentuan barang dan berat sesuai dengan yang dikehendaki. Prinsip greedy digunakan pada saat pengambilan individu-individu yang memiliki nilai kelayakan yang baik untuk kemudian dilakukan reproduksi dari individu-individu tersebut.189 22549. Knapsack problem adalah masalah optimasi kombinatorial. Sejumlah barang yang tersedia ini. Karena Aplikasi ini akan menghasilkan optimasi kombinatorial yang mendekati solusi optimalnya. . Bagian kiri terdiri dari form untuk mnginputkan barang dan menentukan bobot max dan volume max. Hal tersebut disebabkan konkurensi dapat menghemat waktu pengerjaan jika proses komputasi dilakukan oleh lebih dari satu buah mesin komputasi (prosesor multicore). Terdiri dari 3 bagian.6019 box5 bobot: 20 volume: 30 15. volume max: 50 Gambar 3. masing-masing memiliki berat dan nilai.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.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. Sedangkan bagian kanan adalah form tampilan pengangkutan barang menggunakan algoritma genetika dan exhaustive search dengan total waktu pengangkutan masing. digunakan bahasa pemrograman Visual Studio C#. Implementasi dan Hasil Pengujian Untuk implementasi sistem.680 box4 bobot: 10 volume: 5 3 ms 7 ms box5 bobot: 20 volume: 30 box6-1 bobot: 35 volume: 30 IV. Dalam mencari solusi.masing algoritma. 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. Adapun hasil interface sistem dapat dilihat pada gambar di bawah ini.C.4008 ms 15. algoritma genetik mengembangkan prinsip greedy. Tabel 3. Namanya berasal dari masalah maksimasi untuk pilihan paling tepat dari barang-barang yang akan dibawa dalam sebuah tas pada sebuah perjalanan. Form bagian tengah berisi list barang yang akan di angkut.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. dilakukan perbandingan jarak yang dihasilkan serta waktu yang dibutuhkan oleh sistem untuk menjalankan algoritma tersebut. 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. Karena dengan peningkatan jumlah populasi akan memberikan ruang solusi yang semakin banyak.2 Interface aplikasi Untuk pengujian. Hasil dari program bergantung kepada penentuan parameter dan data yang diinputkan. KESIMPULAN Algoritma genetik mengandalkan konkurensi yang dimilikinya.

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

Sign up to vote on this title
UsefulNot useful