MASALAH, RUANG KEADAAN & PENCARIAN

dokumen-dokumen yang mirip
Sistem Kecerdasan Buatan. Masalah, Ruang Masalah dan Pencarian Solusi. Masalah. Masalah Sebagai Ruang Keadaan 10/7/2015

BAB II MASALAH DAN RUANG MASALAH. Gambar 2.1 sistem yang menggunakan kecerdasan buatan

MASALAH, RUANG KEADAAN. Kecerdasan Buatan

Masalah, Ruang Keadaan, Pencarian. Kecerdasan Buatan Pertemuan 2 Yudianto Sujana

memberikan output berupa solusi kumpulan pengetahuan yang ada.

ALGORITMA PENCARIAN (1)

MASALAH, RUANG KEADAAN

Masalah, Ruang Masalah dan Pencarian

INTELEGENSI BUATAN. Pertemuan 2,3 Problem, Space, Search. M. Miftakul Amin, M. Eng. website :

BAB III REPRESENTASI RUANG KEADAAN ( STATE SPACE) keadaan baru yang akan dicapai dengan menggunakan operator. Node-node dalam graph

Masalah, Ruang Masalah dan Pencarian

Update 2012 DESAIN DAN ANALISIS ALGORITMA SEARCHING

SISTEM INTELEGENSIA. Pertemuan 3 Diema HS, M. Kom

KECERDASAN BUATAN MASALAH, RUANG KEADAAN DAN PENCARIAN ERWIEN TJIPTA WIJAYA, ST., M.KOM

SEARCHING. Blind Search & Heuristic Search

HEURISTIC SEARCH UTHIE

Bab 2 2. Teknik Pencarian

METODE PENCARIAN DAN PELACAKAN

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

Hal penting dalam menentukan keberhasilan sistem cerdas adalah kesuksesan dalam pencarian.

Perangkat Lunak Simulasi Langkah Kuda Dalam Permainan Catur

BAB II LANDASAN TEORI

Implementasi Permainan Reversi menggunakan Penelusuran BFS dengan Konsep Algoritma MinMax

ALGORITMA PENCARIAN (HEURISTIC)

ARTIFICIAL INTELLIGENCE

Masalah, Ruang Keadaan dan Pencarian 4/7/2016. fakultas ilmu komputer program studi informatika

Pencarian. Kecerdasan Buatan Pertemuan 3 Yudianto Sujana

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

Penerapan Algoritma BFS, DFS, DLS dan IDS dalam Pencarian Solusi Water Jug Problem

BAB III METODE PELACAKAN/PENCARIAN

Kecerdasan Buatan (Artificial Intelligence) Muhammad Dahria

TEKNIK PENYELESAIAN MASALAH BERDASARKAN AI

SSSS, Problem Solving. State Space Search. Erick Pranata. Edisi I

Jurnal Teknologi Informasi dan Komunikasi ISSN: STMIK Subang, Oktober 2012

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug

PERBANDINGAN METODE PENCARIAN DEPTH-FIRST SEARCH, BREADTH-FIRST SEARCH DAN BEST-FIRST SEARCH PADA PERMAINAN 8-PUZZLE

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

BAB II PEMECAHAN MASALAH DENGAN AI

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI

JURNAL INFORMATIKA SIMULASI PERGERAKAN LANGKAH KUDA MENGGUNAKAN METODE BREADTH FIRST SEARCH

Penerapan Metode Best First Search Pada Permainan Tic Tac Toe

Jurnal TIME, Vol. II No 2 : 18-26, 2013 ISSN

Implementasi Algoritma BFS dan DFS dalam Penyelesaian Token Flip Puzzle

BAB 2 LANDASAN TEORI

Masalah, Ruang Keadaan dan Pencarian 4/7/2016. fakultas ilmu komputer program studi informatika

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

UNIVERSITAS GUNADARMA

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN MATH MAZE

BAB IV TEKNIK PELACAKAN

Pengantar Sistem Pakar

PENERAPAN ALGORITMA BFS PADA CHINESE SLIDE BLOCK PUZZLE (KLOTSKI)

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

PENERAPANAN ALGORITMA BFS, DFS, DAN UCS UNTUK MENCARI SOLUSI PADA MASALAH ROMANIA

Penerapan BFS dan DFS pada Pencarian Solusi

KECERDASAN BUATAN METODE HEURISTIK / HEURISTIC SEARCH ERWIEN TJIPTA WIJAYA, ST., M.KOM

Pemanfaatan Pohon dalam Realisasi Algoritma Backtracking untuk Memecahkan N-Queens Problem

B. DASAR TEORI AlGORITMA TRAVERSAL GRAPH Terdapat beberapa perbedaan Tree dan Graph dijelaskan pada tabel Tabel 31.1 Perbedaan Tree dan Graph

Jurnal Mahajana Informasi, Vol.1 No 2, 2016 e-issn: SIMULASI PERGERAKAN CHESS KNIGHT DALAM PAPAN CATUR

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

METODE PENCARIAN. Irvanizam Zamanhuri, M.Sc Dr. Taufiq A. Gani, M.EngSc

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Artificial Intelegence/ P_2. Eka Yuniar

