write(v)
dikunjungi[v] true
DFS(w)
endif
Deklarasi
finish : boolean
current : state
newstate : state
queue : antrian
visitedlist : list of state
simpul n: step
Algoritma
MasukAntrian(queue,akar)
MasukList(visitedlist,akar )
finish false
while (not AntrianKosong(queue) and not
finish)
HapusAntrian(queue, current)
for setiap simpul n yang bertetangga Selanjutnya dilakukan pencarian pada
dengan current do
newstate BuatStatusBaru(current, kota-kota tetangga kota zerind, kota
node n) timisoara, dan kota sibiu dan dimasukkan
if (Solusi(newstate)) ke dalam level selanjutnya. Hal tersebut
finish = true
TambahAnak(current, newstate) dilakukan sampai seluruh simpul di graf
TandaiSolusi(newstate) berhasil dijelajahi. Setelah dijelajahi
return
else
semua simpul dari graf maka akan
if (not Mengandung(visitedlist, diperoleh lintasan terpendek dari Arad
newstate)) then menuju ke Bucharest dengan
TambahAnak(current, newstate)
MasukAntrian(queue, newstate) menggunakan algoritma BFS maka
MasukList(visitedlist, newstate) diperoleh node:4, path: (Arad-Sibiu-
endif
endif
Fagaras-Bucharest), path cost =450, dan
Arad
ekspansi node sebanyak 14 kali.
Algoritma
if (Solusi(akar))
TandaiSolusi(akar)
else
for setiap simpul n yang
bertetangga dengan current do
newstate
BuatStatusBaru(current,simpul n)
if (not Mengandung(visitedlist,
newstate)) then
TambahAnak(current, newstate)
MasukList(visitedlist, newstate)
DFS(newstate, visitedlist) Proses pencarian akan berhenti ketika
if (Solusi(newstate)) ditemukan atau tidak ditemukannya solusi,
return secara kebetulan akan ditemukan solusi
endif tanpa harus menguji lebih banyak atau
endif keseluruhan dari simpul yang ada.
endfor Sehingga dari implementasi pohon di atas
endif maka dapat diihat bahwa untuk
implementasi algoritma BFS dalam bentuk memperolah lintasan terpendek dari Arad
pohon sesuai dengan masalah romania menuju ke Bucharest dengan
yaitu: menggunakan algoritma DFS maka
diperoleh node:7, path: (Arad-Zerind-
Oradea-Sibiu-Rimnicu-Pitesti-Bucharest), implementasi algoritma BFS dalam bentuk
path cost=575, dan ekspansi node pohon sesuai dengan masalah romania
sebanyak 7 kali. yaitu:
do
if frontier is empty
return failure
node := frontier.pop()
if node is goal
Konsep dasar pencarian Uniform Cost
return solution
Serch hampir sama dengan BFS
explored.add(node) (Breadth-First Search), bedanya adalah
for each of nodes neighbors n bahwa BFS menggunakan urutan level
if n is not in explored yang paling rendah sampai yang paling
tinggi, sedangkan UCS menggunakan
if n is not in frontier
urutan biaya dari yang paling kecil sampai
frontier.add(n) yang terbesar. UCS berusaha
if n is in frontier with higher cost menemukan solusi dengan total biaya
replace existing node with n
terendah yang dihitung berdasarkan biaya
dari Arad ke Bucharest. Sehingga dari
implementasi pohon di atas maka dapat
diihat bahwa untuk memperolah lintasan Setelah melakukan penyelesaian dengan
terpendek dari Arad menuju ke Bucharest tree maupun dengan program,
dengan menggunakan algoritma UCS disimpulkan bahwa output dari algoritma
maka diperoleh node:5, path: (Arad-Sibiu- dengan penyelesaian manual yaitu:
Rimnicu Vilcea-Pitesti-Bucharest), path
1. BFS
cost=418, dan ekspansi node sebanyak
- Node:4
15 kali.
- Path = (Arad Sibiu Fagaras -
5. KESIMPULAN Bucharest)
- Path Cost =450
Algoritma Breadth-First Search (BFS) atau
- Ekspansi node sebanyak 14 kali.
algoritma pencarian melebar merupakan
2. DFS
pencarian dilakukan pada semua node
- Node:7
dalam setiap level secara berurutan dari
- Path: (Arad Zerind Oradea
kiri ke kanan. Jika pada satu level belum
Sibiu Rimnicu Pitesti -
ditemukan solusi, maka pencarian
Bucharest)
dilanjutkan pada level berikutnya.
- Path Cost=575
Demikian seterusnya sampai ditemukan
- Ekspansi node sebanyak 7 kali
solusi.
3. UCS
Algoritma Depth-First Search (DFS) atau - Node:5,
algoritma pencarian mendalam juga - Path: (Arad-Sibiu-Rimnicu Vilcea-
merupakan pencarian dilakukan pada satu Pitesti-Bucharest)
node dalam setiap level dari yang paling - Path Cost=418
kiri. Jika pada level yang paling dalam, - Ekspansi node sebanyak 15 kali
solusi belum ditemukan, maka pencarian
Sedangkan penyelesaikan masalah
dilanjutkan pada node sebelah kanan.
dengan menggunakan program dapat
Node yang kiri dapat dihapus dari memori.
dievaluasi kinerja dari ketiga algortima
Jika pada level yang paling dalam tidak
yaitu:
ditemukan solusi, maka pencarian
dilanjutkan pada level sebelumnya. Evaluasi
Algoritma Complet- Optimal
Demikian seterusnya sampai ditemukan eness
Time Space
y
solusi. BFS Complete 0.07 55.3086 Optimal
Sec MB
Uniform Cost Search adalah algoritma DFS Not 0.19 6 MB Not
Seach Tree (graph) yang digunakan untuk Complete Sec Optimal
UCS Complete 0.07 53.7891 Optimal
menyelesaikan beberapa persoalan. Sec MB
Algoritma ini memulai pencarian dari root
node, kemudian dilanjutkan ke node-node
selanjutnya. Dimana node tersebut dipilih Algoritma UCS lebih baik dalam hal
yang memilki harga (cost) terkecil dari root menentukan lintasan terpendek karena
node. algoritma UCS akan memilih lintasan
(path) yang memiliki biaya terendah
Masalah romania dapat dicari solusinya dibandingkan dengan algoritma BFS dan
dengan memanfaatkan algoritma BFS, DFS, kemudian dari evaluasi ketiga
DFS, dan UCS. Pada makalah ini masalah algoritma dengan menggunakan program
romania dapat diselesaikan secara dapat dilihat bahwa algoritma UCS
manual menggunakan tree dan dapat juga tersebut complete dan optimal serta waktu
diselesaikan menggunakan program yang digunakan lebih sedikit dibanding
dalam bahasa java dan phyton 3. BFS. Dengan demikian algoritma UCS
menjadi pilihan terbaik di antara algoritma ARTIFICIAL INTELLIGENCE:
BFS, DFS, dan UCS untuk menentukan http://fahrululumsholihin.blogspot.co
solusi dari masalah romania. .id/2015/05/v-
behaviorurldefaultvmlo.html