metode greedy dan dynamic programming
Post on 02-Aug-2015
545 Views
Preview:
TRANSCRIPT
ALGORITMA DAN
STRUKTUR DATA
NAMA : MAYA MULYASARI
NIM : H121 11 277
KELAS : STATH A
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS HASANUDDIN
2012/2013
STRATEGI ALGORITMA
Strategi algoritmik adalah kumpulan metode atau teknik untuk memecahkan masalah guna mencapai tujuan yang ditentukan, yang dalam hal ini deskripsi metode atau teknik tersebut dinyatakan dalam suatu urutan langkah-langkah penyelesaian.
Secara umum, strategi pemecahan masalah dapat dikelompokan sebagai berikut:
1. Strategi solusi langsung (direct solution strategies)- Algoritma Brute force- Algoritma Greedy
2. Strategi berbasis pencarian pada ruang status (state-space base strategies)- Algoritma Backtracking- Algoritma Branch and Bound
3. Strategi solusi atas-bawah (top-down solution strategies)- Algoritma Divide and Conquer
4. Strategi solusi bawah-atas (bottom-up solution strategies)- Dynamic Programming
METODE GREEDY
Metode ini digunakan untuk memperoleh solusi yang optimal dari suatu masalah yang mempunyai 2 indikator yaitu : adanya fungsi tujuan & pembatas (Constrain).
Hanya ada dua macam persoalan optimasi:1. Maksimasi (maximization)2. Minimasi (minimization)
Algoritma greedy adalah algoritma yang memecahkan masalah langkah per langkah. Pada setiap langkah:1. Mengambil pilihan yang terbaik yang dapat diperoleh pada saat itu tanpa memperhatikan
konsekuensi ke depan (prinsip “take what you can get now!”).2. Berharap bahwa dengan memilih optimum lokal pada setiap langkah akan berakhir dengan
optimum global.
Elemen-elemen yang digunakan dalam penerapan algoritma greedy antara lain :1. Himpunan Kandidat
Himpunan yang berisi elemen pembentuk solusi.2. Himpunan Solusi
Himpunan yang terpilih sebagai solusi persoalan.3. Fungsi Seleksi
Fungsi yang memilih kandidat yang paling mungkin untuk mencapai solusi optimal.4. Fungsi Kelayakan
Fungsi yang memilih kandidat yang paling mungkin untuk mencapai solusi optimal.5. Fungsi Solusi
Fungsi yang mengembalikan nilai boolean. True jika himpunan solusi yang sudah tebentuk merupakan solusi yang lengkap; False jika himpunan solusi belum lengkap.
6. Fungsi ObjektifFungsi yang mengoptimalkan solusi
Contoh :
Pada kasus penukaran uang, misalkan kita memiliki uang senilai 32 dan akan kita tukarkan dengan koin, uang koin pecahan yang tersedia adalah 1, 5, 10, 25, jika kita mengharapkan agar pecahan yang kita miliki sedikit mungkin maka kita bisa menggunakan metode greedy dengan cara memilih pecahan terbesar terlebih dahulu. Mari kita lihat:
Himpunan solusi feasibel untuk 32 adalah {1, 5, 10, 25}
Himpunan solusi feasible untuk 7 adalah {1, 5}
Himpunan solusi feasible untuk 2 adalah {1}
Total koin adalah 32 senilai dengan 1 koin 25, 1 koin 7 , dan 2 koin 1 = 4 koin
Namun ada kalanya metode greedy gagal mendapatkan solusi optimal, hal ini juga dikarenakan oleh sifat metode greedy itu sendiri yang memperhatikan keuntungan lokal(diawal) tanpa memperhatikan kemungkinan solusi yang lain.
Contoh:
Uang yang ditukar sebesar 7
Koin yang tersedia 5,4,3, dan 1
Jika kita menukarkan uang tersebut dengan metode greedy maka kita harus mengambil pecahan terbesar lebih dulu yaitu 5, baru kemudian kita memilih pecahan berikutnya hingga genap berjumlah 7 dalam artian
Himpunan solusi feasibel untuk 7 adalah {1, 3, 4, 5}
Himpunan solusi feasibel untuk 2 adalah {1}
alternatif solusi
7=4+3 (2koin)
Pada contoh diatas jelas terlihat bahwa metode greedy gagal memberikan solusi optimal.
Skema Umum :
Pada akhir setiap lelaran, solusi yang terbentuk adalah optimum lokal. Pada akhir kalang while-do diperoleh optimum global.
PROCEDURE GREEDY (A,n)Solusi 0 (solusi awal)FOR I 1 TO n DO X SELECT(A) IF FEASIBLE (Solusi, x) THEN Solusi UNION (solusi, x) ENDIFREPEATRETURN (Solusi)END GREEDY
Keterangan :A(1:n) mengandung n input data.FEASIBLE merupakan fungsi yang bernilai boo;ean (0 atau 1)UNION penggabungan dan pemeriksaan fungsi obyektifnya (update)SELECT merupakan fungsi untuk mengambil data input dari A
Contoh :Himpunan A merupakan himpunan pasangan terurut (x,y), yaitu { (2,1),(3,2),(7,1),
dan (1,0)}. Dari data-data tersebut akan ditentukan suatu pasangan terurut yang memiliki jumlah x dan y yang minimum. Adapun batasan dari x dan y masing-masing lebih besar dari nol.
Penyelesaiannya :Solusi 0N = 1 : x=2 > 0 Y=1 > 0 FEASIBLE (solusi, x)
Solusi {(2,1)}
N = 2 : x=3 > 0 Y=2 > 0 FEASIBLE (solusi, x)Solusi {(2,1),{3,2)}
N = 3 : x=7 > 0Y = 1 > 0 FEASIBLE (solusi, x)Solusi {{2,1),(3,2),(7,1)}
N = 4 : x = 1 > 0Y = 0 > 0 TIDAK FEASIBLESolusi {(2,1),{3,2),(7,1)}
Dari himpunan solusi yang mungkin tersebut diperoleh solusi yang optimal (dalam hal ini minimum) adalah (2,1) yang jumlahnya sebesar 2 + 1 = 3.Jadi solusi = (2,1)
Metode Greedy banyak digunakan dalam berbagai penyelesaian maslah, antara lain adalah :1. Optimal Storage on Tapes Problem2. Kanpsack Problem3. Minimum Spanning Tree Problem4. Shortest Path Problem
DYNAMIC PROGRAMMING
Program Dinamis (dynamic programming): 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:
1. Terdapat sejumlah berhingga pilihan yang mungkin,
2. Solusi pada setiap tahap dibangun dari hasil solusi tahap sebelumnya,
3. Kita menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap.
Tinjau graf di bawah ini. Kita ingin menemukan lintasan terpendek dari 1 ke 10.
• Pada program dinamis, rangkaian keputusan yang optimal dibuat dengan menggunakan Prinsip Optimalitas.
• Prinsip Optimalitas: jika solusi total optimal, maka bagian solusi sampai tahap ke-k juga optimal.
Karakteristik persoalan program dinamik, yaitu :
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.
Pendekatan program dinamik ada 2, yaitu :
• Dua pendekatan yang digunakan dalam PD: maju (forward atau up-down) dan mundur (backward atau bottom-up).
Langkah-langkah pengembangan algoritma program dinamik :
1. Karakteristikkan struktur solusi optimal.
2. Definisikan secara rekursif nilai solusi optimal.
3. Hitung nilai solusi optimal secara maju atau mundur.
4. Konstruksi solusi optimal.
Pada metode greedy hanya satu rangkaian keputusan yang pernah dihasilkan, sedangkan pada metode program dinamis lebih dari satu rangkaian keputusan. Hanya rangkaian keputusan yang memenuhi prinsip optimalitas yang akan dihasilkan.
Contoh Kasus dengan Metode GreedyTerdapat empat bentuk bangun persegi yang berbeda seperti dibawah ini ( A,B,C,D) .
Dengan metode greedy susun keempat balok agar dapat masuk ke dalam kotak berbentuk persegi panjang yang luasnya 35x15 meter dengan menyisakan luas yang sangat kecil.
Penyelesaian :
Metode greedy adalah metode yang memecahkan langkah per langkah, dimana pada setiap langkah diambil pilihan yang terbaik (“take what you can get now”). Luas bangun A,B,C,D
berturut-turut (12 ,14 ,8 ,16 ). Pada kasus ini, untuk menyisakan luasan yang
sangat kecil,ide terbaik yang kita ambil adalah
1. Menyusun bangun yang mempunyai luas terbesar yakni bangun D menjadi berbentuk
kotak seperti dibawah ini, kita peroleh bangun baru E (8x8 = 64 ).
2. Memasukkan E kedalam kotak persegi panjang hingga tidak bisa dimasukkan lagi.
Terlihat hanya 4 buah bangun E yang bisa dimasukkan, panjang kotak bersisa 35-(8x4) = 3m dan lebar kotak bersisa 15-8 = 7m
3. Tetap pada prinsip “take what you can get now” ,, kita masukkan lagi bangun yang terluas dan cukup menempati lebar 7m yakni bangun D yang disusun sedemikian rupa seperti ini
4. Tutup bagian yang terbuka dengan bangun C seperti ini
5. Panjang 7m tadi telah bersisa 7-6 = 1 m dan karena tidak ada bangun yang bersisi 1m maka sisanya sudah tidak bisa diisi bangun lagi. Tapi panjang sisa 3m masih bisa diisi oleh bangun C seperti ini
Daerah yang berwarna abu-abu : Luas Sisa
Luas Sisa = Luas Keseluruhan – Luas yang Terisi
= (35x15) – (4E+11C+8D)
= 525 – (4.64 + 11.8 + 8.16)
= 525 – (256 + 88 + 128 )
= 525 – 472
= 53
Dengan metode greedy diperoleh Luas Sisa 53
Kita akan bandingkan dengan menggunakan dynamic programming
Contoh Kasus Dynamic Programming
Terdapat empat bentuk bangun persegi yang berbeda seperti dibawah ini ( A,B,C,D) . Dengan dynamic programming susun keempat balok agar dapat masuk ke dalam kotak berbentuk persegi panjang yang luasnya 35x15 meter dengan menyisakan luas yang sangat kecil.
Penyelesaian : dynamic programming membagi persoalan ini menjadi beberapa tahap, yang pada setiap tahap hanya diambil satu keputusan..
Idenya :
1. Membuat Kotak dari bangun B, diperoleh
bangun F yang baru dengan luas 7 x 4 = 28
2. Kotak persegi panjang dibagi menjadi dua seperti ini . Tahap 1 (8 x 35)m .Tahap 2 (7x35)m
3. Ditahap 1 diambil satu keputusan : isi bagian atas seperti ini
4. Ditahap 2 diambil satu keputusan : isi bagian bawah seperti ini
Daerah yang berwarna merah : Luas Sisa
Luas Sisa = Luas Keseluruhan – Luas yang Terisi
= (35x15) – (18F+C)
= 525 – (18.28 + 8)
= 525 – (512 )
= 13
Dengan dynamic programming diperoleh Luas Sisa 13 .. ¼ luas sisa dengan
metode greedy. Terlihat , dengan dynamic programming luas sisa yang diperoleh lebih kecil.
top related