Penerapan BFS dan DFS pada Pencarian Solusi

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

ANALISA KEBUTUHAN WAKTU PADA PROSES PENYELESAIAN TRAVELING SALESMAN PROBLEM

Penerapan Algoritma DFS dan BFS untuk Permainan Wordsearch Puzzle

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

PENGEMBANGAN MEDIA PEMBELAJARAN SISTEM PELACAKAN PADA MATA KULIAH KECERDASAN BUATAN BERBASIS MULTIMEDIA

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

Penggunaan Metode Depth First Search (DFS) dan Breadth First Search (BFS) pada Strategi Game Kamen Rider Decade Versi 0.3

Contoh 4/7/ HEURISTIC METHOD. Pencarian Heuristik

AI sebagai Masalah Pelacakan. Lesson 2

3. Bagaimana menguji dan cara memperbaiki kesalahan apabila terjadi

Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Teknik Pencarian Heuristik

PENGEMBANGAN MEDIA PEMBELAJARAN SISTEM PELACAKAN PADA MATA KULIAH KECERDASAN BUATAN BERBASIS MULTIMEDIA

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

Vol.15 No.2. Agustus 2013 Jurnal Momentum ISSN : X RANCANG BANGUN ROBOT SOLVING MAZE DENGAN ALGORITMA DEPTH FIRST SEARCH

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

AI sebagai Masalah Pelacakan. Lesson 2

Penggunaan Algoritma DFS dalam Pencarian Strategi Permainan Catur

03/03/2015. Agenda Teknik Dasar Pencarian Teknik Pemecahan Masalah Strategi Pencarian Mendalam Pencarian Heuristik

BAB II DASAR TEORI. Sistem pakar atau Expert System biasa disebut juga dengan knowledge

Metode Searching. Blind/Un-informed Search. Heuristic/Informed Search. Breadth-First Search (BFS) Depth-First Search (DFS) Hill Climbing A*

Penerapan BFS dan DFS dalam Garbage Collection

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Search Strategy. Search Strategy

BAB 2 TINJAUAN PUSTAKA

TEKNIK PENCARIAN HEURISTIK (HEURISTIC SEARCHING)

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Penerapan Algoritma BFS dan DFS dalam Permainan Ular Tangga

Pemanfaatan Algoritma Sequential Search dalam Pewarnaan Graf untuk Alokasi Memori Komputer

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

PENERAPAN ALGORITMA A* PADA PERMASALAHAN OPTIMALISASI PENCARIAN SOLUSI DYNAMIC WATER JUG

Transkripsi:

MASALAH, RUANG KEADAAN & PENCARIAN 1

Pokok Bahasan Mendefinisikan Masalah dalam Ruang Keadaan Representasi Ruang Keadaan Metode Pencarian & Pelacakan 2

Artificial Intelligence ARTIFICIAL INTELLIGENCE Input: MASALAH Output: SOLUS I Knowledge Base Inference Engine 3

Keadaan awal : Permainan Catur 4

Aturan-aturan untuk melakukan gerakan secara legal 5

IF Bidak putih pada Kotak(e,2), And Kotak(E,3) Kosong, And Kotak(E,4) Kosong Then Gerakkan bidak dari (E,2) ke (E,4) 6

Tujuan yang ingin dicapai adalah posisi pada papan catur yang menunjukkan kemenangan seseorang terhadap lawannya. Kemenangan ini ditandai dengan posisi Raja yang sudah tidak dapat bergerak lagi. 7

Ruang Keadaan suatu ruang yang berisi semua keadaan yang mungkin 8

Penyelesaian masalah secara umum Mendefinisikan suatu ruang keadaan; Menetapkan satu atau lebih keadaan awal; Menetapkan satu atau lebih tujuan; Menetapkan kumpulan aturan. 9

Representasi Ruang Keadaan Graph Keadaan Pohon Pelacakan Pohon AND/OR Kasus 10

Graph Keadaan M 4 5 A 3 3 B C 4 F 6 E 2 7 8 H 6 1 T G D 2 I 4 J 11

Lintasan dari M ke T: M-A-B-C-E-T M-A-B-C-E-H-T M-D-C-E-T M-D-C-E-H-T Lintasan yang menemui jalan buntu (tidak sampai ke T): M-A-B-C-E-F-G M-A-B-C-E-I-J M-D-C-E-F-G M-D-C-E-I-J M-D-I-J 12

Pohon Pelacakan M Level-0 A D Level-1 B I C Level-2 C J Buntu E Level-3 E F I H T Level-4 F G Buntu I J Buntu H T Tujuan T Tujuan G Buntu J Buntu T Tujuan Tujuan Level-5 Level-6 13

Pohon AND/OR M M A B C arc yang terletak antara busur berarti AND A B C (a) (b) 14

M Level-0 A B C E D C E Level-1 H T T H T T Level-2 15

