Penerapan Algoritma Branch & Bound dan Backtracking pada Game Flow

dokumen-dokumen yang mirip
Penerapan Pohon dengan Algoritma Branch and Bound dalam Menyelesaikan N-Queen Problem

Penerapan Algoritma Backtracking pada Game The Lonely Knight

Pencarian Solusi Permainan Pipe Puzzle Menggunakan Algoritma Backtrack

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Penerapan Algoritma Runut-balik pada Permainan Math Maze

Menyelesaikan Permainan Wordament Menggunakan Algoritma Backtracking

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

Pemanfaatan Algoritma Runut-Balik dalam Menyelesaikan Puzzle NeurOn dalam Permainan Logical Cell

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin

Penerapan Algoritma Backtracking pada Knight s Tour Problem

Penerapan Algoritma Greedy Best First Search untuk Menyelesaikan Permainan Chroma Test : Brain Challenge

Memecahkan Puzzle Hidato dengan Algoritma Branch and Bound

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

dengan Algoritma Branch and Bound

Penerapan Algoritma Backtrack pada Knight s Tour

ALGORITMA RUNUT BALIK DALAM PENYELESAIAN PERMAINAN WORD DIAGRAM

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

PERMAINAN KNIGHT S TOUR DENGAN ALGORITMA BACKTRACKING DAN ATURAN WARNSDORFF

Pencarian Lintasan Terpendek Pada Aplikasi Navigasi Menggunakan Algoritma A*

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

ALGORITMA RUNUT-BALIK (BACKTRACKING ALGORITHM) PADA MASALAH KNIGHT S TOUR

SOLUSI ALGORITMA BACKTRACKING DALAM PERMAINAN KSATRIA MENYEBRANG KASTIL

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

Penerapan Algoritma Greedy dan Backtrackng Dalam Penyelesaian Masalah Rubik s Cube

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour

PENGGUNAAN ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN PERSOALAN PENCARIAN JALAN (PATH-FINDING)

Menentukan Susunan Terbaik Tim Proyek dengan Algoritma Branch and Bound

Aplikasi Algoritma Brute Force dan Backtracking pada Permainan Slitherlink

Penggunaan Algoritma Branch and Bound dan Program Dinamis Dalam Pemecahan Masalah Rubik s Cube

Aplikasi Algoritma Greedy untuk Pergerakan Musuh pada Permainan Pac-Man

Menentukan Titik Evakuasi Selanjutnya bagi Sekelompok Regu Tim SAR dengan Algoritma Branch and Bound

MAKALAH STRATEGI ALGORITMIK (IF 2251) ALGORITMA RUNUT BALIK DALAM GAME LABIRIN

Penyelesaian Game Lights Out dengan Algoritma Runut Balik

Implementasi Algoritma Backtracking untuk Memecahkan Puzzle The Tile Trial pada Permainan Final Fantasy XIII-2

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

Penerapan Algoritma Runut Balik pada Pathuku Games

Pencarian Solusi Permainan Fig-Jig Menggunakan Algoritma Runut-Balik

Algoritma Branch and Bound. (Bagian 1)

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

Penerapan Algoritma A-star (A*) Untuk Menyelesaikan Masalah Maze

Penggunaan Algoritma Brute Force dan Greedy dalam Permainan Atomas

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Algoritma Backtracking Pada Logic Game : Family Crisis (Game Penyebrangan)

Algoritma Branch & Bound

Penerapan strategi runut-balik dalam penyelesaian permainan puzzle geser

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

PENYELESAIAN TEKA-TEKI PENYUSUNAN ANGKA MENGGUNAKAN ALGORITMA RUNUT BALIK

Branch & Bound. Bahan Kuliah IF2211 Strategi Algoritma Rinaldi Munir & Masayu Leylia Khodra

ALGORITMA PENCARIAN. 1. Iterative-Deepening Depth-First Search (IDS) Nama : Gede Noverdi Indra Wirawan Nim : Kelas : VI A

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem

Penerapan Algoritma Backtracking untuk Menyelesaikan Permainan Hashiwokakero

Implementasi Algoritma Greedy Dua Sisi pada Permainan 2048

