Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

62
Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching) Imam Cholissodin, S.Si., M.Kom. Kecerdasan Buatan/ Artificial Intelligence

description

Kecerdasan Buatan / Artificial Intelligence. Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching). Imam Cholissodin, S.Si., M.Kom. Pokok Bahasan. Agen penyelesaian problem Jenis problem/masalah Formulasi problem Contoh problem Strategi pencarian uninformed - PowerPoint PPT Presentation

Transcript of Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Page 1: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)Imam Cholissodin, S.Si., M.Kom.

Kecerdasan Buatan/Artificial Intelligence

Page 2: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Pokok Bahasan

1. Agen penyelesaian problem

2. Jenis problem/masalah

3. Formulasi problem

4. Contoh problem

5. Strategi pencarian uninformed

6. Algoritma pencarian dasar (BFS & DFS)

7. Robot With AI

8. Latihan Individu + Tugas Kelompok

Page 3: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Agen Penyelesaian Problem

Agen pemecahan masalah adalah jenis agen berbasis tujuan.

Memutuskan apa yang harus dilakukan dengan mencari urutan tindakan yang mengarah pada keadaaan (states) yang diinginkan.

Formulasi Goal. Perumusan masalah. Search mengambil masalah sebagai masukan dan

solusi pengembalian dalam bentuk urutan tindakan. Implementasi / Eksekusi.

Page 4: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Agen Penyelesaian Problem

Penjelasan :o Percept : persepsi yang adao Seq : urutan tindakano State : deskripsi dari keadaan lingkungan sekitaro Goal : tujuan yang dicapaio Problem : perumusan masalah

Page 5: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Agen Penyelesaian Problem

Contoh : Romaniao Berlibur ke Rumania, saat ini berada di Arad.o Penerbangan (keberangkatan) dilakukan besok dari Bucharesto Merumuskan tujuan (Formulate goal) :

Berada di Bucharest

o Merumuskan masalah (Formulate problem) : States : berbagai kota sebagai alternatif tempat yang akan dilalui Actions : drive antara kota

o Cari solusi (Find solution) : Urutan kota yang dilalui untuk mencapai tujuan. Misalnya ; Arad, Sibiu, Fagaras, Bucharest

Page 6: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Jenis Problem/Masalah

Deterministic, fully observable Single-state problemo Agen tahu persis keadaan sesuatu yang akan diamati.

Non-observable Sensorless problem (conformant problem)o Agen mungkin tidak mengetahui dimana keberadaan sesuatu

yang dicari.

Nondeterministic and/or partially observable Contingency problem (keadaan yang tidak pasti)o Persepsi yang dapat memberikan informasi baru tentang

keadaan saat ini.

Unknown state space Exploration problem (Masalah eksplorasi)

Page 7: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Contoh Problem

Contoh : vacuum worldo Single-state, start in #5.

Solution?

Page 8: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Contoh Problem

Contoh : vacuum worldo Single-state, start in #5.

Solution? [Right, Suck]o Sensorless, start in

{1,2,3,4,5,6,7,8} e.g., Right goes to {2,4,6,8} Solution?

Page 9: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Contoh Problem

Contoh : vacuum worldo Sensorless, start in

{1,2,3,4,5,6,7,8} e.g., Right goes to {2,4,6,8} Solution? [Right,Suck,Left,Suck]

o Contingency • Nondeterministic: Suck may

dirty a clean carpet• Partially observable: location,

dirt at current location.

• Percept: [L, Clean], i.e.,

start in #5 or #7 Solution?

Page 10: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Contoh Problem

Contoh : vacuum worldo Sensorless, start in

{1,2,3,4,5,6,7,8} e.g., Right goes to {2,4,6,8} Solution? [Right,Suck,Left,Suck]

o Contingency • Nondeterministic: Suck may

dirty a clean carpet• Partially observable: location,

dirt at current location.• Percept: [L, Clean], i.e.,

start in #5 or #7Solution? [Right, if dirt then Suck]

Page 11: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Formulasi Problem

Single-state problem formulationo Suatu problem didefinisikan dalam 4 item :

1. initial state e.g., "at Arad"

2. actions or successor function S(x) = set of action–state pairs <action,successor(state)> e.g., S(Arad) = {<Berangkat(Arad Zerind), BeradaDi(Zerind)>, … }

