• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
16
0
0

Teks penuh

(1)

TUGAS RESUME MATERI KULIAH ALGORITMA DAN STRUKTUR DATA

“STRATEGI ALGORITMA”

NAMA : HERIANTI

NIM : H12111003

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM JURUSAN MATEMATIKA

PROGRAM STUDI STATISTIKA UNIVERSITAS HASANUDDIN

MAKASSAR 2012

(2)

A. Pengertian Strategi

Strategi adalah rencana yang cermat mengenai kegiatan untuk mencapai sasaran tertentu (khusus). Algoritma adalah urutan langkah untuk memecahkan suatu masalah. Strategi algoritmik adalah kumpulan metode (dinyatakan dalam suatu urutan langkah-langkah penyelesaian) untuk memecahkan masalah guna mencapai tujuan yang ditentukan. Secara umum, strategi pemecahan masalah dibagi menjadi:

1. Strategi solusi langsung (direct solution strategies): a. Algorithma Brute Force

b. Algorithma Greedy

2. Strategi berbasis pencarian pada ruang status (state-space base strategies): a. Algorithma Backtracking

b. Algorithma Branch & Bound

3. Strategi solusi atas-bawah (top-down solution strategies): Algorithma Devide and Conquer

4. Strategi solusi bawah-atas (down-top solution strategies): Dynamic Programming

Pada resume kali ini akan dibahas Metode Greedy dan Metode Dynamic Programming.

B. Metode Greedy

Metode greedy adalah metode yang digunakan untuk memecahkan persoalan optimasi, ada dua macam persoalan optimasi, yaitu maksimasi dan minimasi, artinya dengan metode greedy kita bemaksud mencari solusi terbaik, yaitu solusi yang benilai minimum atau maksimum dari sekumpulan alternatif solusi yang ada.

(3)

Elemen Algoritma Greedy

Elemen–elemen yang digunakan dalam penerapan algoritma greedy antara lain :

1. Himpunan Kandidat yaitu Himpunan yang berisi elemen pembentuk solusi.

2. Himpunan Solusi yaituHimpunan yang terpilih sebagai solusi persoalan. 3. Fungsi Seleksi yaitu Fungsi yang memilih kandidat yang paling mungkin

untuk mencapai solusi optimal.

4. Fungsi Kelayakan yaitu Fungsi yang memeriksa apakah suatu kandidat yang dipilih dapat memberikan solusi yang layak. Maksudnya yaitu apakah kandidat tersebut bersama dengan himpunan solusi yang sudah terbentuk tidak melanggar kendala yang ada.

5. Fungsi Solusi yaitu 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 yaitu Fungsi yang mengoptimalkan solusi.

Skema Umum Algoritma Greedy

Misal kita mengasumsikan elemen algoritma greedysebagai berikut :  Himpunan Kandidat = C,

 Himpunan Solusi = S,  Fungsi Seleksi = select(),  Fungsi Kelayakan = feasible(),  Fungsi Solusi = solution(), dan  Fungsi Obyektif = objective().

Skema umum dari algoritma greedy dapat kita tuliskan : 1. Inisialisasi S dengan kosong.

2. Pilih sebuah kandidat dari C (dengan select()).

3. Kurangi C dengan kandidat yang telah terpilih di atas.

4. Periksa apakah kandidat yang dipilih tersebut bersama – sama dengan S membentuk solusi yang layak (dengan feasible()). Jika ya, masukkan kandidat ke S; jika tidak buang kandidat tersebut dan tidak perlu ditelaah lagi.

(4)

5. Periksa apakah S yang sudah terbentuk telah memberikan solusi yang lengkap(dengan solution()). Jika ya, berhenti; jika tidak, ulangi dari langkah 2.

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

Algoritma greedy membentuk solusi langkah per langkah (step by step). Terdapat banyak pilihan yang perlu dieksplorasi pada setiap langkah solusi. Oleh karenaitu,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. Pendekatan yang digunakan di dalam algoritma greedy adalah membuat pilihan yang “tampaknya” memberikan perolehan terbaik, yaitu dengan membuat pilihan optimum lokal (local optimum) pada setiap langkah dengan harapanbahwa sisanya mengarah ke solusi optimumglobal (global optimum)

Algoritma greedy adalah algoritma yang memecahkan masalah langkah per langkah,

(5)

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.

