EKSPLORASI ALGORITMA BRUTE FORCE, GREEDY DAN PEMROGRAMAN DINAMIS PADA PENYELESAIAN MASALAH 0/1 KNAPSACK

dokumen-dokumen yang mirip
Eksplorasi Algoritma Brute Force, Greedy, dan Dynamic Programming untuk Persoalan Integer Knapsack

Program Dinamis (Dynamic Programming)

Penentuan Menu Makan dengan Pemrograman Dinamis

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

BAB II LANDASAN TEORI

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT

Pencarian Solusi Optimal dalam Permainan Congklak dengan Program Dinamis

Design and Analysis Algorithm. Ahmad Afif Supianto, S.Si., M.Kom. Pertemuan 09

Penyelesaian Persoalan Penukaran Uang dengan Program Dinamis

PERMASALAHAN OPTIMASI 0-1 KNAPSACK DAN PERBANDINGAN BEBERAPA ALGORITMA PEMECAHANNYA

Penerapan Algoritma Greedy dalam Pencarian Rantai Penjumlahan Terpendek

Program Dinamis (dynamic programming):

Pengantar Strategi Algoritmik. Oleh: Rinaldi Munir

Program Dinamis Sebagai Algoritma Dalam Link State Routing Protocol

Penerapan Algoritma Program Dinamis dalam Penjadwalan Pengerjaan Sekumpulan Tugas Pelajar

MODUL I PROGRAM DINAMIS

Program Dinamis. Oleh: Fitri Yulianti

TIN102 - Pengantar Teknik Industri Materi #10 Ganjil 2015/2016 TIN102 PENGANTAR TEKNIK INDUSTRI

BAB I PENDAHULUAN. pada sektor masyarakat meluas dengan cepat[4]. menentukan tingkat kegiatan-kegiatan yang akan dilakukan, dimana masingmasing

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Program Dinamis (Dynamic Programming)

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Pencarian Lintasan Terpendek Jalur Pendakian Gunung dengan Program Dinamis

Penerapan Program Dinamis dalam Menentukan Kegiatan Olahraga dengan Pembakaran Kalori Optimal

Penentuan Rute Terbaik pada Permainan Taxi Rider

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Pemanfaatan Algoritma Program Dinamis dalam Pendistribusian Barang

ALGORITMA OPTIMASI UNTUK MEMINIMALKAN SISA PEMOTONGAN BAR STEEL PADA PERUSAHAAN KONSTRUKSI

PENEMPATAN KANTOR POS DENGAN ALGORITMA PROGRAM DINAMIS

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Penerapan Algoritma Greedy dalam Permainan MarketGlory

Sudi dan Implementasi Algoritma Optimasi Pemotongan Bar Steel

Perbandingan Algoritma Dijkstra dan Algoritma Floyd-Warshall dalam Penentuan Lintasan Terpendek (Single Pair Shortest Path)

Deteksi Wajah Menggunakan Program Dinamis

Penerapan Program Dinamis dalam Menentukan Rute Terbaik Transportasi Umum

Analisis Permainan FLIP Menggunakan Algoritma Program Dinamis

PENYELESAIAN KNAPSACK PROBLEM MENGGUNAKAN ALGORITMA GENETIKA

BAB II LANDASAN TEORI

Pengantar Strategi Algoritma

Penerapan Algoritma Greedy dalam Penyetokan Barang

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

BAB I PENDAHULUAN. Knapsack adalah suatu permasalahan dalam menentukan pemilihan objek

Implementasi Algoritma Greedy pada Permainan Ludo

Algoritma Brute Force (lanjutan)

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

Penerapan Program Dinamis untuk Optimisasi Taktik Pit Stop F1

BAB III ALGORITMA GREEDY DAN PROGRAM DINAMIS

ALGORITMA MENCARI LINTASAN TERPENDEK