3. goal test, can be explicit, e.g., x = "at Bucharest" implicit, e.g., Checkmate(x) / Skakmat(x)

4. path cost (additive) Menetapkan besarnya biaya untuk setiap jalur yang ada. Mis., jumlah jarak tempuh, jumlah tindakan lain yang dilakukan, dll. c(x, a, y) adalah cost action a dari state x ke state y, diasumsikan ≥ 0.

Solusinya adalah suatu urutan tindakan yang mengarah dari keadaan awal (initial state) ke keadaan tujuan (goal state).

Kualitas suatu solusi dapat diukur dari nilai fungsi biaya (cost function) yang paling minimal dari jalur (path) yang dilalui.

Page 12: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Formulasi Problem

Selecting a state spaceo Dunia nyata luar biasa kompleks dan rumit! State space harus

merupakan abstraksi masalah supaya bisa dipecahkan.o State = himpunan “keadaan nyata”. Mis : BeradaDi (Arad ) –

dengan siapa? kondisi cuaca?o Action = kombinasi berbagai “tindakan nyata”. Mis :

Berangkat(Arad , Sibiu) – jalan tikus, isi bensin, istirahat, dll.o Solution = representasi berbagai “path nyata” yang

mencapai tujuano Abstraksi ini membuat masalah yang nyata lebih mudah

dipecahkan.

Page 13: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Contoh Problem

Contoh : Vacuum Cleaner Worldo State: lokasi agent, status debu.o Possible action: DoKeKiri(L), DoKeKanan(R), DoSedot(S).o Goal test: semua ruangan sudah bebas debu.o Path cost: asumsi step cost sama untuk semua action,

mis: Path cost = 1 per action.o Successor function mendefinisikan state space sbb:

Page 14: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Contoh Problem

Contoh: 8-Puzzle

o State: lokasi 8 buah angka dalam matriks 3x3o Possible action (move, blank) : left, right, up, down o Goal test: apakah konfigurasi angka sudah seperti goal

state di atas.o Path cost: asumsi, 1 step cost = 1 per move.

Path cost = jumlah langkah dalam path.

Page 15: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Contoh Problem

Contoh: 8-Queens Problem

Letakkan 8 bidak menteri (queen!)

sedemikian sehingga tidak ada yang saling

“makan” (menteri bisa makan dalam satu

baris, kolom, diagonal).oState: Papan catur dengan n bidak menteri, 0 ≤ n ≤ 8.oInitial state: Papan catur yang kosong.oPossible action: Letakkan sebuah bidak menteri di posisi kosong.oGoal test: 8 bidak menteri di papan, tidak ada yang saling makan.Note : Formulasi yang lebih baik akan melarang menempatkan queen dalam setiap persegi yang sudah diserang.

Page 16: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Contoh Problem

Contoh: Robotic assembly (Perakitan Robot)

o States: koordinat real-valued bagian sudut sendi robot dari obyek yang akan dirakit.

o Actions: gerakan terus menerus dari sendi robot.o Goal test: perakitan telah lengkap (complete

assembly).o Path cost: waktu untuk eksekusi (time to execute).

Page 17: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Algoritma Pencarian Dasar

Tree search algorithms :o Setelah merumuskan masalah → cari solusinya menggunakan

sebuah search algorithmo Search tree merepresentasikan state space.o Search tree terdiri dari kumpulan node: struktur data yang

merepresentasikan suatu state pada suatu path, dan memiliki parent, children, depth, dan path cost.

o Root node merepresentasikan initial state.o Penerapan successor function terhadap (state yang diwakili)

node menghasilkan children baru → ini disebut node expansion.

o Kumpulan semua node yang belum di-expand disebut fringe (pinggir) sebuah search tree.

Page 18: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Algoritma Pencarian Dasar

Tree search algorithms (Basic idea) :o Mulai dari root node (Arad) sebagai current node.o Lakukan node expansion terhadapnya.o Pilih salah satu node yang di-expand sebagai current node

yang baru. Ulangi langkah sebelumnya.

Page 19: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Algoritma Pencarian Dasar

Tree search algorithms (Basic idea) :o Mulai dari root node (Arad) sebagai current node.o Lakukan node expansion terhadapnya.o Pilih salah satu node yang di-expand sebagai current node

