AI_20111010

17
Metode Pelacakan Buta SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER INDONESIA (STMIK-INDONESIA) © 2011 Inteligensi Buatan (MKB6403) Kuliah 4 Cara Kerja Problem-Solving Agent 1. Perumusan tujuan (goal formulation): tentukan tujuan yang ingin dicapai 2. Perumusan masalah (problem formulation): tentukan tindakan (action) dan keadaan (state) yang dipertimbangkan dalam mencapai tujuan yang dipertimbangkan dalam mencapai tujuan 3. Pencarian solusi masalah (searching): tentukan rangkaian tindakan yang perlu diambil untuk mencapai tujuan 4. Pelaksanaan solusi (execution): laksanakan rangkaian tindakan yang sudah ditentukan di tahap sebelumnya 10/19/2011 Metode Pelacakan Buta 2

Transcript of AI_20111010

Page 1: AI_20111010

Metode Pelacakan Buta

SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER INDONESIA (STMIK-INDONESIA)

© 2011

Inteligensi Buatan (MKB6403)

Kuliah 4

Cara Kerja Problem-Solving Agent

1. Perumusan tujuan (goal formulation): tentukantujuan yang ingin dicapai

2. Perumusan masalah (problem formulation): tentukan tindakan (action) dan keadaan (state) yang dipertimbangkan dalam mencapai tujuanyang dipertimbangkan dalam mencapai tujuan

3. Pencarian solusi masalah (searching): tentukanrangkaian tindakan yang perlu diambil untukmencapai tujuan

4. Pelaksanaan solusi (execution): laksanakanrangkaian tindakan yang sudah ditentukan ditahap sebelumnya

10/19/2011 Metode Pelacakan Buta 2

Page 2: AI_20111010

Contoh Penelusuran Search Tree

• Mulai dari root node (Arad) sebagai current node

• Lakukan node expansion

• Pilih salah satu node yang di-expand sebagai current node

yang baru. Ulangi langkah sebelumnya

Arad

10/19/2011 Metode Pelacakan Buta 3

Arad

Sibiu ZerindTimisoara

Fagaras Oradea Rimnicu Vilcea

Algoritma Penelusuran Search Tree

function GENERAL-SEARCH(problem,fringe) returns solution or failure

fringe ← INSERT(MAKE-NODE(INITIAL-STATE(problem),fringe))loop do

if fringe is EMPTY than return failurenode ← REMOVE-FIRST(fringe)if GOAL-TEST(problem) applied to STATE(node) succeeds then return node

fringe ← INSERT-ALL(EXPAND(node,problem),fringe)

1. Pada awal, fringe = himpunan node yang mewakili initial state

2. Pilih satu node dari fringe sebagai current node. Jika 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.

5. Ulangi langkah 2

10/19/2011 Metode Pelacakan Buta 4

fringe ← INSERT-ALL(EXPAND(node,problem),fringe)end

Page 3: AI_20111010

Strategi Pencarian

• Ada berbagai jenis strategi dalam melakukan

searching. Perbedaannya terdapat pada node

expansion-nya

• Search strategy dievaluasi berdasarkan:Search strategy dievaluasi berdasarkan:

– Completeness: apakah solusi (jika ada) pasti ditemukan?

– Time complexity: berapa lama untuk mencari solusi? atau

berapa banyak jumlah node yang di-expand?

– Space complexity: jumlah maksimum node di dalam

memori

– Optimality: apakah solusi dengan minimum cost pasti

ditemukan?

10/19/2011 Metode Pelacakan Buta 5

Jenis-jenis Strategi Pencarian

• Ada 2 jenis strategi pencarian:

– Uninformed strategy, hanya menggunakan

informasi dari definisi masalah

– Informed strategy, menggunakan informasi– Informed strategy, menggunakan informasi

lainnya

• Uninformed strategy dapat diterapkan secara

generik terhadap semua jenis masalah yang

bisa direpresentasikan dalam sebuah state

space

10/19/2011 Metode Pelacakan Buta 6

Page 4: AI_20111010

Jenis-jenis Uninformed Strategy

• Breadth-first Search (BFS)

• Depth-first Search (DFS)

• Depth-limited Search

• Iterative Deepening Search• Iterative Deepening Search

10/19/2011 Metode Pelacakan Buta 7

Breadth-first Search

• Prinsip breadth-first search:

Lakukan node expansion terhadap node di fringe yang paling

“dekat” ke root → systema�c strategy

• Implementasi: fringe adalah sebuah queue, data struktur

FIFO (First In First Out)FIFO (First In First Out)

• Hasil node expansion (successor function) ditaruh di

belakang