Penerapan Algoritma Greedy dan Breadth First Search pada Permainan Kartu Sevens

Algoritma Backtracking Pada Permainan Peg Solitaire

Aplikasi Algoritma Runut-balik pada Penyelesaian Teka Teki Mengisi Angka

Penyelesaian Permainan 3 missionaries and 3 cannibals Dengan Algoritma Runut-Balik

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Aplikasi Branch and Bound Pada Pencarian Jalan Pada Software Navigasi

Perbandingan Algoritma Greedy & Bactracking Dalam Penyelesaian Permainan 2048

Pengaturan Sistem Lampu Lalu Lintas dengan Algoritma Branch and Bound dengan Waktu Tunggu Menggunakan Algoritma Greedy

Menentukan Starting Lineup Futsal Terbaik dengan Algoritma Branch and Bound

I. PENDAHULUAN. 1.1 Permainan Rush Hour

Aplikasi Algoritma Runut Balik dalam Pembangkitan Elemen Awal Permainan Sudoku

BAB III ALGORITMA BRANCH AND BOUND. Algoritma Branch and Bound merupakan metode pencarian di dalam ruang

Penerapan Algoritma Branch and Bound pada Penentuan Staffing Organisasi dan Kepanitiaan

Algoritma Prim sebagai Maze Generation Algorithm

Penerapan Algoritma Branch and Bound pada Perancangan Jalur Bandros

Penggunaan Algoritma Pathfinding pada Game

Penerapan Algoritma Greedy dalam Permainan Tetris

Menentukan Susunan Pengambil Tendangan Penalti dalam Skema Adu Penalti pada Pertandingan Sepak Bola dengan Algoritma Branch and Bound

Pencarian Solusi Permainan Flow Free Menggunakan Brute Force dan Pruning

Penentuan Rute Terbaik pada Permainan Taxi Rider

Penerapan Algoritma Backtracking dalam Permainan Futoshiki Puzzle

Penghematan BBM pada Bisnis Antar-Jemput dengan Algoritma Branch and Bound

Implementasi Algoritma Greedy, BFS, Branch and Bound, dan Metode Heuristik dalam Permainan Reversi

Oleh Lukman Hariadi

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

Implementasi Algoritma Greedy pada Permainan Ludo

Implementasi Algoritma DFS pada permainan Monument Valley

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

Penerapan Algoritma Branch and Bound dalam Menentukan Jalur Terpendek pada Permainan Clash of Clans

Penyelesaian Permainan Sliding Puzzle 3x3 Menggunakan Algoritma Greedy Dengan Dua Fungsi Heuristik

Penerapan Strategi Algoritma Menyelesaikan Kompleksitas Pixel Maze secara Otomatis pada Virupizxel

Algoritma Greedy dalam Strategi Permainan Centipede

Penggunaan Strategi Algoritma Backtracking pada Pencarian Solusi Puzzle Pentomino

Penerapan Algoritma Brute Force pada permainan Countdown Number

Algoritma Greedy pada Board Game Saboteur

Penyusunan Jarkom HMIF ITB dengan Menggunakan Algoritma Branch and Bound

Penentuan Langkah dengan Greedy dalam Permainan Ludo

PENERAPAN ALGORITMA BRANCH AND BOUND DALAM MENENTUKAN RUTE TERPENDEK UNTUK PERJALANAN ANTARKOTA DI JAWA BARAT

Transkripsi:

Penerapan Algoritma ranch & ound dan acktracking pada Game Flow Rio Dwi Putra Perkasa (13515012) Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi andung (IT) andung, Indonesia 13515012@std.stei.itb.ac.id dwiputra.rio@gmail.com Abstraksi Algoritma ranch and ound merupakan sebuah algoritma yang membentuk pohon ruang status secara FS untuk mencari solusi. Untuk membedakan dengan FS itu sendiri, pada algoritma & ini setiap cabang pohon diberi nilai(cost) yang digunakan untuk menentukan percabangan selanjutnya. Algoritma acktracking merupakan sebuah algoritma yang akan kembali mengecek percabangan sebeklumnya jika cabang yang dilewati tidak menemukan solusinya. Game Flow sendiri merupakan sebuah game bergenre puzzle yang misi utamanya adalah menggabungkan titik dengan membentuk sebuah jalur yang akan mengisi semua tempat yang tersedia. Keywords &, pohon, backtracking, game, flow I. PENDAHULUAN Game bergenre puzzle merupakan sebuah game yang sengaja dibuat untuk diselesaikan penggunanya dengan sedikit pemikiran dan logika. Secara umum game puzzle dibawakan secara simple dan tidak terlalu berat juga ukurannya yang relative kecil jika dibandingkan game bergenre lainnya. Game puzzle biasanya hanya mempunyai satu tujuan khusus untuk puzzle tersebut, hal ini berbeda dengan game bergenre lain yang mempunyai berapa tujuan. Tapi game seperti ini termasuk banyak peminatnya walau dibuat dengan simple. Salah satu game yang akan saya bahas pada tulisan saya ini merupakan game bergenre puzzle yang berjudul Flow. Game ini merupakan game yang diproduksi oleh ig Duck Games LLC yang dapat diinstall di platform Android dan ios. Game ini didesain dengan simple dan menarik sehingga game ini bisa dikatakan popular dengan jumlah download yang melebihi 100 juta download di Play Store. Game Flow ini menantang pemainnya untuk menggabungkan dua titik dengan warna yang sama dengan cara menggeser salah satu titik membentuk sebuah jalur menuju titik lainnya. Jika misinya hanya menggabungkan titik dengan membuat jalan, pastinya akan mudah oleh karena itu di dalam game ini titik yang harus dipasangkan tidak hanya dua tetapi ada beberapa dwengan warna yang berbeda. Dalam game Flow jalur dari titik yang berbeda warna tidak boleh untuk saling memotong. Game Flow ini juga terdapat ukuran tile atau tempat permainan, dalam game ini disediakan berbagai variasi ukuran tile yang tentunya dengan tingkat kesulitan masing-masing. Apabila pemain ingin memenangkan setiap level maka pemain diwajibkan untuk menggabungkan semua titik dan mengisi semua tile dengan jalur yang di buat oleh titik tersebut. II. DASAR TEORI A. Algoritma acktracking Algoritma Runut-balik atau biasa disebut dengan backtracking merupakan sebuah algoritma yang berbasis pada pencarian secara mendalam atau DFS. Pada algoritma backtracking hanya mempertimbangkan pencarian yang mengarah ke solusi saja. Sehingga algoritma ini juga bisa disebut perbaikan dari algoritma brute force, sehingga secara otomatis waktu yang dibutuhkan untuk menyelesaikan permasalahannya juga lebih cepat. Gambar 1 Algoritma Runut-balik atau acktracking Sumber : https://www.w3.org/2011/talks/01-14-stevenphenotype/backtracking.png Diakses pada 18 Mei 2017 pukul 21:32 Algoritma backtracking pertama kali dikenalkan oleh D.H. Lehmer pada tahun 1950. Elanjutnya, R.J Walker, Golomb,

