0% menganggap dokumen ini bermanfaat (0 suara)
30 tayangan70 halaman

Pencarian Solusi dalam Kecerdasan Buatan

Dokumen tersebut membahas tentang representasi masalah dalam kecerdasan buatan menggunakan state space dan teknik-teknik pencarian solusi seperti breadth-first search, uniform-cost search, depth-first search, dan iterative deepening."
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
30 tayangan70 halaman

Pencarian Solusi dalam Kecerdasan Buatan

Dokumen tersebut membahas tentang representasi masalah dalam kecerdasan buatan menggunakan state space dan teknik-teknik pencarian solusi seperti breadth-first search, uniform-cost search, depth-first search, dan iterative deepening."
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Kecerdasan Buatan KBKRI

State Space Search

Yaya Wihardi, [Link]., [Link].

Department of Computer Science Education

Universitas Pendidikan Indonesia

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 1


Kecerdasan Buatan KBKRI

Outline

• Problem Solving Agent


• Representasi masalah: state space
• Pencarian solusi: search
• State space search
• Breadth-first
• Uniform-cost
• Depth-first
• Iterative-deepening
• Pengulangan state

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 2


Kecerdasan Buatan KBKRI

Problem Solving Agent

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 3


Kecerdasan Buatan KBKRI

Problem Solving Agent

• Di kuliah yang lalu kita melihat contoh reflex agent: tidak


cocok untuk masalah besar!
• Goal-based agent: memiliki tujuan, memungkinkannya
meng-evaluasi tindakan dan memilih yang terbaik.
• Di kuliah ini kita membahas satu kemungkinan jenis
goal-based agent: problem-solving agent
• Problem-solving agent menghasilkan solusi dalam
bentuk serangkaian tindakan yang diambil untuk
mencapai tujuan.
• Apa problem-nya? Apa solution-nya?

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 4


Kecerdasan Buatan KBKRI

Mekanisme kerja Problem-Solving Agent

• Perumusan tujuan (goal formulation): tentukan tujuan yang


ingin dicapai
• Perumusan masalah (problem formulation): tentukan tindakan
(action) dan keadaan (state) yang dipertimbangkan dalam
mencapai tujuan
• Pencarian solusi masalah (searching): tentukan rangkaian
tindakan yang perlu diambil untuk mencapai tujuan
• Pelaksanaan solusi (execution): laksanakan rangkaian
tindakan yang sudah ditentukan di tahap sebelumnya

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 5


Kecerdasan Buatan KBKRI

Agent program Problem Solving Agent

function SimpleProblemSolvingAgent (percept) returns action

state  UpdateState(state, percept)


if seq is empty then
goal  FormulateGoal (state, goal)
problem  FormulateProblem (state, goal)
seq  Search (problem)
action  Recommendation (seq, state)
seq  Remainder (seq, state)
return action

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 6


Kecerdasan Buatan KBKRI

Sifat Problem-Solving Agent

• Biasanya problem solving agent mengasumsikan bahwa


environment-nya:
• fully observable
• Deterministic
• Sequential
• Static
• Discrete
• Setelah mencari solusi, agent ini melaksanakan tindakan
dengan “mata tertutup" → tidak melihat percept!

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 7


Kecerdasan Buatan KBKRI

Contoh: Turis di Rumania

• Suatu “tourist agent" yang sedang berlibur di Rumania,


kini berada di Arad. Besok, dia harus terbang dari
bandara Bucharest.
• Perumusan tujuan: berada di Bucharest
• Perumusan masalah:
• Tindakan (action): menyetir dari kota ke kota
• Keadaan (state): kota-kota di Rumania
• Pencarian solusi: rangkaian kota yang dituju, mis: Arad,
Sibiu, Fagaras, Bucharest

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 8


Kecerdasan Buatan KBKRI

Peta Rumania

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 9


Kecerdasan Buatan KBKRI

Representasi masalah: state space

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 10


Kecerdasan Buatan KBKRI

Perumusan masalah sebagai state space

• Initial state: keadaan awal di mana si agent mulai, mis:


BeradaDi(Arad)
• Possible actions: tindakan yang dapat dilakukan si agent, mis:
Nyetir(Arad, Zerind).
• Sebuah successor function S menentukan untuk suatu state X,
himpunan tindakan yang mungkin diambil beserta state yang
dihasilkan. Contoh:
X = BeradaDi(Arad)
S(X) = { <Nyetir(Arad, Zerind), BeradaDi(Zerind)>, … }
• Initial state dan successor function mendefinisikan state space:
himpunan semua state yang dapat dicapai dari initial state. Dapat
direpresentasikan sebagai graph. Path dalam state space adalah
serangkaian state (dihubungkan serangkaian action).

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 11


