• Tidak ada hasil yang ditemukan

Contoh : Kasus 1

Dalam dokumen MASALAH, RUANG KEADAAN & PENCARIAN (Halaman 74-113)

Misalkan diketahui pohon pelacakan seperti gambar di bawah ini. Implementasikan algoritma DFS untuk mencari solusi dari S node awal (start) sampai G (goal)

Iterasi 1

Beri tanda batas pada stack dan masukkan node S ke stack

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

Karena S punya anak, masukkan S ke Solusi sementara :

Solusi Sementara = [S]

Representasi keadaan :

Iterasi 2

Stack pada iterasi ke 2 :

Solusi sementara = [S]

Keluarkan A dari stack dan cek

Ternyata A ≠ goal

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 :

Representasi keadaan :

Iterasi 3

Stack pada iterasi ke 3 :

Solusi sementara = [S A]

Keluarkan C dari stack dan cek

Karena C tidak punya anak maka C tidak dimasukkan ke solusi sementara

Solusi sementara = [S A]

Representasi keadaan :

Iterasi 4

Stack pada iterasi ke 4 :

Solusi sementara = [S A]

Keluarkan D dari stack dan cek

Ternyata D ≠ goal

Karena D tidak punya anak jadi tidak ada yang dimasukkan ke stack

Karena D tidak punya anak, maka D tidak dimasukkan ke solusi sementara.

Representasi keadaan :

Iterasi 5

Stack pada iterasi ke 5 :

Solusi sementara = [S A]

Keluarkan tanda batas dari stack dan

gunakan untuk menghapus solusi sementara satu huruf

Iterasi 6

Stack pada iterasi ke 6 :

Solusi sementara = [S]

Keluarkan B dari stack dan cek

Ternyata B ≠ goal

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 :

Representasi keadaan :

Iterasi 7

Stack pada iterasi ke 7 :

Solusi sementara = [S B]

Keluarkan E dari stack dan cek

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]

Representasi keadaan :

Iterasi 8

Stack pada iterasi ke 8 :

Solusi sementara = [S B E]

Keluarkan H dari stack dan cek

Ternyata H ≠ goal

Karena H tidak punya anak jadi tidak ada yang dimasukkan ke stack

Karena H tidak punya anak, maka H tidak dimasukkan ke solusi sementara.

Representasi keadaan :

Iterasi 9

Stack pada iterasi ke 9 :

Solusi sementara = [S B E]

Keluarkan G dari stack dan cek

G = goal, masukkan ke solusi sementara dan hentikan pencarian

Solusi = [S B E G]

Representasi keadaan

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

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)

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

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)

(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 :

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)

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 :

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

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

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 :

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

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

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 ;

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)]

Dalam dokumen MASALAH, RUANG KEADAAN & PENCARIAN (Halaman 74-113)

Dokumen terkait