22
1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151 Strategi Algoritmik Oleh: Rinaldi Munir

Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

  • Upload
    lequynh

  • View
    252

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

1

Penerapan BFS dan DFS pada Pencarian Solusi

Bahan Kuliah IF2151 Strategi AlgoritmikOleh: Rinaldi Munir

Page 2: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

2

Pengorganisasian Solusi

• Kemungkinan2 solusi dari persoalan membentuk ruang solusi (solution space)

• Ruang solusi diorganisasikan ke dalam struktur pohon

• Pencarian solusi dilakukan dengan mengunjungi (traversal) simpul-simpul di dalam pohon

Page 3: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

3

• Pohon yang ditelusuri: pohon dinamis

• Pohon dinamis: pohon yang dibangun selama pencarian solusi berlangsung

• Pohon dinamis dibangun dengan 2 metode traversal: BFS dan DFS

• Pohon dinamis menyatakan status-status persoalan pada saat pencarian solusi berlangsung.

Page 4: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

4

Terminologi– Status persoalan (problem state): simpul-simpul di

dalam pohon dinamis yang memenuhi kendala (constraints).

– Status solusi (solution state): satu atau lebih status yang menyatakan solusi persoalan.

– Status tujuan (goal state): status solusi yang merupakan simpul daun

– Ruang solusi (solution space): himpunan semua status solusi.

– Ruang status (state space): Seluruh simpul di dalam pohon dinamis dan pohonnya dinamakan juga pohon ruang status (state space tree).

Page 5: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

5

Contoh 6.1. Pohon ruang status yang dibangkitkan untuk menghasilkan semua permutasi A, B, C:

()

B CA

AB AC BA BC CA CB

ABC ACB BAC BCA CAB CBA

Ket: () = status kosong

• Setiap simpul di dalam pohon menyatakan status persoalan.

• Status awal adalah akar yang berupa sebuah

“kosong”.

• Setiap daun pada pohon tersebut (ABC, ACB, BAC, BCA, CAB. Dan CBA) menyatakan status solusi, dan semua daun adalah ruang solusi.

Page 6: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

6

Contoh 6.2. Permainan 8-puzzle:

2 1 6

4 8

7 5 3

1 2 3

8 4

7 6 5

(a) Susunan awal (b) Susunan akhir (initial state) (goal state)

Page 7: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

7

2 1 6

4 5 8

7 3

2 1 6

4 8

7 5 3

2 6

4 1 8

7 5 3

2 6

4 1 8

7 5 3

2 1 6

4 8

7 5 3

2 1 6

4 5 8

7 3

2 6

64 1 8

7 5 3

2 1 6

4 5 8

7 5

2 1 6

7 4 8

5 3

1 6

2 4 8

7 5 3

2 1

4 8 6

7 5 3

2 1 6

4 8 3

7 5

2 1 6

4 8

7 5 3

updown left

right

left right left right down up up down

4 2

6

6

1 8

7 5 3

down

... dan seterusnya

Page 8: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

8

Metode Pencarian Melebar (BFS)

0 0

1 2 1 2

0

3 4

1 2

0

3 4 5 6

(i) (ii) (iii) (iv)

Gambar 6.4. Tahapan pembentukan pohon BFS

Page 9: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

9

()

B CA

AB AC BA BC CA CB

ABC ACB BAC BCA CAB CBA

S0:

S1: S2: S3:

S4: S5: S6: S7: S8: S9:

S10: S11: S12: S13: S14: S15:

Gambar 6.5 Pembentukan pohon ruang status persoalan pembangkitan permutasi A, B, C dengan metode BFS

Page 10: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

10

2 1 6

4 5 8

7 3

2 1 6

4 8

7 5 3

2 6

4 1 8

7 5 3

2 6

4 1 8

7 5 3

2 1 6

4 8

7 5 3

2 1 6

4 5 8

7 3

2 6

64 1 8

7 5 3

2 1 6

4 5 8

7 5

2 1 6

7 4 8

5 3

1 6

2 4 8

7 5 3

2 1

4 8 6

7 5 3

2 1 6

4 8 3

7 5

2 1 6

4 8

7 5 3

updown left

right

left right left right down up up down

4 2

6

6

1 8

7 5 3

down

... dan seterusnya

S0:

S1: S2: S3: S4:

S5: S6: S7: S8: S9: S10: S11: S12:

S15:

Gambar 6.6 Pembentukan pohon ruang status persoalan 8-puzzle dengan metode BFS.

Page 11: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

11

Contoh 6.3. Sebuah mainan yang terdiri atas 3 buah blok (dinomori 1, 2, dan 3).

1

2 3 3

2

1

(a) Susunan awal (b) Susunan akhir

• Operator perpindahan: “PINDAHKAN X ke Y”, yang berarti memindahkan objek X ke atas objek yang lain.

• Pada setiap saat, hanya satu buah blok yang boleh

dipindahkan.

• Operator tidak digunakan untuk membangkitkan status yang sama lebih dari satu kali.

Page 12: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

12

Pohon ruang status yang dibentuk selama

pencarian solusi dengan metode BFS:1

2 3

321 3

1

2 2

1

3

1 3

2

1 2

3

