Anda di halaman 1dari 13

Bahan Kuliah ke-8

IF2251 Strategi Algoritmik


Penerapan BFS dan DFS pada
Pencarian Solusi

Disusun oleh:
Ir. Rinaldi unir! .".
Departemen "eknik In#ormatika
Institut "eknologi Bandung
0
2$$%
Struktur pencarian solusi: 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.
& 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 tu'uan 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 "uga pohon ruang status state
space tree!.
#
(ontoh ).1. Pohon ruang status yang dibangkitkan untuk
menghasilkan semua permutasi A$ B$ C:
( )
B C A
A B A C B A B C C A C B
A B C A C B B A C B C A C A B C B A
%et: ! & status kosong
*am+ar ).1 Pohon ruang status pembangkitan
permutasi '$ B$ (.
Setiap simpul di dalam )ambar *.# menyatakan
status persoalan.
Status a+al adalah akar yang berupa sebuah
,kosong-.
Setiap daun pada pohon tersebut 'B($ '(B$ B'($
B('$ ('B. Dan (B'! menyatakan status solusi$
dan semua daun adalah ruang solusi.
2
(ontoh ).2. Permainan .-puzzle:
2 1 6
4 8
7 5 3
1 2 3
8 4
7 6 5
a! Susunan a+al b! Susunan akhir
initial state! goal state!
*am+ar ).2 Permainan .-puzzle
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
6 4 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
u p
d o w n l e f t
r i g h t
l e f t
r i g h t l e f t r i g h t
d o w n
u p u p d o w n
4 2
6
6
1 8
7 5 3
d o w n
. . . d a n s e t e r u s n y a
*am+ar )., Sebagian pohon ruang status untuk
permainan .-puzzle.
/
etode Pencarian ele+ar -BFS.
0 0
1 2 1 2
0
3 4
1 2
0
3 4 5 6
i! ii! iii! iv!
*am+ar ).%. 0ahapan pembentukan pohon BFS
( )
B C A
A B A C B A B C C A C B
A B C A C B B A C B C A C A B C B A
S 0 :
S 1 : S 2 : S 3 :
S 4 : S 5 : S 6 : S 7 :
S 8 :
S 9 :
S 1 0 : S 1 1 : S 1 2 : S 1 3 : S 1 4 : S 1 5 :
*am+ar ).5 Pembentukan pohon ruang status persoalan
pembangkitan permutasi A$ B$ C dengan metode BFS
1
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
6 4 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
u p
d o w n l e f t
r i g h t
l e f t r i g h t l e f t r i g h t d o w n u p u p d o w n
4 2
6
6
1 8
7 5 3
d o w n
. . . d a n s e t e r u s n y a
S 0 :
S 1 :
S 2 : S 3 : S 4 :
S 5 : S 6 : S 7 : S 8 : S 9 : S 1 0 : S 1 1 : S 1 2 :
S 1 5 :
*am+ar ).) Pembentukan pohon ruang status persoalan
.-puzzle dengan metode BFS.
'lgoritma BFS:
#. 2asukkan simpul akar ke dalam antrian Q. 3ika
simpul akar & simpul solusi goal node!$ maka stop.
2. 3ika Q kosong$ tidak ada solusi. Stop.
/. 'mbil simpul v dari kepala head! antrian$ bangkitkan
semua anak-anaknya. 3ika v tidak mempunyai anak
lagi$ kembali ke langkah 2. 0empatkan semua anak
dari v di belakang antrian.
1. 3ika suatu simpul anak dari v adalah simpul solusi$
maka solusi telah ditemukan$ kalau tidak kembali lagi
ke langkah 2.
4
(ontoh ).,. Sebuah mainan yang terdiri atas / buah blok
dinomori #$ 2$ dan /!.