Kecerdasan Buatan KBKRI

Menelusuri sebuah state space


• Goal test: penentuan apakah suatu state adalah tujuan yang
ingin dicapai atau bukan.
• Eksplisit: himpunan goal state, mis: {BeradaDi(Bucharest)}.
• Implisit: deskripsi tujuan, mis: dalam catur → skak mat.
• Path cost function: sebuah fungsi yang memberikan nilai
numerik terhadap setiap path. Fungsi ini merefleksikan
performance measure si agent.
• Asumsi path cost function = σ step cost: cost action a dari
state x ke y: c(x, a, y).
• Sebuah solusi adalah path dari initial state ke goal state.
• Sebuah solusi optimal adalah solusi dengan path cost
function minimal.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 12


Kecerdasan Buatan KBKRI

Memilih state space

• Dunia nyata luar biasa kompleks dan rumit! State space harus
merupakan abstraksi masalah supaya bisa dipecahkan.
• State = himpunan “keadaan nyata". Mis: BeradaDi(Arad) -
dengan siapa? kondisi cuaca?
• Action = kombinasi berbagai “tindakan nyata". Mis:
Nyetir(Arad, Sibiu) - jalan tikus, isi bensin, istirahat, dll.
• Solution = representasi berbagai “path nyata" yang
mencapai
tujuan
• Abstraksi ini membuat masalah yang nyata lebih mudah
dipecahkan.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 13


Kecerdasan Buatan KBKRI

Contoh: VacuumCleanerWorld
• State: lokasi agent, status debu
• Possible action: DoKeKiri(L), DoKeKanan(R),
DoSedot(S)
• Goal test: apakah semua ruangan bebas debu?
• Path cost: jumlah langkah dalam path.
• Successor function mendefinisikan state space sbb:

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 14


Kecerdasan Buatan KBKRI

Contoh: Puzzle-8

• State: lokasi 8 buah angka dalam matriks 3x3


• Possible action: Kiri (Left), Kanan (Right), Atas (Up), Bawah (Down)
• Goal test: apakah konfigurasi angka seperti goal state di atas
• Path cost: jumlah langkah dalam path.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 15


Kecerdasan Buatan KBKRI

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 16


Kecerdasan Buatan KBKRI

Contoh: 8-Queens Problem

• Letakkan 8 bidak menteri (queen) sedemikian sehingga tidak


ada yang saling “makan" (queen bisa makan dalam satu
baris, kolom, diagonal).
• State: Papan catur dengan n buah queen, 0 ≤ n ≤ 8.
• Initial state: Papan catur yang kosong.
• Possible action: Letakkan sebuah queen di posisi kosong.
• Goal test: 8 queen di papan, tidak ada yang saling makan

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 17


Kecerdasan Buatan KBKRI

Masalah state space... combinatorial explosion!

• Dengan definisi masalah demikian, ada


64 × 63 × … × 57 ≈ 1.8 × 1014 path!
• Mustahil kita selesaikan dengan komputer tercanggih apapun.
Definisi masalah bisa diperjelas:
• State: Papan catur dengan n queen, 0 ≤ n ≤ 8, satu per
kolom di n kolom paling kiri.
• Possible action: Letakkan sebuah queen di posisi kosong
di kolom paling kiri yang belum ada queen-nya sehingga
tidak ada yang saling makan.
• State space sekarang ukurannya tinggal 2057, dan mudah
dipecahkan.
• Perumusan masalah yang tepat bisa berakibat drastis!
• Meskipun demikian, untuk n = 100: 10400 vs. 1052...

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 18


Kecerdasan Buatan KBKRI

Pencarian solusi: search


State Space Search

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 19


Kecerdasan Buatan KBKRI

Mencari solusi melalui search tree

• Setelah merumuskan masalah → cari solusinya


menggunakan sebuah search algorithm
• Search tree merepresentasikan state space.
• Search tree terdiri dari kumpulan node: struktur data yang
merepresentasikan suatu state pada suatu path, dan memiliki
parent, children, depth, dan path cost.
• Root node merepresentasikan initial state.
• Node expansion → Penerapan successor function terhadap
(state yang diwakili) node menghasilkan children baru.
• Kumpulan semua node yang belum di-expand disebut fringe
(pinggir) sebuah search tree.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 20


