Tujuan dari permainan
Babylon Tower
adalah untuk menentukan langkah dari keadaan awal
Babylon Tower
yang telah diacak untuk mencapai
goal state
.
Search tree
dari bagian permainan
Babylon Tower
dapat digambarkan seperti pada gambar 2.2. Dalam
search tree
, tidak terdapat pemain lawan yang mengambil langkah, tetapi
search tree
memiliki kemiripan dengan
game tree
.
Search tree
juga memiliki keadaan awal
initial state
serta serangkaian langkah yang mengubah
state
selama permainan berlangsung hingga ditemukan
goal state
Heineman, et al, 2009.
2.5. Blind Search
Search
merupakan hal yang umum dan sering ditemukan dalam kecerdasan buatan, yang merupakan model teoritis yang diterapkan dalam
problem solving
, aplikasi, dan bahasa pemrograman Luger Stubblefield, 2009.
Blind search
disebut juga
Uninformed search
merupakan strategi pencarian solusi dimana dalam proses pencariannya, tidak terdapat informasi tambahan tentang
keadaan yang akan terjadi selanjutnya dari suatu langkah yang diambil.
Blind search
hanya mampu men-
generate
langkah-langkah selanjutnya dan menentukan apakah solusi sudah tercapai atau belum dari suatu langkah yang diambil.
Blind search
tidak mampu menentukan langkah mana yang lebih menguntungkan atau lebih menjanjikan
untuk mencapai solusi Russell Norvig, 2010. Beberapa algoritma pencarian yang termasuk dalam
blind search
antara lain
breadth-first search
,
depth-first search
,
iterative deepening search
dan sebagainya.
2.5.1 Breadth-First Search
Breadth-first search
merupakan strategi pencarian sederhana yang dilakukan dengan men-
generate
terlebih dahulu
node-node
baru
successor
yang merupakan cabang dari node pertama
root
. Kemudian masing-masing
node
baru tersebut akan men-
generate
lagi
successor
-nya, dan seterusnya.
Node
yang akan di-
generate successor
- nya terlebih dahulu adalah
node
yang belum memiliki successor dan berada pada tingkat kedalaman yang paling dangkal.
Universitas Sumatera Utara
Breadth-first search
akan selalu menemukan solusi apabila pencarian dilakukan pada pohon pencarian yang memuat solusi pada salah satu node pada
tingkat kedalaman
d
yang terbatas serta memiliki branching factor
b
yang terbatas. Ketika
node
yang memuat solusi di-generate untuk pertama kalinya, maka dapat dipastikan bahwa
node
tersebut merupakan solusi yang paling singkat. Hal ini dikarenakan semua node pada tingkat kedalaman yang lebih dangkal telah di-
generate
terlebih dahulu dan tidak menemui solusi yang diinginkan. Solusi yang ditemukan merupakan solusi yang optimal apabila biaya
cost
yang dibutuhkan tidak berkurang untuk melalui
node
pada kedalaman yang lebih dalam Russell Norvig, 2010. Contoh
breadth-first search
yang diterapkan pada permainan
Babylon Tower
dapat dilihat pada gambar 2.3.
Gambar 2.3. Breadth-first search pada permainan
Babylon Tower
Namun,
breadth-first search
memiliki kelemahan dari segi penggunaan memori. Apabila proses pencarian dilakukan terhadap pohon pencarian yang setiap
node
-nya memiliki jumlah
successor
sebanyak
b
, pada
root
-nya akan di-
generate node
baru sebanyak
b
pada kedalaman pertama. Setiap
node
yang baru akan men- generate lagi
node
-nya masing-masing sebanyak
b
, sehingga pada kedalaman kedua terdapat
node
sebanyak . Setiap
node
baru pada kedalaman kedua akan men- generate lagi
node
sebanyak
b
, menghasilkan node sebanyak pada kedalaman
Universitas Sumatera Utara
ketiga, dan seterusnya. Apabila solusi pencarian terdapat pada kedalaman
d
, maka dalam kondisi terburuk
worst case
, dimana solusi terdapat pada
node
terakhir pada kedalaman
d
, jumlah
node
yang di-
generate
adalah
Jumlah memori yang dibutuhkan untuk menjalankan algoritma
breadth-first search
menjadi masalah yang lebih besar dibandingkan waktu yang diperlukan Russel Norvig, 2010. Jumlah memori yang dibutuhkan juga merupakan
kelemahan yang paling besar dalam algoritma
breadth-first search
.
Breadth-first search
yang diterapkan dalam kebanyakan kasus akan menghabiskan memori yang tersedia dalam waktu yang singkat Korf, 1985. Namun
breadth-first search
juga membutuhkan waktu yang cukup lama untuk melakukan pencarian karena lama waktu
yang diperlukan untuk mencari semua
node
pada setiap tingkat kedalaman akan mengalami peningkatan secara eksponensial karena jumlah
node
yang juga meningkat secara eksponensial Russell Norvig, 2010.
2.5.2. Depth-First Search
Depth-first search
mampu menghindari masalah keterbatasan memori yang terjadi pada algoritma
breadth-first search
Korf, 1085.
Depth-first search
akan selalu melalui salah satu cabang dari pohon pencarian dan mengikutinya hingga menemui
solusi. Apabila cabang yang dilalui tidak menemui solusi, maka pencarian akan mundur satu langkah dan dilanjutkan dengan cabang lainnya Luger, 2009.
Depth-first search
akan selalu men-
generate node-node
baru dari
node
yang paling dalam pada pohon pencarian walaupun masih terdapat
node
lain pada kedalaman yang lebih dangkal yang belum memiliki
successor
. Pencarian akan langsung dilakukan hingga tingkat yang paling dalam dimana
node
pada kedalaman tersebut tidak memiliki
successor
-nya lagi. Apabila solusi belum ditemukan, pencarian akan dilanjutkan pada
node
terdalam yang masih memiliki
successor
lain yang belum pernah dicari. Contoh
depth-first search
yang diterapkan pada permainan
Babylon Tower
dapat dilihat pada gambar 2.4.
Universitas Sumatera Utara
Gambar 2.4. Depth-first search pada permainan
Babylon Tower
Lama waktu yang dibutuhkan dalam
depth-first search
dibatasi oleh ukuran kedalaman pohon pencarian.
Depth-first search
mungkin saja men-
generate
semua
node
dalam pohon pencarian sebanyak , dimana
m
merupakan kedalaman
Universitas Sumatera Utara
maksimum dari pohon pencarian. Nilai
m
bisa jauh lebih besar daripada nilai
d
kedalaman minimum yang memuat solusi atau tak terhingga apabila pohon pencarian tidak memiliki kedalaman yang terbatas setiap
node
selalu memiliki
successor
.
Depth-first search
memiliki kelebihan dibandingkan
breadth-first search
dalam hal penggunaan memori. Pohon pencarian pada depth-first search hanya perlu menyimpan jalur dari
root
menuju
node
pada kedalaman yang sedang dijelajahi serta
node-node
lain yang belum diekspansi pada kedalaman yang sama. Setiap
node
yang sudah pernah dijelajahi dapat langsung dihapus dari memori. Pada pohon pencarian
dengan branching factor
b
dan kedalaman maksimum
m
,
depth-first search
memerlukan memori untuk menampung node sebanyak Russell Norvig,
2010.
2.6. Kecerdasan Buatan dalam Game