18
Minisat untuk Minesweeper Henry Loharja(0806334842) Desiree Jane (0806457552) Nestor Sar Naru (0806457754)

Minisat untuk Minesweeper

Embed Size (px)

Citation preview

  • 1. Henry Loharja(0806334842)Desiree Jane (0806457552)Nestor Sar Naru (0806457754)

2. Algoritmauntuk menyelesaikan permasalahan yang direpresentasikan ke dalam bentuk satisfiability MiniSAT Open source SAT solver 3. Minimalis Efisien Mudah diintegrasikan 4. Input: CNF (conjunctive normal form) CNF : Term Clause Expression 5. Menentukan lokasi ranjau pada grid Grid (i x j) = panjang x lebar Jumlah ranjau pada grid = mm < ( i x j ) * untuk ukuran custom biasanya dibatasi ukuran panjang (9 24) dan tinggi (9 - 30) dan jumlah ranjau min.10 dan max (?) 6. Worstcase: tebakan pertama langsung mendapatkan ranjau Winning Condition : semua ranjau sudah ditandai di dalam grid 7. Contoh konfigurasi : Bendera = ranjau Angka 1-8 = petunjuk jumlah bom di daerah 9x9 Huruf A, B, C -> pasti ada ranjau Huruf D dan E -> pasti tidak ada ranjau Huruf F -> ditentukan bila D dibuka 8. lingkup permasalahan : menentukan kotak-kotak mana saja dari sekumpulan kotak pada papan permainan minesweeper yang berisi ranjau apabila kita mengetahui isi dari sekumpulan kotak lainnya 9. Dalamsebuah kotak yang mengandung angka n, maka terdapat n kotak yang berisi ranjau di sekitar kotak tersebut5 10. Dalamsebuah kotak yang mengandung angka n, maka terdapat n kotak yang berisi ranjau di sekitar kotak tersebut5 11. 1. Kotak (x,y) berisi angka n dalam propositionallogic direpresentasikan dalam satu formula yanghanya terdiri atas satu variable yaitu xyn.2. Jika kotak (x,y) berisi angka n maka diketahuiterdapat kemungkinan bahwa n buah kotakdisekeliling (x,y) berisi ranjau. 12. yKotak (x,y) berisi angka n dalampropositional logic direpresentasikanx dalam satu formula yanghanya terdiri atas satu variable yaitu xyn 1. 211 (kotak (2,1) berisi nilai 1) 2. 311 3. 411 4. 222 5. 232 6. 432 7. 222 => (329 and 339) 8. 211 => 329 (jika kotak (2,1) berisi 1 maka kotak (3,2)berisi 9 yaitu ranjau karena pada minisat tidak bisa berisicharacter dan angka 9 tidak digunakan.) 9. 141 => 259 -> -141 or 259 10. 461 => ( (359 and -459) or (-359 and 459) ) .Dst 13. Input DIMACS CNF yaitu sebuah file yang berisiklausa-klausa dalam cnf dari formula yang inginditentukan satisfiability-nya30 formula yang telah dibuat kemudian diubah kedalam propositional logic dalam CNF diubah kedalam format DIMACS CNF minesweeper.cnfOutput : kumpulan cnf berisi solusi (dalam variabelxyn) 14. Input Output 15. yOutputout.txt211 152-349 x311 263259411 362359222 461-459232 272169432 281-179141 329189243 -429442 339