Anda di halaman 1dari 16

Tugas mandiri Algoritma dan struktur data

STRATEGI ALGORITMA

RAMDANI RAMLI H12111276

JURUSAN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PEGETAHUAN ALAM UNIVERSITAS HASNUDDIN 2012/2013

NAMA : RAMDANI RAMLI

NIM : H12111276 ALAMAT BLOG : ramdaniramli.blogspot.com

METODE GREEDY Metode/Algoritma Greedy merupakan algoritma yang membentuk solusi langkah per langkah. Pada setiap langkah tersebut akan dipilih keputusan yang paling optimal. Keputusan tersebut tidak perlu memperhatikan keputusan selanjutnya yang akan diambil, dan keputusan tersebut tidak dapat diubah lagi pada langkah selanjutnya. Metode ini digunakan untuk memperoleh solusi yang optimal dari suatu masalah yang mempunyai 2 indikator yaitu : adanya fungsi tujuan & pembatas (Constrain). Prinsip Utama Algoritma Greedy Prinsip utama algoritma greedy adalah ?take what you can get now!?. Maksud dari prinsip tersebut adalah sebagai berikut: Pada setiap langkah dalam algoritma greedy, kita ambil keputusan yang paling optimal untuk langkah tersebut tanpa memperhatikan konsekuensi pada langkah selanjutnya. Kita namakan solusi tersebut dengan optimum lokal. Kemudian saat pengambilan nilai optimum lokal pada setiap langkah, diharapkan tercapai optimum global, yaitu tercapainya solusi optimum yang melibatkan keseluruhan langkah dari awal sampai akhir. CONTOH :
penerapan Konsep Misalnya daerah A memiliki 5 satuan koin untuk pembayaran yaitu $ 1, $ 5, $ 10, $ 100,$200. Andaikan seseorang mempunyai uang sebesar $12.352 , maka berapa kemungkinan jumlah koin paling sedikit yang dimilikinya? Penyelesaian: 1. himpunan solusi yang mungkin adalah{ $ 1, $ 5, $ 10, $ 100, $200}

2. himpunan solusi yang mungkin untuk $152 adalah {$ 1, $ 5, $ 10, $ 100}

3. himpunan solusi yang mungkin untuk $52 adalah {$ 1, $ 5 , $ 10}

4. himpunan solusi yang mungkin untuk $ 2 adalah {$ 1}

Jadi solusi terbaik untuk jumlah koin minimum yang dimilikinya adalah 61+1+5+2 = 69 buah koin. PENYELESAIAN MASALAH Contoh kasus : Perhatikan graf di bawah ini tentukan lintasan terpendek yang mungkin dilaluai dari kota A ke kota L dengan metode greedy dan dynamic programming.

Metode greedy : 1. Untuk langkah pertama kita ambil untuk step pertama jarak terdekat yaitu A-C =2 jam.

2. 3. 4.

untuk kestep ke dua kita ambil dari kota c ke kota F = 4jam. untuk langkah ketiga kita ambil dari kota F-J = 3 jam. untuk langkah ke empat kita ambil dari J-L = 5 jam.

Jadi langkah nya adalah A-C-F-J-L =2+4+3+5= 14 jam. Metode dynamic programming: Step 2 1. 2. 3. 4. 5. Step 3 1. distribusi (J) ={A,C,F,J} cost(J)= 6+3 =9 2. distribusi (K)= {A,D,H,K} cost (K) = 5+2=7 jadi solusinya adalah {A,D,H,K,L}= 7+6= 13 jam Kelebihan dan Kekurangan dari Metode Greedy : a. Kelebihan Tidak membutuhkan memoisasi karena solusi terbaik dilihat tanpa mempertimbangkan penyelesaian sebelumnya. Sangat berguna jika pencarian solusi 100% memakan waktu terlalu lama. Algoritma greedy menerapkan metode pencarian terkontrol dengan melakukan pilihan yang memberikan hasil optimal sementara. Mudah diimplementasikan, algoritma greedy sangat mudah untuk diimplementasikan pada persoalan-persoalan yang ada. Efisien, algoritma greedy merupakan algoritma yang sangat efisien karena algoritma ini selalu berusaha memilih hasil optimal b. Kekurangan Tidak semua jenis masalah dapat diselesaikan dengan Metode Greedy. Tingkat ketepatannya adalah lebih kecil dibandingkan dengan metode Dynamic Programming. distribusi (E) = {A,B,E} cost (E) = 8 distribusi (F) = {A,C,F} cost (F) =6 distribusi (G) = {A,C,G} cost (G)= 7 distribusi (H)= {A,D,H} cost (H) = 5 distribusi (I)= {A,D,I} cost (I)= 7

