PENERAPANAN ALGORITMA BFS, DFS, PENERAPANAN ALGORITMA BFS, DFS, DAN UCS UNTUK MENCARI SOLUSI PADA MASALAH
DAN UCS UNTUK MENCARI SOLUSI PADA MASALAH ROMANIAROMANIA
1. PENDAHULUAN 1. PENDAHULUAN
Pada zaman serba modern ini, peta masih Pada zaman serba modern ini, peta masih digunakan oleh kebanyakan orang untuk digunakan oleh kebanyakan orang untuk menuju dari suatu titik awal ke titik tujuan. menuju dari suatu titik awal ke titik tujuan. Lintasan yang dipilih untuk menuju titik Lintasan yang dipilih untuk menuju titik tujuan pastilah lintasan yang paling tujuan pastilah lintasan yang paling pendek. Namun, pencarian lintasan pendek. Namun, pencarian lintasan terpendek secara manual, akan terpendek secara manual, akan membutuhkan waktu yang banyak dan membutuhkan waktu yang banyak dan ketelitian lebih untuk mencapainya.
ketelitian lebih untuk mencapainya.
Masalah lintasan terpendek berkaitan Masalah lintasan terpendek berkaitan dengan pencarian lintasan pada graf dengan pencarian lintasan pada graf berbobot yang menghubungkan dua buah berbobot yang menghubungkan dua buah simpul (
simpul (edge)edge) sedemikian sedemikian sehinggasehingga jumlah
jumlah bobot bobot pada pada sisi-sisi sisi-sisi yang yang terpilihterpilih merupakan bobot minimum. Terdapat merupakan bobot minimum. Terdapat banyak algoritma yang dapat digunakan banyak algoritma yang dapat digunakan untuk pemecahan masalah dalam untuk pemecahan masalah dalam pencarian lintasan terpendek. Pemilihan pencarian lintasan terpendek. Pemilihan algoritma yang paling optimal seringkali algoritma yang paling optimal seringkali menjadi permasalahan dalam pencarian menjadi permasalahan dalam pencarian lintasan terpendek karena setiap
lintasan terpendek karena setiap algoritmaalgoritma memiliki kelebihan dan kekurangannya memiliki kelebihan dan kekurangannya masing-masin
masing-masing g [1].[1].
Secara umum, algoritma pencarian dapat Secara umum, algoritma pencarian dapat dibedakan menjadi dua metode yaitu, dibedakan menjadi dua metode yaitu, metode uninformed search dan metode metode uninformed search dan metode informed search. Metode uninformed informed search. Metode uninformed search merupakan metode matematika search merupakan metode matematika biasa dengan informasi yang jelas, biasa dengan informasi yang jelas, sedangkan metode informed search sedangkan metode informed search merupakan metode pencarian yang merupakan metode pencarian yang menggunakan metode pendekatan pada menggunakan metode pendekatan pada proses pencariannya [2].
proses pencariannya [2].
Pada tulisan ini, akan dibahas bagaimana Pada tulisan ini, akan dibahas bagaimana menemukan solusi dalam pencarian menemukan solusi dalam pencarian lintasan terpendek dari kasus romania lintasan terpendek dari kasus romania dengan menggunakan algoritma dengan menggunakan algoritma pencarian
pencarian Breadth Fisrt Search (BFS),Breadth Fisrt Search (BFS), Depth First Search (DFS)
Depth First Search (DFS) dan dan UniformUniform Cost Search (UCS)
Cost Search (UCS) sehingga diperoleh sehingga diperoleh
kota-kota mana saja yang harus dilalui kota-kota mana saja yang harus dilalui dalam menentukan lintasan terpendek dari dalam menentukan lintasan terpendek dari suatu kasus.
suatu kasus. 2.
2. TINJAUAN TINJAUAN PUSTAKAPUSTAKA
Beberapa dasar teori yang menjadi Beberapa dasar teori yang menjadi landasan penulisan, yaitu
landasan penulisan, yaitu searchsearch, metode, metode uninformed search, teori graf, algoritma uninformed search, teori graf, algoritma Breath First Search (BFS),
Breath First Search (BFS), Depth FirstDepth First Search (DFS),
Search (DFS), dan dan Uniform Cost SearchUniform Cost Search (UCS)
(UCS) yang akan digunakan untuk yang akan digunakan untuk menyelesaikan permasalahan.
menyelesaikan permasalahan. 2.1 Search
2.1 Search
Menurut Luger (2005),
Menurut Luger (2005), searchsearch adalahadalah sebuah teknik menyelesaikan masalah sebuah teknik menyelesaikan masalah (( problem problem solving solving ) yang mengembangkan) yang mengembangkan sebuah ruang permasalahan secara sebuah ruang permasalahan secara sistematik dalam sebuah proses.
sistematik dalam sebuah proses. TerdapatTerdapat 4 kriteria untuk menentukan performa 4 kriteria untuk menentukan performa sebuah metode pencarian, yaitu sebuah metode pencarian, yaitu Completeness, Time Complexity, Space Completeness, Time Complexity, Space Complexity,
Complexity, dandan Optimality. Optimality. CompleteneCompletenessss adalah apakah metode tersebut
adalah apakah metode tersebut menjaminmenjamin ditemukannya solusi jika solusi tersebut ditemukannya solusi jika solusi tersebut ada.
ada. Time ComplexityTime Complexity adalah lama waktuadalah lama waktu yang
yang dibutuhkan untuk menemukan solusidibutuhkan untuk menemukan solusi tersebut.
tersebut. Space ComplexitySpace Complexity adalah jumlahadalah jumlah memory yang
memory yang diperlukan dan yangdiperlukan dan yang dimaksud
dimaksud OptimalityOptimality adalah adalah apakahapakah metode tersebut menjamin menemukan metode tersebut menjamin menemukan solusi yang terbaik jika terdapat beberapa solusi yang terbaik jika terdapat beberapa solusi
solusi yang yang lain lain [3].[3].
Metode pencarian dibagi menjadi dua Metode pencarian dibagi menjadi dua strategi, yaitu
strategi, yaitu uninformed searchuninformed search dandan informed search
informed search.. Uninformed Uninformed searchsearch merupakan suatu strategi pencarian tanpa merupakan suatu strategi pencarian tanpa ada informasi mengenai
ada informasi mengenai costcost (bobot) atau(bobot) atau informasi tertentu sedangkan
informasi tertentu sedangkan InformedInformed search
search merupakan merupakan suatu suatu strategistrategi pencarian yang
mengenai cost (bobot) atau informasi tertentu [3].
2.2 Metode
Uninformed S earch
Metode Uninformed Search sering disebut juga dengan Blind Search. Istilah tersebut menggambarkan bahwa teknik pencarian ini tidak memiliki informasi tambahan mengenai kondisi diluar dari yang disediakan oleh definisi masalah. Metode uninformed search terdiri atas Breath First Search (BFS), Depth First Search (DFS), Uniform Cost Search (UCS), Depth-Limited Search (DLS), Interative-Deeping Search (IDS) dan Bi-directional Search (BDS) [4].
2.3 Teori Graf
Beberapa terminology graf yang dibahas adalah verteks, edge, graf tidak berarah, graf berarah, graf berbobot, dan path (lintasan).
Verteks merupakan titik atau node yang menunjukkan tempat yang dijadikan sebagai goal atau tujuan, start atau awal, atau tempat yang akan dilalui dalam suatu perjalanan. Edge merupakan garis penghubung antar verteks[5].
Graf tidak berarah (undirected graf) merupakan graf yang tidak memiliki arah dan anak panah sehingga dapat dilalui oleh dua arah yang berlawanan. Graf berarah (directed graf) merupakan graf yang memiliki arah dan biasanya ditunjukkan dengan sebuah anak panah dengan salah satu ujungnya disebut tail (ekor) dan head (kepala). Graf berarah tidak dapat dilewati oleh dua arah yang berbeda. Graf berbobot merupakan graf yang memiliki bobot atau nilai di setiap edge-nya dan dapat berupa graf berarah maupun graf yang tidak berarah. Path (lintasan) merupakan suatu lintasan yang melalui verteks dan edge dimana verteks tidak boleh dilewati lebih dari satu kali [5].
2.4 Algoritma Pencarian
Breadth-First
S earch
Algoritma Breadth-First Search (BFS) atau algoritma pencarian melebar merupakan pencarian dilakukan pada semua node dalam setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi. Dengan strategi ini, maka dapat dijamin bahwa solusi yang ditemukan adalah yang paling baik (Optimal). Algoritma BFS memerlukan sebuah antrian (queue) untuk menyimpan simpul yang telah dikunjungi [6].
Gambar 1 diagram alur penyelesaian masalah metode BFS
Berikut ini adalah langkah-langkah traversal graf dengan memanfaatkan algoritma BFS [7]:
1. Masukan simpul akar(root) ke dalam antrian.
2. Keluarkan sebuah simpul dari antrian.
3. Kunjungi semua tetangga dari simpul ini yang belum pernah dikunjungi sebelumnya. Masukan juga simpul-simpul tetangga ini ke
dalam antrian.
4. Jika antrian telah kosong maka penelusuran telah selesai. Jika
antrian masih ada, ulangi langkah nomor 2.
Berikut ini adalah pseudocode
penelusuran graf dengan BFS. procedure BFS(G,v)
{ Traversal graf dengan algoritma pencarian BFS.
Masukan : G adalah graf, v adalah simpul awal kunjungan
Keluaran : semua simpul yang dikunjungi dicetak ke layar } Deklarasi w : integer q : antrian procedure BuatAntrian(input/output q: antrian)
{ membuat antrian kosong, kepala(q) diisi 0 }
procedure MasukAntrian(input/output q:antrian, input v:integer)
{ memasukkan v ke dalam antrian q pada posisi belakang }
procedure HapusAntrian(input/output q:antrian, output v:integer)
{ menghapus v dari kepala antrian q }
function AntrianKosong(input q:antrian) → boolean
{ true jika antrian q kosong, false jika sebaliknya }
Algoritma
BuatAntrian(q) { buat antrian kosong }
write(v) { cetak simpul awal yang dikunjungi }
dikunjungi[v] ← true { simpul v telah dikunjungi, tandai dengan true}
MasukAntrian(q,v) { masukkan simpul awal kunjungan ke dalam antrian}
{kunjungi semua simpul graf selama antrian belum kosong }
while not AntrianKosong(q) do
HapusAntrian(q,v) { simpul v telah dikunjungi, hapus dari antrian }
for tiap simpul w yang bertetangga dengan simpul v do
if not dikunjungi[w] then
write(w) {cetak simpul yang dikunjungi} MasukAntrian(q,w) dikunjungi[w]← true endif endfor endwhile { AntrianKosong(q) }
Kelebihan dan kekurangan algoritma BFS yaitu [8] :
- Kelebihan Algoritma Breadth First Search adalah : pasti menemukan solusi yang dicari, tidak akan mengalami jalan buntu / tidak menemukan solusi.
- Kelemahan Algoritma Breadth-First Search adalah : memerlukan memori yang cukup besar, karena metode ini mengecek keseluruhan node yang ada dan membutuhkan waktu yang lebih untuk mengecek semua node yang ada tersebut.
2.5 Algoritma Pencarian
Depth-First
S earch
Algoritma Depth-First Search (DFS) atau algoritma pencarian mendalam juga merupakan 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. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi. Jika solusi ditemukan maka tidak diperlukan proses backtracking (penelusuran balik untuk mendapatkan jalur yang dinginkan)[6].
Gambar 2 diagram alur penyelesaian masalah metode DFS
Algoritma DFS secara alami meng-gunakan rekursif dalam implementasinya. Berikut ini adalah langkah-langkah traversal graf dengan memanfaatkan algoritma DFS [7].
1. Kunjungi simpul akar(root).
2. Untuk sebuah tetangga dari simpul ini yang belum pernah dikunjungi sebelumnya, anggap simpul ini sebagai akar untuk melakukan DFS pada langkah 1.
3. Jika sudah tidak terdapat tetangga yang belum pernah dikunjungi lagi, lakukan runut balik ke simpul yang telah dikunjungi sebelumnya.
4. Penelusuran berhenti ketika simpul awal dari DFS ini sudah tidak mempunyai tetangga yang belum pernah dikunjungi.
Berikut ini adalah pseudocode penelusuran graf dengan DFS.
procedure DFS(input v:integer)
{Mengunjungi seluruh simpul graf dengan algoritma pencarian DFS
Masukan: v adalah simpul awal kunjungan
Keluaran: semua simpul yang dikunjungi ditulis ke layar
} Deklarasi w : integer Algoritma write(v) dikunjungi[v] true
for setiap simpul w yang bertetangga dengan simpul v do
if not dikunjungi[w] then
DFS(w)
endif
endfor
Kelebihan dan Kekurangan Algoritma Depth First Search (DFS) yaitu [8]:
Kelebihan Algoritma Depth First Search
Memori yang relatif kecil
Secara kebetulan, akan menemukan solusi tanpa harus menguji lebih banyak lagi
Kekurangan Algoritma Depth First Search
Memungkinkan tidak ditemukan-nya tujuan yang diharapkan
Hanya akan mendapatkan 1 solusi pada setiap pencarian
2.6 Algoritma Pencarian
Uniform Cost
S earch
Uniform Cost Search adalah algoritma Seach Tree (graph) yang digunakan untuk menyelesaikan beberapa persoalan. Algoritma ini memulai pencarian dari root node, kemudian dilanjutkan ke node-node selanjutnya. Dimana node tersebut dipilih yang memilki harga (cost ) terkecil dari root node. Algoritma ini merupakan modifikasi dari Breadth First Searc h (BFS). Dalam implementasi algoritma ini melibatkan semua node yang berhubungan dengan root node dan meletaknnya dalam priority queue untuk mencapai node tujuan.
dimana node-node yang dipilih merupakan node yang memiliki harga paling kecil [9]. Berikut ini adalah langkah-langkah traversal graf dengan memanfaatkan algoritma ucs [10]:
1. initial state terletak pada node start atau simpul akar. Maka langka pertama kunjungi simpu akar (root).
2. kemudian untuk mencapai node berikutnya, algoritma ini memilih total Cost yang paling kecil dari beberapa kemungkinan Total Cost yang dilalui state. Maka, Total Aksi adalah Total Cost
3. Begitu seterusnya, dilakukan pengecekan node yang memilki total Cost terkecil hingga sampai pada goal state.
Konsep dasar Uniform Cost Serch hampir sama dengan BFS (Breadth-First Search),
bedanya adalah bahwa BFS
menggunakan urutan level yang paling rendah sampai yang paling tinggi, sedangkan UCS menggunakan urutan biaya dari yang paling kecil sampai yang terbesar. UCS berusaha menemukan solusi dengan total biaya terendah yang dihitung berdasarkan biaya dari simpul asal menuju ke simpul tujuan.
Kelebihan dan kekurangan UCS sebagai berikut [3]:
Kelebihan algoritma UCS sebagai berikut :
Karena memiliki konsep seperti
BFS maka UCS menjamin ditemukannya solusi dan solusi yang ditemukannya selalu solusi yang terbaik dalam kata lain UCS merupakan pencarian yang complete dan optimal.
Sangat cocok digunakan bila tidak
menggunakan heuristik. karena
butuh completeness dalam menemukan setiap solusi.
Kekurangan algoritma UCS sebagai berikut :
Memiliki syarat yang harus
dipenuhi agar bisa complete dan optimal.
Memiliki kompleksitas waktu dan
ruang yang banyak karena memakai konsep BFS
3. MASALAH ROMANIA
Pada analisa pembahasan ini, penulis akan menguraikan bagaimana penye-lesaian dari contoh masalah romania dalam mencari lintasan terpendek dari kota Arad menuju kota Bucharest. Dalam kasus ini kita akan menggunakan algoritma pencarian Breadth Fisrt Search (BFS), Depth First Search (DFS) dan
Uniform Cost Search (UCS) untuk menemukan rute tercepat dan paling efisien agar dapat sampai ke tujuan. Maka solusi yang diperoleh dari algoritma tersebut dapat memilih jalur mana yang harus dilalui.
Gambar 3 Graf Masalah Romania 4. PENYELESAIAN MASALAH 4.1 Penerapan Algoritma BFS
Arad 0+140=140 Arad
0+112=112
Pada pencarian solusi dengan algoritma BFS akan dibangkitkan sebuah simpul akar(root), yaitu kondisi titik awal dari suatu graf. Lalu akan dibentuk simpul-simpul anak yang merupakan simpul-simpul tetangga dari simpul akar. Pencarian akan
berhenti jika simpul yang sedang
dikunjungi merupakan simpul solusi.
Masukan dari algoritma BFS adalah sebuah graf, dan simpul awal (akar) dari graf tersebut. Harapannya, akan didapat sebuah keluaran berupa seluruh simpul yang telah dihidupkan. Berikut ini adalah
pseudocode algoritma BFS untuk mencari solusi dari masalah romania.
Procedure BFS(G,akar)
{ Traversal Graf G dengan algoritma pencarian BFS.
Masukan : G adalah graf, v adalah node awal kunjungan
Keluaran : semua n yang dikunjungi dicetak ke layar } 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 dengan current do newstate BuatStatusBaru(current, node n) if (Solusi(newstate)) finish = true TambahAnak(current, newstate) TandaiSolusi(newstate) return else
if (not Mengandung(visitedlist, newstate)) then TambahAnak(current, newstate) MasukAntrian(queue, newstate) MasukList(visitedlist, newstate) endif endif endfor endwhile
implementasi algoritma BFS dalam bentuk pohon sesuai dengan masalah romania yaitu:
Pada masalah romania, dilakukan
pencarian awal di kota Arad, yang akan dianggap sebagai akar dari pohon BFS.
Setelah itu, dicari kota-kota yang bertetangga dengan kota Arad, yaitu kota Zerind, kota Timisoara, dan kota Sibiu. Ketiga kota tersebut dimasukkan kedalam level di bawah kota Arad.
Selanjutnya dilakukan pencarian pada kota-kota tetangga kota zerind, kota timisoara, dan kota sibiu dan dimasukkan ke dalam level selanjutnya. Hal tersebut dilakukan sampai seluruh simpul di graf berhasil dijelajahi. Setelah dijelajahi semua simpul dari graf maka akan diperoleh lintasan terpendek dari Arad
menuju ke Bucharest dengan
menggunakan algoritma BFS maka
diperoleh node:4, path:
(Arad-Sibiu-Arad 0+0=0 Arad 0+0=0 Arad 0+75=75
Fagaras-Bucharest), path cost =450, dan ekspansi node sebanyak 14 kali.
4.2 Penerapan Algoritma DFS
Pada pencarian solusi dengan algoritma DFS juga akan dibangkitkan sebuah simpul akar (root), yaitu kondisi titik awal dari suatu graf. Lalu akan dibentuk simpul-simpul anak yang merupakan simpul-simpul tetangga dari simpul akar. Penelusuran akan dilakukan secara kontinu terhadap status yang telah dibuat pertama kali. Pencarian akan berhenti jika simpul yang sedang dikunjungi merupakan simpul solusi.
Berikut ini adalah pseudocode algoritma DFS untuk mencari solusi dari masalah romania. procedure DFS(input/output simpul:state, input/output visitedlist:list of state) Deklarasi newstate : state 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) if (Solusi(newstate)) return endif endif endfor endif
implementasi algoritma BFS dalam bentuk pohon sesuai dengan masalah romania yaitu:
Pada masalah romania, dilakukan pencarian awal di kota Arad, yang akan dianggap sebagai akar dari pohon DFS.
Setelah itu, dicari kota-kota yang bertetangga dengan kota Arad, yaitu kota Zerind, kota Timisoara, dan kota Sibiu. Ketiga kota tersebut dimasukkan kedalam level di bawah kota Arad. Tetapi DFS akan memeriksa solusi disebelah kiri sampai dengan depth dimana ditemukannya solusi.
Proses pencarian akan berhenti ketika ditemukan atau tidak ditemukannya solusi, secara kebetulan akan ditemukan solusi tanpa harus menguji lebih banyak atau keseluruhan dari simpul yang ada. Sehingga dari implementasi pohon di atas maka dapat diihat bahwa untuk memperolah lintasan terpendek dari Arad menuju ke Bucharest dengan menggunakan algoritma DFS maka diperoleh node:7, path:
Oradea-Sibiu-Rimnicu-Pitesti-Bucharest), path cost=575, dan ekspansi node sebanyak 7 kali.
4.3 Penerapan Algoritma UCS
Pada pencarian solusi dengan algoritma UCS akan dibangkitkan sebuah simpul akar(root), yaitu kondisi titik awal dari suatu graf. Lalu akan dibentuk simpul-simpul anak yang merupakan simpul-simpul tetangga dari simpul akar. Kemudian untuk mencapai node berikutnya, algoritma ini memilih total Cost yang paling kecil dari beberapa kemungkinan total Cost yang dilalui. Pencarian akan berhenti jika simpul yang sedang dikunjungi merupakan simpul solusi dengan total Cost terkecil.
Berikut ini adalah pseudocode algoritma UCS untuk mencari solusi dari masalah romania.
Pseudocode :
procedure UniformCostSearch(Graph, root, goal)
node := root, cost = 0
frontier := empty priority queue containing node
explored := empty set do if frontier is empty return failure node := frontier.pop() if node is goal return solution explored.add(node)
for each of node’s neighbors n
if n is not in explored if n is not in frontier
frontier.add(n)
if n is in frontier with higher cost replace existing node with n
implementasi algoritma BFS dalam bentuk pohon sesuai dengan masalah romania yaitu:
Pada masalah romania, dilakukan pencarian awal di kota Arad, yang akan dianggap sebagai akar dari pohon BFS.
Setelah itu, dicari kota-kota yang bertetangga dengan kota Arad, yaitu kota Zerind, kota Timisoara, dan kota Sibiu. Ketiga kota tersebut dimasukkan kedalam level di bawah kota Arad.
Konsep dasar pencarian Uniform Cost Serch hampir sama dengan BFS (Breadth-First Search), bedanya adalah bahwa BFS menggunakan urutan level yang paling rendah sampai yang paling tinggi, sedangkan UCS menggunakan urutan biaya dari yang paling kecil sampai yang terbesar. UCS berusaha menemukan solusi dengan total biaya terendah yang dihitung berdasarkan biaya dari Arad ke Bucharest. Sehingga dari implementasi pohon di atas maka dapat
Arad 0+0=0
diihat bahwa untuk memperolah lintasan terpendek dari Arad menuju ke Bucharest dengan menggunakan algoritma UCS maka diperoleh node:5, path: (Arad-Sibiu-Rimnicu Vilcea-Pitesti-Bucharest), path cost=418, dan ekspansi node sebanyak 15 kali.
5. KESIMPULAN
Algoritma Breadth-First Search (BFS) atau algoritma pencarian melebar merupakan pencarian dilakukan pada semua node
dalam setiap level secara berurutan dari kiri ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level berikutnya. Demikian seterusnya sampai ditemukan solusi.
Algoritma Depth-First Search (DFS) atau algoritma pencarian mendalam juga merupakan 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. Jika pada level yang paling dalam tidak ditemukan solusi, maka pencarian dilanjutkan pada level sebelumnya. Demikian seterusnya sampai ditemukan solusi.
Uniform Cost Search adalah algoritma
Seach Tree (graph) yang digunakan untuk menyelesaikan beberapa persoalan. Algoritma ini memulai pencarian dari root node, kemudian dilanjutkan ke node-node selanjutnya. Dimana node tersebut dipilih yang memilki harga (cost ) terkecil dari root node.
Masalah romania dapat dicari solusinya dengan memanfaatkan algoritma BFS, DFS, dan UCS. Pada makalah ini masalah romania dapat diselesaikan secara manual menggunakan tree dan dapat juga diselesaikan menggunakan program dalam bahasa java dan phyton 3.
Setelah melakukan penyelesaian dengan tree maupun dengan program, disimpulkan bahwa output dari algoritma dengan penyelesaian manual yaitu:
1. BFS
- Node:4
- Path = (Arad
–
Sibiu–
Fagaras -Bucharest)- Path Cost =450
- Ekspansi node sebanyak 14 kali. 2. DFS
- Node:7
- Path: (Arad
–
Zerind–
Oradea–
Sibiu–
Rimnicu–
Pitesti -Bucharest)- Path Cost=575
- Ekspansi node sebanyak 7 kali 3. UCS
- Node:5,
- Path: (Arad-Sibiu-Rimnicu Vilcea-Pitesti-Bucharest)
- Path Cost=418
- Ekspansi node sebanyak 15 kali
Sedangkan penyelesaikan masalah dengan menggunakan program dapat dievaluasi kinerja dari ketiga algortima yaitu:
Algoritma
Evaluasi
Complet-eness Time Space
Optimal y BFS Complete 0.07 Sec 55.3086 MB Optimal DFS Not Complete 0.19 Sec 6 MB Not Optimal UCS Complete 0.07 Sec 53.7891 MB Optimal
Algoritma UCS lebih baik dalam hal menentukan lintasan terpendek karena algoritma UCS akan memilih lintasan (path) yang memiliki biaya terendah dibandingkan dengan algoritma BFS dan DFS, kemudian dari evaluasi ketiga algoritma dengan menggunakan program dapat dilihat bahwa algoritma UCS tersebutcomplete dan optimal serta waktu yang digunakan lebih sedikit dibanding BFS. Dengan demikian algoritma UCS
menjadi pilihan terbaik di antara algoritma BFS, DFS, dan UCS untuk menentukan solusi dari masalah romania.
DAFTAR PUSTAKA
[1] Hardianto. (2013). Jurnal Teknologi Informasi dan Komunikas.
Implementasi Algoritma Heuristik untuk optimisasi rute terpendek , 79-88.
[2] Russel, S. &. (2010). Artificial Intelligence: A Modern Approach. New Jersey:
Prentice.
[3] Sutrisna, A. (2015, September 21).Tugas Kecerdasan Buatan. Retrieved
Oktober 21, 2017, from Sky_Heaven: http://sutrisnajie.blogspot.co.id/2015 /09/tugas-kecerdasan-buatan.html [4] Derwin Suhartono, S. M. (2013, April 23).
SEARCHING: UNINFORMED & INFORMED. Retrieved Oktober 21, 2017, from BINUS:
http://socs.binus.ac.id/2013/04/23/u ninformed-search-dan-informed-search/
[5] Welianto, S., Santosa, R. G., & C., A. R. (2009).IMPLEMENTASI ALGORITMA GENERATE AND TEST PADA
PENCARIAN RUTE TERPENDEK , 3. [6] Bawafi, S. H. (2012, Maret 24). ANALISA
TEKNIK SEARCHING DALAM
ARTIFICIAL INTELLIGENCE . Retrieved Oktober 21, 2017, from blind
seacrhing:
http://aenstein.blogspot.co.id/2012/0 3/blind-seacrhing.html
[7] Pasaribu, E. S. (2013).Penerapan Algoritma BFS, DFS, dan IDS pada
Penyelesaian Permainan Bubble Blast 2, 2.
[8] Ulum, F. (2015, Mei).BLIND SEARCH. Retrieved Oktober 21, 2017, from
ARTIFICIAL INTELLIGENCE:
http://fahrululumsholihin.blogspot.co
.id/2015/05/v-behaviorurldefaultvmlo.html
[9] Indriani, R. (2015, November 20).Uniform Cost Search (UCS). Retrieved Oktober 21, 2017, from Uniform Cost Search (UCS) dan Iterative-Deepening Search (IDS):
http://riaindriani95.blogspot.co.id/20 15/09/uniform-cost-search-ucs-dan-iterative.html
[10] Azizah, A. H. (2012, Februari 12). Artificial Intelligence. Retrieved
Oktober 21, 2017, from TomatCoklat: https://tomatcoklat.wordpress.com/2 012/02/19/artificial-intelligence-_/