Depth First Search (DFS) As’ad Djamalilleil http://kampusku.uni.me asad.kom@gmail.com
Depth First Search (DFS) DFS dapat diartikan sebagai “pencarian mendalam diutamakan” Berbeda dengan BFS yang mencari penyelesaiannya per level, maka DFS akan terfokus pada satu cabang hingga solusi ditemukan/tidak Bila solusi tidak ditemukan pada state terakhir dari cabang tersebut, maka pencarian dikembalikan ke level sebelumnya dan mencari di cabang yang lain
Contoh Kasus Ember Air Ruang Masalah Initial State (0,0) x = 1, 2, 3 atau 4 (isi ember 4 galon) y = 1, 2 atau 3 (isi ember 3 galon) Initial State (0,0) Menyatakan jumlah air kedua ember (x,y) masih kosong Goal State (n,2) Ember x berisi berapa pun, y berisi 2 galon
1 if(x < 4) (x,y) (4,y) Isi penuh ember 4 galon 2 if(y < 3) (x,y) (x,3) Isi penuh ember 3 galon 3 if(x > 0) (x,y) (x-d,y) Buang sebagian air dari ember 4 galon 4 if(y > 0) (x,y) (x,y-d) Buang sebagian air dari ember 3 galon 5 (x,y) (0,y) Kosongkan ember 4 galon 6 (x,y) (x,0) Kosongkan ember 3 galon
7 if(x+y >= 4 and y > 0) (x,y) (4,y-(4-x)) Tuangkan air dari ember 3 galon ke ember 4 galon sampai ember 4 galon penuh 8 if(x+y >= 3 and x > 0) (x,y) (x-(3-y),3) Tuangkan air dari ember 4 galon ke ember 3 galon sampai ember 3 galon penuh 9 if(x+y <= 4 and y > 0 (x,y) (x+y,0) Tuangkan seluruh air dari ember 3 galon ke ember 4 galon
10 if(x+y <= 3 and x > 0) (x,y) (0,x+y) Tuangkan seluruh air dari ember 4 galon ke ember 3 galon 11 (0,2) (2,0) Tuangkan 2 galon air dari ember 3 galon ke ember 4 galon 12 (2,y) (0,y) Buang 2 galon air dalam ember 4 galon sampai habis
0,0 Initial State Level 1
0,0 Initial State Level 1 4,0 Level 2 Aturan 1
0,0 Level 1 4,0 Level 2 Level 3 4,3 Aturan 2
0,0 Level 1 4,0 Level 2 Level 3 4,3 0,3 Aturan 5 Level 4
0,0 Level 1 4,0 Level 2 Level 3 4,3 0,3 Aturan 1 Level 4 4,3
0,0 Level 1 4,0 Level 2 Level 3 4,3 0,3 Aturan 6 Level 4 0,0
0,0 Level 1 4,0 Level 2 Level 3 4,3 0,3 Aturan 9 Level 4 Level 5 3,0
0,0 Level 1 4,0 Level 2 Level 3 4,3 0,3 Level 4 Level 5 3,0
Level 5 3,0 4,0 Aturan 1
Level 5 3,0 3,3 Level 6 Aturan 2
Level 5 3,0 3,3 Level 6 4,2 Level 7 Aturan 7
Solusinya Air pada ember 4 galon (x) Air pada ember 3 galon (y) Aturan produksi yang digunakan - 4 1 3 2 5 9 7
Bagaimana jika pada akhir cabang tidak ditemukan solusi ? Maka kembali ke level sebelumnya dan melanjutkan pencarian pada cabang yang lain
Contoh
A Level 1
A Level 1 B Level 2 Apakah state B pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan B Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state B Apakah state B merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya
A Level 1 B Level 2 Level 3 C Apakah state C pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan C Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state C Apakah state C merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya
A Level 1 B Level 2 Level 3 C Apakah state A pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan A Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state A Apakah state A merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya Level 4 A
A Level 1 B Level 2 Level 3 C Apakah state B pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan B Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state B Apakah state B merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya Level 4 A B
A Level 1 B Level 2 Level 3 Apakah state C pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan C Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state C Apakah state C merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya C Level 4 A B
A Level 1 B Level 2 Level 3 C D Apakah state D pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan D Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state D Apakah state D merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya Level 4 A B
A B C D Apakah state A pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan A Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state A Apakah state A merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya A B A
A B C D Apakah state D pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan D Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state D Apakah state D merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya A B A
A B Apakah state B pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan B Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state B Apakah state B merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya C D A B A
A B E Apakah state E pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan E Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state E Apakah state E merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya C D A B A
A B E F C D Apakah state F pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan F Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state F Apakah state F merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya A B A
A B E F C D Apakah state B pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan B Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state B Apakah state B merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya A B A B
A B E F C D Apakah state F pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan F Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state F Apakah state F merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya A B A B
A B E F G C D Apakah state G pernah dikerjakan sebelumnya? Jika YA cari alternatif state lain pada level yg sama dengan G Jika tidak ada alternatif yg se-level kembali ke state sebelumnya Jika TIDAK kerjakan state G Apakah state G merupakan solusi? Jika YA proses pencarian selesai Jika TIDAK lanjutkan pencarian pada level berikutnya A B A B