This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CSCI 561 Foundations of Artificial Intelligence Fall 2010 Project 2: Logic Agent Due: 4:59 p.m., Nov 24, 2010 (a) A Sudoku Puzzle (b) Corresponding Solution Figure 1: Sudoku [Graphics from Wikipedia] 1 Introduction The goal of Sudoku puzzle is a board of size 9 x 9 filling in number 1 to 9 with the following rules: (1) Each row contains unique number from 1 to 9. (2) Each column contains unique number from 1 to 9. (3) Each 3 x 3 box contains unique number from 1 to 9. 1 A puzzle is given with initial numbers similar to Figure 1(a). Player has to fill in empty boxes such that it satisfies the rules. Figure 1(b) shows a completed puzzle with solutions in red. More information can be read at wikipedia website: http://en.wikipedia.org/wiki/Sudoku. The Sudoku puzzle problem can be solved in various ways. For exam- ple, it can be casted as a search problem and solved by heuristic searching techniques. This project requires you to convert the problem into a Boolean Satisfiability problem(SAT) and develop SAT-based Sudoku solvers using the DPLL backward-chaining algorithm (Figure 7.17 in Section 7.6.1) and WalkSAT (Figure 7.18 in Section 7.6.2). 2 Project Description This project consists of two parts. The first part requires that you to take a Sudoku puzzle as input and convert it into a Boolean formula. You are also required to code the DPLL backward-chaining algorithm and WalkSAT to provide solutions for the formula and hence a solution to the puzzle. The sec- ond part requires to provide written answers for the questions in the Report section. 2.1 Coding You will be given five input files (input x.txt, where x is an integer) that con- tain samples of puzzles. Your program should read the input file, encode the puzzle into a boolean formula and output the puzzle solution (solution...
View Full Document
This note was uploaded on 01/24/2011 for the course CS 561 at USC.