Pengaturan Pilihan Makanan untuk Memenuhi Kebutuhan Kalori dengan Algoritma Pemrograman Dinamis

Implementasi Pemrograman Dinamis dalam Pencarian Solusi Permainan Menara Hanoi

Penerapan Dynamic Programming dalam Penentuan Pengambilan Job dalam Euro Truck Simulator 2

Penentuan Lokasi Pemasaran Produk dengan Media Periklanan Menggunakan Algoritma Greedy

Implementasi Pencocokan String Tidak Eksak dengan Algoritma Program Dinamis

Penerapan Algoritma Boyer Moore-Dynamic Programming untuk Layanan Auto-Complete dan Auto-Correct

Penerapan Algoritma Greedy dalam Algoritma Penjadwalan Prosesor Tunggal Shortest Job First

PENERAPAN ALGORITMA GREEDY DALAM PENGISIAN RENCANA STUDI SEMESTER DI ITB SEBAGAI PERSOALAN BINARY KNAPSACK

TUGAS RESUME MATERI KULIAH ALGORITMA DAN STRUKTUR DATA STRATEGI ALGORITMA : H

APLIKASI PEMROGRAMAN DINAMIS UNTUK MEMAKSIMALKAN PELUANG MEMENANGKAN PERMAINAN PIG

Penerapan Algoritma Brute Force pada permainan Countdown Number

Pendahuluan. Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi.

IMPLEMENTASI ALGORITMA GREEDY UNTUK MENYELESAIKAN MASALAH KNAPSACK PROBLEM

Penerapan Algoritma Greedy dalam Algoritma Disk Scheduling Shortest Seek Time First

PENGGUNAAN ALGORITMA HUNGARIAN DALAM MENYELESAIKAN PERSOALAN MATRIKS BERBOBOT

Optimalisasi Susunan Tempat Duduk Kereta Api Menggunakan Algoritma Greedy dan Program Dinamis

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

Design and Analysis of Algorithms CNH2G3- Week 8 Greedy Algorithm

Analisis dan Strategi Algoritma

Penerapan Algoritma Greedy dalam Pengisian Rencana Studi Semester di ITB sebagai Persoalan Binary Knapsack

Permasalahan Clique dalam Graf

Penerapan Algoritma Greedy dalam Optimasi Keuntungan Perusahaan Pengiriman Barang

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Pemecahan Masalah Longest Increasing Subsequence Memanfaatkan Program Dinamis dan Binary Search

Departemen Teknik Informatika Institut Teknologi Bandung 2004

Penggunaaan Algoritma Greedy Dalam Aplikasi Vending Machine

Penerapan Algoritma Greedy pada Permainan Tower Defense

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Paradigma Pemrograman Dinamis dalam Menentukan Rute Distribusi Bahan Bakar Minyak Berdasarkan Kebutuhan Penduduk di Suatu Daerah

Optimasi Perhitungan Bilangan Fibonacci Menggunakan Program Dinamis

Perbandingan Performa Algoritma Greedy dan Dynamic Programming

Aplikasi Dynamic Programming dalam Decision Making pada Reinvestment Problem

Kompleksitas Algoritma untuk Penyelesaian Persoalan Penukaran Koin dengan Algoritma Greedy

ALGORITMA RUNUT-BALIK (BACKTRACKING ALGORITHM) PADA MASALAH KNIGHT S TOUR

Pencarian Jalur Terpendek Pada Sistem Jaringan Komputer Menggunakan Algoritma Program Dinamis

PENERAPAN ALGORITMA GREEDY DALAM PENCARIAN SOLUSI TERBAIK PADA PERMAINAN TETRIS

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

BAB 2 LANDASAN TEORI

Penggunaan Algoritma Divide and Conquer Dalam Pewarnaan Graf

Penentuan Lintasan Terbaik Dengan Algoritma Dynamic Programming Pada Fitur Get Driving Directions Google Maps