Contoh: Masalah Teko Air Ada 2 buah teko masing-masing berkapasitas 4 galon (teko A) dan 3 galon (teko B). Tidak ada tanda yang menunjukkan batas ukuran pada kedua teko tersebut. Ada sebuah pompa air yang akan digunakan untuk mengisikan air pada kedua teko tersebut. Permasalahannya: Bagaimanakah kita dapat mengisikan tepat 2 galon air ke dalam teko yang berkapasitas 4 galon? 4 galon (teko A) 3 galon (teko B) Air tak terbatas 16

Penyelesaian Identifikasi ruang keadaan: Permasalahan ini dapat direpresentasikan dengan 2 bilangan integer, yaitu x dan y: x = air yang diisikan pada teko 4 galon (teko A); y = air yang diisikan pada teko 3 galon (teko B); Ruang keadaan: (x,y) sedemikian hingga x {0,1,2,3,4} dan y {0,1,2,3}. Keadaan awal & tujuan: Keadaan awal, kedua teko dalam keadaan kosong: (0,0); Tujuan, keadaan dimana pada teko 4 galon berisi tepat 2 galon air: (2,n) untuk sembarang n. 17

Keadaan Awal Tujuan (0,0) (1,0) (2,0) (3,0) (4,0) (0,1) (1,1) (2,1) (3,1) (4,1) (0,2) (1,2) (2,2) (3,2) (4,2) (0,3) (1,3) (2,3) (3,3) (4,3) 18

Aturan-aturan Aturan ke- Jika Maka 1. (x,y) x < 4 2. (x,y) y < 3 3. (x,y) x > 0 4. (x,y) y > 0 5. (x,y) x > 0 6. (x,y) y > 0 (4,y) Isi teko A. (x,3) Isi teko B. (x-d,y) Tuangkan sebagian air keluar dari teko A. (x,y-d) Tuangkan sebagian air keluar dari teko B. (0,y) Kosongkan teko A dengan membuang airnya ke tanah. (x,0) Kosongkan teko B dengan membuang airnya ke tanah. 19

7. (x,y) x+y 4 dan y > 0 8. (x,y) x+y 3 dan x > 0 9. (x,y) x+y 4 dan y > 0 10. (x,y) x+y 3 dan x > 0 (4,y-(4-x)) Tuangkan air dari teko B ke teko A sampai teko A penuh. (x-(3-y),3) Tuangkan air dari teko A ke teko B sampai teko B penuh. (x+y,0) Tuangkan seluruh air dari teko B ke teko A. (0,x+y) Tuangkan seluruh air dari teko A ke teko B. 11. (0,2) (2,0) Tuangkan 2 galon air dari teko B ke teko A. 12. (2,y) (0,y) Kosongkan 2 galon air di teko A dengan membuang airnya ke tanah. 20

Representasi ruang keadaan dengan pohon pelacakan. (0,0) (4,0) (0,3) (4,3) (0,0) (1,3) (4,3) (0,0) (3,0) 21

Salah satu solusi: Isi Teko A (gallon) Isi Teko B (gallon) Aturan yang dipakai 0 0 2 0 3 9 3 0 2 3 3 7 4 2 5 0 2 9 2 0 solusi 22

Metode Pencarian & pelacakan Pencarian Buta (Blind Search) Breadth-First Search Depth-First Search Pencarian Terbimbing (Heuristics Search) Generate & Test Hill Climbing Best-First Search Tabu Search Simulated Annealing 23

Breadth-First Search Pada metode Breadth-First Search, semua node pada level n akan dikunjungi terlebih dahulu sebelum mengunjungi node-node pada level n+1. Pencarian dimulai dari node akar terus ke level ke-1 dari kiri ke kanan, kemudian berpindah ke level berikutnya demikian pula dari kiri ke kanan hingga ditemukannya solusi Dalam metode BFS, node anak yang telah dikunjungi disimpan dalam suatu QUEUE (antrian). QUEUE ini digunakan untuk mengacu simpul-simpul yang bertetangga dengan yang akan dikunjungi sesuai antrean. 24

Breadth-First Search A B C D E F G H I J K L M 25

Breadth-First Search Keuntungan: Tidak akan menemui jalan buntu. Jika ada satu solusi, maka breadth-first search akan menemukannya. Dan jika ada lebih dari satu solusi, maka solusi minimum akan ditemukan. Kelemahan: Membutuhkan memori yang cukup banyak, karena menyimpan semua node dalam satu pohon. Membutuhkan waktu yang cukup lama, karena akan menguji n level untuk mendapatkan solusi pada level yang ke-(n+1) 26

Breadth-First Search Berikut adalah langkah-langkah algoritma BFS 1. Masukkan node akar ke dalam QUEUE 2. Ambil node dari awal QUEUE, lalu cek apakah node merupakan solusi 3. Jika node merupakan solusi, pencarian selesai dan hasil dikembalikan 4. Jika node bukan solusi, masukkan seluruh node anak ke dalam QUEUE 5. Jika QUEUE kosong dan setiap node sudah dicek, pencarian selesai. 6. Jika QUEUE tidak kosong, ulangi pencarian mulai dari poin 2 27

Breadth-First Search Kasus 1 Diketahui : pohon pelacakan yang ada pada gambar di samping ini : Pertanyaan : implementasika n algoritma BFS untuk mencari solusi dari node awal (start) S sampai node G (goal) 28

