Greedy Best First Search
Greedy Best First Search
Algoritma ini Merupakan jenis Best First Search yang hanya mempertimbangkan harga perkiraan
(estimated cost) yaitu f(n) = h(n). Sedangkan harga sesungguhnya tidak digunakan. Sehingga solusi yang
dihasilkan tidak optimal. Algoritma greedy ini membentuk solusi langkah per langkah (step by step).
Pada setiap langkah, terdapat banyak pilihan yang perlu dieksplorasi. Oleh karena itu, pada setiap
langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan.
Perhatikan masalah pencarian rute terpendek dari kota S (initial state) kekota G (goal state) pada
gambar di bawah ini. Terdapat 13 kota yang dinyatakan oleh simpul-simpul dalam suatu graph dua
arah. Setiap angka pada busur menyatakan biaya sebenarnya antara satu kota dengan kota lainnya.
Misalkan biaya disini adalah jarak antar kota dalam satuan kilometer. Nilai h(n) adalah fungsi heuristic
yaitu jarakgaris lurus dari simpul n menuju simpul G dalam satuan kilometer. Untuk perjalanan dari kota
S ke kota G, Rute mana yang memiliki biaya paling minimum? Dengan kata lain, rute mana yang total
jaraknya terpendek?
n S A B C D E F G H J K L M
h(n) 80 80 60 70 85 74 70 0 40 100 30 20 70
Simpul dengan tanda kotak menyatakan bahwa simpul tersebut berada di CLOSED (penah terpilih
sebagai bestNode). Sedangkan simpul tanpa tanda kotak menyatakan simpul yang berada di OPEN
Berikut adalah langkah-langkahnya dalam menyelesaikan masalah rute kota yang terdapat dalam
gambar diatas.
Langkah 1:
Langkah pertama OPEN berisi satu simpul yaitu S, maka S jadi simpul terbaik dan dipindahkan ke
CLOSED. Kemudian dibangkitkan semua suksesor S, yaitu A,B,C,D,E. karena kelima suksesor belum ada di
OPEN maupun CLOSED maka kelimanya dimasukan ke OPEN. Langkah pertama menghasilkan OPEN =
[A,B,C,D,E] & CLOSED = [S]
Langkah 2:
B dengan biaya terkecil (yaitu f(B) = h(B) = 60) terpilih sebagai simpul terbaik & dipindahkan ke CLOSED.
Selanjutnya, semua susesor B dibagkitkan, yaitu: A,F, & K. karena F &K belum ada di OPEN & CLOSED
maka keduanya dimasukan ke OPEN. Karena hanya menghitung biaya perkiraan (h), maka biaya
perkiraan dari S ke A atau biaya perkiraan dari S ke A melalui B adalah sama (yaitu h(A)=80) oleh karena
itu, parent dari A tidak perlu diubah lagi. Langkah ini menghasilkan OPEN = [A,C,D,E,F,K,J] dan CLOSED =
[S,B]
Langhah 3:
K dengan biaya terkecil (yaitu f(K)=h(K)=30) terpilih sebagai sipul terbaik dan dipindah ke CLOSED.
Selnjutnya, semua suksesor K dibangkitkan, yaitu G karena belum ada di OPEN maupun di CLOSED maka
G dimasukan ke OPEN. Langkah ini menghasilkan OPEN = [A,C,D,E,F,J,G] dan CLOSED [S,B,K].
Langkah berikutnya G dengan biaya terkecil terpilih sebagai simpul terbaik. Karena simpul terbaik
tersebut adalah goal, berarti solusi telah ditemukan. Hasil penerusuran menghasilkan rute S-B-K-G
dengan total jarak 105 km. Rute yang dihasilkan ini bukanlah rute terpendek karena masih ada rute lain
yang lebih pendek, yaitu S-A-B-F-K-G dengan total jaraknya 95 km. hal ini menunjukan bahwa Greedy
best first searchtidak optimal.
Contoh kasus:
kebutuhan manusia akan informasi semakin meningkat. Oleh karena itu dibutuhkan waktu yang cepat
untuk mencapai kebutuhan tersebut. algoritma pencarian merupakan suatu urutan langkah-langkah
(program) yang tepat untuk meningkatkan efisiensi waktu. yang dimaksud efisien dalam bahasan kali ini
adalah mencari jalur angkot terpendek dari Pancoran ke Manggarai.
Sebagai contoh, berikut adalah rincian jarak tempuh dan tarif angkot. Rincian berikut ini adalah
pengeluaran dari Pancoran ke Manggarai yang dapat ditempuh dengan jarak sekitar 10 km. yang akan
membuat masalah harus dipecahkan kembali yaitu tarif angkot yang harganya selalu relative (harga
jauh atau dekat bisa berbeda-beda) berdasarkan jalur dan tarif angkotnya masing-masing.
Keterangan:
S. Pancoran
A. Kuningan
B. Palbatu
C. Cawang
D. Casablanca
E. Tebet
F. Bukit duri
G. Manggarai
H. Pasar Kedondong
S A B C D E F G H
h(n) 1 rb 1,5 rb 3 rb 1 rb 1,5 rb 2,5 rb 0 2 rb
Simpul dengan tanda kotak menyatakan bahwa simpul tersebut berada di CLOSED (penah terpilih
sebagai bestNode). Sedangkan simpul tanpa tanda kotak menyatakan simpul yang berada di OPEN
Berikut adalah langkah-langkahnya dalam menyelesaikan masalah jalur angkot yang terdapat pada
gambar di atas.
Langkah 1.
Langkah pertama OPEN berisi satu simpul yaitu S, maka S jadi simpul terbaik dan dipindahkan ke
CLOSED. Kemudian dibangkitkan semua suksesor S, yaitu A,B,C karena ketiga suksesor belum ada di
OPEN maupun CLOSED maka kelimanya dimasukan ke OPEN. Langkah pertama menghasilkan OPEN =
[A,B,C] & CLOSED = [S]
Langkah 2.
A dengan biaya terkecil (yaitu f(A) = h(A) = 1 rb) terpilih sebagai simpul terbaik & dipindahkan ke
CLOSED. Selanjutnya, semua susesor A dibagkitkan, yaitu: H & D. karena keduanya belum ada di OPEN &
CLOSED maka keduanya dimasukan ke OPEN Langkah Kedua menghasilkan OPEN = [B,C,D,H] & CLOSED =
[S,A]
Langkah 3.
D dengan biaya terkecil (yaitu f(D) = h(D) = 1 rb) terpilih sebagai simpul terbaik & dipindahkan ke
CLOSED. Selanjutnya, semua susesor D dibagkitkan, yaitu: B & F. karena F belum ada di OPEN & CLOSED
maka F dimasukan ke OPEN. Karena hanya menghitung biaya perkiraan (h), maka biaya perkiraan dari S
ke B atau biaya perkiraan dari S ke B melalui A & D berbeda (yaitu h(B) = 1,5 rb) maka parent dari B perlu
diubah yaitu D. Langkah ketiga menghasilkan OPEN = [B,C,H,F] & CLOSED = [S,A,D]
Langkah 4.
B dengan biaya terkecil (yaitu f(B) = h(B) = 1,5 rb) terpilih sebagai simpul terbaik & dipindahkan ke
CLOSED. Selanjutnya, semua susesor B dibagkitkan, yaitu: E. karena E belum ada di OPEN & CLOSED
maka E dimasukan ke OPEN. Langkah ini menghasilkan OPEN = [C,E,F,H] & CLOSED = [S,A,B,D]
Langkah 5.
E dengan biaya terkecil (yaitu f(E) = h(E) = 1,5 rb) terpilih sebagai simpul terbaik & dipindahkan ke
CLOSED. Selanjutnya, semua susesor E dibagkitkan, yaitu: C & F. kedua suksesor ini sudah ada di OPEN.
Karena hanya menghitung biaya perkiraan (h), maka biaya perkiraan dari S ke C atau biaya perkiraan dari
S ke C melalui E adalah sama (yaitu h(C)=3 rb) oleh karena itu, parent dari C tidak perlu diubah lagi.
Langkah ini menghasilkan OPEN = [C,F,H] dan CLOSED = [S,B,D,E]
Langkah 6.
E dengan biaya terkecil (yaitu f(E) = h(E) = 1,5 rb) terpilih sebagai simpul terbaik & dipindahkan ke
CLOSED. Selanjutnya, semua susesor E dibagkitkan, yaitu: C & F. kedua suksesor ini sudah ada di OPEN.
Karena biaya perkiraan dari S ke C atau biaya perkiraan dari S ke C melalui E adalah sama (yaitu h(C)=3
rb) oleh karena itu, parent dari C tidak perlu diubah lagi. sedangkan biaya perkiraan dari D ke F atau
biaya perkiraan dari E ke F berbeda (yaitu h(B) = 1,5 rb) maka parent dari F perlu diubah yaitu E. Langkah
ini menghasilkan OPEN = [C,H,G] & CLOSED = [S,A,B,D,E,F]
Langkah berikutnya G dengan biaya terkecil terpilih sebagai simpul terbaik. Karena simpul terbaik
tersebut adalah goal, berarti solusi telah ditemukan. Hasil penerusuran menghasilkan rute S-A-B-D-E-F-
G dengan total jarak 14 km. Rute yang dihasilkan ini bukanlah rute terpendek karena masih ada rute lain
yang lebih pendek, yaitu S-C-G dengan total jaraknya 4,5 km. hal ini menunjukan bahwa Greedy best
first search tidak optimal