Pemecahan Masalah Knapsack dengan Menggunakan Algoritma Branch and Bound

Pendekatan Dynamic Programming untuk Menyelesaikan Sequence Alignment

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Perbandinganan Penggunaan Algoritma Greedy dan Modifikasi Algoritma Brute Force pada Permainan Collapse XXL

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

Analisa Keputusan Manajemen dengan Pemrograman Dinamis

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

Aplikasi Algoritma Greedy pada Pemilihan Jenis Olahraga Ringan

Transkripsi:

EKSPLORASI ALGORITMA BRUTE FORCE, GREEDY DAN PEMROGRAMAN DINAMIS PADA PENYELESAIAN MASALAH / KNAPSACK Prasetyo Andy Wicaksono - 55 Program Studi T. Inormatika, STEI, Institut Teknologi Bandung Jl. Ganesha Bandung 4 e-mail: i5@students.i.itb.ac.id ABSTRAK Setiap manusia menginginkan keuntungan yang sebanyak-banyaknya dengan hanya menggunakan sumber daya yang seeisien mungkin dengan berbagai batasan yang ada. Salah satu contohnya dalam kehidupan sehari-hari manusia adalah dalam permasalahan saat seseorang ingin memilih benda apa saja yang sesuai untuk dimasukkan ke dalam suatu adah yang mempunyai keterbatasan ruang dan daya tampung, sehingga dengan konigurasi beberapa benda yang dimasukkan, solusi yang didapatkan menghasilkan keuntungan yang maksimal. Pada beberapa kasus, benda-benda yang dimasukkan adalah benda yang berbentuk satuan dan tidak bisa dipecah menjadi beberapa bagian. Sehingga jika ingin memasukkan benda tersebut, maka satu kesatuan benda harus masuk ke dalam adah. Permasalahan seperti ini disebut Integer Knapsack. Pada makalah ini akan dibahas eksplorasi dan perbandingan metode pencarian solusi permasalahan Integer Knapsack dengan menggunakan algoritma Brute Force, Greedy dan Dynamic Programming sehingga didapatkan algoritma yang paling mangkus untuk dibandingkan satu dengan yang lainnya. Perbandingan algoritmaalgoritma ini meliputi tingkat kompleksitas dan kesulitan implementasi dari setiap algoritma. Kata kunci: Integer Knapsack, Brute Force, Greedy, Dynamic Programming. PENDAHULUAN Setiap manusia menginginkan keuntungan yang sebanyak-banyaknya dengan hanya menggunakan sumber daya yang seeisien mungkin dengena berbagai batasan yang ada. Salah satu contohnya dalam kehidupan seharihari menusia adalah dalam permasalahan saat seseorang ingin memilih benda apa saja yang sesuai untuk dimasukkan ke dalam suatu adah yang mempunyai keterbatasan ruang dan daya tampung, sehingga dengan konigurasi beberapa benda yang dimasukkan, solusi yang didapatkan menghasilkan keuntungan yang maksimal. Pada beberapa kasus, benda-benda yang dimasukkan adalah benda yang berbentuk satuan dan tidak bisa dipecah menjadi beberapa bagian. Sehingga jika ingin memasukkan benda tersebut, maka satu kesatuan benda harus masuk ke dalam adah. Permasalahan ini disebut Integer Knapsack.Persoalan Integer Knapsack ini pada dasarnya dapat dicari solusinya dengan beberapa macam algoritma yang ada. Namun terdapat tiga algoritma yang bersesuaian dengan permasalahan ini untuk dianalisis, yaitu dengan menggunakan algoritma Brute Force, Greedy dan Dynamic Programming. Gambar. Contoh Persoalan Integer Knapsack pada kehidupan sehari-hari, yaitu penentuan benda pada tas.. METODE Pada bab ini akan dibahas lebih mendalam satu persatu mengenai apa itu Integer Knapsack, algoritma Brute Force, Greedy, dan Dynamic Programming pada pencarian solusi permasalahan Integer Knapsack. MAKALAH IF5 STRATEGI ALGORITMIK TAHUN 7

