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
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Outline
1 Ulasan 2 Breadth-first 3 Uniform-cost 4 Depth-first 5 Iterative-deepening 6 Pengulanganstate 7 RingkasanIKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Outline
1 Ulasan 2 Breadth-first 3 Uniform-cost 4 Depth-first 5 Iterative-deepening 6 Pengulanganstate 7 RingkasanIKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Problem-solving agent & search
Sebuahproblem-solving agentmemecahkan sebuah masalah dalam 2 tahap:
Goal & problem formulation: masalah dinyatakan sebagai sebuah
state space, yang sering direpresentasikan dalam bentukgraph.
Actionadalah abstraksi tindakan yang dapat diambil
Stateadalah abstraksi keadaan yang dapat terjadi
Solution search: solusi diperoleh dengan mencarirangkaian tindakan(action sequence) yang membawaagentkegoal state. Proses pencarian solusi sebagaisearch tree
Lugoj Arad Arad Oradea Rimnicu Vilcea Zerind Arad Sibiu
Arad Fagaras Oradea
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Algoritma penelusuran search tree
1 Pada awalnya,fringe= himpunan node yang mewakiliinitial state. 2 Pilih satu node darifringesebagaicurrent node(Kalaufringe
kosong, selesai dengan gagal).
3 Jika node tsb. lolosgoal test, selesai dengan sukses!
4 Jika tidak, lakukannode expansionterhadapcurrent nodetsb. Tambahkan semua node yang dihasilkan kefringe.
5 Ulangi langkah 2.
functionTREESEARCH(problem,fringe)returnssolutionorfailure fringe←INSERT(MAKENODE(INITIALSTATE(problem)),fringe)
loop do
ifEMPTY?(fringe)then returnfailure
node←REMOVEFIRST(fringe)
ifGOALTEST(problem) applied to STATE(node) succeeds
then returnSOLUTION(node)
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Strategi pencarian
Terdapat berbagai jenisstrategiuntuk 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-generate.
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
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Uninformed search strategies
Uninformed strategyhanya 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
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Outline
1 Ulasan 2 Breadth-first 3 Uniform-cost 4 Depth-first 5 Iterative-deepening 6 Pengulanganstate 7 RingkasanIKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Breadth-first search
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node difringeyang palingdekatkeroot.
Implementasi: fringeadalah sebuahqueue, data struktur FIFO (First In First Out)
Hasilnode expansion(successor function) ditaruh di belakang
A
B C
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Breadth-first search
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node difringeyang palingdekatkeroot.
Implementasi: fringeadalah sebuahqueue, data struktur FIFO (First In First Out)
Hasilnode expansion(successor function) ditaruh di belakang
A
B C
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Breadth-first search
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node difringeyang palingdekatkeroot.
Implementasi: fringeadalah sebuahqueue, data struktur FIFO (First In First Out)
Hasilnode expansion(successor function) ditaruh di belakang
A
B C
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Breadth-first search
Prinsip algoritma breadth-first search
Lakukan node expansion terhadap node difringeyang palingdekatkeroot.
Implementasi: fringeadalah sebuahqueue, data struktur FIFO (First In First Out)
Hasilnode expansion(successor function) ditaruh di belakang
A
B C
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat breadth-first search
Complete?
Ya, jikabterbatas
Time complexity?
b+b2+b3+. . .+bd +b(bd −1) =O(bd+1)→
eksponensial dlm. d.
Space complexity? O(bd+1), karena semua node yang di-generate harus disimpan.
Optimal? Ya, jika semuastep costsama, tapi pada umumnya tidak optimal.
Masalah utama breadth-first search adalahspace
Mis: 1 node memakan 1000 byte, danb=10 Jikad =6, ada 107node≈10 gigabyte. Jikad =12, ada 1013 node≈10 petabyte!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat breadth-first search
Complete? Ya, jikabterbatas
Time complexity?
b+b2+b3+. . .+bd +b(bd −1) =O(bd+1)→
eksponensial dlm. d.
Space complexity? O(bd+1), karena semua node yang di-generate harus disimpan.
Optimal? Ya, jika semuastep costsama, tapi pada umumnya tidak optimal.
Masalah utama breadth-first search adalahspace
Mis: 1 node memakan 1000 byte, danb=10 Jikad =6, ada 107node≈10 gigabyte. Jikad =12, ada 1013 node≈10 petabyte!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat breadth-first search
Complete? Ya, jikabterbatas
Time complexity?
b+b2+b3+. . .+bd +b(bd −1) =O(bd+1)→
eksponensial dlm. d.
Space complexity? O(bd+1), karena semua node yang di-generate harus disimpan.
Optimal? Ya, jika semuastep costsama, tapi pada umumnya tidak optimal.
Masalah utama breadth-first search adalahspace
Mis: 1 node memakan 1000 byte, danb=10 Jikad =6, ada 107node≈10 gigabyte. Jikad =12, ada 1013 node≈10 petabyte!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat breadth-first search
Complete? Ya, jikabterbatas
Time complexity?
b+b2+b3+. . .+bd +b(bd −1) =O(bd+1)→
eksponensial dlm. d.
Space complexity? O(bd+1), karena semua node yang di-generate harus disimpan.
Optimal? Ya, jika semuastep costsama, tapi pada umumnya tidak optimal.
Masalah utama breadth-first search adalahspace
Mis: 1 node memakan 1000 byte, danb=10 Jikad =6, ada 107node≈10 gigabyte. Jikad =12, ada 1013 node≈10 petabyte!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat breadth-first search
Complete? Ya, jikabterbatas
Time complexity?
b+b2+b3+. . .+bd +b(bd −1) =O(bd+1)→
eksponensial dlm. d.
Space complexity?
O(bd+1), karena semua node yang di-generate harus disimpan.
Optimal? Ya, jika semuastep costsama, tapi pada umumnya tidak optimal.
Masalah utama breadth-first search adalahspace
Mis: 1 node memakan 1000 byte, danb=10 Jikad =6, ada 107node≈10 gigabyte. Jikad =12, ada 1013 node≈10 petabyte!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat breadth-first search
Complete? Ya, jikabterbatas
Time complexity?
b+b2+b3+. . .+bd +b(bd −1) =O(bd+1)→
eksponensial dlm. d.
Space complexity? O(bd+1), karena semua node yang di-generate harus disimpan.
Optimal? Ya, jika semuastep costsama, tapi pada umumnya tidak optimal.
Masalah utama breadth-first search adalahspace
Mis: 1 node memakan 1000 byte, danb=10 Jikad =6, ada 107node≈10 gigabyte. Jikad =12, ada 1013 node≈10 petabyte!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat breadth-first search
Complete? Ya, jikabterbatas
Time complexity?
b+b2+b3+. . .+bd +b(bd −1) =O(bd+1)→
eksponensial dlm. d.
Space complexity? O(bd+1), karena semua node yang di-generate harus disimpan.
Optimal?
Ya, jika semuastep costsama, tapi pada umumnya tidak optimal.
Masalah utama breadth-first search adalahspace
Mis: 1 node memakan 1000 byte, danb=10 Jikad =6, ada 107node≈10 gigabyte. Jikad =12, ada 1013 node≈10 petabyte!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat breadth-first search
Complete? Ya, jikabterbatas
Time complexity?
b+b2+b3+. . .+bd +b(bd −1) =O(bd+1)→
eksponensial dlm. d.
Space complexity? O(bd+1), karena semua node yang di-generate harus disimpan.
Optimal? Ya, jika semuastep costsama, tapi pada umumnya tidak optimal.
Masalah utama breadth-first search adalahspace
Mis: 1 node memakan 1000 byte, danb=10 Jikad =6, ada 107node≈10 gigabyte. Jikad =12, ada 1013 node≈10 petabyte!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat breadth-first search
Complete? Ya, jikabterbatas
Time complexity?
b+b2+b3+. . .+bd +b(bd −1) =O(bd+1)→
eksponensial dlm. d.
Space complexity? O(bd+1), karena semua node yang di-generate harus disimpan.
Optimal? Ya, jika semuastep costsama, tapi pada umumnya tidak optimal.
Masalah utama breadth-first search adalahspace
Mis: 1 node memakan 1000 byte, danb=10 Jikad =6, ada 107node≈10 gigabyte. Jikad =12, ada 1013 node≈10 petabyte!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Outline
1 Ulasan 2 Breadth-first 3 Uniform-cost 4 Depth-first 5 Iterative-deepening 6 Pengulanganstate 7 RingkasanIKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Uniform-cost search
Prinsip algoritma uniform-cost search
Lakukan node expansion terhadap node difringeyang path cost-nya paling kecil.
Implementasi: fringeadalah sebuahpriority queuedi mana node disortir berdasarkan path cost function
g(n).
Jika semua step cost sama,uniform-costsama dengan
breadth-first.
Bandingkan denganshortest-path algorithm-nya
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat uniform-cost search
Complete?
Ya, jikastep cost≥untuk >0
Time complexity? Jumlah node dengan
g(n)≤C∗ =O(bbC∗/c+1)di manaC∗adalahcost dari optimal solution
Space complexity? Semua node yang di-generate
harus disimpan≈O(bbC∗/c+1)
Optimal? Ya, karena urutannode expansiondilakukan urutg(n).
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat uniform-cost search
Complete? Ya, jikastep cost≥untuk >0
Time complexity? Jumlah node dengan
g(n)≤C∗ =O(bbC∗/c+1)di manaC∗adalahcost dari optimal solution
Space complexity? Semua node yang di-generate
harus disimpan≈O(bbC∗/c+1)
Optimal? Ya, karena urutannode expansiondilakukan urutg(n).
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat uniform-cost search
Complete? Ya, jikastep cost≥untuk >0
Time complexity?
Jumlah node dengan
g(n)≤C∗ =O(bbC∗/c+1)di manaC∗adalahcost dari optimal solution
Space complexity? Semua node yang di-generate
harus disimpan≈O(bbC∗/c+1)
Optimal? Ya, karena urutannode expansiondilakukan urutg(n).
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat uniform-cost search
Complete? Ya, jikastep cost≥untuk >0
Time complexity? Jumlah node dengan
g(n)≤C∗ =O(bbC∗/c+1)di manaC∗adalahcost dari optimal solution
Space complexity? Semua node yang di-generate
harus disimpan≈O(bbC∗/c+1)
Optimal? Ya, karena urutannode expansiondilakukan urutg(n).
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat uniform-cost search
Complete? Ya, jikastep cost≥untuk >0
Time complexity? Jumlah node dengan
g(n)≤C∗ =O(bbC∗/c+1)di manaC∗adalahcost dari optimal solution
Space complexity?
Semua node yang di-generate
harus disimpan≈O(bbC∗/c+1)
Optimal? Ya, karena urutannode expansiondilakukan urutg(n).
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat uniform-cost search
Complete? Ya, jikastep cost≥untuk >0
Time complexity? Jumlah node dengan
g(n)≤C∗ =O(bbC∗/c+1)di manaC∗adalahcost dari optimal solution
Space complexity? Semua node yang di-generate
harus disimpan≈O(bbC∗/c+1)
Optimal? Ya, karena urutannode expansiondilakukan urutg(n).
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat uniform-cost search
Complete? Ya, jikastep cost≥untuk >0
Time complexity? Jumlah node dengan
g(n)≤C∗ =O(bbC∗/c+1)di manaC∗adalahcost dari optimal solution
Space complexity? Semua node yang di-generate
harus disimpan≈O(bbC∗/c+1)
Optimal?
Ya, karena urutannode expansiondilakukan urutg(n).
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat uniform-cost search
Complete? Ya, jikastep cost≥untuk >0
Time complexity? Jumlah node dengan
g(n)≤C∗ =O(bbC∗/c+1)di manaC∗adalahcost dari optimal solution
Space complexity? Semua node yang di-generate
harus disimpan≈O(bbC∗/c+1)
Optimal? Ya, karena urutannode expansiondilakukan urutg(n).
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Contoh uniform-cost search
Coba gunakan uniform-cost search untuk mencarioptimal solutiondari Arad ke Bucharest!
Giurgiu Urziceni Hirsova Eforie Neamt Oradea Zerind Arad Timisoara Lugoj Mehadia Dobreta Craiova 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
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Outline
1 Ulasan 2 Breadth-first 3 Uniform-cost 4 Depth-first 5 Iterative-deepening 6 Pengulanganstate 7 RingkasanIKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Depth-first search
Prinsip algoritma depth-first search
Lakukan node expansion terhadap node difringeyang palingjauhdariroot.
Implementasi: fringeadalah sebuahstack, data struktur LIFO (Last In First Out)
Hasilnode expansionditaruh di depan
Depth-first search sangat cocok diimplementasikan secararekursif.
A
B C
D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat depth-first search
Complete?
Tidak,bisagagal jikamtak terbatas, atau state space denganloop.
Time complexity? O(bm)→jikamd, parah!
Space complexity? O(bm)→linear space!
Optimal? Tidak.
Depth-first search mengatasi masalahspace
Mis: 1 node memakan 1000 byte, danb=10
Jikad =12, space yang dibutuhkan hanya 118 kilobyte. . .
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat depth-first search
Complete? Tidak,bisagagal jikamtak terbatas, atau state space denganloop.
Time complexity?
O(bm)→jikamd, parah!
Space complexity? O(bm)→linear space!
Optimal? Tidak.
Depth-first search mengatasi masalahspace
Mis: 1 node memakan 1000 byte, danb=10
Jikad =12, space yang dibutuhkan hanya 118 kilobyte. . .
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat depth-first search
Complete? Tidak,bisagagal jikamtak terbatas, atau state space denganloop.
Time complexity? O(bm)→jikamd, parah!
Space complexity? O(bm)→linear space!
Optimal? Tidak.
Depth-first search mengatasi masalahspace
Mis: 1 node memakan 1000 byte, danb=10
Jikad =12, space yang dibutuhkan hanya 118 kilobyte. . .
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat depth-first search
Complete? Tidak,bisagagal jikamtak terbatas, atau state space denganloop.
Time complexity? O(bm)→jikamd, parah!
Space complexity?
O(bm)→linear space!
Optimal? Tidak.
Depth-first search mengatasi masalahspace
Mis: 1 node memakan 1000 byte, danb=10
Jikad =12, space yang dibutuhkan hanya 118 kilobyte. . .
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat depth-first search
Complete? Tidak,bisagagal jikamtak terbatas, atau state space denganloop.
Time complexity? O(bm)→jikamd, parah!
Space complexity? O(bm)→linear space!
Optimal? Tidak.
Depth-first search mengatasi masalahspace
Mis: 1 node memakan 1000 byte, danb=10
Jikad =12, space yang dibutuhkan hanya 118 kilobyte. . .
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat depth-first search
Complete? Tidak,bisagagal jikamtak terbatas, atau state space denganloop.
Time complexity? O(bm)→jikamd, parah!
Space complexity? O(bm)→linear space!
Optimal?
Tidak.
Depth-first search mengatasi masalahspace
Mis: 1 node memakan 1000 byte, danb=10
Jikad =12, space yang dibutuhkan hanya 118 kilobyte. . .
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat depth-first search
Complete? Tidak,bisagagal jikamtak terbatas, atau state space denganloop.
Time complexity? O(bm)→jikamd, parah!
Space complexity? O(bm)→linear space!
Optimal? Tidak.
Depth-first search mengatasi masalahspace
Mis: 1 node memakan 1000 byte, danb=10
Jikad =12, space yang dibutuhkan hanya 118 kilobyte. . .
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Variasi depth-first search
Backtracking search: lakukannode expansion
satu-per-satu. Jika gagalbacktrack dan coba nilai
successor functionyang lain.
Depth-limited search: Batasi kedalaman maksimal yang dilihat adalah`.
Mengatasi masalah untukstate spacetak terbatas. Sayangnya, ada unsurincompletenessbaru, jika` <d. Biasanyad tidak diketahui (tapi bisa ada estimasi, mis. diameter suatu graph).
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Implementasi rekursif
depth-limited search
functionRECURSIVEDLS (node,problem,limit)returnssolutionorfailure/cutoff
cutoff_occurred?←false
ifGOALTEST[problem](STATE[node])then returnSOLUTION(node) else ifDEPTH[node] =limitthen returncutoff
else for eachsuccessorinEXPAND(node,problem)do
result←RECURSIVEDLS(successor,problem,limit) ifresult=cutoffthencutoff_occurred?→true
else ifresult6=failurethen returnresult
ifcutoff_occurred?then returncutoffelse returnfailure
functionDEPTHLIMITEDSEARCH(problem,limit)returnssolutionorfailure/cutoff
returnRECURSIVEDLS(MAKENODE(INITIALSTATE[problem]),problem,limit)
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Outline
1 Ulasan 2 Breadth-first 3 Uniform-cost 4 Depth-first 5 Iterative-deepening 6 Pengulanganstate 7 RingkasanIKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Iterative-deepening search
Prinsip algoritma iterative-deepening search
Lakukan depth-limited search secara bertahap dengan nilai
`yangincremental.
Strategi ini menggabungkan manfaatdepthdan
breadthfirst: space complexitylinierdancompleteness terjamin!
Lakukan depth-limited search dengan`=0,1,2, . . .
sampai tidakcutoff.
functionITERATIVEDEEPENINGSEARCH(problem)returnssolutionor failure
fordepth→0to∞do
result→DEPTHLIMITEDSEARCH(problem,depth) ifresult6=cutoff then returnresult
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Contoh iterative-deepening search
`=0
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Contoh iterative-deepening search
`=1 Limit = 1 A B C A B C A B C A B C
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Contoh iterative-deepening search
`=2 Limit = 2 A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G A B C D E F G
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Contoh iterative-deepening search
`=3 Limit = 3 A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O A B C D E F G H I J K L M N O
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat iterative-deepening search
Complete?
Ya.
Time complexity? db1+ (d−1)b2+. . .+bd =O(bd) Space complexity? O(bd)
Optimal? Ya, jika semuastep costsama. Bisa dimodifikasi spt. uniform-cost tree, namanyaiterative lengthening search.
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat iterative-deepening search
Complete? Ya.
Time complexity? db1+ (d−1)b2+. . .+bd =O(bd) Space complexity? O(bd)
Optimal? Ya, jika semuastep costsama. Bisa dimodifikasi spt. uniform-cost tree, namanyaiterative lengthening search.
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat iterative-deepening search
Complete? Ya.
Time complexity?
db1+ (d−1)b2+. . .+bd =O(bd) Space complexity? O(bd)
Optimal? Ya, jika semuastep costsama. Bisa dimodifikasi spt. uniform-cost tree, namanyaiterative lengthening search.
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat iterative-deepening search
Complete? Ya.
Time complexity? db1+ (d−1)b2+. . .+bd =O(bd) Space complexity?
O(bd)
Optimal? Ya, jika semuastep costsama. Bisa dimodifikasi spt. uniform-cost tree, namanyaiterative lengthening search.
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat iterative-deepening search
Complete? Ya.
Time complexity? db1+ (d−1)b2+. . .+bd =O(bd) Space complexity? O(bd)
Optimal? Ya, jika semuastep costsama. Bisa dimodifikasi spt. uniform-cost tree, namanyaiterative lengthening search.
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat iterative-deepening search
Complete? Ya.
Time complexity? db1+ (d−1)b2+. . .+bd =O(bd) Space complexity? O(bd)
Optimal?
Ya, jika semuastep costsama. Bisa dimodifikasi spt. uniform-cost tree, namanyaiterative lengthening search.
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat iterative-deepening search
Complete? Ya.
Time complexity? db1+ (d−1)b2+. . .+bd =O(bd) Space complexity? O(bd)
Optimal? Ya, jika semuastep costsama. Bisa dimodifikasi spt. uniform-cost tree, namanyaiterative lengthening search.
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Kinerja iterative-deepening search
Secara sekilas, strategi ini kelihatan tidak efisien, atau boros: banyak usaha terulang!
Iterative-deepening search malahlebih cepatdari breadth-first search! N(IDS) =db+ (d−1)b2+. . .+ (1)bd N(BFS) =b+b2 +. . .+bd + (bd+1−b ) Untukb=10 dand=5: N(IDS) =50+400+3,000+20,000+100,000=123,450 N(BFS) =10+100+1,000+10,000+100,000+999,990=1,111,100.
Pada umumnya,iterative deepening searchadalah
uninformed search strategyyangterbaikjikastate space
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Perbandingan strategi pencarian
Criterion Breadth- Uniform- Depth- Depth- Iterative
First Cost First Limited Deepening
Complete? Ya∗ Ya∗ Tidak Ya, jk`≥d Ya
Time bd+1 bbC∗/c+1 bm b` bd
Space bd+1 bbC∗/c+1 bm b` bd
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Outline
1 Ulasan 2 Breadth-first 3 Uniform-cost 4 Depth-first 5 Iterative-deepening 6 Pengulanganstate 7 RingkasanIKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Masalah:
state
yang mengulang di dalam
search tree
Kegagalan menanganistate yang mengulang dapat membuat masalah linier menjadi eksponensial!
A B C D A B B C C C C
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Solusi: belajar dari sejarah
Algorithms that forget their history are doomed to repeat it...
Solusinya adalah untuk mencatatstate mana yang sudah pernah dicoba. Catatan ini disebutclosed list
(fringe=open list).
Modifikasi algoritma TREESEARCHdenganclosed list
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Algoritma G
RAPHS
EARCHfunctionGRAPHSEARCH(problem,fringe)returnssolutionorfailure closed← {}
fringe←INSERT(MAKENODE(INITIALSTATE(problem)),fringe)
loop do
ifEMPTY?(fringe)then returnfailure
node←REMOVEFIRST(fringe)
ifGOALTEST(problem) applied to STATE(node) succeeds
then returnSOLUTION(node)
ifSTATE[node]∈/closedthen
add STATE[node] toclosed
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Sifat G
RAPHS
EARCHTime complexity: sama, jika kita asumsi operasi STATE[node]∈/closed =O(1)(implementasi dengan hashtable?)
Space complexity: DFS dan IDS tidak lagi linier!
GRAPHSEARCHtidak mencatatpathmenuju suatu
state. Ini mempengaruhi sifatoptimality suatu strategi:
Uniform-costdanbreadth-first searchdenganstep cost konstanta masih optimal (kenapa?).
Untuk variasiDepth-firstdaniterative-deepening search, jikastatemengulang ditemukan, periksa apakahpath cost-nya lebih kecil→updateinfonode dan anak-anaknya!
IKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Outline
1 Ulasan 2 Breadth-first 3 Uniform-cost 4 Depth-first 5 Iterative-deepening 6 Pengulanganstate 7 RingkasanIKI30320 Kuliah 4 5 Sep 2007 Ruli Manurung Ulasan Breadth-first Uniform-cost Depth-first Iterative-deepening Pengulangan state Ringkasan
Ringkasan
Breadth-first search:completenessterjamin, tapi rakus memory.
Uniform-cost search: mirip BFS,optimality terjamin jika
cost path≥untuk >0.
Depth-first search: Space complexitylinier, tetapi tidak
complete (maupunoptimal).
Depth-limited search: mirip DFS, tetapi kedalaman search dibatasi sampai`.
Iterative-deepening search: lakukan DLS secara bertahap dengan`=0,1,2, . . ..
Pengulanganstate bisa dihindari dengan mencatat
state yang sudah pernah dicoba.