dan aumert menyajikan uraian umum tentang runut-balik dan penerapannya pada berbagai persoalan [HOR78]. Algoritma backtracking lebih banyak penerapan pada permainan seperti N Queen Problem, Knight Tour Problem, Rat in a Maze Puzzle, dan Word Matrix. Seperti namanya, algoritma ini akan merunut balik pada percabangan terakhir apabila ekspansinya gagal. Setelah kembali ke simpul terakhir maka algoritma akan mencari di cabang lain. Algoritma umum untuk backtracking adalah sebagai berikut pilih titik mulai while(solusi belum ditemukan) for setiap jalan dari titik mulai if jalan yang dipilih benar, maka dipilih buat rekursif untuk semua problem yang tersisa if rekursif mengembalikkan true maka true else batalkan jalan yang dipilih dan kembalikan false. end for if tidak ada jalan yang benar, kembalikkan false, NO SOLUTION. Algoritma ranch and ound Algoritma ranch and ound atau biasa ditulis & merupakan sebuah metode pencarian di dalam ruang solusi secara sistematis, sehingga dalam pencarian solusinya & membentuk pohon ruang status. Pada & berbeda dengan backtracking pembentukan pohon ruang status dibangun dengan skema FS. Untuk mempercepaat pencarian solusi maka di setiap sismpul yang diekspansi di beri nilai atau cost nilai inilah yang nantinya akan digunakan untuk menentukan simpul mana yang akan di ekspansi selanjutnya. Algoritma & pertama kali dikenalkan oleh A.H. Land dan A.G Doig pada 1960 untuk pemrograman diskrit, dan menjadi algoritma yang sering digunakan untuk menyelesaikan masalah optimasi NP-Hard. Simpul yang dibangkitkan pada algoritma & adalah simpul yang memiliki nilai terkecil diantara simpul hidup lainnya. Ongkos pada setiap simpul merupakan nilai taksiran yang didapatkan dari fungsi pembatas yang dibuat. Algoritma yang mirip dengan & adalah algoritma A*. Prinsip pencarian algoritma & hamper mirip dengan FS hanya saja ekspansi yang dilakukan tidak berdasarkan urutan pembangkitan tetapi dilhat dari nilai yang ada pada setiap simpul.. Untuk setiap simpul X, nilai batas ini dapat berupa : a. Jumlah simpul dalam subpohon X yang perlu dibangkitkan sebelum simpul solusi ditemukan. b. Panjang lintasan dari simpul X ke simpul solusi terdekat. C. Permainan Flow Permainan yang berjudul Flow ini merupakan salah satu permainan yang diproduksi oleh ig Duck Games LLC. Permainan Flow tersedia gratis di play store untuk android dan ios. Permainan ini memiliki gameplay yang mudah dan desain yang minimalis. Permainan ini membutuhkan pilihan langkah untuk menyelesaikan misinya. Dalam permainan ini disediakan kotak persegi untuk tempat bermain berukuran n x n (membesar sesuai level). Di dalam kotak terdapat beberapa pasang titik dengan warna yang berbeda tiap pasang. Setiap pasang dipisah dengan jarak tertentu. Gambar 2 Pohon Ruang Status dari algoritma & dalam penyelesaian Knapshack Problem Sumber : https://qph.ec.quoracdn.net/main-qimg- 9dddb8feab89ee865658425f5383f9e5 Diakses pada 18 Mei 2017 pukul 22:24 Gambar 3 Tampilan Permainan Flow, sebelum titik dipasangkan Sumber : http://www.gamerevolution.com/images/misc/level51start.jpg Diakses pada 18 Mei 2017 pukul 23:08