DYNAMIC PROGRAMMING(PROGRAM DINAMIK) Pemrograman dinamik menyelesaikan permasalahan dengan cara menyelesaikan subsubpermasalahan, kemudian mengabungkannya menjadi penyelesaian permasalahantersebut. Hal ini mirip dengan metodadivide-and-conquer. Pemrograman dinamik seringditerapkan pada permasalahan optimasi, yang mana mempunyai banyak kemungkinanpenyelesaian. Algoritma pemrograman dinamik dapat dibagai kedalam 4 langkah: 1. Menentukan struktur dari suatu penyelesaian optimal. 2. Mendefinisikan secara rekursif nilai dari penyelesaian optimal. 3. Menghitung nilai dari penyelesaian optimal dengan cara bottom-up. Langkah 1 sampai3 ini merupakan basis dari penyelesaian pemrograman dinamik. Langkah 4 dapatdiabaikan apabila hanya diperlukan sebuah solusi optimal. 4. Membentuk suatu penyelesaian optimal dari informasi yang didapat. Pemrograman dinamis adalah teknik matematik yang dapat diterapkan pada berbagai jenis persoalan. Ia dapat digunakan untuk menyelesaikan pesoalan dalam area seperti alokasi, pemuatan kargo, penggantian, pembuatan jadwal, dan inventory. Meskipun demikian, program dinamik adalah 'pendekatan' untuk penyelesaian persoalan dan bukan algoritma tunggal yang dapat digunakan untuk menyelesaikan semua jenis persoalan. Jadi, diperlukan algoritma terpisah untuk menyelesaikan setiap jenis persoalan. Pendekatan program dinamik meliputi optimisasi proses keputusan multi tahap, yaitu membagi suatu persoalan ke dalam tahap-tahap atau sub problem dan kemudian menyelesaikan sub problem itu secara berurutan sampai persoalan awal akhirnya dapat diselesaikan. Jantung pendekatan program dinamik adalah asas optimalitas Bellman yang mengatakan bahwa suatu kebijaksanaan optimal mempunyai sifat bahwa apapun keadaan awal atau keputusan awal,keputusan tersisa harus merupakan kebijaksanaan optimal terhadap keadaan yang dihasilkan keputusan pertama.

Karakteristik Persoalan Program Dinamis

1. Persoalan dapat dibagi menjadi beberapa tahap (stage), yang pada setiap tahap hanya diambil satu keputusan. 2. Masing-masing tahap terdiri dari sejumlah status (state) yang berhubungan dengan tahap tersebut. Secara umum, status merupakan bermacam kemungkinan masukan yang ada pada tahap tersebut. 3. Hasil dari keputusan yang diambil pada setiap tahap ditransformasikan dari status yang bersangkutan ke status berikutnya pada tahap berikutnya. 4. Ongkos (cost) pada suatu tahap meningkat secara teratur (steadily) dengan bertambahnya jumlah tahapan. 5. Ongkos pada suatu tahap bergantung pada ongkos tahap-tahap yang sudah berjalan dan ongkos pada tahap tersebut. 6. Keputusan terbaik pada suatu tahap bersifat independen terhadap keputusan yang dilakukan pada tahap sebelumnya. 7. Adanya hubungan rekursif yang mengidentifikasikan keputusan terbaik untuk setiap status pada tahap k memberikan keputusan terbaik untuk setiap status pada tahap k + 1. 8. Prinsip optimalitas berlaku pada persoalan tersebut

Salah satu dari Model Pemrograman Dinamis Persoalan Stagecoach Jenis persoalan yang agak berbeda yang dapat diselesaikan menggunakan pemrograman dinamik adalah persoalan stagecoach. Dalam beberapa hal ia menyerupai persoalan alokasi, tetapi cukup berbeda untuk disajikan. Dalam realitanya, ini adalah pesoalan menentukan rute optimal melalui jaringan. Pada jaman dahulu, seorang pedagang yang bertempat tinggal di Pantai Timur Amerika Serikat akan melakukan perjalanan ke Pantai Barat dengan kereta tingkat. Harga asuransi perjalanan akan mencerminkan rute yang paling aman. Yaitu makin murah polis, makin aman rutenya. Gambar 13 mengilustrasikan berbagai rute dan harga polis untuk bepergian dari suatu negara ke negara bagian yang lain. Tujuan kita adalah mencari rute yang paling aman dari state 1dalam tahap 1 sampai state 10 dalam tahap 5. Nomer dalam lingkaran menyajikan state mana yang dapat ia lalui. Bilangan pada anak panah dari satu state ke state lainnya bersesuaian dengan harga polis. Bila Cij menyatakan harga polis dari state i ke state-j maka : C12 = 2 C13 = 3 C14 = 5 C25 = 8 C26 = 7 C27 = 4 C58 = 4 C59 = 6 C68 = 11 C810 = 6 C910 = 5