1
2 3 3
2
1
a! Susunan a+al b! Susunan akhir
*am+ar )./ Persoalan menyusun mainan
yang terdiri atas / buah blok
5perator perpindahan: ,P67D'8%'7 9 ke :-$
yang berarti memindahkan ob"ek 9 ke atas ob"ek
yang lain.
Pada setiap saat$ hanya satu buah blok yang boleh
dipindahkan.
5perator tidak digunakan untuk membangkitkan
status yang sama lebih dari satu kali.
*
1
2 3
3 2 1 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
S 0 :
S 1 :
S 2 :
S 3 :
S 4 : S 5 :
S 6 :
S 7 :
S 8 :
S 9 :
S 1 0 :
*am+ar ).0 Pohon ruang status yang dibentuk selama
pencarian solusi dengan metode BFS
Dengan mengikuti lintasan dari simput akar S0! ke
simpul solusiS#0!$ kita memperoleh kon;igurasi
urutan perpindahan blok dari status a+al sampai ke
status akhir.
Dengan metode BFS$ "ika terdapat sebuah solusi$
maka BFS men"amin dapat menemukannya$ dan
"ika terdapat lebih dari satu buah solusi$ BFS selalu
menemukan solusi pertama pada aras pohon yang
paling rendah.
<
1ompleksitas 2aktu algoritma BFS:
'sumsi: setiap simpul dapat membangkitkan b buah
simpul baru.
# = b = b
2
= b
/
= ... = b
d
&b
d=#
> #!?b > #! & Ob
d
!.
%ompleksitas ruang algoritma BFS & sama dengan
kompleksitas +aktunya$ karena semua simpul daun
dari pohon harus disimpan di dalam memori
selama proses pencarian.
etode Pencarian endalam -DFS.
0
1 4
0
2 3 5 6
1 4
0
2 3 5
1 4
0
2 3 2
1
0
3
0
1
2
1
0
i! ii! iii! iv! v! vi! vii!
*am+ar ).3. 0ahapan pembentukan pohon DFS
.
( )
B C A
A B A C B A B C C A C B
A B C A C B B A C B C A C A B C B A
S 0 :
S 1 : S 6 : S 1 1 :
S 2 : S 4 :
S 7 :
S 9 :
S 1 2 :
S 1 4 :
S 3 : S 5 : S 8 : S 1 0 : S 1 3 : S 1 5 :
*am+ar ).1$ Pembentukan pohon ruang status
persoalan pembangkitan permutasi A$ B$ C dengan
metode DFS
'lgoritma DFS:
#.2asukkan simpul akar ke dalam antrian Q. 3ika simpul
akar & simpul solusi$ maka Stop.
2.3ika Q kosong$ tidak ada solusi. Stop.
/.'mbil simpul v dari kepala head! antrian.
3ika kedalaman simpul v sama dengan batas kedalaman
maksimum$ kembali ke langkah 2.
1. Bangkitkan semua anak dari simpul v. 3ika v tidak
mempunyai anak lagi$ kembali ke langkah 2.
0empatkan semua anak dari v di a+al antrian Q.
3ika anak dari simpul v adalah simpul tu"uan$ berarti
solusi telah ditemukan$ kalau tidak$ kembali lagi ke
langkah 2.
@
(ontoh ).%. Sebuah bidak pion! bergerak di dalam
sebuah matriks pada )ambar *.##. Bidak dapat
memasuki elemen matriks mana sa"a pada baris paling
atas. Dari elemen matriks yang berisi 0$ bidak dapat
bergerak ke ba+ah "ika elemen matriks di ba+ahnya
berisi 0A atau berpindah horiBontal kiri atau kanan! "ika
elemen di ba+ahnya berisi #. Bila bidak berada pada
elemen yang berisi #$ ia tidak dapat bergerak
kemanapun. 0u"uan permainan ini adalah mencapai
elemen matriks yang mengandung 0 pada baris paling
ba+ah.
# 2 / 1
# # 0 0 0
2 0 0 # 0
/ 0 # 0 0
1 # 0 0 0
*am+ar ).11 2atriks bidak
5perator yang digunakan:
D5C7 pindahkan bidak satu posisi ke ba+ah
DEF0 pindahkan bidak satu posisi ke kiri
F6)80 pindahkan bidak satu posisi ke kanan
Batas kedalaman maksimum pohon ruang status
diandaikan 4.
#0
S 6
( 3 , 2 )
S 5
( 3 , 1 )
S 4
( 2 , 1 )
S 7
( 2 , 3 )
S 1 0
( 2 , 2 )
S 1 1
( 2 , 1 )
S 1 2
( 3 , 1 )
S 1 3
( 2 , 3 )
S 1 5
( 2 , 4 )
S 1 6
( 3 , 4 )
S 1 7
( 4 , 4 )
S 3
( 2 , 2 )
S 9
( 1 , 2 )
S 1 4
( 1 , 4 )
S 2
( 1 , 2 )
S 8
( 1 , 3 )
S 1 8
( 1 , 4 )
S 1
( 1 , 1 )
S 0
S 6
( 3 , 2 )
S 5
( 3 , 1 )
S 4
( 2 , 1 )
S 7
( 2 , 3 )
S 1 0
( 2 , 4 )
S 1 1
( 3 , 4 )
S 1 2
( 4 , 4 )
S 3
( 2 , 2 )
S 9
( 1 , 4 )
S 2
( 1 , 2 )
S 8
( 1 , 3 )
S 1 3
( 1 , 4 )
S 1
( 1 , 1 )
S 0
a! b!
*am+ar ).12
a! Pohon ruang status yang mengandung duplikasi
simpul$
b! Pohon ruang status yang menghindari
pembangkitan simpul yang sama.
%ompleksitas +aktu algoritma DFS pada kasus
terburuk adalah Ob
m
!.
%ompleksitas ruang algoritma DFS adalah Obm!$
karena kita hanya hanya perlu menyimpan satu
buah lintasan tunggal dari akar sampai daun$
ditambah dengan simpul-simpul saudara
kandungnya yang belum dikembangkan.
##
Gntuk 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 > # sebelum memeriksa solusi pada aras d.
4arian DFS: etode Pencarian endalam Berulang
-IDS 5 Iterative Deepening Search.
%esulitan 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 #$ kedalaman 2$ dan
seterusnya.
#2

Anda mungkin juga menyukai