IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative- deepening Pengulangan state Ringkasan IKI 30320: Sistem Cerdas Kuliah 4: Uninformed Search Strategies (Rev.) Ruli Manurung Fakultas Ilmu Komputer Universitas Indonesia 5 September 2007
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
IKI 30320: Sistem CerdasKuliah 4: Uninformed Search Strategies
(Rev.)
Ruli Manurung
Fakultas Ilmu KomputerUniversitas Indonesia
5 September 2007
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Outline
1 Ulasan
2 Breadth-first
3 Uniform-cost
4 Depth-first
5 Iterative-deepening
6 Pengulangan state
7 Ringkasan
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Outline
1 Ulasan
2 Breadth-first
3 Uniform-cost
4 Depth-first
5 Iterative-deepening
6 Pengulangan state
7 Ringkasan
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Problem-solving agent & search
Sebuah problem-solving agent memecahkan sebuahmasalah dalam 2 tahap:
Goal & problem formulation: masalah dinyatakan sebagai sebuahstate space, yang sering direpresentasikan dalam bentuk graph.Action adalah abstraksi tindakan yang dapat diambilState adalah abstraksi keadaan yang dapat terjadi
Solution search: solusi diperoleh dengan mencari rangkaiantindakan (action sequence) yang membawa agent ke goal state.
Proses pencarian solusi sebagai search tree
Lugoj AradArad OradeaRimnicu Vilcea
Zerind
Arad
Sibiu
Arad Fagaras Oradea
Timisoara
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
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 failurenode← REMOVEFIRST(fringe)if GOALTEST(problem) applied to STATE(node) succeeds
then return SOLUTION(node)fringe← INSERTALL(EXPAND(node,problem),fringe)
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Strategi pencarian
Terdapat berbagai jenis strategi untuk melakukansearch.Semua strategi ini berbeda dalam satu hal: urutan darinode expansion.Search strategy di-evaluasi berdasarkan:
completeness: apakah solusi (jika ada) pastiditemukan?time complexity: jumlah node yang di-generate.space complexity: jumlah maksimum node di dalammemory.optimality: apakah solusi dengan minimum cost pastiditemukan?
Time & space complexity diukur berdasarkanb - branching factor dari search treed - depth (kedalaman) dari solusi optimalm - kedalaman maksimum dari search tree (bisainfinite!)
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Uninformed search strategies
Uninformed strategy hanya menggunakan informasidari definisi masalah.Bisa diterapkan secara generik terhadap semua jenismasalah yang bisa direpresentasikan dalam sebuahstate space.Ada beberapa jenis:
Lakukan node expansion terhadap node di fringe yangpaling dekat ke root .
Implementasi: fringe adalah sebuah queue, datastruktur FIFO (First In First Out)Hasil node expansion (successor function) ditaruh dibelakang
A
B C
D E F G
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Breadth-first search
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node di fringe yangpaling dekat ke root .
Implementasi: fringe adalah sebuah queue, datastruktur FIFO (First In First Out)Hasil node expansion (successor function) ditaruh dibelakang
A
B C
D E F G
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Breadth-first search
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node di fringe yangpaling dekat ke root .
Implementasi: fringe adalah sebuah queue, datastruktur FIFO (First In First Out)Hasil node expansion (successor function) ditaruh dibelakang
A
B C
D E F G
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Breadth-first search
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node di fringe yangpaling dekat ke root .
Implementasi: fringe adalah sebuah queue, datastruktur FIFO (First In First Out)Hasil node expansion (successor function) ditaruh dibelakang
A
B C
D E F G
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat breadth-first search
Complete?
Ya, jika b terbatasTime complexity?b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1)→eksponensial dlm. d .Space complexity? O(bd+1), karena semua node yangdi-generate harus disimpan.Optimal? Ya, jika semua step cost sama, tapi padaumumnya tidak optimal.
Masalah utama breadth-first search adalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 6, ada 107 node ≈ 10 gigabyte.Jika d = 12, ada 1013 node ≈ 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat breadth-first search
Complete? Ya, jika b terbatas
Time complexity?b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1)→eksponensial dlm. d .Space complexity? O(bd+1), karena semua node yangdi-generate harus disimpan.Optimal? Ya, jika semua step cost sama, tapi padaumumnya tidak optimal.
Masalah utama breadth-first search adalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 6, ada 107 node ≈ 10 gigabyte.Jika d = 12, ada 1013 node ≈ 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat breadth-first search
Complete? Ya, jika b terbatasTime complexity?
b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1)→eksponensial dlm. d .Space complexity? O(bd+1), karena semua node yangdi-generate harus disimpan.Optimal? Ya, jika semua step cost sama, tapi padaumumnya tidak optimal.
Masalah utama breadth-first search adalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 6, ada 107 node ≈ 10 gigabyte.Jika d = 12, ada 1013 node ≈ 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat breadth-first search
Complete? Ya, jika b terbatasTime complexity?b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1)→eksponensial dlm. d .
Space complexity? O(bd+1), karena semua node yangdi-generate harus disimpan.Optimal? Ya, jika semua step cost sama, tapi padaumumnya tidak optimal.
Masalah utama breadth-first search adalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 6, ada 107 node ≈ 10 gigabyte.Jika d = 12, ada 1013 node ≈ 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat breadth-first search
Complete? Ya, jika b terbatasTime complexity?b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1)→eksponensial dlm. d .Space complexity?
O(bd+1), karena semua node yangdi-generate harus disimpan.Optimal? Ya, jika semua step cost sama, tapi padaumumnya tidak optimal.
Masalah utama breadth-first search adalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 6, ada 107 node ≈ 10 gigabyte.Jika d = 12, ada 1013 node ≈ 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat breadth-first search
Complete? Ya, jika b terbatasTime complexity?b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1)→eksponensial dlm. d .Space complexity? O(bd+1), karena semua node yangdi-generate harus disimpan.
Optimal? Ya, jika semua step cost sama, tapi padaumumnya tidak optimal.
Masalah utama breadth-first search adalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 6, ada 107 node ≈ 10 gigabyte.Jika d = 12, ada 1013 node ≈ 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat breadth-first search
Complete? Ya, jika b terbatasTime complexity?b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1)→eksponensial dlm. d .Space complexity? O(bd+1), karena semua node yangdi-generate harus disimpan.Optimal?
Ya, jika semua step cost sama, tapi padaumumnya tidak optimal.
Masalah utama breadth-first search adalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 6, ada 107 node ≈ 10 gigabyte.Jika d = 12, ada 1013 node ≈ 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat breadth-first search
Complete? Ya, jika b terbatasTime complexity?b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1)→eksponensial dlm. d .Space complexity? O(bd+1), karena semua node yangdi-generate harus disimpan.Optimal? Ya, jika semua step cost sama, tapi padaumumnya tidak optimal.
Masalah utama breadth-first search adalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 6, ada 107 node ≈ 10 gigabyte.Jika d = 12, ada 1013 node ≈ 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat breadth-first search
Complete? Ya, jika b terbatasTime complexity?b + b2 + b3 + . . . + bd + b(bd − 1) = O(bd+1)→eksponensial dlm. d .Space complexity? O(bd+1), karena semua node yangdi-generate harus disimpan.Optimal? Ya, jika semua step cost sama, tapi padaumumnya tidak optimal.
Masalah utama breadth-first search adalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 6, ada 107 node ≈ 10 gigabyte.Jika d = 12, ada 1013 node ≈ 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Outline
1 Ulasan
2 Breadth-first
3 Uniform-cost
4 Depth-first
5 Iterative-deepening
6 Pengulangan state
7 Ringkasan
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Uniform-cost search
Prinsip algoritma uniform-cost search
Lakukan node expansion terhadap node di fringe yang pathcost-nya paling kecil.
Implementasi: fringe adalah sebuah priority queue dimana node disortir berdasarkan path cost functiong(n).Jika semua step cost sama, uniform-cost sama denganbreadth-first.Bandingkan dengan shortest-path algorithm-nyaDijkstra!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat uniform-cost search
Complete?
Ya, jika step cost ≥ ε untuk ε > 0Time complexity? Jumlah node dengang(n) ≤ C∗ = O(bbC
∗/εc+1) di mana C∗ adalah cost darioptimal solutionSpace complexity? Semua node yang di-generateharus disimpan ≈ O(bbC
∗/εc+1)
Optimal? Ya, karena urutan node expansion dilakukanurut g(n).
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat uniform-cost search
Complete? Ya, jika step cost ≥ ε untuk ε > 0
Time complexity? Jumlah node dengang(n) ≤ C∗ = O(bbC
∗/εc+1) di mana C∗ adalah cost darioptimal solutionSpace complexity? Semua node yang di-generateharus disimpan ≈ O(bbC
∗/εc+1)
Optimal? Ya, karena urutan node expansion dilakukanurut g(n).
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat uniform-cost search
Complete? Ya, jika step cost ≥ ε untuk ε > 0Time complexity?
Jumlah node dengang(n) ≤ C∗ = O(bbC
∗/εc+1) di mana C∗ adalah cost darioptimal solutionSpace complexity? Semua node yang di-generateharus disimpan ≈ O(bbC
∗/εc+1)
Optimal? Ya, karena urutan node expansion dilakukanurut g(n).
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat uniform-cost search
Complete? Ya, jika step cost ≥ ε untuk ε > 0Time complexity? Jumlah node dengang(n) ≤ C∗ = O(bbC
∗/εc+1) di mana C∗ adalah cost darioptimal solution
Space complexity? Semua node yang di-generateharus disimpan ≈ O(bbC
∗/εc+1)
Optimal? Ya, karena urutan node expansion dilakukanurut g(n).
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat uniform-cost search
Complete? Ya, jika step cost ≥ ε untuk ε > 0Time complexity? Jumlah node dengang(n) ≤ C∗ = O(bbC
∗/εc+1) di mana C∗ adalah cost darioptimal solutionSpace complexity?
Semua node yang di-generateharus disimpan ≈ O(bbC
∗/εc+1)
Optimal? Ya, karena urutan node expansion dilakukanurut g(n).
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat uniform-cost search
Complete? Ya, jika step cost ≥ ε untuk ε > 0Time complexity? Jumlah node dengang(n) ≤ C∗ = O(bbC
∗/εc+1) di mana C∗ adalah cost darioptimal solutionSpace complexity? Semua node yang di-generateharus disimpan ≈ O(bbC
∗/εc+1)
Optimal? Ya, karena urutan node expansion dilakukanurut g(n).
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat uniform-cost search
Complete? Ya, jika step cost ≥ ε untuk ε > 0Time complexity? Jumlah node dengang(n) ≤ C∗ = O(bbC
∗/εc+1) di mana C∗ adalah cost darioptimal solutionSpace complexity? Semua node yang di-generateharus disimpan ≈ O(bbC
∗/εc+1)
Optimal?
Ya, karena urutan node expansion dilakukanurut g(n).
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat uniform-cost search
Complete? Ya, jika step cost ≥ ε untuk ε > 0Time complexity? Jumlah node dengang(n) ≤ C∗ = O(bbC
∗/εc+1) di mana C∗ adalah cost darioptimal solutionSpace complexity? Semua node yang di-generateharus disimpan ≈ O(bbC
∗/εc+1)
Optimal? Ya, karena urutan node expansion dilakukanurut g(n).
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Contoh uniform-cost search
Coba gunakan uniform-cost search untuk mencari optimalsolution dari Arad ke Bucharest!
Giurgiu
UrziceniHirsova
Eforie
Neamt
Oradea
Zerind
Arad
Timisoara
Lugoj
Mehadia
DobretaCraiova
Sibiu Fagaras
Pitesti
Vaslui
Iasi
Rimnicu Vilcea
Bucharest
71
75
118
111
70
75
120
151
140
99
80
97
101
211
138
146 85
90
98
142
92
87
86
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Outline
1 Ulasan
2 Breadth-first
3 Uniform-cost
4 Depth-first
5 Iterative-deepening
6 Pengulangan state
7 Ringkasan
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node di fringe yangpaling jauh dari root .
Implementasi: fringe adalah sebuah stack , datastruktur LIFO (Last In First Out)Hasil node expansion ditaruh di depanDepth-first search sangat cocok diimplementasikansecara rekursif.
A
B C
D E F G
H I J K L M N O
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat depth-first search
Complete?
Tidak, bisa gagal jika m tak terbatas, ataustate space dengan loop.Time complexity? O(bm)→ jika m � d , parah!Space complexity? O(bm)→ linear space!Optimal? Tidak.
Depth-first search mengatasi masalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 12, space yang dibutuhkan hanya 118 kilobyte . . .bandingkan dengan 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat depth-first search
Complete? Tidak, bisa gagal jika m tak terbatas, ataustate space dengan loop.Time complexity?
O(bm)→ jika m � d , parah!Space complexity? O(bm)→ linear space!Optimal? Tidak.
Depth-first search mengatasi masalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 12, space yang dibutuhkan hanya 118 kilobyte . . .bandingkan dengan 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat depth-first search
Complete? Tidak, bisa gagal jika m tak terbatas, ataustate space dengan loop.Time complexity? O(bm)→ jika m � d , parah!
Space complexity? O(bm)→ linear space!Optimal? Tidak.
Depth-first search mengatasi masalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 12, space yang dibutuhkan hanya 118 kilobyte . . .bandingkan dengan 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat depth-first search
Complete? Tidak, bisa gagal jika m tak terbatas, ataustate space dengan loop.Time complexity? O(bm)→ jika m � d , parah!Space complexity?
O(bm)→ linear space!Optimal? Tidak.
Depth-first search mengatasi masalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 12, space yang dibutuhkan hanya 118 kilobyte . . .bandingkan dengan 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat depth-first search
Complete? Tidak, bisa gagal jika m tak terbatas, ataustate space dengan loop.Time complexity? O(bm)→ jika m � d , parah!Space complexity? O(bm)→ linear space!
Optimal? Tidak.
Depth-first search mengatasi masalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 12, space yang dibutuhkan hanya 118 kilobyte . . .bandingkan dengan 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat depth-first search
Complete? Tidak, bisa gagal jika m tak terbatas, ataustate space dengan loop.Time complexity? O(bm)→ jika m � d , parah!Space complexity? O(bm)→ linear space!Optimal?
Tidak.
Depth-first search mengatasi masalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 12, space yang dibutuhkan hanya 118 kilobyte . . .bandingkan dengan 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat depth-first search
Complete? Tidak, bisa gagal jika m tak terbatas, ataustate space dengan loop.Time complexity? O(bm)→ jika m � d , parah!Space complexity? O(bm)→ linear space!Optimal? Tidak.
Depth-first search mengatasi masalah spaceMis: 1 node memakan 1000 byte, dan b = 10Jika d = 12, space yang dibutuhkan hanya 118 kilobyte . . .bandingkan dengan 10 petabyte!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Variasi depth-first search
Backtracking search: lakukan node expansionsatu-per-satu. Jika gagal backtrack dan coba nilaisuccessor function yang lain.Depth-limited search: Batasi kedalaman maksimalyang dilihat adalah `.
Mengatasi masalah untuk state space tak terbatas.Sayangnya, ada unsur incompleteness baru, jika ` < d .Biasanya d tidak diketahui (tapi bisa ada estimasi, mis.diameter suatu graph).
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Implementasi rekursif depth-limited search
function RECURSIVEDLS (node, problem, limit) returns solution or failure/cutoff
cutoff_occurred?← falseif GOALTEST[problem](STATE[node]) then return SOLUTION(node)else if DEPTH[node] = limit then return cutoffelse for each successor in EXPAND(node,problem) do
result ← RECURSIVEDLS(successor ,problem,limit)if result = cutoff then cutoff_occurred?→ trueelse if result 6= failure then return result
if cutoff_occurred? then return cutoff else return failure
function DEPTHLIMITEDSEARCH (problem, limit) returns solution or failure/cutoff
Pada umumnya, iterative deepening search adalahuninformed search strategy yang terbaik jika state spacebesar dan kedalaman solusi (d) tidak diketahui.
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Perbandingan strategi pencarian
Criterion Breadth- Uniform- Depth- Depth- IterativeFirst Cost First Limited Deepening
Complete? Ya∗ Ya∗ Tidak Ya, jk ` ≥ d YaTime bd+1 bbC∗/εc+1 bm b` bd
Space bd+1 bbC∗/εc+1 bm b` bdOptimal? Ya∗ Ya∗ Tidak Tidak Ya
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Outline
1 Ulasan
2 Breadth-first
3 Uniform-cost
4 Depth-first
5 Iterative-deepening
6 Pengulangan state
7 Ringkasan
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Masalah: state yang mengulang di dalamsearch tree
Kegagalan menangani state yang mengulang dapatmembuat masalah linier menjadi eksponensial!
A
B
C
D
A
BB
CCCC
Ingat dua variasi definisi masalah 8-queens problem.
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Solusi: belajar dari sejarah
Algorithms that forget their history are doomed torepeat it...Solusinya adalah untuk mencatat state mana yangsudah pernah dicoba. Catatan ini disebut closed list(fringe = open list).Modifikasi algoritma TREESEARCH dengan closed listmenjadi GRAPHSEARCH.
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Algoritma GRAPHSEARCH
function GRAPHSEARCH (problem, fringe) returns solution or failure
closed ← {}fringe← INSERT(MAKENODE(INITIALSTATE(problem)),fringe)loop do
if EMPTY?(fringe) then return failurenode← REMOVEFIRST(fringe)if GOALTEST(problem) applied to STATE(node) succeeds
then return SOLUTION(node)if STATE[node] /∈ closed then
add STATE[node] to closedfringe← INSERTALL(EXPAND(node,problem),fringe)
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Sifat GRAPHSEARCH
Time complexity: sama, jika kita asumsi operasiSTATE[node] /∈ closed = O(1) (implementasi denganhashtable?)Space complexity: DFS dan IDS tidak lagi linier!GRAPHSEARCH tidak mencatat path menuju suatustate. Ini mempengaruhi sifat optimality suatu strategi:
Uniform-cost dan breadth-first search dengan step costkonstanta masih optimal (kenapa?).Untuk variasi Depth-first dan iterative-deepeningsearch, jika state mengulang ditemukan, periksaapakah path cost-nya lebih kecil → update info nodedan anak-anaknya!
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Outline
1 Ulasan
2 Breadth-first
3 Uniform-cost
4 Depth-first
5 Iterative-deepening
6 Pengulangan state
7 Ringkasan
IKI30320Kuliah 4
5 Sep 2007
Ruli Manurung
Ulasan
Breadth-first
Uniform-cost
Depth-first
Iterative-deepening
Pengulanganstate
Ringkasan
Ringkasan
Breadth-first search: completeness terjamin, tapi rakusmemory.Uniform-cost search: mirip BFS, optimality terjamin jikacost path ≥ ε untuk ε > 0.Depth-first search: Space complexity linier, tetapi tidakcomplete (maupun optimal).Depth-limited search: mirip DFS, tetapi kedalamansearch dibatasi sampai `.Iterative-deepening search: lakukan DLS secarabertahap dengan ` = 0, 1, 2, . . ..Pengulangan state bisa dihindari dengan mencatatstate yang sudah pernah dicoba.TREESEARCH → GRAPHSEARCH.