3

2

1 2

3

1 3

1

2

1

2

3

3

2

1

S0:

S1: S2:

S3:

S4: S5: S6: S7:

S8:

S9: S10:

Page 13: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

13

• Dengan mengikuti lintasan dari simput akar (S0) ke simpul solusi(S10), kita memperoleh konfigurasi urutan perpindahan blok dari status awal sampai ke status akhir.

• Dengan metode BFS, jika terdapat sebuah solusi, maka BFS menjamin dapat menemukannya.

• Jika terdapat lebih dari satu buah solusi, BFS selalu menemukan solusi pertama pada aras pohon yang paling rendah.

Page 14: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

14

Kompleksitas waktu algoritma BFS: • Asumsi: setiap simpul dapat membangkitkan b buah

simpul baru.

• Misalkan solusi ditemukan pada aras ke-d

• Jumlah maksimum seluruh simpul: 1 + b + b2 + b3 + ... + bd = (bd+1 – 1)/(b – 1)

• T(n) = O(bd).

• Kompleksitas ruang algoritma BFS = sama dengan kompleksitas waktunya, karena semua simpul daun dari pohon harus disimpan di dalam memori selama proses pencarian.

Page 15: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

15

Metode Pencarian Mendalam (DFS)

0

1 4

0

2 3 5 6

1 4

0

2 3 5

1 4

0

2 32

1

0

3

0

1

2

1

0

(i) (ii) (iii) (iv) (v) (vi) (vii)

Gambar 6.9. Tahapan pembentukan pohon DFS

Page 16: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

16

Pembentukan pohon ruang status persoalan pembangkitan permutasi A, B, C dengan metode DFS

()

B CA

AB AC BA BC CA CB

ABC ACB BAC BCA CAB CBA

S0:

S1: S6: S11:

S2: S4: S7: S9: S12: S14:

S3: S5: S8: S10: S13: S15:

Page 17: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

17

• Contoh. Sebuah bidak (pion) bergerak di dalam sebuah matriks pada Gambar 6.11. Bidak dapat memasuki elemen matriks mana saja pada baris paling atas. Dari elemen matriks yang berisi 0, bidak dapat bergerak ke bawah jika elemen matriks di bawahnya berisi 0; atau berpindah horizontal (kiri atau kanan) jika elemen di bawahnya berisi 1. Bila bidak berada pada elemen yang berisi 1, ia tidak dapat bergerak kemanapun. Tujuan permainan ini adalah mencapai elemen matriks yang mengandung 0 pada baris paling bawah.

Page 18: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

18

1 2 3 4 1 1 0 0 0 2 0 0 1 0 3 0 1 0 0 4 1 0 0 0

Gambar 6.11 Matriks bidak

Operator yang digunakan: DOWN pindahkan bidak satu posisi ke bawah LEFT pindahkan bidak satu posisi ke kiri RIGHT pindahkan bidak satu posisi ke kanan Batas kedalaman maksimum pohon ruang status diandaikan 5.

Page 19: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

19

Gambar 6.12

(a) Pohon ruang status yang mengandung duplikasi simpul(b) Pohon ruang status yang menghindari pembangkitan simpul

yang sama.

S6(3,2)

S5(3,1)

S4(2,1)

S7(2,3)

S10(2,2)

S11(2,1)

S12(3,1)

S13(2,3)

S15(2,4)

S16(3,4)

S17(4,4)

S3(2,2)

S9(1,2)

S14(1,4)

S2(1,2)

S8(1,3)

S18(1,4)

S1(1,1)

S0

S6(3,2)

S5(3,1)

S4(2,1)

S7(2,3)

S10(2,4)

S11(3,4)

S12(4,4)

S3(2,2)

S9(1,4)

S2(1,2)

S8(1,3)

S13(1,4)

S1(1,1)

S0

Page 20: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

20

• Kompleksitas waktu algoritma DFS pada kasus terburuk adalah O(bm).

• Kompleksitas ruang algoritma DFS adalah O(bm), karena kita hanya hanya perlu menyimpan satu buah lintasan tunggal dari akar sampai daun, ditambah dengan simpul-simpul saudara kandungnya yang belum dikembangkan.

Page 21: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

21

• Untuk persoalan yang memiliki banyak solusi, metode DFS lebih cepat daripada BFS, karena DFS menemukan solusi setelah mengeksplorasi hanya sebagian kecil dari seluruh ruang status.

• Sedangkan BFS masih harus menelusuri semua lintasan pada aras d – 1 sebelum memeriksa solusi pada aras d.

Page 22: Penerapan BFS dan DFS pada Pencarian Solusiinformatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Penerapan... · 1 Penerapan BFS dan DFS pada Pencarian Solusi Bahan Kuliah IF2151

22

Varian DFS: Metode Pencarian Mendalam Berulang (IDS = Iterative Deepening Search)

• Kesulitan utama pada metode DFS adalah menentukan batas maksimum kedalaman pohon ruang status.

• Strategi yang digunakan untuk memecahkan masalah kedalaman terbaik ini adalah dengan mencoba semua kedalaman yang mungkin, mula-mula kedalaman 0, kedalaman 1, kedalaman 2, dan seterusnya.