3. Pada setiap langkah diperoleh optimum lokal.Bila algoritma berakhir, kita berharap optimum lokal menjadi optimum global.

Warning: Optimum global belum tentu merupakan solusi optimum (terbaik), tetapi sub-optimum atau pseudo-optimum.

• Alasan:

1. Algoritma greedy tidak beroperasi secara menyeluruh terhadap semua alternatif solusi yang ada (sebagaimana pada metode exhaustive search). 2. Terdapat beberapa fungsi SELEKSI yang berbeda sehingga kita harus memilih fungsi yang tepat jika kita ingin algoritma menghasilkan solusi optiamal.

• Jadi, pada sebagian masalah algoritma greedy tidak selalu berhasil memberikan solusi yang optimal.

Contoh pada masalah penukaran uang, elemen-elemen algoritma greedy-nya adalah:

Himpunan kandidat: himpunan koin yang merepresentasikan nilai 1, 5, 10, 25, paling sedikit mengandung satu koin untuk setiap nilai.

Himpunan solusi: total nilai koin yang dipilih tepat sama jumlahnya dengan nilai uang yang ditukarkan.

Fungsi seleksi: pilihlah koin yang bernilai tertinggi dari himpunan kandidat yang tersisa.

Fungsi layak: memeriksa apakah nilai total dari himpunan koin yang dipilih tidak melebihi jumlah uang yang harus dibayar.

(6)

Contoh:

(a) Koin: 5, 4, 3, dan 1 Uang yang ditukar = 7. Solusi dengan algoritma greedy:

7 = 5 + 1 + 1 ( 3 koin)  tidak optimal Solusi yang optimal: 7 = 4 + 3 ( 2 koin) (b) Koin: 10, 7, 1 Uang yang ditukar: 15 Solusi dengan algoritma greedy:

15 = 10 + 1 + 1 + 1 + 1 + 1 (6 koin)  tidak optimal Solusi yang optimal: 15 = 7 + 7 + 1 (hanya 3 koin) (c) Koin: 15, 10, dan 1 Uang yang ditukar: 20 Solusi dengan algoritma greedy:

20 = 15 + 1 + 1 + 1 + 1 + 1 (6 koin)  tidak optimal Solusi optimal: 20 = 10 + 10 (2 koin)

Contoh masalah sehari-hari yang menggunakan prinsip greedy: 1. Memilih beberapa jenis investasi (penanaman modal) 2. Mencari jalur tersingkat dari Bandung ke Surabaya 3. Memilih jurusan di Perguruan Tinggi

4. Bermain kartu remi

Kelebihan utama dari algoritma greedy adalah :

a. Mudah diimplementasikan, algoritma greedy sangat mudah untuk diimplementasikan pada persoalan-persoalan yang ada.

b. Efisien, algoritma greedy merupakan algoritma yang sangat efisien karena algoritma ini selalu berusaha memilih hasil optimal.

c. Prinsip pencarian lintasan terpendek memakai fungsi ”Seleksi” dan itu berguna untuk menentukan jalan tersingkat untuk menuju suatu tempat. Sehingga, kita dapat sampai tepat waktu menuju tempat tujuan. Hasil analisis berdasarkan bobot-bobot yang berbeda, menunjukkan bahwa semakin banyak bobot yang diberikan, maka semakin akurat pula data yang dihasilkan. Sehingga menghasilkan waktu yang efisien.

(7)

Kekurangan algoritma Greedy:

a. Algoritma greedy tidak beroperasi secara menyeluruh terhadap semua alternatif solusi yang ada (sebagaimana pada metode exhaustive search). b. Pemilihan fungsi SELEKSI: Mungkin saja terdapat beberapa fungsi

SELEKSI yang berbeda, sehingga kita harus memilih fungsi yang tepat jika kita ingin algoritma bekerja dengan benar dan menghasilkan solusi yang benar-benar optimum. Karena itu, pada sebagian masalah algoritma greedy tidak selalu berhasil memberikan solusi yang benar-benar optimum.

C. Program dinamis (dynamic programming)