. Integer Knapsack Integer knapsack dalam konteks ini dimisalkan diberikan n buah benda, x sampai x n, dan sebuah knapsack (karung, tas, dsb.) dengan kapasitas bobot K. Setiap benda memiliki bobot i dan keuntungan p i. Objekti persoalan adalah bagaimana memilih benda- sehingga benda yang dimasukkan ke dalam knapsack tidak melebihi kapasitas knapsack, namun tetap memaksimumkan total keuntungan.[] Permasalahan integer knapsack mempunyai solusi persoalan dinyatakan sebagai himpunan: X = {x, x, x,, x n } Dimana setiap elemen x ke-n (x n ) diisi dengan angka atau. Misalkan x =, berarti benda x dimasukkan ke dalam knapsack, dan jika x =, maka benda x tidak dimasukkan ke dalam knapsack. Jika solusi yang ditemukan adalah X = {,,}, maka benda ke- dan ke- dimasukkan ke dalam knapsack, dan benda ke- tidak dimasukkan. Secara matematis persoalan integer knapsack dirumuskan sebagai berikut: maksimasi dengan batasan. Algoritma Brute Force Algoritma Brute Force adalah sebuah pendekatan yang lempang (straightorard) untuk memecahkan suatu masalah, biasanya langsung pada pernyataan masalah (problem statement), dan deinisi konsep yang dilibatkan.[] Prinsip pencarian solusi permasalahan Integer Knapsack menggunakan algoritma brute orce adalah:. Mengenumerasikan list semua hiimpunan bagian dari himpunan dengan n objek. Menghitung total keuntungan dari setiap himpunan bagian dari langkah. Memilih himpunan bagian yang memerbikan total keuntungan terbesar Misalkan pada kasus diberikan n =. Misalkan objek- objek objek yang ada kita berikan nomor,,. Sehingga ke- adalah x, dan begitu seterusnya. Properti dari setiap objek ke-i dan kapasitas dari knapsack adalah sebagai berikut: () () = ; p = = ; p = 5 = 5; p = Kapasitas knapsack adalah K = 8 Langkah-langkah pencarian solusi secara brute orce digambarkan dalam tabel berikut: Tabel. Tabel Contoh Pencarian Solusi Integer Knapsack menggunakan Brute Force Himpunan Total Bobot Bagian {} {} {} {} 5 {,} 5 {,} 7 {,} 8 {,,} Catatan: Himpunan bagian {,,} tidak menghasilkan solusi karena menghasilkann total bobot yang lebih besar dari kapasitas knapsack K. Dari tabel di atas didapatkan himpunan bagian yang memberikan keuntungan maksimum jika konigurasi objek yang dimasukkan adalah {,}. Dengan total keuntungan 55. Solusi dari permasalahan ini adalah X = {,,}. Artinya objek ke- dan ke- dimasukkan ke dalam knapsack, sedangkan objek ke- tidak dimasukkan.. Algoritma Greedy Total Keuntungan 5 55 45 5 Tidak layak Algoritma greedy membentuk solusi langkah per langkah. Terdapat banyak pilihan yang perlu dieksplorasi pada setiap langkah solusi. Oleh karena itu, pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan. Keputusan yang telah diambil pada suatu langkah tidak dapat diubah lagi pada langkah selanjutnya. [] Untuk pencarian solusi permasalahan integer knapsack menggunakan algoritma greedy, masalah dipecahkan dengan memasukkan objek satu per satu ke dalam knapsack. Sekali objek tersebut dimasukkan ke dalam knapsack, maka objek tersebut tidak dapat dikeluarkan lagi. Ada beberapa strategi algoritma greedy yang dapat digunakan untuk pemecahan masalah ini, bergantung pada properti objek yang akan dijadikan parameter greedy:. Greedy by eight dengan objek yang memiliki bobot lebih ringan terlebih dahulu. Tujuan dari strategi ini adalah MAKALAH IF5 STRATEGI ALGORITMIK TAHUN 7

