PRODI STATISTIKA
JURUSAN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS HASANUDDIN
MAKASSAR
2012
Strategi Algoritma
Strategi adalah rencana yang cermat mengenai kegiatan untuk mencapai sasaran
khusus. Sedangkan algoritma adalah urutan langkah-langkah untuk memecahkan masalah. Jadi,
strategi algoritma 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 Bruto Force
Algoritma Greedy
2. Strategi berbasis pencarian pada ruang status (state-spacebase strategies)
Algoritma Backtracking
Algoritma Branch and Bound
3. Strategi solusi atas bawah (up-down solution strategies)
Algoritma Divide an Conquer
4. Strategi solusi bawah atas (buttom-up solution strategies)
Dynamic Programming
Pada pembahasan kali ini, akan dijelaskan mengenai algoritma greedy dan dynamic
programming.
Metode Greedy
Metode greedy atau algoritma greedy merupakan algoritma yang membentuk solusi
langkah per langkah, dimana metode greedy ini menjadi metode yang paling populer untuk
memecahkan persoalan optimasi. Persoalan optimasi atau optimization problems merupakan
persoalan mencari solusi optimum, persoalan optimasi ini terbagi menjadi dua macam, yaitu
maksimasi dan minimasi.
Prinsip metode greedy adalah take what you can get now. Maksud dari prinsip tersebut
bahwa metode greedy membentuk solusi langkah per langkah (step by step), dimana pada setiap
langkah itu terdapat banyak pilhan yang perlu dieksplorasi. Oleh karena itu, pada setiap langkah
harus dibuat keputusan yang terbaik dalam menentukan pilihan dan setiap langkah tersebut
kita membuat pilihan optimum lokal (local optimum) dengan harapan bahwa langkah sisanya
mengarah ke solusi optimum global (global optimum).
Adapun elemen-elemen yang digunakan dalam penerapan metode greedy, yaitu sebagai
berikut.
1. Himpunan Kandidat (C)
Himpunan kandidat merupakan himpunan elemen pembentuk solusi.
2. Himpunan Solusi (S)
Himpunan solusi merupakan himpunan yang terpilih sebagai solusi permasalahan.
3. Fungsi Seleksi (Selection)
Fungsi seleksi merupakan fungsi yang memilih kandidat yang paling mungkin untuk
mencapai solusi optimal.
4. Fungsi Kelayakan (Feasible)
Fungsi kelayakan merupakan fungsi yang memeriksa apakah suatu kandidat yang dipilih
dapat memberikan solusi yang layak. Maksudnya bahwa kandidat tersebut bersama dengan
himpunan solusi yang sudah terbukti tidak melanggar kendala yang ada.
5. Fungsi Objektif
Fungsi objektif merupakan fungsi yang mengoptimalkan solusi.
Metode greedy melibatkan pencarian sebuah himpunan solusi dari himpunan kandidat,
yang dalam hal ini himpunan solusi harus memenuhi beberapa kriteria yang ditentukan, yaitu
menyatakan suatu solusi dan himpunan solusi akan dioptimisasi oleh fungsi obyektif.
Contoh 1.
Tersedia banyak koin, yaitu 1, 5, 10, 25. Berapa banyak cara untuk menukarkan uang senilai
A=32?
Jawab:
Tinjau masalah penukaran uang dengan metode greedy. Pada setiap langkah, pilihlah
koin dengan nilai terbesar dari himpunan koin yang tersisa.
Himpunan solusi feasible untuk 32 adalah {1, 5, 10, 25}
32
[25] = 1 buah koin × 25 = 25 ; sisa 7
Total koin minumum dari penukaran uang tersebut adalah 4 koin, dengan rincian satu
buah koin 25, satu buah koin 5, dan dua buah koin 1.
Dari contoh di atas, kita dapat mengelompokkan elemen-elemen greedy-nya, yaitu
sebagai berikut.
1. Himpunan Kandidat : himpunan koin yang merepresentasikan nilai 1, 5, 10, 25, paling
sedikit mengandung satu koin untuk setiap nilai.
2. Himpunan Solusi : total nilai koin yang dipilih tepat sama jumlahnya dengan nilai uang
yang ditukarkan.
3. Fungsi Seleksi : pilihlah koin yang bernilai tertinggi dari himpunan kandidat yang
tersisa.
4. Fungsi Kelayakan : memeriksa apakah nilai total dari himpunan koin yang dipilih tidak
melebihi jumlah uang yang harus dibayar.
5. Fungsi Objektif : jumlah minimum koin yang digunakan.
Contoh 2.
Sebuah server (dapat berupa processor, pompa, kasir di bank, dll) mempunyai npelanggan
(customer, client) yang harus dilayani. Waktu pelayanan untuk setiap pelanggan sudah
ditetapkan sebelumnya, yaitu pelanggan 𝑖 membutuhkan waktu𝑡𝑖 . Kita ingin meminimumkan
total waktu di dalam sistem,
𝑇 = ∑𝑛𝑖=1 (waktu di dalam sistem untuk pelanggan𝑖)
Misalkan terdapat tiga pelanggan dengan waktu pelayanan yang dibutuhkan sebagai berikut.
𝑡1 = 5 𝑡2 = 10 𝑡3 = 3
Maka urutan pelanggan yang mungkin adalah:
No. Urutan Total Waktu
1. 1, 2, 3 5 + (5 + 10) + (5 + 10 + 3 ) = 38
2. 1, 3, 2 5 + (5 + 3) + (5 + 3 + 10) = 31
3. 2, 1, 3 10 + (10 + 5) + (10 + 5 + 3) = 43
4. 2, 3, 1 10 + (10 + 3) + (10 + 3 + 5) = 41
5. 3, 1, 2 3 + (3 + 5) + (3 + 5 + 10) = 29 solusi optimal
6. 3, 2, 1 3 + (3 + 10) + (3 + 10 + 5) = 34
Contoh 3.
Tentukan lintasan terpendek dari simpul 1 ke simpul 10!
7
2 5
1
2 4 3 4
6 8 3
6
4
1 3 2 6 3 10
3 9 4
4
3 1
4
3
4 7
5
Jawab:
Misalkan 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 adalah simpul-simpul yang dikunjungi pada tahap k. 𝑘(𝑘 =
1, 2, 3, 4). Maka rute yang dilalui adalah 1 → 𝑥1 → 𝑥2 → 𝑥3 → 𝑥4 yang dalam hal ini 𝑥4 =
10.
Pada persoalan ini, Tahap (k) adalah proses memilih simpul tujuan berikutnya (ada 4
tahap). Dan Status (s) yang berhubungan dengan masing-masing tahap adalah simpul-
simpul di dalam graf.
Relasi rekurensi berikut menyatakan lintasan terpendek dari status s ke 𝑥4 pada tahap k
𝑓4 (𝑠) = 𝑐𝑠𝑥4 baris
𝑓𝑘 (𝑠) = min {𝑐𝑠𝑥4 + 𝑓𝑘+1 (𝑥𝑘 )} 𝑘 = 1, 2, 3 rekurens
Keterangan.
𝑥𝑘 : peubah keputusan pada tahap 𝑘 (𝑘 = 1, 2, 3)
𝑐𝑠𝑥𝑘 : bobot cost sisi dari 𝑠 ke 𝑥𝑘
𝑓𝑘 (𝑠, 𝑥𝑘 ) : total bobot lintasan dari 𝑠 ke 𝑥𝑘
𝑓𝑘 (𝑠) : nilai minimum dari 𝑓𝑘 (𝑠, 𝑥𝑘 )
Tujuan program dinamis mundur adalah untuk mendapatkan 𝑓1 (1) dengan cara mencari
𝑓4 (𝑠), 𝑓3 (𝑠), 𝑓2 (𝑠) terlebih dahulu.
Tahap 4.
𝑓4 (𝑠) = 𝑐𝑠𝑥4
Solusi Optimum
s
𝑓4 (𝑠) 𝑥4∗
8 3 10
9 4 10
Catatan: 𝑥𝑘∗ adalah nilai 𝑥𝑘 yang meminimumkan 𝑓𝑘 (𝑠, 𝑥𝑘 ).
Tahap 3.
𝑚𝑖𝑛
𝑓3 (𝑠) = {𝑐 + 𝑓4 (𝑥3 )}
𝑥3 𝑠𝑥3
𝑥3 𝑓3 (𝑠, 𝑥3 ) = 𝑐𝑠,𝑥3 + 𝑓4 (𝑥3 ) Solusi Optimum
s 8 9 𝑓3 (𝑠) 𝑥3∗
5 4 8 4 8
6 9 7 7 9
7 6 7 6 8
Tahap 2.
𝑚𝑖𝑛
𝑓2 (𝑠) = {𝑐 + 𝑓3 (𝑥2 )}
𝑥2 𝑠𝑥2
𝑥2 𝑓2 (𝑠, 𝑥2 ) = 𝑐𝑠,𝑥2 + 𝑓3 (𝑥2 ) Solusi Optimum
s 5 6 7 𝑓2 (𝑠) 𝑥2∗
3 11 11 12 11 5 atau 6
2 7 9 10 7 5
4 8 8 11 8 5 atau 6
Tahap 1.
𝑚𝑖𝑛
𝑓1 (𝑠) = {𝑐 + 𝑓2 (𝑥1 )}
𝑥1 𝑠𝑥1
𝑥2 𝑓1 (𝑠, 𝑥1 ) = 𝑐𝑠,𝑥1 + 𝑓2 (𝑥1 ) Solusi Optimum
s 2 3 4 𝑓1 (𝑠) 𝑥1∗
1 13 11 11 11 3 atau 4