C35 = 6 C36 = 9 C37 = 8 C45 = 9 C46 = 7 C47 = 3

C69 = 9 C78 = 15 C79 = 13

Masalahnya adalah menentukan rute yang paling aman dari state 1 sampai state 10. Ini sama saja dengan menentukan rute yang meminimumkan harga polis. Alasan yang diperlukan untuk mendapatkan penyelesaian program dinamik disajikan dalam langkah-langkah berikut. Langkah 1 Kita mulai dengan mengandaikan bahwa pedagang telah sampai pada tahap 4. Misalkan untuk sementara ia berada dalam state 8. Manakah jalan termurah untuk mencapai state 10? Karenahanya terdapat satu rute, maka biaya termurah dari state 8 ke state 10 adalah 6 unit. Misalkan f4(8)= 6 menyatakan biaya minimum, dan misalkan d4(8) = 10 menyatakan state berikut di mana iaharus pergi dari state8. Tetapi misalkan dalam stage4 ia berada dalam state9. Biaya minimum dari state9 ke 10 adalah f4 (9) = 5 dan d4 (9) = 10. Jadi, bila ia sampai pada state 8 atau 9 dalam stage 4,keputusan terbaik adalah pergi ke state 10 karena ini hanyalah satu-satunya rute. Hasil ini memang trivial,tetapi diperlukan untuk menyelesaikan keseluruhan program dinamik. Tabel 19 menyajikan keseluruhan hasil di atas. Tabel Keputusan optimal tahap 4 5 X 8 9 F(4)x 6 5 D(x) 10 10

Langkah 2 Kita mundur satu langkah dan andaikan pegadang sekarang sampai pada state 5,6, atau 7 ingin meminimumkan biaya untuk sampai state 10 melewati salah satu satate dalam tahap 4. Bila ia telah sampai pada state 5, ia perlu menyelediki: 1. Jumlah biaya dari state 5 ke 8 dan biaya optimal dari 8 ke 10 2. Jumlah biaya dari state 5 ke 9 dan biaya optimal dari 9 ke 10 Untuk harga minimum. Harga-harga ini adalah 1. 4 + f4(8) = 10 dari 5 ke 8 ke 10 2. 6 + f4(9) = 11 dari 5 ke 9 ke 10 Biaya minimum dari state 5 ke satet 10 melalui salah satu state pada tahap 4 adalah 10 dan ini dinyatakan dengan : f3(5) = 10

Rute optimal dari 5 adalah 8. Misalkan d3(5) = 8 menyatakan rute optimal ini. Dengan cara yang sama, bila kita sampai pada state 6 dalam tahap 3, biaya minimum dari state 6 ke state 10 dengan melewati salah satu state dalam tahap 4 adalah F3(6) = min = = 18 d3(7) = 9. Dalam setiap kasus, f3 (x) menyajikan biaya minimum untuk pergi dari state x ke state 10 ; d3 (x) adalah state optimal untuk pergi dari state x. Kebijaksanaan optimal dari setiap state dalam tahap 3 diberikan dalam Tabel 20 Tabel 20. Kebijaksanaan optimal, tahap 3 5 X 5 6 (4)x D(4)x F(3)x D(3)x Langkah 3 Sekarang kita menuju ke tahap 2 di mana pedagang secara teoritis berada dalam state 2, 3, atau 4.Bila ia berada dalam state 2, ia hanya perlu menyelidiki dua jumlahan untuk menentukan biaya minimum dari state 2 ke state 10 dengan melewati tahap 3 dan 4, karena ia hanya dapat melalui 10 8 14 9 18 9

8 6 10

9 5 10

tiga state dalam tahap 3, dan biaya minimum untuk masing-masing darinya telah dihitung dalam langkah 2. Jadi, ia dapat pergi ke state 10 dengan melalui state 5 dengan biaya minimum 8 + f3(5) = 8 + 10 = 18 atau melalui state 6 dengan biaya minimum 7 + f3(6) = 7 + 14 = 21 atau melalui state 7 dengan biaya minimum 4 + f3(7) = 4 + 18 = 22 Jadi,= min d2(2) = 5 dengan cara yang sama d2(3) = 5 dengan cara yang samad1(1)= 3 Ringkasan lengkap kebijaksanaan optimal dari state 1 ke state 10 diberikan dalam Tabel 21. Tabel Kebijakan optimal X 1 2