Kecerdasan Buatan KBKRI

Contoh penelusuran search tree

• Mulai dari root node (Arad) sebagai current node

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 21


Kecerdasan Buatan KBKRI

Contoh penelusuran search tree

• Mulai dari root node (Arad) sebagai current node


• Lakukan node expansion terhadapnya.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 22


Kecerdasan Buatan KBKRI

Contoh penelusuran search tree

• Mulai dari root node (Arad) sebagai current node


• Lakukan node expansion terhadapnya.
• Pilih salah satu node yang di-expand sebagai current
node yang baru. Ulangi langkah sebelumnya.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 23


Kecerdasan Buatan KBKRI

Algoritma penelusuran search tree


1. Pada awalnya, fringe = himpunan node yang mewakili initial state.
2. Pilih satu node dari fringe sebagai current node (Kalau fringe
kosong, selesai dengan gagal).
3. Jika node tsb. lolos goal test, selesai dengan sukses!
4. Jika tidak, lakukan node expansion terhadap current node tsb.
Tambahkan semua node yang dihasilkan ke fringe.
5. Ulangi langkah 2.
function TreeSearch (problem, fringe) returns solution or failure

fringe  Insert(MakeNode(InitialState(problem)), fringe)


loop do
if Empty?(fringe) then return failure
node  RemoveFirst(fringe)
if GoalTest(problem) applied to State(node) succeeds
then return Solution(node)
fringe  InsertAll(Expand(node,problem), fringe)

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 24


Kecerdasan Buatan KBKRI

State vs. Node

• Sebuah state merepresentasikan abstraksi keadaan


nyata dari masalah.
• Sebuah node adalah struktur data yang menjadi bagian
dari search tree.
• State tidak memiliki parent, children, depth, path cost!
• Node = state pada path tertentu. Dua node berbeda bisa
mewakili state yang sama!

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 25


Kecerdasan Buatan KBKRI

Strategi pencarian
• Terdapat berbagai jenis strategi untuk melakukan search.
• Semua strategi ini berbeda dalam satu hal: urutan dari node
expansion.
• Search strategy di-evaluasi berdasarkan:
• completeness: apakah solusi (jika ada) pasti ditemukan?
• time complexity: jumlah node yang di-expand.
• space complexity: jumlah maksimum node di dalam
memory.
• optimality: apakah solusi dengan minimum cost pasti
ditemukan?
• Time & space complexity diukur berdasarkan
• b - branching factor dari search tree
• d - depth (kedalaman) dari solusi optimal
• m - kedalaman maksimum dari search tree (bisa infinite!)

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 26


Kecerdasan Buatan KBKRI

Uninformed search strategies

• Uninformed strategy hanya menggunakan informasi dari


definisi masalah.
• Bisa diterapkan secara generik terhadap semua jenis
masalah yang bisa direpresentasikan dalam sebuah
state space.
• Ada beberapa jenis:
• Breadth-first search
• Uniform-cost search
• Depth-first search
• Depth-limited search
• Iterative-deepening search

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 27


Kecerdasan Buatan KBKRI

Pencarian solusi: search


Breadth First Search (BFS)

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 28


Kecerdasan Buatan KBKRI

BFS
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node di fringe yang paling
dekat ke root.

• Implementasi: fringe adalah sebuah queue, data struktur FIFO (First


In First Out)
• Hasil node expansion (successor function) ditaruh di belakang

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 29


Kecerdasan Buatan KBKRI

BFS
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node di fringe yang paling
dekat ke root.

• Implementasi: fringe adalah sebuah queue, data struktur FIFO (First


In First Out)
• Hasil node expansion (successor function) ditaruh di belakang

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 30


Kecerdasan Buatan KBKRI

BFS
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node di fringe yang paling
dekat ke root.

• Implementasi: fringe adalah sebuah queue, data struktur FIFO (First


In First Out)
• Hasil node expansion (successor function) ditaruh di belakang

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 31


Kecerdasan Buatan KBKRI

BFS
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node di fringe yang paling
dekat ke root.

• Implementasi: fringe adalah sebuah queue, data struktur FIFO (First


In First Out)
• Hasil node expansion (successor function) ditaruh di belakang

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 32


Kecerdasan Buatan KBKRI