Solusi : Breadth-First Search Iterasi ke 1 masukkan node S ke QUEUE gambar antriannya : QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan S representasi ruang keadaan : 29

Breadth-First Search keluarkan S dari QUEUE dan cek apakah S adalah goal? QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan ternyata S goal 30

Breadth-First Search S punya anak A dan B, masukkan ke dalam QUEUE QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan Representasi ruang keadaan B A 31

Breadth-First Search Iterasi ke 2 keluarkan A dari QUEUE dan cek apakah A adalah goal? QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan B Ternyata A Goal 32

A punya anak C dan D, masukkan ke QUEUE QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan D C B Breadth-First Search Representasi Ruang Keadaan 33

Iterasi ke 3 keluarkan B dari QUEUE dan cek apakah B adalah goal? QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan D C Breadth-First Search Ternyata B Goal B punya anak E dan F, masukkan ke QUEUE QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan F E D C 34

Breadth-First Search Representasi Ruang Keadaan 35

Iterasi ke 4 keluarkan C dari QUEUE dan cek apakah C adalah goal? QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan F E D Breadth-First Search Ternyata C Goal C tidak punya anak, jadi tidak ada yang dimasukkan ke QUEUE QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan F E D 36

Breadth-First Search Representasi Ruang Keadaan 37

Iterasi ke 5 keluarkan D dari QUEUE dan cek apakah D adalah goal? QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan F E Breadth-First Search Ternyata D Goal D tidak punya anak, jadi tidak ada yang dimasukkan ke QUEUE QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan F E 38

Breadth-First Search Representasi Ruang Keadaan 39

Iterasi ke 6 keluarkan E dari QUEUE dan cek apakah E adalah goal? QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan F Breadth-First Search Ternyata E Goal E punya anak H dan G, masukkan ke QUEUE QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan G H F 40

Breadth-First Search Representasi Ruang Keadaan 41

Iterasi ke 7 keluarkan F dari QUEUE dan cek apakah F adalah goal? QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan G H Breadth-First Search Ternyata F Goal F tidak punya anak, jadi tidak ada yang dimasukkan ke QUEUE QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan G H 42

Breadth-First Search Representasi Ruang Keadaan 43

Iterasi ke 8 keluarkan H dari QUEUE dan cek apakah H adalah goal? QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan G Breadth-First Search Ternyata H Goal H tidak punya anak, jadi tidak ada yang dimasukkan ke QUEUE QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan G 44

Breadth-First Search Representasi Ruang Keadaan 45

Iterasi ke 9 keluarkan G dari QUEUE dan cek apakah G adalah goal? QUEUE Masuk Lewat Pintu Kiri, Keluar Lewat Pintu kanan Breadth-First Search Ternyata G = Goal Pencarian Dihentikan. Mencari Solusi : G anaknya E, dan E anaknya B, dan B anaknya S Karena S adalah node akar maka pencarian solusi dihentikan dan diperoleh solusi S B E G 46

Kasus 2 Metode BFS Implementasi BFS pada masalah gelas air Misalkan diketahui : Keadaaan awal : (0,0) [keadaan sekarang = (0,0)] Tujuan (Goal) : (1,0) [keadaan akhir = (1,0)] Iterasi : terapkan kumpulan aturan berikut hingga keadaan sekarang = goal 1. Isi penuh gelas berkapasitas 4 liter jika keadaan sekarang x < 4, maka keadaan selanjutnya (4,y) 2. Isi penuh gelas berkapasitas 3 liter jika keadaan sekarang y < 3, maka keadaan selanjutnya (x,3) 47

Breadth-First Search 3. kosongkan gelas berkapasitas 4 liter jika keadaan sekarang x >0, maka keadaan selanjutnya (0,y) 4. kosongkan gelas berkapasitas 3 liter jika keadaan sekarang y>0, maka keadaan selanjutnya (x,0) 5. tuangkan sebagian isi gelas berkapasitas 3 liter ke gelas berkapasitas 4 liter hingga gelas berkapasitas 4 liter penuh jika keadaan sekarang x+y>4 dan y>0, maka keadaan selanjutnya adalah (4, y+x-4) 48