Pemrograman dinamis istilah awalnya digunakan dalam 1940-an oleh Richard Bellmanuntuk menggambarkan proses pemecahan masalah dimana salah satu kebutuhan untuk menemukan satu keputusan terbaik demi satu. Dengan 1953, ia disempurnakan ini untuk makna modern, mengacu khusus untuk bersarang masalah keputusan kecil dalam keputusan yang lebih besar, dan lapangan itu kemudian diakui oleh IEEE sebagai topik analisis system dan rekayasa.Kontribusi Bellman adalah diingat dalam nama persamaan Bellman, hasil pusat pemrogramandinamis yang menyatakan kembali masalah optimasi dalam bentuk rekursif. Dinamika Katadipilih oleh Bellman untuk menangkap aspek waktu bervariasi dari masalah, dan juga karenaterdengar mengesankan Pemrograman kata mengacu pada penggunaan metode untukmenemukan program yang optimal, dalam arti militer. jadwal untuk pelatihan atau logistik.Penggunaan ini adalah sama seperti yang dalam pemrograman linear dan pemrograman frasamatematika, sebuah sinonim untuk optimasi matematika.

Program dinamis (dynamic programming) merupakan suatu 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 berhingga pilihan yang mungkin, solusi pada

(8)

setiap tahap dibangun dari hasil solusi tahap sebelumnya, dan menggunakan persyaratan optimasi dan kendala untuk membatasi sejumlah pilihan yang harus dipertimbangkan pada suatu tahap.

Krakteristik program dinamis adalah sebagai berikut:

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.

Terdapat dua solusi pendekatan programa dinamis, yaitu pendekatan maju (forward atau up-down) dan pendekatan mundur (backward atau bottom-up). 1. Program dinamis maju.

Program dinamis bergerak mulai dari tahap 1, terus maju ke tahap 2, 3, dan seterusnya sampai tahap n. Runtunan peubah keputusan adalah x1, x2, …, xn.

2. Program dinamis mundur.

Program dinamis bergerak mulai dari tahap n, terus mundur ke tahap n – 1, n – 2, dan seterusnya sampai tahap 1. Runtunan peubah keputusan adalah xn, xn-1, …, x1.

(9)

Konsep dasar programa dinamis adalah sebagai berikut:

 Berdasarkan prinsip optimisasi Bellman (1950): An optimal policy has the property that whatever the initial decision are, the remaining decisions must constitute an optimal policy with regard to the state resulting from the first decision.

 Suatu masalah dapat dibagi menjadi beberapa tahap

 Dalam rangkaian keputusan yang telah diambil, hasil dari masing-masing terpengaruh pada hasil keputusan sebelumnya.

 Rangkaian keputusan yang diambil mesti membentuk kebijakan yang optimal secara keseluruhan.

 Bagi tahap persoalan yang masih tersisa kita diizinkan mengambil keputusan yang layak tanpa tergantung dari keputusan-keputusan yang telah diambil sebelumnya èoptimisasi prinsip.

 Prosedur pemecahan masalah dalam program dinamik dilakukan secara rekursif.

 Pada setiap tahap, nilai keadaan tahap sebelumnya merupakan masukan untuk tahap sekarang dan keluarannya menjadi masukan untuk tahap berikutnya. Pada setiap tahap kita diharuskan mengambil keputusan optimal.

 Kekurangan Metode dynamic progremming hanya satu, memori yang dibutuhkan lebih banyak karena anda menggunakan memo.

 Kelebihan metide dynamic programming yaitu:

a. Selalu benar karena mencoba semua jalur yang mungkin b. Trading memory for speed (-memory +speed)

Contoh kasus dengan penyelesaian menggunakan metode Greedy dan metode Dynamic Programming.

(10)

Jenis kotak yang akan dipilih untuk di masukkan ke kotak yang besar:

Selesaikan dengan metode greedy dan dynamic programming! 1. Solusi dengan metode greedy

o Metode greedy : Memilih luas yang paling besar untuk mendapatkan luas sisa terkecil.

Luas kotak : 35m x 15m = 525m2 Luar kotak A = 12 m2

Luas kotak B = 14 m2 Luas kotak C = 8m2 Luas kotak D = 16m2

Himpunan solusi feasible = {8, 12, 14, 16}

Kita ambil luas yang besar; [

]

Luas sisanya adalah 13m2

Pilih luas yang mungkin yang terbesar ;

[

]

Luas sisanya adalah 1 m2 ( Meskipun, sisanya optimal saya tidak dapat menemukan bentuk gambarnya)

(11)

o Metode greedy dengan memodifikasi kotaknya , dengan memilih luas yang paling besar.

a. Kita gabungkan 4 kotak D sehingga terbentuk seperti dibawah. Kita anggap kotak di bawah adalah kotak E

