4 5 - Problem Solving Agent
4 5 - Problem Solving Agent
Solving Agent
darmatasia
Outline
§ Problem Solving Agent
§ Tree Search
§ Uninformed Search
Breadth First Search
Uniform Cost Search
Depth First Search
Iterative Deepening Search
Problem Solving
Agent
Well-Define Problem & Solution
4 Komponen Problem:
1. Initial State: keadaan awal di mana si agent mulai
2. Possible actions/Successor Function: tindakan yang dapat
dilakukan si agent pada state s
3. Goal test: penentuan apakah suatu state adalah tujuan
yang ingin dicapai.
4. Path cost function (additive): sebuah fungsi yang
memberikan nilai numerik terhadap setiap path. Fungsi ini
merefleksikan performance measure si agent.
Contoh
§ Agent tourist di Rumania. Saat ini berada di kota Arad
§ Besok Dia harus Berada Bucharest
§ Initial State?
§ Possible Action?
§ Goal State?
§ Path Cost?
Well-Define Problem & Solution
Output:
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E A
S F H
G
Output:
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E A
S F H
G
Output: A
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E B
S F
S
H
G
Output: A
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E B
S F
S
H
G
Output: A B
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E S
S F H
G
Output: A B S
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E C
S F
G
H
G
Output: A B S
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E C
S F
G
H D
G E
F
Output: A B S
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E G
S F
D
H E
G F
Output: A B S C
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E D
S F
E
H F
G
Output: A B S C G
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E D
S F
E
H F
G
Output: A B S C G D
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E E
S F
F
H
G
Output: A B S C G D
Contoh (2)
Tentukan jalur dari A ke E dengan BFS
B D
Queue
A C E F
S F H
G
Output: A B S C G D E
Breadth-First Search Properties
§ Complete? Ya, jika b terbatas
§ Time complexity? b + 𝑏 ! +𝑏 " + . . . +𝑏 # +𝑏(𝑏 # −1) = 𝑂(𝑏 #$% ) →
eksponensial dalam d.
§ Space complexity? O( 𝑏 #$% ), karena semua node yang di-
generate harus disimpan.
§ Optimal? Ya, jika semua step cost sama, tapi pada umumnya
tidak optimal.
§ Masalah utama breadth-first search adalah space :
Mis: 1 node memakan 1000 byte, dan b = 10
Jika d = 6, ada 10& node ≈ 10 gigabyte.
Jika d = 12, ada 10%" node ≈ 10 petabyte!
Latihan
§ Coba cari solution dari Arad ke Bucharest dengan BFS!
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.
Uniform-cost search - Properties
§ C* = Cost of the optimal solution
§ ε = each step to get closer to the goal node.
§ C*/ε+1 = the number of steps
§ Complete? Ya, jika step cost ³ ε untuk ε ³ 0
§ Time complexity? 𝑂(𝑏 ("#$∗/') )
§ Space complexity? 𝑂(𝑏 ("#$∗/') )
§ Optimal? Ya, karena urutan node expansion dilakukan urut
g(n).
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
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 ditaruh di depan
§ Depth-first search sangat cocok diimplementasikan secara rekursif.
A
B C
D E F G
H I J K L M N O
Tugas
§ Coba cari solution dari Arad ke Bucharest dengan DFS!
§ Tentukan Urutan Ekspansi Node, Path Solusi dan Path Cost!
§ Bandingkan dengan Tugas sebelumnya (BFS), manakah yang lebih optimal/jaraknya lebih
pendek
Depth First Search - Properties
§ Complete? Ya.
§ Time complexity? 𝑑𝑏" + (d – 1)𝑏 # + . . . + 𝑏 $ = O(𝑏 $ )
§ Space complexity? O(bd )
§ Optimal? Ya, jika semua step cost sama.
IDS - Properties