Blind Search Penerapan Algoritma Column by Column dan Depth-First Search dalam Permainan Babylon Tower

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