untuk memaksimumkan jumlah kuantitas objek yang dapat masuk ke dalam knapsack.. Greedy by proit dengan objek yang memiliki keuntungan lebih besar terlebih dahulu. Tujuan dari strategi ini adalah untuk memaksumumkan jumlah keuntungan dari objek yang dimasukkan ke dalam knapsack.. Greedy by density dengan objek yang memiliki rasio keuntungan dibagi dengan bobot (p i / i ) yang paling besar. Tujuan dari strategi ini adalah untuk memaksimumkan keuntungan dari objek yang dimasukkan, namun knapsack tetap diisikan dengan jumlah objek sebanyak mungkin. Dimisalkan dari contoh persoalan yang dipakai di subbab brute orce.diberikan kasus n =. Misalkan objek-objek yang ada kita berikan nomor,,. Sehingga objek ke- adalah x, dan begitu seterusnya. Properti dari setiap objek ke-i dan kapasitas dari knapsack adalah sebagai berikut: = ; p = = ; p = 5 = 5; p = Kapasitas knapsack adalah K = 8 Maka tabel solusi dengan menggunakan algoritma greedy adalah sebagai berikut: Tabel. Tabel Contoh Pencarian Solusi Integer Knapsack menggunakan greedydengan n = 4 Properti Objek Greedy by Solusi i i p i p i/ i Weight Proit Density Optimal, 5,8 5.5 Total Bobot 5 5 8 5 Total Keuntungan 55 55 5 55 Dari tabel di atas algoritma greedy dengan strategi pemilihan greedy by eight dan proit menghasilkan solusi optimal (solusi optimal diperoleh dari algoritma brute orce yang dijabarkan pada subbab sebelumnya), sedangkan strategi greedy by density tidak menghasilkan solusi optimal. Misalkan pada contoh lainnya dengan menggunakan enam objek: = ; p = 4 = 5; p = 5 = 45; p = 8 4 = ; p 4 = 4 5 = ; p 5 = 6 = 5; p 6 = Kapasitas knapsack W = Tabel. Contoh langkah pencarian solusi Integer Knapsack secara greedy dengan n=6 Properti Objek Greedy by Solusi i i p i p i/ i Weight Proit Density Optimal 4,4 5 5,7 45 8,4 4 4, 5, 6 5,4 Total bobot 8 85 Total keuntungan 4 4 5 55 Dari tabel di atas, algoritma greedy dengan ketiga strategi yang ada tidak ada satu pun yang menghasilkan solusi optimal. Solusi optimal yang dicari dengan algoritma brute orce adalah X = {,,,,,}, dengan total bobot =, dan total keuntungan = 55.. Algoritma Dynamic Programming Dynamic programming, atau dalam bahasa Indonesia berarti program dinamis, adalah metode pemecahan masalah dengan cara menguraikan solusi menjadi sekumpulan langkah (step) atau tahapan (stage) sedemikian sehingga solusi dari persoalan dapat dipandang dari serangkaian keputusan yang saling berkaitan. [] Pada penyelesaian persoalan dengan metode ini:. Terdapat sejumlah bilangan berhingga pilihan yang mungkin. Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya. Kita menggunakan persyaratan optimasi dan kendalauntuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap. Metode ini mirip dengan algoritma greedy karena program dinamis dan greedy sama-sama membentuk solusi secara bertahap. Dua pendekatan yang digunakan adalah dengan dynamic programming adalah maju (orard atau topdon) dan mundur (backard atau bottom-up). Misalkan x, x,,x n menyatakan peubah keputusan yang harus dibuat masing-masing untuk tahap,,, n. Maka, a. Program dinamis maju. Program dinamis bergerak mulai tahap terus maju ke tahap, dan seterusnya sampai tahap n. Runtuntan peubah keputusan adalah x, x,,x n. MAKALAH IF5 STRATEGI ALGORITMIK TAHUN 7