Sifat BFS

• Complete?
Ya, jika b terbatas
• Time complexity?
1 + b + b2 + b3 + … + bd = O(bd) !
eksponensial dlm. d.
• Space complexity?
O(bd), karena semua node dengan kedalaman d harus
disimpan.
• Optimal?
Ya, jika semua step cost sama, tapi pada umumnya
tidak optimal.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 33


Kecerdasan Buatan KBKRI

Sifat BFS

Masalah utama breadth-first search adalah space


Mis: 1 node memakan 1000 byte, dan b = 10
Jika d = 6, ada 106 node ≈ 1 gigabyte.
Jika d = 12, ada 1012 node ≈ 1 petabyte!

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 34


Kecerdasan Buatan KBKRI

Pencarian solusi: search


Uniform-cost search

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 35


Kecerdasan Buatan KBKRI

Uniform-cost search

Prinsip algoritma uniform-cost search


Lakukan node expansion terhadap node di fringe yang path
cost-nya paling kecil.

• Implementasi: fringe adalah sebuah priority queue di


mana node disortir berdasarkan path cost function g(n).
• Jika semua step cost sama, uniform-cost sama dengan
breadth-first.
• Bandingkan dengan shortest-path algorithm-nya Dijkstra!

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 36


Kecerdasan Buatan KBKRI

Sifat Uniform-cost search

• Complete?
Ya, jika step cost ≥ a dimana a > 0
• Time complexity?
Jumlah node dengan
g(n) ≤ C* = O(b⌈C*/a⌉) di mana C* adalah cost dari optimal
solution
• Space complexity?
Jumlah node pada “fringe terakhir",
g(n) ≤ C* ≈ O(b⌈C*/a⌉)
• Optimal?
Ya, karena urutan node expansion dilakukan urut g(n).

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 37


Kecerdasan Buatan KBKRI

Contoh uniform-cost search


• Coba cari optimal solution dari Arad ke Bucharest!

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 38


Kecerdasan Buatan KBKRI

Pencarian solusi: search


Depth First Search (DFS)

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 39


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 40


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 41


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 42


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 43


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 44


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 45


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 46


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 47


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 48


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 49


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 50


Kecerdasan Buatan KBKRI

DFS
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yang paling jauh
dari root.

• Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last


In First Out)
• Hasil node expansion (successor function) ditaruh di depan
• Depth-first search cocok diimplementasikan secara rekursif

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 51


Kecerdasan Buatan KBKRI

Sifat DFS

• Complete?
Tidak, bisa gagal jika m tak terbatas, atau state
space dengan loop.
• Time complexity?
O(bm) → jika m > d, parah!
• Space complexity?
O(bm) → linear space!
• Optimal?
Tidak.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 52


Kecerdasan Buatan KBKRI

Sifat DFS

Depth-first search mengatasi masalah space


Mis: 1 node memakan 1000 byte, dan b = 10
Jika d = 12, space yang dibutuhkan hanya 118 kilobyte …
bandingkan dengan 1 petabyte!

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 53


Kecerdasan Buatan KBKRI

Variasi DFS

• Backtracking search: lakukan node expansion satu-per-


satu. Jika gagal backtrack dan coba nilai successor
function yang lain.
• Depth-limited search: Batasi kedalaman maksimal yang
dilihat adalah l.
• Mengatasi masalah untuk state space tak terbatas.
• Sayangnya, ada unsur incompleteness baru, jika l < d.
• Biasanya d tidak diketahui (tapi bisa ada estimasi, mis.
diameter suatu graph).

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 54


Kecerdasan Buatan KBKRI

Implementasi rekursif depth-limited search

function RecursiveDLS (node, problem, limit) returns solution or failure/cutoff

cutoff_occurred?  false
if GoalTest[problem](State[node]) then return Solution(node)
else if Depth[node] = limit then return cutoff
else for each successor in Expand(node,problem) do
result  RecursiveDLS(successor,problem,limit)
if result = cutoff then cutoff_occurred?  true
else if result ≠ failure then return result
if cutoff_occurred? then return cutoff else return failure

function DepthLimitedSearch (problem, limit) returns solution or failure/cutoff

return RecursiveDLS(MakeNode(InitialState[problem]), problem, limit)

Perhatikan perbedaan antara cutoff dan failure

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 55


Kecerdasan Buatan KBKRI

Pencarian solusi: search


Iterative Deepening Search (IDS)

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 56


