Anda di halaman 1dari 8

KECERDASAN BUATAN

STRATEGI PENCARIAN UNINFORMED

NAMA : ROMI IRFAN SYAH


NIM : G.231.20.0081
KELAS : SORE (B2)
PROGDI : S1 TEKNIK INFORMATIKA

UNIVERSITAS SEMARANG (USM)


FAKULTAS TEKNIK INFORMASI DAN KOMUNIKASI
TAHUN AJARAN 2022/2023
UNINFORMED SEARCH ALGORITM
Algoritma ini tidak memberikan informasi apapun tentang permasalah yang ada, tetapi
hanya berfokus memberikan informasi tentang algorima tersebut. Algoritma ini juga
disebut Blind Search. Istilah Blind Search berpedoman bahwa, teknik pencarian ini tidak
memiliki informasi tambahan lain selain dari yang disediakan. Yang dilakukan oleh algorima
ini adalah melakukan generate dari successor dan membedakan goal state dari non-goal state.
Pencarian ini dilakukan berdasarkan pada urutan mana saja node yang hendak di-expand.
Macam-macam Uninformed Search Algorithm:
1. BREADTH FIRST SEARCH (BFS)

Breadth-first search adalah algoritma yang melakukan pencarian secara melebar


yang mengunjungi simpul secara preorder yaitu mengunjungi suatu simpul kemudian
mengunjungi semua simpul yang bertetangga dengan simpul tersebut terlebih dahulu.
Selanjutnya, simpul yang belum Makalah IF2211 Strategi Algoritma– Sem. II Tahun
2017/2018 dikunjungi dan bertetangga dengan simpul-simpul yang tadi dikunjungi ,
demikian seterusnya. Jika graf berbentuk pohon berakar, maka semua simpul pada arah
d dikunjungi lebih dahulu sebelum simpul-simpul pada arah d+1.
Algoritma ini memerlukan sebuah antrian q untuk menyimpan simpul yang
telah dikunjungi. Simpul-simpul ini diperlukan sebagai acuan untuk mengunjungi
simpul-simpul yang bertetanggaan dengannya. Tiap simpul yang telah dikunjungu
masuk ke dalam antrian hanya satu kali. Algoritma ini juga membutuhkan table
Boolean untuk menyimpan simpul yang telah dikunjungi sehingga tidak ada simpul
yang dikunjungi lebih dari satu kali.
Algoritma dari BFS
Dalam algoritma BFS, simpul anak yang telah dikunjungi disimpan dalam
suatu antrian. Antrian ini digunakan untuk mengacu simpul-simpul yang bertetangga
dengannya yang akan dikunjungi kemudian sesuai urutan pengantrian. Untuk
memperjelas cara kerja algoritma BFS beserta antrian yang digunakannya, berikut
langkah-langkah algoritma BFS:

• Masukkan simpul ujung (akar) ke dalam antrian.


• Ambil simpul dari awal antrian, lalu cek apakah simpul merupakan solusi.
• Jika simpul merupakan solusi, pencarian selesai dan hasil dikembalikan.
• Jika simpul bukan solusi, masukkan seluruh simpul yang bertetangga dengan
simpul tersebut (simpul anak) ke dalam antrian.
• Jika antrian kosong dan setiap simpul sudah dicek, pencarian selesai dan
mengembalikan hasil solusi tidak ditemukan.
• Ulangi pencarian dari langkah kedua.
Contoh Metode Pencarian BFS ( Breadth First Search )

Maka penyelesaiannya adalah:

• Gambar (a) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1.


• Gambar (b) BFS(1): 1, 2, 3, 4, 5, 6, 7, 1
• Gambar (c) BFS(1): 1, 2, 3, 4, 5, 6, 7, 8, 9

2. DFS (DEPTH FIRST SEARCH)