b. Program dinamis mundur. Program dinamus bergerak mulai tahap n, lalu mundur ke tahap n, tahap n, dan seterusnya sampai tahap. Runtutan peubah keputusan adalah x n, x n-, x n-,,x Secara umum, ada empat langkah yang dilakukan untuk mengembangkan algoritma program dinamis, yaitu:. Mengkarateristik struktur solusi optimal. Mendeinisikan secara rekursi nilai solusi optimal. Hitung nilai solusi optimal secara maju atau mundur 4. Konstruksi solusi optimal Penerapan metode program dinamis maju pada persoalan integer knapsack adalah:. Tahap (k) adalah proses memasukkan benda ke dalam tas. Status (y) menyatakan kapasitas muat tas yang tersisa setelah memasukkan benda pada tahap sebelumnya Dari tahap ke-, kita masukkan objek ke- ke dalam karung untuk setiap satuan kapasitas tas sampai batas maksimumnya.karena kapasitas karung adalah bilangan bulat, maka pendekatan ini praktis Misalkan ketika memasukkan objek pada tahap k, kapasitas muat karung sekarang adalah y k. Untuk mengisi kapasitas sisanya, kita menerapkan prinsip optimalitas dengan mengacu pada nilai optimum dari tahap sebelumnya untuk kapasitas sisa y k (yaitu k- (y k )) Selanjutnya kita bandingkan nilai keuntungan dari objek pada tahap k (yaitu p k ) plus nilai k- (y k ) dengan keuntungan pengisian hanya k macam objek, k- (y) Jika p k + k- (y k ) lebih kecil dari k- (y), maka objek yang ke-k tidak dimasukkan ke dalam karung, tetapi jika lebih besar, maka objek yang ke-k dimasukkan Relasi rekurens untuk persoalan ini adalah k (y) adalah keuntungan optimum dari persoalan integer knapsack pada tahap k untuk kapasitas karung sebesar y. (y) = adalah nilai dari persoalan knapsack kosong dengan kapasitas y k (y) = - adlah nilai dari persoalan knapsack untuk kapasitas negati. Solusi optimum dari persoalan integer knapsack adalah n (M). Misalkan digambarkan dalam contoh persoalan memuatkan tiga macam benda ke dalam tas. Tiap macam benda memiliki berat i dan akan memberikan keuntungan p i, dimana i = (,,). Kapasitas muat benda adalah M (dalam satuan berat). Tentukan benda-benda apa saja yang dimasukkan ke dalam tas sehingga memberikan keuntungan penjualan yang maksimum, namun total berat barang tidak boleh melebihi M. M = 5 Tabel 4. Bobot dan Keuntungan Barang (n = ) Benda ke i i p i 65 8 Dari data pada tabel di atas, maka dapat dicari solusi dengan bertahap. Tahap : (y) = max{ (y),p + (y- )} = max{ (y),65 + (y-)} Tabel 5. Tahap Pencarian Solusi integer knapsack dengan y (y) 65 + (y-) (y) (x*,x*,x*) - (,,) - (,,) 65 65 (,,) 65 65 (,,) 4 65 65 (,,) 5 65 65 (,,) Tahap : (y) = max{ (y), p + (y )} = max{ (y), 8 + (y )} (y) =, y =,,,, M (y) = -, y < k (y) = max{ (y), p + (y )}, k k- k k- k k =,,, n yang dalam hal ini, (basis) (basis) (rekurens) Tabel 6. Tahap Pencarian Solusi integer knapsack dengan y (y) 8 + (y-) (y) (x*,x*,x*) 8 +(- ) = - (,,) 8 +(- ) = - (,,) 65 8 +(- ) = - 65 (,,) 65 8 + = 8 8 (,,) MAKALAH IF5 STRATEGI ALGORITMIK TAHUN 7 4

