TEKNIK SEARCHING
Searching
Teknik
Pemecahan Reasoning
Masalah
Dalam Planning
AI
Learning
Teknik Searching
Mendefinisikan Mendefinisikan Memilih Metode
Ruang Masalah Aturan Produksi Pencarian
Digambarkan sebagai
himpunan keadaan (state) Memilih metode pencarian
atau bisa juga sebagai Digunakan untuk mengubah yang tepat sehingga dapat
himpunan rute dari keadaan suatu state ke state lainnya. menemukan solusi terbaik
awal (initial state) menuju dengan usaha yang minimal
keadaan tujuan (goal state).
Ruang Masalah
Aturan Produksi (0,0) sebagai simpul akar (root) dari sebuah pohon , maka
kita dapat menelusuri simpul-simpul / node (keadaan –
keadaan) berikutnya yang mungkin terjadi.
Aturan Produksi
4,0 0,3
2 1
1. Penuhkan galon A dengan 5 6
kran air. [ if ( x < 4 ) ] 3,0
1,3 4,3
2. Penuhkan galon B dengan
kran air. [ if ( y < 3 ) ] 4 2
3. Buang semua air dalam 3,3
1,0
galon A. [ if ( x > 0 ) ]
4. Buang semua air dalam 5 6
galon B. [ if ( y > 0 ) ]
0,1 4,2
5. Tuangkan air dari galon A
ke galon B hingga penuh / 1 3
habis. [ if x + y >= 3] [if x +
4,1 0,2
y <= 3 ]
6. Tuangkan air dari galon B 5 6
ke galon A hingga penuh/
2,3 2,0
habis. [ if x + y >= 4] [ if x +
y <= 4 ]
Metode – Metode Pencarian
Optimality:
Space Complexity :
Apakah metode tersebut menjamin
Berapa banyak memori yang diperlukan
menemukan solusi yang terbaik jika
?
terdapat beberapa solusi berbeda?
Blind / Un-informed Search
1. Breadth-First Search (BFS)
Pencarian dilakukan pada semua simpul / node dalam setiap level secara berurutan dari kiri
ke kanan. Jika pada satu level belum ditemukan solusi, maka pencarian dilanjutkan pada level
berikutnya.
BFS menjamin ditemukan solusi (jika solusinya memang ada) dan solusi yang ditemukan pasti
yang paling baik. Sehingga BFS ini secara kriteria memenuhi completeness dan optimality.
BFS harus menyimpan semua simpul / node yang pernah dibangkitkan . Hal ini harus
dilakukan agar BFS dapat melakukan penelusuran simpul/node sampai di level bawah.
Sehingga hal ini bias memakan waktu dan memori.
0,0 Open List Close List
1 2
0,0 - x - x 0,0 - x – x
4,0 0,3 4,0 - 0,0 - 1 4,0 - 0,0 - 1
2 1
6 0,3 - 0,0 - 2 0,3 - 0,0 - 2
5
4,3 - 4,0 - 2 4,3 - 4,0 - 2
1,3 4,3 3,0 1,3 - 4,0 - 5 1,3 - 4,0 - 5
3,0 - 0,3 - 6 3,0 - 0,3 - 6
4 2
1,0 - 1,3 - 4 1,0 - 1,3 - 4
1,0 3,3 3,3 - 3,0 - 2 3,3 - 3,0 - 2
0,1 - 1,0 - 5 0,1 - 1,0 - 5
5 6
4,2 - 3,3 - 6 4,2 - 3,3 - 6
0,1 4,2 4,1 - 0,1 - 1 4,1 - 0,1 - 1
0,2 - 4,2 - 3 0,2 - 4,2 - 3
1 3
2,3 - 4,1 - 5 2,3 - 4,1 - 5
4,1 0,2
5 6
2,0
(2,n)
2,3
Aturan Produksi Sebuah solusi untuk masalah galon air (2,n). Diperlukan 6
langkah untuk menyelesaikan masalah tersebut.
1. Penuhkan galon A dengan
kran air. [ if ( x < 4 ) ] Jumlah Air Dalam Jumlah Air Dalam Aturan Produksi
2. Penuhkan galon B dengan Galon 4 L Galon 3 L Yang di
kran air. [ if ( y < 3 ) ] Aplikasikan
3. Buang semua air dalam 0 0 -
galon A. [ if ( x > 0 ) ] 4 0 1
4. Buang semua air dalam 1 3 5
galon B. [ if ( y > 0 ) ]
1 0 4
5. Tuangkan air dari galon A
ke galon B hingga penuh / 0 1 5
habis. [ if x + y >= 3] [if x + 4 1 1
y <= 3 ] 2 3 5
6. Tuangkan air dari galon B
ke galon A hingga penuh/
habis. [ if x + y >= 4] [ if x +
y <= 4 ]
Blind / Un-informed Search
2. Depth-First Search (DFS)
Pencarian dilakukan pada semua simpul / node dalam setiap level. Jika pada level yang
terdalam belum ditemukan solusi, maka pencarian dilanjutkan pada simpul sebelahnya
dan simpul sebelumnya dapat dihapus dari memori. Jika pada level yang paling dalam
tidak ditemukan solusi , maka pencarian dilanjutkan pada level sebelumnya.
Kelebihan DFS adalah pemakaian memori yang lebih sedikit dan lebih cepat
Kelemahan DFS adalah jika pohon yang dibangkitkan mempunyai level yang sangat dalam
(tak terhingga), maka tidak ada jaminan menemukan solusi yang berarti DFS tidak
complete.
0,0 Open List Close List
1 2
0,0 - x - x 0,0 - x – x
4,0 0,3 4,0 - 0,0 - 1 0,3 - 0,0 - 2
2 1
6 0,3 - 0,0 - 2 3,0 - 0,3 - 6
5
4,3 - 4,0 - 2 3,3 - 3,0 - 2
1,3 4,3 3,0 3,0 - 0,3 - 6 4,2 - 3,3 - 6
3,3 - 3,0 - 2 0,2 - 4,2 - 3
4 2
4,2 - 3,3 - 6 2,0 - 0,2 - 6
1,0 3,3 0,2 - 4,2 - 3
2,0 – 0,2 - 6
5 6
0,1 4,2
1 3
4,1 0,2
5 6
2,0
(2,n)
2,3
Aturan Produksi Sebuah solusi untuk masalah galon air (2,n). Diperlukan 6
langkah untuk menyelesaikan masalah tersebut.
1. Penuhkan galon A dengan
kran air. [ if ( x < 4 ) ] Jumlah Air Dalam Jumlah Air Dalam Aturan Produksi
2. Penuhkan galon B dengan Galon 4 L Galon 3 L Yang di
kran air. [ if ( y < 3 ) ] Aplikasikan
3. Buang semua air dalam 0 0 -
galon A. [ if ( x > 0 ) ] 0 3 2
4. Buang semua air dalam 3 0 6
galon B. [ if ( y > 0 ) ]
3 3 2
5. Tuangkan air dari galon A
ke galon B hingga penuh / 4 2 6
habis. [ if x + y >= 3] [if x + 0 2 3
y <= 3 ] 2 0 6
6. Tuangkan air dari galon B
ke galon A hingga penuh/
habis. [ if x + y >= 4] [ if x +
y <= 4 ]
Kuis