yang baru. Ulangi langkah sebelumnya.

Page 20: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Algoritma Pencarian Dasar

Tree search algorithms (Basic idea) :o Mulai dari root node (Arad) sebagai current node.o Lakukan node expansion terhadapnya.o Pilih salah satu node yang di-expand sebagai current node

yang baru. Ulangi langkah sebelumnya.

Page 21: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Algoritma Pencarian Dasar

Tree search algorithms (Basic idea) :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.

Page 22: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Algoritma Pencarian Dasar

Tree search algorithms (Basic idea) :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.

Page 23: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Algoritma Pencarian Dasar

Tree search algorithms (Basic idea) :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.

Page 24: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Algoritma Pencarian Dasar

Tree search algorithms (Basic idea) :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.

Page 25: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Algoritma Pencarian Dasar

Implementation: states vs. nodeso Sebuah state merepresentasikan abstraksi keadaan nyata dari

masalah.o Sebuah node adalah struktur data yang menjadi bagian dari search

tree.o State tidak memiliki parent, children, depth, path cost!o Node = state pada path tertentu. Dua node berbeda bisa mewakili

state yang sama!

Page 26: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Strategi Pencarian Uninformed

Strategi pencarian :o Terdapat berbagai jenis strategi untuk melakukan search.o Semua strategi ini berbeda dalam satu hal: urutan dari node

expansion.o 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?o 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!)

Page 27: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Strategi Pencarian Uninformed

Strategi Pencarian Uninformed :o Uninformed strategy hanya menggunakan informasi dari definisi

masalah.o Bisa diterapkan secara generik terhadap semua jenis masalah

yang bisa direpresentasikan dalam sebuah state space.o Ada beberapa jenis :

Breadth-first search Uniform-cost search Depth-first search Depth-limited search Iterative-deepening search

Page 28: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Breadth-First Search

Lakukan node expansion terhadap node di fringe yang paling dekat ke root o Implementasi: fringe adalah sebuah queue, data struktur FIFO

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

BFS traversal queue:

abccdedefgefgfgg

Page 29: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Breadth-First Search

Lakukan node expansion terhadap node di fringe yang paling dekat ke root o Implementasi: fringe adalah sebuah queue, data struktur FIFO

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

BFS traversal queue:

abccdedefgefgfgg

Page 30: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Breadth-First Search

Lakukan node expansion terhadap node di fringe yang paling dekat ke root o Implementasi: fringe adalah sebuah queue, data struktur FIFO

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

BFS traversal queue:

abccdedefgefgfgg

Page 31: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Breadth-First Search

Lakukan node expansion terhadap node di fringe yang paling dekat ke root o Implementasi: fringe adalah sebuah queue, data struktur FIFO

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

BFS traversal queue:

abccdedefgefgfgg

Page 32: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Breadth-First Search

BFS menggunakan prisip queue (Contoh lain)

BFS traversal queue:

a b

e f

c d

g h

BFS tree:

a b

e f

c d

g h

abefefgfggchhdd

1

3

2 6

4 75

8

Page 33: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Breadth-First Search

Properties of breadth-first search :o Complete? Ya, jika b terbataso Time complexity? b + b2+ b3+ . . . + bd+ b(bd− 1) = O(bd +1) →

eksponensial dalam d.o Space complexity? O(bd +1), karena semua node yang di-generate harus

disimpan.o Optimal? Ya, jika semua step cost sama, tapi pada umumnya tidak

optimal.o Masalah utama breadth-first search adalah space :

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

Page 34: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 35: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 36: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 37: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 38: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 39: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 40: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 41: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 42: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 43: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 44: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 45: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Lakukan node expansion terhadap node di fringe yang paling jauh dari root.o Implementasi: fringe adalah sebuah stack, data struktur LIFO (Last In First Out)o Hasil node expansion ditaruh di depano Depth-first search sangat cocok diimplementasikan secara rekursif.

DFS traversal stack:DFS traversal stack:

aababdabdhabdiabdababeabejabeabek…

abeabaacacfacflacfacfmacfacacg…

acgnacgacgoacgacanull

Page 46: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

DFS menggunakan prisip stack (Contoh lain)

a b

e f

c d

g h

DFS traversal stack:DFS traversal stack: DFS tree:DFS tree:

a b

e f

c d

g h

aababfabfeabfababgabgcabgcdabgcdhabgcd…

1 2

54

6

3

7

8

Page 47: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Depth-First Search

Properties of depth-first searcho Complete? Tidak, bisa gagal jika m tak terbatas, atau state space

dengan loop .o Time complexity? O(bm) → jika m »d , parah!o Space complexity? O(bm) → linear space!o Optimal? Tidak.o 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 10 petabyte!

Page 48: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Variasi Depth-First Search

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 k.o Mengatasi masalah untuk state space tak terbatas.o Sayangnya, ada unsur incompleteness baru, jika k < d .o Biasanya d tidak diketahui (tapi bisa ada estimasi, mis. diameter

suatu graph).

Page 49: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Iterative-Deepening Search

Lakukan depth-limited search secara bertahap dengan nilai k yang incremental.

Strategi ini menggabungkan manfaat depth dan breadth first: space complexity linier dan completeness terjamin!

Lakukan depth-limited search dengan k = 0, 1, 2, . . . sampai tidak cutoff.

Page 50: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Iterative-Deepening Search

Iterative deepening search k =0

Page 51: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Iterative-Deepening Search

Iterative deepening search k =1

Page 52: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Iterative-Deepening Search

Iterative deepening search k =2

Page 53: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Iterative-Deepening Search

Iterative deepening search k =3

Page 54: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Iterative-Deepening Search

Properties of Iterative-Deepening Searcho Complete? Ya.o Time complexity? db1+ (d − 1)b2+ . . . + bd= O(bd)o Space complexity? O(bd )o Optimal? Ya, jika semua step cost sama.

Secara sekilas, strategi ini kelihatan tidak efisien, atau boros: banyak usaha terulang!

Iterative-deepening search malah lebih cepat dari breadth-first search!o N(IDS ) = db + (d − 1)b2+ . . . + (1)bd

o N(BFS) = b + b2+ . . . + bd+ (bd+1− b) o Untuk b = 10 dan d = 5:

N(IDS ) = 50 + 400 + 3,000 + 20,000 + 100,000 = 123,450N(BFS) = 10+100+1,000+10,000+100,000+999,990 = 1,111,100.

o Pada umumnya, IDS adalah uninformed search strategy yang terbaik jika state space besar dan kedalaman solusi (d ) tidak diketahui.

Page 55: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Perbandingan Algoritma

Perbandingan strategi pencarian

Kegagalan menangani state yang mengulang dapat membuat masalah linier menjadi eksponensial!

Page 56: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Graph Search

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.

Page 57: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Graph Search

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:o Uniform-cost dan breadth-first search dengan step

cost konstanta masih optimal.o 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!

/

Page 58: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Ringkasan

Breadth-first search: completeness terjamin, tapi rakus memory. Uniform-cost search: mirip BFS, optimality terjamin jika cost path ≥

ε untuk ε > 0. Depth-first search: Space complexity linier, tetapi tidak complete

(maupun optimal). Depth-limited search: mirip DFS, tetapi kedalaman search dibatasi

sampai k. Iterative-deepening search: lakukan DLS secara bertahap dengan

k = 0, 1, 2, . . .. Pengulangan state bisa dihindari dengan mencatat state yang

sudah pernah dicoba. TreeSearch → GraphSearch.

Page 59: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Latihan Individu

Selesaikan graf di bawah ini menggunakan algoritma DFS dan BFS berikut dengan hasil setiap langkah (Traversal dan Tree) dimulai dari node 1 untuk (a1) node K untuk (a2) !

(a1) (a2)

A B C L

GFED

HI

M K

J

Page 60: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Tugas Kelompok

Buatlah video untuk pemecahan/ solusi kasus :a) 8-Puzzles

b) 8-Queens (Optional)

Lalu tuliskan langkah-langkah penyelesaiannya ! (Initial State-nya bebas)

Selesaikan graf di bawah ini menggunakan algoritma IDS berikut dengan hasil setiap langkah (Traversal dan Tree) dimulai dari node A (k=2) !

A B C L

GFED

HI

M K

J

Page 61: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Selesai

Page 62: Penyelesaian Problem Dengan Pencarian (Blind / Un-Informed Searching)

Robot With AI