Kecerdasan Buatan KBKRI

IDS
Prinsip algoritma depth-first search

Lakukan depth-limited search secara bertahap dengan nilai l yang


incremental.

• Strategi ini menggabungkan manfaat depth dan breadth first:


space complexity linier dan completeness terjamin!
• Lakukan depth-limited search dengan l = 0, 1, 2, … sampai tidak
cutoff .

function IterativeDeepeningSearch (problem) returns solution or failure

for depth  0 to ∞ do
result  DepthLimitedSearch(problem, depth)
if result ≠ cutoff then return result

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 57


Kecerdasan Buatan KBKRI

Contoh iterative-deepening search

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 58


Kecerdasan Buatan KBKRI

Contoh iterative-deepening search

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 59


Kecerdasan Buatan KBKRI

Contoh iterative-deepening search

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 60


Kecerdasan Buatan KBKRI

Contoh iterative-deepening search

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 61


Kecerdasan Buatan KBKRI

Sifat IDS

• Complete?
Ya.
• Time complexity?
(d + 1)b0 + db1 + (d − 1)b2 + … + bd = O(bd)
• Space complexity?
O(bd)
• Optimal?
Ya, jika semua step cost sama. Bisa dimodifikasi spt.
uniform-cost tree, namanya iterative lengthening search

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 62


Kecerdasan Buatan KBKRI

Kinerja iterative-deepening search

• Secara sekilas, strategi ini kelihatan tidak efisien, atau


boros: banyak usaha terulang!
Keborosan pada Iterative-deepening search secara umum tidaklah terlalu
parah. Iterative-deepening search adalah complete dan feasible dalam memory!

N(IDS) = db + (d − 1)b2 + … + (1)bd


N(BFS) = b + b2 + … + bd
Untuk b = 10 dan d = 5:
N(IDS) = 50 + 400 + 3.000 + 20.000 + 100.000 = 123.450
N(BFS) = 10 + 100 + 1.000 + 10.000 + 100.000 = 111.110

• Pada umumnya, iterative deepening search adalah


uninformed search strategy yang terbaik jika state space
besar dan kedalaman solusi (d) tidak diketahui.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 63


Kecerdasan Buatan KBKRI

Perbandingan strategi pencarian

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 64


Kecerdasan Buatan KBKRI

Masalah Pengulangan State

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 65


Kecerdasan Buatan KBKRI

Masalah: state yang mengulang di dalam search tree

• Kegagalan menangani state yang mengulang dapat


membuat masalah linier menjadi eksponensial!

• Ingat dua variasi definisi masalah 8-queens problem.

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 66


Kecerdasan Buatan KBKRI

Solusi: belajar dari sejarah

• Algorithms that forget their history are doomed to repeat


it...
• Solusinya adalah untuk mencatat state mana yang
sudah pernah dicoba. Catatan ini disebut closed list
(fringe = open list).
• Modifikasi algoritma TreeSearch dengan closed list
menjadi GraphSearch. → Sudah kita lakukan pada
praktikum

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 67


Kecerdasan Buatan KBKRI

Algoritma GraphSearch

function GraphSearch (problem, fringe) returns solution or failure


closed  { }
fringe  Insert(MakeNode(InitialState(problem)), fringe)
loop do
if Empty?(fringe) then return failure
node  RemoveFirst(fringe)
if GoalTest(problem) applied to State(node) succeeds
then return Solution(node)
if State[node] ∉ closed then
add State[node] to closed
fringe  InsertAll(Expand(node,problem), fringe)

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 68


Kecerdasan Buatan KBKRI

Sifat GraphSearch

• Time complexity: sama, jika kita asumsi operasi State[node]


∉ closed = O(1) (implementasi dengan hashtable?)
• Space complexity: DFS dan IDS tidak lagi linier!
• GraphSearch tidak mencatat path menuju suatu state. Ini
mempengaruhi sifat optimality suatu strategi:
• Uniform-cost dan breadth-first search dengan step cost
konstanta masih optimal (kenapa?).
• Untuk variasi Depth-first dan iterative-deepening search,
jika state mengulang ditemukan, periksa apakah path cost-
nya lebih kecil → update info node dan anak-anaknya!

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 69


Kecerdasan Buatan KBKRI

Thank You

KBK Kecerdasan Buatan, Kontrol, Robotika, IoT Artificial Intelligence 70

Anda mungkin juga menyukai