b. Masukkan kotak yang mungkin masuk pada kotak yang berukuran 35 m x 15m. Kita masukkan kotak yang telah digabungkan yaitu kotak E

c. Menggabungkan lagi kotak yang mungkin terbentuk untuk mengisi kotak diatas yang belum terisi. Kita anggap kotak di bawah adalah kotak F dengan kotak yang digabungkan adalah kotak D dan C.

Kotak E dengan Luas = 8m x 8m = 64m2

(12)

d. Mengambil kotak yang mungkin dapat dimasukkan ke kotak yang kosong di atas. Yang dapat kita ambil hanya kotak C.

e. Tidak ada lagi kotak yang dapat dimasukkan ke dalam kotak yang berukuran 35m x 15m = 525m2 sehingga jumlah kotak yang mengisi kotak tersebut adalah 35 kotak. Dengan 24 kotak D dan 11 kotak C.

Sedangkan luas kotak yang tidak terisi dapat di hitung : Luas sisa = 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

a. Membagi dua kotak tersebut seperti terlihat pada gambar berikut:

(13)

b. Membagi lima kotak di atas sehingga terlihat seperti pada gambar berikut:

c. Selanjutnya membagi lagi kotak yang di atas sehingga menbentuk seperti yang di bawah:

d. Mengisi kotak diatas sesuai kotak yang sudah digabungkan dengan bentuk seperti di bawah. Anggaplah kotak di bawah adalah kotak G .

(14)

e. Selanjutnya kotak yang belum terisi di atas dibagi lagi sehingga terbentuk seperti pada gambar berikut.

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

g. 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. sehingga dapat dilihat seperti pada gambar berikut.

(15)

h. 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, kesimpulannya Metode Dynamic Programming lebih optimal dari pada Metode Greedy.

(16)

SUMBER http://captainchrno.blogspot.com/2010/11/memahami-complete-search-greedy-dan.html http://elearningstikma.wordpress.com/2011/04/04/strategi-algoritma/ http://dhora-fifado.blogspot.com/2012/04/algoritma-greedy.html http://www.scribd.com/document_downloads/direct/103782306?extension=pdf&ft=1349 876954&lt=1349880564&uahk=gZiazK/Jfe8Cmf/T119Y+iqXBvQ http://amethystaiko.com/algoritma-greedy.html Sumber:mufidnilmada.staff.gunadarma.ac.id/.../files/.../Program+Dinamis.ppt http://fajarbax89.blogspot.com/2009/12/programa-dinamis.html http://yulianus-putra.blogspot.com/2012/03/sejarah-dynamic-programming.html www.mie.unja.ac.id/pustaka/risetop.ppt

Referensi

Dokumen terkait

Penelitian tersebut menggunakan sampel sebanyak 40 orang pria dewasa berusia diatas 22 tahun meenghasilkan perkiraan tinggi badan berdasarkan panjang tulang ulna

Hal tersebut diperkuat dari keterangan siswa yang menjelaskan bahwa: walaupun saya belum bisa pada jilid tertentu saya tetap belajar terus dan melanjutkan semampu saya untuk bisa

Puji syukur kehadirat Allah subhanhu wata’ala yang telah melimpahkan rahmat, taufik dan hidayah-Nya, sehingga skripsi dengan judul “Upaya meningkatkan kemampuan

Soal Ranah Kognitif 3.1 Menjelaskan dan melakukan operasi hitung bilangan bulat dan pecahan dengan mengaitkannya pada garis bilangan dan memanfaatkan berbagai sifat

Penerapan Metode Electre Untuk Menentukan Lokasi Bisnis Terbaik Dari penelitian ini rekomendasi tempat bisnis terbaik hanya menampilkan 2 tempat saja Menggunakan

Sernovitz (2012) menjelaskan bahwa Word of Mouth memiliki lima elemen penting yang disebut dengan The FiveTs , yaitu : 1) Talkers , yaitu siapa pembicara dalam hal

menunjukan bahwa kualitas jaringan komputer LAN dan WLAN pada SOHO tersebut tergolong memuaskan, pengiriman data melalui file sharing dengan NAS lebih cepat

jat seorang wali sehingga Allah menempatkannya dalam keduduk- an yang begitu tinggi. Keluhuran derajatnya itu bisa kita lihat dari penggalan hadis itu: "Siapa