4 65 8 + = 8 8 (,,) 5 65 8 + 65 = 45 45 (,,) penggunaan algoritma pemrograman dinamis mangkus untuk persoalan integer knapsack. Tahap : (y) = max{ (y), p + (y )} = max{ (y), + (y )} Tabel 7. Tahap Pencarian Solusi integer knapsack dengan y y) + (y-) (y) (x*,x*,x*) +(- ) = - (,,) +(- ) = - (,,) 65 + = 65 (,,) 8 + 65 = 95 95 (,,) 4 8 + 8 = (,,) 5 45 + 8 = 45 (,,) Solusi optimum dari persoalan integer knapsack di atas adalah (,,) dengan nilai keuntungan maksimum adalah = 45..4 Perbandingan Ketiga Algoritma Setelah menganalisis ketiga algoritma untuk persoalan integer knapsack, terlihat baha ketiga algoritma ini mempunyai karakteristik kerja yang berbeda dan mempunyai kompleksitas aktu yang berbeda pula. Penyelesaian permasalahan integer knapsack dengan algoritma brute orce memiliki kompleksitas aktu yang paling besar. Hal ini terjadi karena algoritma ini mengecek semua kemungkinan himpunan bagian yang terjadi pada himpunan benda-benda tersebut, yang merupakan karakteristik algoritma ini. Dari banyak pengecekan himpunan bagian sebanyak n. Setelah semua kemungkinan didapat lalu dilakukan lagi pencarian hasil optimum yang merupakan operasi perbandingan sebanyak n kali, maka kompleksitasnya menjadi O (n. n ). Pencarian dengan algoritma greedy, jumlah langkah yang diperlukan untuk mencapai solusi permasalahan integer knapsack ini bergantung pada pada jumlah objek yang dimiliki. Untuk menentukan objek dengan keuntungan maksimal diperlukan proses perbandingan sebanyak n kali, lalu setiap obejk akan diuji apakah dipilih untuk masuk ke dalam knapsack atau tidak dengan proses sebanyak n kali. Sehingga kompleksitas aktunya menjadi O(n ). Pada algoritma pemrograman dinamis. Pemrograman dinamis tidak mempunyai algoritma yang pasti untuk permasalahan integer knapsack. Karena status yang dibangkitkan tidak selalu sama jumlahnya. Namun dari langka-langkah penyelesaiannya dapat dilihat baha IV. KESIMPULAN Setelah menganalisis ketiga algoritma di atas, dihasilkan baha penyelesaian permasalahan integer knapsack denga pemrograman dinamis adalah metode penyelesaian yang lebih mangkus dibandingkan dengan dua algoritma yang lainnya. Namun akan terasa rumit saat ase pengimplementasian ke bahasa pemrograman. Algoritma greedy merupakan algoritma yang mempunyai tingkat kemangkusan kedua untuk permasalahan ini, dibanding dengan dua algoritma yang lainnya, saat pengimplementasiannya ke dalam bahasa pemrograman tidak terasa kesulitan yang berarti, namun solusi yang dihasilkan algoritma ini tidak selalu merupakan solusi optimal. Algorita brute orce merupakan algoritma yang paling mudah untuk diimplementasi, namun butuh usaha yang sangat besar untuk kasus dengan masukan yang besar, karena kompleksitas aktu yang dimiliki eksponensial. REFERENSI [] Munir, Rinaldi, Diktat Kuliah IF5 : Strategi Algoritmik, 6 [] Martello, Silvano, Ne Trends in exact algorithms or the - knapsack problem, 997 [] http://ikipedia.org/, diakses pada 7 Mei 7 MAKALAH IF5 STRATEGI ALGORITMIK TAHUN 7 5