10/19/2011 Metode Pelacakan Buta 8

Page 5: AI_20111010

Breadth-first Search

• Prinsip breadth-first search:

Lakukan node expansion terhadap node di fringe yang paling

“dekat” ke root → systema�c strategy

• Implementasi: fringe adalah sebuah queue, data struktur

FIFO (First In First Out)FIFO (First In First Out)

• Hasil node expansion (successor function) ditaruh di

belakang

10/19/2011 Metode Pelacakan Buta 9

A

Breadth-first Search

• Prinsip breadth-first search:

Lakukan node expansion terhadap node di fringe yang paling

“dekat” ke root → systema�c strategy

• Implementasi: fringe adalah sebuah queue, data struktur

FIFO (First In First Out)FIFO (First In First Out)

• Hasil node expansion (successor function) ditaruh di

belakang

10/19/2011 Metode Pelacakan Buta 10

A

B C

A

Page 6: AI_20111010

Breadth-first Search

• Prinsip breadth-first search:

Lakukan node expansion terhadap node di fringe yang paling

“dekat” ke root → systema�c strategy

• Implementasi: fringe adalah sebuah queue, data struktur

FIFO (First In First Out)FIFO (First In First Out)

• Hasil node expansion (successor function) ditaruh di

belakang

10/19/2011 Metode Pelacakan Buta 11

A

B C

D E

A

B

Breadth-first Search

• Prinsip breadth-first search:

Lakukan node expansion terhadap node di fringe yang paling

“dekat” ke root → systema�c strategy

• Implementasi: fringe adalah sebuah queue, data struktur

FIFO (First In First Out)FIFO (First In First Out)

• Hasil node expansion (successor function) ditaruh di

belakang

10/19/2011 Metode Pelacakan Buta 12

A

B C

D E F G

A

B C

Page 7: AI_20111010

Cari solusi dari Arad ke Bucharet dengan menggunakan BFS!

10/19/2011 Metode Pelacakan Buta 13

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 14

Page 8: AI_20111010

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 15

A

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 16

A

B C

A

Page 9: AI_20111010

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 17

A

B C

D E

A

B

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 18

A

B C

D E

A

B

H I

D

Page 10: AI_20111010

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 19

A

B C

D E

A

B

H I

D

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 20

A

B C

D E

A

B

H I J K

D E

Page 11: AI_20111010

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 21

A

B C

D E

A

B

H I J K

D E

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 22

A

B C

D E F G

A

B C

H I J K

D E

Page 12: AI_20111010

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 23

A

B C

D E F G

A

B C

H I J K L M

D E F

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 24

A

B C

D E F G

A

B C

H I J K L M

D E F

Page 13: AI_20111010

Depth-first Search

• Prinsip 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)(Last In First Out)

10/19/2011 Metode Pelacakan Buta 25

A

B C

D E F G

A

B C

H I J K L M N O

D E F G

Cari solusi dari Arad ke Bucharet dengan menggunakan DFS!

10/19/2011 Metode Pelacakan Buta 26

Page 14: AI_20111010

Depth-limited Search

• Prinsip depth-limited search:

Sama seperti depth-first search dengan depth yang

terbatas.

• Contoh: Ada 20 kota dalam peta Rumania. Jika ada• Contoh: Ada 20 kota dalam peta Rumania. Jika ada

solusinya, maka length maksimum adalah 19.

10/19/2011 Metode Pelacakan Buta 27

Iterative Deepening Search

• Prinsip depth-first search:

Lakukan depth-limited search secara bertahap

dengan nilai l yang incremental

10/19/2011 Metode Pelacakan Buta 28

Page 15: AI_20111010

Iterative Deepening Search

• Prinsip depth-first search:

Lakukan depth-limited search secara bertahap

dengan nilai l yang incremental

10/19/2011 Metode Pelacakan Buta 29

Iterative Deepening Search

• Prinsip depth-first search:

Lakukan depth-limited search secara bertahap

dengan nilai l yang incremental

10/19/2011 Metode Pelacakan Buta 30

Page 16: AI_20111010

Iterative Deepening Search

• Prinsip depth-first search:

Lakukan depth-limited search secara bertahap

dengan nilai l yang incremental

10/19/2011 Metode Pelacakan Buta 31

Iterative Deepening Search

• Prinsip depth-first search:

Lakukan depth-limited search secara bertahap

dengan nilai l yang incremental

10/19/2011 Metode Pelacakan Buta 32

Page 17: AI_20111010

Cari solusi dari Arad ke Bucharet dengan menggunakan depth-

limited search dengan l = 3!

10/19/2011 Metode Pelacakan Buta 33