Anda di halaman 1dari 7

ALGORITMA DAN STRUKTUR DATA

NAMA NIM KELAS

: MAYA MULYASARI : H121 11 277 : 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 Objektif Fungsi 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 :
function greedy( input C: himpunan_kandidat ) himpunan_kandidat { Mengembalikan solusi dari persoalan optimasi dengan algoritma greedy Masukan: himpunan kandidat C Keluaran: himpunan solusi yang bertipe himpunan_kandidat } Deklarasi x : kandidat S : himpunan_kandidat Algoritma : S {} { inisialisasi S dengan kosong } while (not SOLUSI(S)) and (C {} ) do x SELEKSI(C) { pilih sebuah kandidat dari C} C C - {x} { elemen himpunan kandidat berkurang satu } if LAYAK(S {x}) then S S {x} endif endwhile {SOLUSI(S) or C = {} } if SOLUSI(S) then return S else write (tidak ada solusi) endif

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) ENDIF REPEAT RETURN (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 0 N = 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 > 0 Y=1>0 FEASIBLE (solusi, x) Solusi {{2,1),(3,2),(7,1)} N=4:x=1 >0 Y =0>0 TIDAK FEASIBLE Solusi {(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 : Optimal Storage on Tapes Problem Kanpsack Problem Minimum Spanning Tree Problem Shortest Path Problem

1. 2. 3. 4.

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.
7 2 2 4 1 3 4 6 2 6 3 1 5 4 7 3 3 5 4 6 3 9 4
1 0

1 8 3

3 4

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.

Anda mungkin juga menyukai