Aplikasi Strategi Pencarian
Tim Pengajar Mata Kuliah Kecerdasan Buatan Tahun 2022
Tujuan
• Mahasiswa memahami teknik-teknik yang
digunakan pada Strategi Pencarian dalam
Kecerdasan Buatan.
• Mahasiswa memahami Strategi Pencarian Informed
Search yakni:
• Best-First Search (Greedy dan A*)
• Dijkstra Algorithm
Mengingat Kembali
• Uninformed Search
• Teknik penyelesaian masalah tanpa adanya informasi
mengenai permasalahannya.
• Dapat menyelesaikan permasalahan namun tidak efisien.
• 4 parameter pengukuran:
• Completeness, Time Complexity, Space Complexity, dan
Optimality
• Contoh: Breadth-First Search dan Depth-First Search.
Kembali ke Romania Problem – jarak
terpendek yang akan
ditempuh oleh Agen
dari Arad ke
Bucharest
Start State
Goal State
Kembali ke Romania – Path dan Cost
Problem – jarak
Path = Arad-Sibiu-Fagaras-Bucharest terpendek yang akan
Path Cost Total = 140 + 99 + 211 = 450 ditempuh oleh Agen
dari Arad ke
Start State Bucharest
Goal State
Mengingat Kembali – Definisi
• Problem dapat didefinisikan ke dalam 5
komponen yakni:
• Initial State atau Start State (SS)
• Action
• Transition Model
• Goal Test (GS)
• Path Cost = Cost antar Simpul (Node)
Initial atau Start State
• Titik awal agen memulai pencarian
solusi.
• Contoh: Dalam kasus Arad-Bucharest,
maka In(Arad).
Action
• Action = langkah yang dijalankan oleh Agen.
• Diberikan sebuah keadaan tertentu (state), s, maka
ACTION(s) memberikan satu himpunan aksi yang
dapat dieksekusi dalam s.
• Contoh: dari state In(Arad), aksi yang dapat dilakukan
adalah {Go(Sibiu), Go(Timisoara), Go(Zerind)}
Transition Model
• Satu deskripsi dari yang dilakukan oleh
setiap aksi melalui fungsi RESULT(s,a),
yakni state hasil dari aksi a dalam state s.
• Contoh: RESULT(In(Arad), Go(Zerind)) =
In(Zerind)
Goal Test
• Menetapkan bahwa state yang dicapai adalah Goal State
(GS) atau bukan.
• GS tidak selalu dinyatakan secara eksplisit dan test akan
meyakinkan bahwa satu state merupakan GS.
• Contoh: GS untuk Agen di Romania adalah {In(Bucharest )}.
Path Cost
• Fungsi biaya jalan (path cost) yang memberikan biaya numerik ke
setiap jalan. Agen problem-solving, memilih fungsi biaya yang
merefleksikan ukuran kinerjanya.
• Biaya langkah (step cost) aksi a dari state s menuju state s’
dinyatakan dengan (s,a,s’).
• Contoh: (In(Arad), Go(Zerind), In(Zerind))
Pseudo-code Agen Problem-Solving
Solusi dan Solusi Optimal
• Solusi terhadap satu permasalahan adalah serangkaian
aksi yang bergerak dari Initial State (IS) atau Start State
(SS) menuju Goal State (GS).
• Kualitas solusi diukur dengan fungsi biaya jalan (path
cost), dan solusi optimal memiliki fungsi biaya jalan
terendah dari semua solusi yang tersedia.
Solusi
• Dapat direpresentasikan sebagai sebuah himpunan
Solusi, S yang berisi aksi, a dari satu state, s ke state
berikutnya s’.
𝑆 = 𝑎1 , 𝑎2 , … , 𝑎𝑛 = 𝑎𝑖 , dimana 𝑖 = 1, 2, … , 𝑛
𝑎1 𝑎2 𝑎3 … 𝑎𝑛 𝒂𝒊
𝑆𝑆 𝑠1 𝑠2 𝑠3 ՜ 𝑠𝑛 𝐺𝑆 dimana ՜ adalah path
cost dari aksi, 𝒂𝒊 .
Path Cost dan Path List
𝒂𝒊
• Path cost atau step cost = (s, a, s’) = p = ՜.
• Path list, PL adalah kumpulan path dari SS
menuju GS, dimana:
𝑃𝐿 = 𝑝1 , 𝑝2 , … , 𝑝𝑚 = 𝑝𝑗 , dimana j =
1, 2, … , 𝑚
Total Path Cost
• Path cost total, PCT adalah serangkaian p dari SS
menuju GS yang dijumlahkan secara total.
𝑃𝐶𝑇 = 𝑝1 + 𝑝2 + ⋯ + 𝑝𝑚
𝑚
𝑃𝐶𝑇 = 𝑝𝑗
𝑗=1
Informed Search
• Informed = terinformasikan atau telah diberi informasi
lebih awal.
• Teknik penyelesaian masalah dengan diberikan satu panduan
untuk mencari solusi-solusi.
• Menggunakan pengetahuan spesifik-problem.
• Memperoleh solusi lebih efisien daripada strategi uninformed.
• Contoh: Best-First Search (Greedy dan A*)
Pendekatan Umum Informed Search
• Best-First Search
• Algoritma TREE-SEARCH atau GRAPH-SEARCH yang mana
simpul (node) yang dipilih untuk dibuka (expand) didasarkan
pada evaluation function, f(n).
• f(n) adalah estimasi biaya, maka simpul dengan biaya
termurah (cheapest cost) akan dibuka lebih dulu.
• Pemilihan f akan menentukan strategi pencarian.
Fungsi Heuristik
• Sebagian besar algoritma best-first mengikut sertakan
sebuah komponen dari f yakni fungsi heuristik, h(n)
h(n) = biaya perkiraan dari jalan termurah (cheapest path) dari
state pada simpul n ke Goal State (GS)
• Contoh: Kasus Romania, h(n) = garis lurus dari Arad ke
Bucharest (hSLD). SLD = straight-line distance
f(n) = h(n)
hSLD(Arad, Bucharest) = 366
Heuristik,
dimana
h(n) = hSLD
Greedy Best-First Search
• Membuka simpul yang terdekat dengan Goal
hanya menggunakan fungsi heuristik, f(n) =
h(n)
• Kekurangan: dapat terjebak pada infinite
loop sehingga tidak pernah berhasil
mencapai Goal state
Greedy in Action
Perhatikan nilai h(n) sebagai dasar Action selanjutnya
h(Sibiu) < h(Timisoara) < h(Zerind)
Greedy in Action
Perhatikan nilai h(n) sebagai dasar Action selanjutnya
h(Fagaras) < h(Rimnicu Vilcea) < h(Arad) < h(Oradea)
Greedy in Action
• Goal state berhasil dicapai
• Path = {Arad, Sibiu, Fagaras, Bucharest}
• Total Cost = 140 + 99 + 211 = 450
f(n) = h(n)
hSLD(Arad, Bucharest) = 366
Heuristik,
dimana
h(n) = hSLD
A* Search
• Mengevaluasi simpul-simpul dengan mengombinasikan g(n) –
biaya utnuk mencapai simpul, dan h(n) – biaya untuk mencapai
Goal dari simpul, f(n) = g(n) + h(n)
• g(n) = path cost dari start node ke simpul (node) n
• h(n) = estimated cost dari cheapest path dari simpul n ke Goal state
f(n) = estimated cost dari solusi termurah melalui node n
hSLD(Arad, Bucharest) = 366
f(n) = g(n) + h(n)
A* Search in Action
Perhatikan nilai f(n) = g(n) + h(n) sebagai dasar Action selanjutnya
g(Sibiu) = 140, h(Sibiu) = 253, maka f(Sibiu) = 393
f(Sibiu) < f(Timisoara) < f(Zerind)
A* Search in Action
Perhatikan nilai f(n) = g(n) + h(n) sebagai dasar Action selanjutnya.
f(Rimnicu Vilcea) < f(Fagaras) < f(Arad) < f(Oradea)
A* Search in Action
Perhatikan nilai f(n) = g(n) + h(n) sebagai dasar Action selanjutnya.
f(Pitesti) < f(Craiova) < f(Sibiu)
A* Search in Action
Perhatikan nilai f(n) = g(n) + h(n) sebagai dasar Action selanjutnya.
f(Pitesti) < f(Bucharest) < f(Craiova) < f(Sibiu)
A* Search in Action
• Goal state berhasil dicapai
• Path = {Arad, Sibiu, Rimnicu Vilcea, Pitesti, Bucharest}
• Path Cost = 140 + 80 + 97 + 101 = 418
hSLD(Arad, Bucharest) = 366
f(n) = g(n) + h(n)
Benchmark Greedy vs. A* Search
• Greedy
• Start -> Goal = 4 simpul
• Total Cost = 450
• Efficient cost pada pembukaan simpul berikutnya
• Bertumpu murni pada h(n)
• A* Search
• Start -> Goal = 5 simpul
• Total Cost = 418
• Cheapest cost pada pembukaan simpul berikutnya
• Memperhitungkan g(n)
Fungsi Heuristik
Bagaimana cara memperoleh h(n)?
Fungsi Heuristik
• h1 = jumlah ubin yang tidak pada tempatnya sebagai start awal.
• Setiap ubin yang tidak pada tempatnya akan digerakkan minimal sekali
• h2 = jumlah jarak total dari semua ubin dari posisi Goal.
• Karena ubin tidak dapat digerakkan secara diagonal, maka jarak akan
dihitung dari jumlah jarak vertikal dan horisontal ke goal.
• Teknik ini disebut dengan city block distance or Manhattan Distance.
• Semua gerakan adalah menggerakan ubin satu step mendekat ke goal.
Fungsi Heuristik
• h1 = 8 (setiap ubin minimal digerakkan satu kali
• h2 = 3 + 1 + 2 + 2 + 2 + 3 + 3 + 2 = 18
Fungsi Heuristik
• Kasus 8-puzzle
• Ada 4 operator yang dapat digunakan untuk
menggerakkan dari satu keadaan (state) ke keadaan yang
baru.
• Geser ubin kosong ke kiri
• Geser ubin kosong ke kanan
• Geser ubin kosong ke atas
• Geser ubin kosong ke bawah
Kasus 8-Puzzle
Kasus 8-Puzzle
• Informasi yang diberikan dapat berupa
jumlah ubin yang menempati posisi
yang benar. Jumlah yang lebih tinggi
adalah yang diharapkan.
• Langkah selanjutnya yang harus
dilakukan adalah menggeser ubin
kosong ke kiri.
Dijkstra Algorithm
• Disebut sebagai Single-Source
Shortest Path Problem
• Problem menemukan jalur-jalur terdekat dari
Start Node (vertex, v) ke semua Node di
dalam graph.
Dijkstra Algorithm
• Dapat digunakan pada graf degan arah (directed) dan tanpa
arah (undirected) yang mana semua bobot jalur harus tidak-
negatif.
• Pendekatan: Greedy
• Input: Graf dengan bobot G={E,V} dan node sumber v∈V, di
mana semua jalur bernilai tidak-negatif.
• Output: Panjang jalur-jalur terpendek dari node sumber ke
semua node pada graf.
Dijkstra Pseudo-code
Contoh Penggunaan Dijkstra
Contoh Penggunaan Dijkstra
Contoh Penggunaan Dijkstra
Contoh Penggunaan Dijkstra
Contoh Penggunaan Dijkstra
Contoh Penggunaan Dijkstra
Contoh Penggunaan Dijkstra
Contoh Penggunaan Dijkstra
Contoh Penggunaan Dijkstra
Contoh Penggunaan Dijkstra
Complexity
• The simplest implementation is to store vertices in an array or
linked list. This will produce a running time of
• O(|V|^2 + |E|)
• For sparse graphs, or graphs with very few edges and many nodes,
it can be implemented more efficiently storing the graph in an
adjacency list using a binary heap or priority queue. This will
produce a running time of
• O((|E|+|V|) log |V|)
Catatan-catatan
• Metode-metode Informed Search memiliki akses
ke fungsi heuristik, h(n) yang mengestimasi biaya
dari sebuah solusi dari simpul n
• Best-First Search algoritma memilih satu simpul
yang akan dibuka berdasarkan sebuah fungsi
evaluasi
Catatan-catatan
• Algoritma Greedy membuka simpul-simpul
yang memiliki h(n) minimal. Tidak optimal,
namun efisien.
• Algoritma A* Search membuka simpul yang
memiliki cost minimal, f(n) = g(n) + h(n).
Catatan-catatan
• Kinerja algoritma pencarian berdasarkan
heuristik bergantung kepada kualitas
fungsi heuristik, h(n).
• Kinerja algoritma Dijkstra Menggunakan
pendekatan Greedy.
Kembali ke Romania
Start State
hSLD(Oradea, Bucharest) = 380
Goal State
Reading Pleasure
• S. J. Russell and P. Norvig, 2016, Artificial
Intelligence: A Modern Approach Third
Edition, Pearson Education Limited
• Especially Chapter 3 – Solving Problems by Searching
• Dijktra’s Algorithm –
• https://www.cs.utexas.edu/~tandy/barrera
.ppt.