Breadth-First Search 6. Tuangkan sebagian isi gelas berkapasitas 4 liter ke gelas berkapasitas 3 liter hingga gelas berkapasitas 3 liter penuh jika keadaan sekarang x+y > 3 dan x > 0, maka keadaan selanjutnya adalah (y+x-3, 3) 7. tuangkan seluruh isi gelas berkapasitas 4 liter ke gelas berkapasitas 3 liter jika keadaan sekarang x+y 3 dan x>0 maka keadaan selanjutnya adalah 0, y+x) 8. tuangkan seluruh isi gelas berkapasitas 3 liter ke gelas berkapasitas 4 liter. jika keadaan sekarang (x+y 4 dan y > 0, maka keadaan selanjutnya adalah (y+x, 0) 49

Breadth-First Search Solusi : Keadaan awal QUEUE : [(0,0)] close = [] Iterasi ke -1 ambil keadaan sekarang (0,0) goal, masukkan ke close, maka QUEUE = [] close = [(0,0)] terapkan aturan ke-1 s/d 8. yang memenuhi syarat dari aturan itu hanya aturan ke-1 dan ke-2 50

Breadth-First Search Keadaan sekarang = (0,0) kena aturan 1 menjadi (4,0) Keadaan sekarang = (0,0) kena aturan 2 menjadi (0,3) (0,0) mempunyai anak (4,0) dan (0,3), lalu masukkan ke QUEUE QUEUE = [(0,3), (4,0)] close = [(0,0)] Representasi ruang keadaan 51

Iterasi ke 2 Breadth-First Search QUEUE = [(0,3), (4,0)] CLOSE = [(0,0)] Ambil keadaan sekarang (4,0) goal, masukkan ke CLOSE, sehingga QUEUE = [(0,3)] CLOSE = [(0,0), (4,0)] Catatan : keadaan sekarang diambil dari QUEUE yang paling kanan Terapkan aturan ke-1 s/d ke-8, yang memenuhi syarat hanya aturan ke-2, 3 dan 6 52

Breadth-First Search Keadaan sekarang = (4,0) kena aturan 2 menjadi (4,3) Keadaan sekarang = (4,0) kena aturan 3 menjadi (0,0) Karena (0,0) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam QUEUE. Keadaan sekarang = (4,0) kena aturan 6 menjadi (1,3) (4,0) punya anak (4,3) dan (1,3), masukkan ke QUEUE 53

QUEUE = [(1,3), (4,3), (0,3)] CLOSE = [(0,0), (4,0)] Breadth-First Search Representasi ruang keadaan dalam bentuk pohon pelacakan adalah : 54

Iterasi ke 3 QUEUE = [(1,3), (4,3), (0,3)] CLOSE = [(0,0), (4,0)] Ambil keadaan sekarang (0,3) goal, masukkan ke CLOSE, sehingga QUEUE = [(1,3), (4,3)] CLOSE = [(0,0), (4,0), (0,3)] Catatan : keadaan sekarang diambil dari QUEUE yang paling kanan Breadth-First Search Terapkan aturan ke-1 s/d ke-8, yang memenuhi syarat hanya aturan ke-1, 4 dan 8 55

Breadth-First Search Keadaan sekarang = (0,3) kena aturan 1 menjadi (4,3) Karena (4,3) sama dengan node sebelumnya, maka tidak dimasukkan dalam QUEUE Keadaan sekarang = (0,3) kena aturan 4 menjadi (0,0) Karena (0,0) sama dengan node sebelumnya, maka tidak dimasukkan dalam QUEUE Keadaan sekarang = (0,3) kena aturan ke-8 menjadi = (3,0) 56

(0,3) punya anak (3,0), masukkan ke QUEUE QUEUE = [(3,0), (1,3), (4,3)] CLOSE = [(0,0),(4,0),(0,3)] Breadth-First Search Representasi ruang keadaan dalam bentuk pohon pelacakan adalah : 57

Breadth-First Search Iterasi ke - 4 QUEUE = [(3,0), (1,3), (4,3)] CLOSE = [(0,0), (4,0), (0,3)] Ambil keadaan sekarang (4,3) goal, masukkan ke CLOSE, sehingga QUEUE = [(3,0), (1,3)] CLOSE = [(0,0), (4,0), (0,3), (4,3)] Terapkan aturan ke-1 s/d 8, yang memenuhi syarat hanya aturan ke-3 dan 4 58

Breadth-First Search Keadaan sekarang = (4,3), kena aturan ke- 3 menjadi (0,3) Karena (0,3) sama dengan node sebelumnya, maka tidak dimasukkan dalam QUEUE Keadaan sekarang = (4,3) kena turan ke-4 menjadi (4,0) Karena (4,0) sama dengan node sebelumnya, maka tidak dimasukkan dalam QUEUE 59

(4,3) tidak puya anak, maka QUEUE = [(3,0), (1,3)] CLOSE = [(0,0), (4,0), (0,3), (4,3)] Breadth-First Search Representasi keadaan dalam bentuk pohon pelacakan : 60

Breadth-First Search Iterasi ke- 5 QUEUE = [(3,0), (1,3)] CLOSE = [(0,0), (4,0), (0,3), (4,3)] Ambil keadaan sekarang (1,3) goal, masukkan ke CLOSE, sehingga QUEUE = [(3,0)] CLOSE = [(0,0), (4,0), (0,3), (4,3), (1,3)] Terapkan aturan ke-1 s/d 8, yang memenuhi syarat hanya aturan ke-1,3,4 dan 8 61

Breadth-First Search Keadaan sekarang = (1,3) kena aturan ke-1 menjadi = (4,3) Karena (4,3) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam QUEUE Keadaan sekarang = (1,3) kena aturan ke-3 menjadi (0,3) Karena (0,3) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam QUEUE Keadaan sekarang = (1,3) kena aturan ke-4 menjadi keadaan selanjutnya = (1,0) Keadaan sekarang = (1,3) kena aturan ke-8 menjadi = (4,0) Karena (4,0) sama dengan node sebelumny, maka tidak dimasukkan dalam QUEUE 62

Breadth-First Search (1,3) punya anak (1,0), masukkan ke QUEUE QUEUE = [(1,0), (3,0)] CLOSE = [(0,0), (4,0), (0,3), (4,3), (1,3)] Representasi ruang keadaan dalam bentuk pohon pelacakan : 63

Breadth-First Search Iterasi ke- 6 QUEUE = [(1,0), (3,0)] CLOSE = [(0,0), (4,0), (0,3), (4,3), (1,3)] Ambil keadaan sekarang (3,0) goal, masukkan ke CLOSE, sehingga QUEUE = [(1,0)] CLOSE = [(0,0), (4,0), (0,3), (4,3), (1,3), (3,0)] Terapkan aturan ke-1 s/d 8, dimana yang memenuhi syarat hanya aturan ke 1,2,3,dan 7 Keadaan sekarang (3,0), dikenai aturan ke-1 menjadi (4,0) karena (4,0) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam QUEUE 64

Breadth-First Search Keadaan sekarang (3,0), dikenai aturan ke-2 menjadi keadaan selanjutnya (3,3) Keadaan sekarang (3,0) dikenai aturan ke-3 menjadi keadaan selanjutnya (0,0) karena (0,0) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam QUEUE Keadaan sekarang (3,0) dikenai aturan ke-7 menjadi keadaan selanjutnya (0,3) karena (0,3) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam QUEUE (3,0) mempunyai anak (3,3), untuk kemudian dimasukkan ke QUEUE QUEUE = [(3,3), (1,0)] CLOSE = [(0,0), (4,0), (0,3), (4,3), (1,3), (3,0)] 65

Breadth-First Search Representasi ruang keadaan dalam bentuk pohon pelacakan : 66

Breadth-First Search Iterasi ke- 7 QUEUE = [(3,3), (1,0)] CLOSE = [(0,0), (4,0), (0,3), (4,3), (1,3), (3,0)] Ambil keadaan sekarang = (1,0) = goal, masukkan ke CLOSE, sehingga QUEUE = [(3,3)] CLOSE = [(0,0), (4,0), (0,3), (4,3), (1,3), (3,0), (1,0)] Karena keadaan sekarang (1,0) = goal maka iterasi dihentikan. 67

Breadth-First Search Representasi ruang keadaan dalam bentuk pohon pelacakan : 68

Breadth-First Search Untuk mencari solusinya, telusuri ruang keadaan dari mulai GOAL sampai dengan AKAR Pelacakan solusi yang ditemukan antara lain : (1,0) adalah anak dari node (1,3) (1,3) adalah anak dari node (4,0) (4,0) adalah anak dari node (0,0) Karena (0,0) adalah akar, maka pelacakan solusi dihentikan. Solusi : (0,0), (4,0), (1,3), (1,0) 69

Depth-First Search Pada Depth-First Search, proses pencarian akan dilakukan pada semua anaknya sebelum dilakukan pencarian ke node-node yang selevel. Pencarian dimulai dari node akar ke level yang lebih tinggi. Proses ini diulangi terus hingga ditemukannya solusi Dalam algoritma DFS, node yang telah dikunjungi disimpan dalam suatu stack (tumpukan). Stack ini digunakan untuk mengacu node-node yang akan dikunjungi sesuai urutan tumpukan (masuk terakhir, keluar pertama) dan mempermudah proses runut balik, jika node sudah tidak mempunyai anak (node sudah berada di kedalaman maksimal). 70

Depth-First Search A B C 71

Depth-First Search Langkah-langkah algoritma DFS 1. Masukkan node akar ke dalam stack 2. Ambil node dari stack teratas, lalu cek apakah node merupakan solusi. 3. Jika node merupakan solusi, pencarian selesai dan hasil dikembalikan. 4. Jika node bukan solusi, masukkan seluruh node anak ke dalam stack 5. Jika stack kosong dan setiap node sudah dicek, pencarian selesai 6. Ulangi pencarian mulai dari poin 2 72

Depth-First Search Keuntungan Membutuhkan memori yang relatif kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan. Secara kebetulan, metode depth-first search akan menemukan solusi tanpa harus menguji labih banyak lagi dalam ruang keadaan. Kelemahan Memungkinkan tidak ditemukannya tujuan yang diharapkan. Hanya akan mendapatkan 1 solusi pada setiap pencarian. 73

Depth-First Search Contoh : Kasus 1 Misalkan diketahui pohon pelacakan seperti gambar di bawah ini. Implementasikan algoritma DFS untuk mencari solusi dari S node awal (start) sampai G (goal) 74

Depth-First Search Iterasi 1 Beri tanda batas pada stack dan masukkan node S ke stack representasi 75

Depth-First Search Keluarkan S dari stack dan cek Ternyata S goal S punya anak A dan B, beri tanda batas pada stack, dan masukkan node A dan B ke stack 76

Depth-First Search Karena S punya anak, masukkan S ke Solusi sementara : Solusi Sementara = [S] Representasi keadaan : 77

Depth-First Search Iterasi 2 Stack pada iterasi ke 2 : Solusi sementara = [S] Keluarkan A dari stack dan cek Ternyata A goal 78

Depth-First Search Karena A punya anak C dan D, beri tanda batas dan masukkan node C dan D ke stack Karena A punya anak, masukkan A ke solusi sementara : Solusi sementara = [S A] 79

Depth-First Search Representasi keadaan : 80

Depth-First Search Iterasi 3 Stack pada iterasi ke 3 : Solusi sementara = [S A] Keluarkan C dari stack dan cek Ternyata C goal 81

Depth-First Search Karena C tidak punya anak maka C tidak dimasukkan ke solusi sementara Solusi sementara = [S A] 82

Depth-First Search Representasi keadaan : 83

Depth-First Search Iterasi 4 Stack pada iterasi ke 4 : Solusi sementara = [S A] Keluarkan D dari stack dan cek Ternyata D goal 84

Depth-First Search Karena D tidak punya anak jadi tidak ada yang dimasukkan ke stack Karena D tidak punya anak, maka D tidak dimasukkan ke solusi sementara. Solusi sementara = [S A] 85

Depth-First Search Representasi keadaan : 86

Depth-First Search Iterasi 5 Stack pada iterasi ke 5 : Solusi sementara = [S A] Keluarkan tanda batas dari stack dan gunakan untuk menghapus solusi sementara satu huruf Solusi sementara = [S A] = [S] 87

Depth-First Search Iterasi 6 Stack pada iterasi ke 6 : Solusi sementara = [S] Keluarkan B dari stack dan cek Ternyata B goal 88

Depth-First Search Karena B punya anak E dan F, beri tanda batas dan masukkan node E dan F ke stack Karena B punya anak, masukkan B ke solusi sementara : Solusi sementara = [S B] 89

Depth-First Search Representasi keadaan : 90

Depth-First Search Iterasi 7 Stack pada iterasi ke 7 : Solusi sementara = [S B] Keluarkan E dari stack dan cek Ternyata E goal 91

Depth-First Search Karena E punya anak H dan G, beri tanda batas dan masukkan node H dan G ke stack Karena E punya anak, masukkan E ke solusi sementara : Solusi sementara = [S B E] 92

Depth-First Search Representasi keadaan : 93

Depth-First Search Iterasi 8 Stack pada iterasi ke 8 : Solusi sementara = [S B E] Keluarkan H dari stack dan cek Ternyata H goal 94

Depth-First Search Karena H tidak punya anak jadi tidak ada yang dimasukkan ke stack Karena H tidak punya anak, maka H tidak dimasukkan ke solusi sementara. Solusi sementara = [S B E] 95

Depth-First Search Representasi keadaan : 96

Depth-First Search Iterasi 9 Stack pada iterasi ke 9 : Solusi sementara = [S B E] Keluarkan G dari stack dan cek Ternyata G goal 97

Depth-First Search G = goal, masukkan ke solusi sementara dan hentikan pencarian Solusi = [S B E G] Representasi keadaan 98

Kasus 2 Metode DFS Implementasi DFS pada masalah gelas air Misalkan diketahui : Keadaaan awal : (0,0) [keadaan sekarang = (0,0)] Tujuan (Goal) : (1,0) [keadaan akhir = (1,0)] Iterasi : terapkan kumpulan aturan berikut hingga keadaan sekarang = goal 1. Isi penuh gelas berkapasitas 4 liter jika keadaan sekarang x < 4, maka keadaan selanjutnya (4,y) 2. Isi penuh gelas berkapasitas 3 liter jika keadaan sekarang y < 3, maka keadaan selanjutnya (x,3) 99

Depth-First Search 3. kosongkan gelas berkapasitas 4 liter jika keadaan sekarang x >0, maka keadaan selanjutnya (0,y) 4. kosongkan gelas berkapasitas 3 liter jika keadaan sekarang y>0, maka keadaan selanjutnya (x,0) 5. tuangkan sebagian isi gelas berkapasitas 3 liter ke gelas berkapasitas 4 liter hingga gelas berkapasitas 4 liter penuh jika keadaan sekarang x+y>4, maka keadaan selanjutnya adalah (4, y+x-4) 100

Depth-First Search 6. Tuangkan sebagian isi gelas berkapasitas 4 liter ke gelas berkapasitas 3 liter hingga gelas berkapasitas 3 liter penuh jika keadaan sekarang x+y > 3 dan x > 0, maka keadaan selanjutnya adalah (y+x-3, 3) 7. tuangkan seluruh isi gelas berkapasitas 4 liter ke gelas berkapasitas 3 liter jika keadaan sekarang x+y 3 dan x>0 maka keadaan selanjutnya adalah 0, y+x) 8. tuangkan seluruh isi gelas berkapasitas 3 liter ke gelas berkapasitas 4 liter. jika keadaan sekarang (x+y 4 dan y > 0, maka keadaan selanjutnya adalah (y+x, 0) 101

Depth-First Search Iterasi ke-1 Beri tanda batas dan masukkan node (0,0) ke stack. STACK = [(0,0) ) SOLUSI =[ ] Ambil keadaan sekarang = (0,0), maka : STACK = [ ] SOLUSI =[ ] Cek, ternyata (0,0) goal Terapkan aturan ke-1 s/d 8, yang memenuhi syarat hanya aturan ke-1 dan 2 Keadaan sekarang = (0,0) kena aturan ke-1 menjadi (4,0) Keadaan sekarang = (0,0) kena aturan ke-2 menjadi (0,3) 102

Depth-First Search (0,0) punya anak (4,0) dan (0,3), beri tanda batas, dan masukkan node (4,0) dan (0,3) ke Stack. Karena (0,0) punya anak, masukkan ke solusi. STACK = [(4,0),(0,3) ] SOLUSI = [(0,0)] Representasi ruang keadaan dalam bentuk pohon pelacakan : 103

Depth-First Search Iterasi ke-2 STACK = [(4,0), (0,3) ] SOLUSI =[(0,0)] Ambil keadaan sekarang = (4,0), maka : STACK = [(0,3) ] SOLUSI =[(0,0)] Cek, ternyata (4,0) goal Terapkan aturan ke-1 s/d 8, yang memenuhi syarat hanya aturan ke-2, 3 dan 6 Keadaan sekarang = (4,0) kena aturan ke-2 menjadi (4,3) Keadaan sekarang = (4,0) kena aturan ke-3 menjadi (0,0) Karena (0,0) sama dengan node sebelumnya, maka tidak dimasukkan dalam STACK Keadaan sekarang = (4,0) kena aturan ke- 6 menjadi (1,3) 104

(4,0) punya anak (4,3) dan (1,3), beri tanda batas, dan masukkan node (4,3) dan (1,3) ke Stack. Karena (4,0) punya anak, masukkan ke solusi. STACK = [(4,3),(1,3) (0,3) ] SOLUSI = [(0,0),(4,0)] Representasi ruang keadaan dalam bentuk pohon pelacakan : Depth-First Search 105

Depth-First Search Iterasi ke-3 STACK = [(4,3), (1,3) (0,3) ] Solusi =[(0,0),(4,0)] Ambil keadaan sekarang = (4,3), maka : STACK = [(1,3) (0,3) ] Solusi =[(0,0), (4,0)] Check ternyata (4,3) goal Terapkan aturan ke-1 s/d ke-8, yang memenuhi syarat hanya aturan ke-3, 4, 5 dan 6 106

Depth-First Search Keadaan sekarang = (4,3) kena aturan ke-3 menjadi (0,3) karena (0,3) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam STACK Keadaan sekarang = (4,3) kena aturan ke-4 menjadi (4,0) karena (4,0) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam STACK Keadaan sekarang = (4,3) kena aturan ke-5 menjadi (4,3) karena (4,3) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam STACK Keadaan sekarang = (4,3) kena aturan ke-6 menjadi (4,3) karena (4,3) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam STACK 107

Depth-First Search Karena (4,3) tidak punya node anak, maka tidak dimasukkan ke dalam Solusi STACK = [(1,3) (0,3) ] Solusi = [(0,0), (4,0)] Representasi ruang keadaan dalam bentuk pohon pelacakan : 108

Depth-First Search Iterasi ke-4 STACK = [(1,3) (0,3) ] Solusi =[(0,0),(4,0)] Ambil keadaan sekarang = (1,3), maka : STACK = [ (0,3) ] Solusi =[(0,0), (4,0)] Check ternyata (1,3) goal Terapkan aturan ke-1 s/d ke-8, yang memenuhi syarat hanya aturan ke- 1, 3, 4 dan 8 109

Depth-First Search Keadaan sekarang = (1,3) kena aturan ke-1 menjadi (4,3) karena (4,3) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam STACK Keadaan sekarang = (1,3) kena aturan ke-3 menjadi (0,3) karena (0,3) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam STACK Keadaan sekarang = (1,3) kena aturan ke-4 menjadi (1,0) Keadaan sekarang = (1,3) kena aturan ke-8 menjadi (4,0) karena (4,0) sama dengan node sebelumnya, maka tidak dimasukkan ke dalam STACK 110

Depth-First Search Node (1,3) punya anak (1,0). Beri tanda batas dan masukkan node (1,0) ke stack. Karena node (1,3) punya anak, masukkan solusi. STACK = [(1,0) (0,3) ] Solusi = [(0,0), (4,0), (1,3)] Representasi ruang keadaan dalam bentuk pohon pelacakan ; 111

Depth-First Search Iterasi ke-5 Stack = [(1,0) (0,3) ] Solusi = [(0,0),(4,0),(1,3)] Ambil keadaan sekarang = (1,0), maka : Stack = [ (0,3) ] Solusi = [ (0,0), (4,0), (1,3)] Cek ternyata (1,0) = goal Karena keadaan sekarang = goal, masukkan (1,0) ke solusi : [(0,0),(4,0),(1,3),(1,0)] dan pencarian selesai Untuk mencari solusinya, lihat daftar pada array solusi Solusi = [(0,0),(4,0),(1,3),(1,0)] 112

NEXT PENCARIAN HEURISTIC 113