Misi dari permainan ini adalah menyatukan seluruh titik dengan warna yang sama pada kotak yang telah disediakan. Jalur yang tercipta dari dua pasang titik yang berwarna sama tidak boleh berpotongan dengan jalur dari pasangan titik yang lain. Hal yang menantang pada permainan ini adalah menemukan jalan yang membuat semua jalur yang dibuat tidak berpotongan. Sebelum melangkah ke pembahasan algoritma, saya akan menjelaskan terlebih dahulu prerequisite yang harus dipenuhi yaitu, program sudah mengetahui urutan pasangan titik yang memiliki jarak terpendek ke yang terjauh. Syarat ini diperlukan untuk urutan pengaplikasian algoritma untuk setiap pasang titik. Jadi pasangan titik terjauh akan mendapat giliran terakhir. Untuk mencari titik terdekat bisa menggunakan algoritma lain seperti rute Force, Divide and Concuer dan yang lainnya. Saya tidak akan membahas algoritma untuk mencari titik terdekat. Untuk selanjutnya saya akan menentukan pattern yang akan saya gunakan untuk menganalisis adalah sebagai berikut Dari tabel disamping dapat diketahui bahwa warna biru merupakan pasangan titik yang terdekat, kemudian dilanjutkan dengan hijau dan kuning, lalu merah Gambar 5 pattern Gambar 4 Semua titik pada permainan flow sudah di pasangkan Sumber : http://www.gamerevolution.com/images/misc/level51.jpg Diakses pada 18 Mei 2017 pukul 23:14 Dari gambar diatas dapat dilihat bahwa terdapat dua parameter keberhasilan dari permainan ini yaitu flow yang diciptakan dan grid yang telah disediakan harus diisi penuh. Apabila pemain dapat memenuhi kedua parameter itu maka pemain bisa dikatakan sudah menyelesaikan permainan tersebut dan akan berganti level ke level yang lebih sulit. Selain kedua parameter tersebut, ketinggian nilai yang didapat juga dipengaruhi oleh jumlah langkah yang dilakukan untuk menyelesaikan level tersebut. Semakin sedikit langkah yang dilakukan, maka semakin tinggi score yang didapat. III. PENERAPAN ALGORITMA ACKTRACKING DAN & PADA PERMAINAN FLOW Seperti yang dijelaskan sebelumnya, bahwa permainan ini diperlukan langkah yang tepat untuk bisa menyelesaikan permainan dan memperoleh nilai yang besar dengan langkah yang seminimal mungkin. Juga tanpa memotong jalur lawan. Persoalan ini akan diselesaikan dengan algoritma backtracking dan & dimana akan ditentukan dulu nilai taksiran dengan fungsi yang nanti akan dijelaskan. A. Penerapan dengan Algoritma acktracking Penerapan dengan Algoritma acktracking dilakukan terlebih dahulu pada warna biru. Penentuan penarikan garis ditentukan yaitu berawal dari titik yang memiliki absis dan ordinat terbesar. Contoh pada pattern diatas maka biru yang kanan akan menjadi awal garis. Prioritas pembangkitan simpul selanjutnya adalah sebagai berikut 3 2 4 1 Gambar 6 urutan prioritas Dapat diketahui dari ilustrasi disamping bahwa prioritas menurun searah jarum jam. Apabila terdapat titik lain di jalan, maka jalan tersebut dimatikan. Pertama-tama titik biru akan menuju bagian kiri. Saat sudah melangkah satu kotak, maka langkah selanjutnya adalah ke bawah sampai tiga kali hingga akhirnya bertemu dengan titik merah dan penampakannya akan menjadi seperti berikut sampai titik biru terhubung.

Sampai disini maka akan dapat diprediksi bahwa merah akan bergabung lewat jalan paling luar. Gambar 7 titik biru sudah tersambung dengan algoritma acktracking Tetapi terdapat kendala, yaitu warna kuning dan hijau tidak bisa menemukan jalan untuk bergabung, sehingga hal ini di perlukan backtracking untuk titik yang sudah digabungkan dipisah kembali, kemudian untuk setiap titik mencoba jalan yang lain. Gambar 10 pohon pembangkitan hasil algoritma backtracking Karena solusi pada simpul 14 tidak bisa menyelesaikan permainan, jadi titik biru melakukan backtracking sampai menemukan solusi kembali. Dan Akhirnya menemukan pada simpul ke enam. Penerapan dengan Algoritma ranch and ound Pada pengaplikasian ranch and ound pohon ruang status yang terbentuk menggunakan skema FS, jadi disini untuk menyimpan simpul hidup dibutuhkan sebuah queue. Penarikan garis berlaku sama seperti backtracking yaitu titik mulai adalah titik yang mempunyai jarak atau jumlah kotak yang paling banyak, apabila sama, maka dipilih yang memiliki Prioritas yang berlaku untuk pembangkitan simpul baru pada penerapan algoritma ini sama dengan yang digunakan pada backtracking yaitu searah jarum jam. Selaian itu algoritma & juga memerlukan sebuah fungsi pembatas (bound) dalam kasus ini adalah c(i) = f(i) + g(i) Gambar 8 Solusi penggabungan titik iru dimana c(i) adalah nilai yang akan diberikan pada setiap simpul yang dibangkitkan. f(i) adalah jumlah kotak yang telah dilewati dari akar. g(i) adalah jumlah kotak paling sedikit dari tempat simpul sampai simpul solusi, tetapi tidak melewati tempat yang ada titiknya Gambar 9 Titik kuning disatukan Hal ini dilakukan secara berulang sampai semua bisa bergabung. Pohon Status yang tercipta untuk pemasangan titik biru adalah Sama seperti contoh pada algoritma backtracking disini saya akan memberikan contoh penerapan algoritma pada permainan flow. Saat pertama kali permainan dimulai maka pada list antrian akan terdapat node start kemudian titik biru di sebelah kanan akan mengekspansi menjadi titik-titik yang ada di sekitarnya. Simpul C(2) C(3) C(4) 1 2 3 5 2 1 3 2 4 5 6 8 10 Gambar 11 pembangkitan simpul dengan algoritma & 11 12 Dengan ilustrasi diatas maka simpul ke-3 yang dibangkitkan akan diekspansi lagi 13 14