DFS (Depth First Search) adalah salah satu algoritma penelusuran struktur graf
atau pohon berdasarkan kedalaman. Simpul ditelusuri dari root kemudian ke salah satu
simpul anaknya ( misal nya prioritas penelusuran berdasarkan anak pertama [simpul
sebelah kiri] ), maka penelusuran dilakukan terus melalui simpul anak pertama dari
simpul anak pertama level sebelumnya hingga mencapai level terdalam.
Setelah sampai di level terdalam, penelusuran akan kembali ke 1 level
sebelumnya untuk menelusuri simpul anak kedua pada pohon biner [simpul sebelah
kanan] lalu kembali ke langkah sebelumnya dengan menelusuri simpul anak pertama
lagi sampai level terdalam dan seterusnya.

Algortima DFS ( Depth First Search )


Dalam implementasinya DFS dapat diselesaikan dengan cara rekursif atau dengan
bantuan struktur data stack. Kita akan membahas dengan cara yang menggunakan stack.
Stack yang digunakan adalah stack yang isi elemennya adalah simpul pohon / tree.
Bagaimana cara kerjanya ? Berikut ini adalah urutan algoritmanya :
• Masukkan simpul root ke dalam tumpukan dengan push.
• Ambil dan simpan isi elemen (berupa simpul pohon) dari tumpukan teratas.
• Hapus isi stack teratas dengan prosedur pop.
• Periksa apakah simpul pohon yang disimpan tadi memiliki anak simpul.
• Jika ya, push semua anak simpul yang dibangkitkan ke dalam stack
• Jika tumpukan kosong berhenti, tapi jika tidak kembali ke langkah dua.
Contoh Metode Pencarian DFS ( Depth First Class )

Maka, urutan penelusurannya adalah : A – B – D – H – E – I – C – F – G – J – K –


L.

3. UNIFORM COST SEARCH ( UCS )


Pencarian dengan BFS akan menjadi optimal ketika nilai pada semua path
adalah sama. Dengan sedikit perluasan, dapat ditemukan sebuah algoritma yang
optimal dengan melihat kepada nilai tiap path di antara node-node yang ada.
Selain menjalankan fungsi algoritma BFS, Uniform Cost Search melakukan
ekspansi node dengan nilai path yang paling kecil. Hal ini bisa dilakukan dengan
membuat antrian pada successor yang ada berdasar kepada nilai path-nya (node
disimpan dalam bentuk priority queue).

Algoritma Metode Pencarian UCS (Uniform Cost Search )

Algoritma UCS dapat dilihat pada gambar berikut:


Contoh Metode Pencarian UCS ( Uniform Cost Search )
Perhatikan contoh pada gambar berikut ini. Nilai pada edge menandakan cost atau
disebut juga g(n).

Penelusuran menggunakan UCS dari S ke G akan berjalan sebagai berikut.

• Frontier bernilai S
• Dari S, kita dapat menuju A, C, K dengan nilai 2,1,2. Untuk menyimpan pada frontier,
perlu dilakukan sorting berdasarkan cost terendah. Sehingga dapat kita tuliskan f = C,
A, K dengan cost 1,2,2
• Selanjutnya kita ekspansi C (yang paling rendah). Dari C kita bisa menuju D. cost dari
C ke D adalah 1. namun, merujuk pada algoritma UCS, g(n) merupakan jumlah cost
dari root menuju node n, maka g(n) untuk D dari C adalah 1 + cost sebelumnya menuju
C yaitu 1 sehingga g(n) untuk D dari C adalah 2. Urutkan lagi berdasarkan cost.
4. DEPTH LIMITED SEARCH ( DLS )

Pencarian menggunakan DFS akan berlanjut sampai kedalam paling terakhir


dari sebuah tree. Misalkan yang muncul pada DFS adalah ketikda proses pencarian
tersebut menemui infinite state space. Hal ini bisa diatasi dengan mengisiasikan batas
depth pada level tertentu semenjak awal pencarian. Sehingga node pada level depth
tersebut akan diperlakukan seolah-olah mereka sudah tidak memiliki successor.

Algoritma Metode Pencarian DLS ( Depth Limited Search )

Algoritma Depth Limited Search memberikan batas kedalaman pada algoritma


Depth First Search (Russel & Norvig, 1995). Dengan algoritma Depth Limited Search,
penelusuran Depth First Search data dibatasi sehingga tidak melakukan penelusuran
terlalu dalam. Algoritma Depth Limited Search adalah sebagai berikut:

• Tetapkan node awal dengan kedalaman = 0 dan tentukan batas kedalaman.


• Cek apakah node adalah node tujuan. Jika benar maka proses berhenti, jika tidak
maka lanjut ke langkah c.
• Cek apakah kedalaman node sama dengan batas kedalaman yang telah
ditentukan. Jika benar, maka lanjutkan proses dengan menelusur hanya node –
node yang berada dalam batas kedalaman yang telah ditentukan dan belum
dikunjungi dengan kembali kelangkah b. Jika tidak maka lanjutkan ke langkah
d.
• Perluas node dan kembali ke langkah b.

Gambaran kerja algoritma Depth Limited Search dapat digambarkan dalam bentuk
tree. Tree merupakan sebuah graf tidak berarah dan merupakan jaringan bersambung
yang tidak memiliki untai (loop) sehingga dengan demikian dapat disimpulkan bahwa
sebuah tree dapat dibentuk dari graf sederhana karena graf sederhana tidak memiliki
self loop ataupun edge parallel. Tree terdiri dari sekumpulan elemen. Elemen tree
adalah akar atau root dan simpul. Derajat atau degree sebuah simpul menunjukkan
jumlah anak pada simpul tersebut.
Contoh Metode Depth Limited Search ( DLS )

Bila simpul pertama adalah 1 dan juga perbatasan intensitas adalah 3 jadi pola
dikunjunginya adalah 1, 2, 4, 8, 5, 3, 6,.7.

Ilustrasi secara cepat adalah jika intensitas 3 adalah 5,6,7 jadi untuk {sampai} pada
intensitas 3 simpul-simpul mana saja yang pasti akan dilalui untuk memulai dengan
yaitu 1,2,5 pada saat itu simpul ke-2 yaitu 1,3,6 dan juga 3 adalah 1,4,7 dan juga hasil
akhir akir ditulis satu kali saja tidak dibutuhkan mengulang angka. Maka hasilnya
adalah 1,2,3,4,5,6,7.

5. ITERATIVE DEEPENING SEARCH (IDS)

Iterative Deepening Search (IDS) merupakan metode yang menggabungkan


kelebihan BFS (complete dan optimal) dengan kelebihan DFS (space complexity
rendah atau membutuhkan sedikit memori). Tetapi konsekuensinya adalah time
complexity-nya menjadi tinggi.
Metode pencarian pada IDS menggunakan metode pencarian pada DFS, yaitu
pencarian pada sebuah pohon dengan menelusuri satu cabang sebuah pohon sampai
menemukan solusi. Pencarian dilakukan pada satu node dalam setiap level dari yang
paling kiri. Jika pada level yang paling dalam, solusi belum ditemukan, maka pencarian
dilanjutkan pada node sebelah kanan. Node yang kiri dapat dihapus dari memori.
Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak
diperlukan proses backtracking (penelusuran balik untuk mendapatkan jalur yang
diinginkan). Akan tetapi, dalam metode pencarian IDS, pencarian mencoba
menemukan batas kedalaman yang terbaik dengan terus menelusuri batas kedalaman
satu per satu, pencarian dilakukan secara iteratif dimulai dari batasan level 0. Jika solusi
belum ditemukan, maka dilakukan iterasi berikutnya dengan batasan level 1, demikian
seterusnya sampai menemukan solusi[7]. IDS melakukan pencarian berulang-ulang
dengan menambah batas kedalaman setiap mengulang pencarian, dan akhirnya
menemukan solusi pada penelusuran dengan batas kedalaman tertentu. Solusi
ditemukan pada percabangan kiri atau kanan. Pencarian ini akan menemukan solusi
lebih cepat daripada penelusuran pada DFS, jika solusi tidak berada pada node yang
dalam.

Contoh Metode Pencarian IDS ( Interative Deepening Search )

Perhatikan gambar dibawah ini. IDS melakukan pencarian secara iteratif


menggunakan penelusuran Depth-Limited-Search (DLS) dimulai dengan batasan level
0. Jika belum ditemukan solusi, maka dilakukan iterasi ke-2 dengan batasan level 1.
Demikian seterusnya sampai ditemukan solusi.

Anda mungkin juga menyukai