F(4)x D(4)x F(3)x D(3)x F(2)x D(2)x F(1)x D(1)x 18 5 16 5 19 5 10 8 14 9 18 9

6 10

5 10

19

\ Dari Tabel ini kita melihat bahwa biaya minimum dari state 1 ke state 10 adalah 19 dan rute optimalnya adalah : 1 3 5 8 10 http://yayan-industri.blogspot.com/2009/12/pemrograman-dinamis.html kasusus serta penyelesaian dalam menggunakan metode Greedy dan metode Dynamic Programming, dimana ukuran kotak yang disediakan adalah 15m 35m.seperti pada gambar berikut :

15m

35m Kotak E Terdapat beberapa jenis kotak yang disediakan untuk disusun dalam kotak yang berukuran 15m

Empat kotak berbeda Penyelesaian : 1. metode greedy dengan menentukan luas dari ke empat jenis kotak yang berbeda di atas : Luas pada kotak E = 35m x 15m = 525m2 Luar pada kotak A = 12 m2 Luas pada kotak B = 14 m2 Luas pada kotak C = 8m2 Luas pada kotak D = 16m2

Himpunan solusi feasible diambil dari luas ke empat luas kotak yang berbeda yaitu 8, 12, 14, dan 16. Kemudian kita mengambil uluran luas yang lebih besar :
[ ] sisa = 13m

Memilih luas yang mungkin yang terbesar : [ ] sisa = 1 m2 tidak terdapat gambar.

Jumlah kotak yang dapat dimasukkan yaitu 33 kotak yaitu : 32 kotak D 1 kotak A. Metode greedy dengan memodifikasi kotaknya , dengan memilih luas yang paling besar.

a. Kita menggabung serta menyusun 4 kotak D sehingga terbentuk seperti dibawah : kotak di bawah adalah kotak F Luas kotak F = 8m x 8m = 64m2

b. Kita memasukkan kotak yang dapat masuk pada kotak E. Kita masukkan kotak yang telah digabungkan yaitu kotak F.

a. Menyusun dan menggabungkan lagi kotak yang mungkin terbentuk untuk mengisi kotak diatas yang belum terisi.kotak di bawah adalah kotak G dimana kotak yang di gabung adalah kotak D dan C.
Luas kotak G = 8m x 6m = 48m2

b. Memilih dan memasukkan kotak yang mungkin dapat dimasukkan ke kotak yang belum terisi di atas. Dimana kotak yang dapat dipilih adalah C.

Luas kotak C = 4m x 2m = 8m2

c. kotak E sudah tidak bisa terisi oleh kotak-kotak yang berbeda tersebut,dimana 35m x 15m = 525m2 sehingga jumlah kotak yang mengisi kotak tersebut adalah 35 kotak. Dengan 24 kotak D dan 11 kotak C. luas kotak yang tidak terisi adalah: Sisa(luas) = luas I + luas II + lias kotak III = (1 x 12) + (1 x 35) + (3 x 2) = 12 + 35 + 6 = 53 m2 Sisanya tidak optimal, itulah merupakan kekurangan dari metode Greey , banyak kemungkinan yang bisa kita ambil. 2. Solusi dengan Metode Dynamic Programming Kotak E tersebut di bagi menjadi dua :

Kotak E tersebut di bagi menjadi lima :

Membagi sisi bawahnya lagi :

a. Mengisi kotak diatas sesuai kotak yang sudah digabungkan dengan bentuk kotak H. Luas H : 7m x 4m = 28

b. Kemudian kotak yang belum terisi terbagi lagi sehingga terbentuk seperti pada

gambar berikut:

c. Kotak yang kosong di atas diisi kotak G seperti terlihat pada kotak di bawah

d. Kotak yang masih kosong di isi dengan kotak yang mungkin masuk pada kotak di atas. Kotak yang mungkin bisa masuk pada kotak di atas adalah kotak C.

e. Kotak di atas tidak dapat lagi di isi kotak , maka kita dapat menghitung menghitung jumlah kotak yang terisi pada kotak di atas yaitu 37. 36 diantaranya kotak B dan sisanya kotak C. Dan sisanya dapat dihitung senagai berikut:

Sisa Luas kotak = Luas I + Luas II = (4 x 1) + (3 x3) =4+9 = 13 m2 Jadi kita dapat menyimpulkan bahwa Metode Dynamic Programming lebih optimal dari pada Metode Greedy.

Anda mungkin juga menyukai