Simpul C(5) C(6) C(7) 2 4 2 4 7 3 6 2 4 5 8 6 5 3 1 4 9 7 2 Gambar 14 Simpul kuning disatukan dan semua simpul Gambar 12 titik biru digabungkan dengan & Apabila diteruskan maka simpul 6 akan diekspansi tetapi simpul 6 adalah solusi untuk pasangan titik biru. Apabila menggunakan algoritma ini jalur yang dipilih relative pendek disbanding dengan algoritma backtracking. Pada suatu kasus pasti terdapat keadaan dimana jalur yang dibuat menggunakan algoritma ini menghalangi jalur titik lain, jika hal ini terjadi maka diperlukan backtracking. acktracking yang dilakukan sama dengan algoritma sebelumnya, yaitu menggagalkan langkah sebelumnya. Pohon status yang dihasilkan untuk titik yang kuning adalahsebagai berikut 2 1 3 4 Apabila ditinjau dari titik yang kuning maka titik kuning yang sebelah kanan akan menjadi acuannyalangkah awal daftar antrian akan sebagaia berikut Simpul C(2) C(3) C(4) 1 0 4 0 5 6 7 8 3 4 2 9 Gambar 13 pembangkitan simpul pada titik kuning Dari ilustrasi diatas hanya simpul 3 yang bisa di ekspansi, karena simpul yang lain tidak ada jalur yang bisa menuju simpul solusi. Sehingga apabila diteruskan maka antrian akan menjadi Simpul C(5) C(6) 3 4 6 Simpul C(7) C(8) 5 4 6 Simpul C(9) 7 4 Simpul C(Solusi) 9 Solusi Gambar 15 Pohon pembangkitan dari algoritma & IV. KESIMPULAN Algoritma acktracking dan ranch&ound dapat diterpakan di berbagai kasus, terutama kasus penentuan rute, langkah, dan jalan yang mangkus dan murah. Sedangkan untuk algoritma acktracking lebih tepat pada penerapan pencarian jalan keluar atau labirin. Penerapan Algoritma backtracking dan & pada permainan Flow cukup mangkus karena bisa menyelesaikan masalah dengan lebih cepat. Terutama pada algoritma & dengan menggunakan fungsi pembatas c(i) = f(i) + g(i)

dimana c(i) merupakan nilai pembatas yang didapatkan dari jumlah kotak dari simpul ke simpul akar (f(i)) dan jumlah kotak dari simpul ke simpul solusi (g(i)). Kelemahan pada algoritma backtracking adalah jika simpul solusi terletak selalu di akhir dari simpul ekspansi yang juga terakhir kali diekspansi. Sedangkan untuk algoritma & mempunyai kelemahan yaitu pada permainan Flow akan menutup jalur lawan, karena yang dipilih selalu jalur terpendek. UCAPAN TERIMA KASIH Puji syukur saya panjatkan kepada Allah, karena dengan karunia-nya, saya dapat menyelesaikan makalah ini dengan baik. Terima kasih saya ucapkan kepada Ibu Nur Ulfa Maulidevi, Ibu Masayu Leylia Khodra, dan apak Rinaldi Munir selaku dosen pengajar mata kuliah IF2211 Strategi Algoritma. REFERENSI [1] Munir, Rinaldi, Diktat Kuliah IF2211, Strategi Algoritma, Program Studi Teknik Informatika, STEI, IT, 2009 [2] http://algorithms.tutorialhorizon.com/introduction-to-backtrackingprogramming/ diakses pada 18/05/2017 pukul 20:57 [3] http://www.geeksforgeeks.org/branch-and-bound-set-1-introductionwith-01-knapsack/ diakses pada 18/05/2017 pukul 21:39 [4] http://ieeexplore.ieee.org/document/5483286/ diakses pada 18/05/2017 pukul 21:30 PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. andung, 29 April 2012 Rio Dwi Putra Perkasa 13515012