Demonstração do Funcinamento
Aplicativo desenvolvido para o trabalho final da disciplina de "Lógica para Ciência da Computação" - Prof.: Thiago Alves Rocha. O App tem o intuito de prover uma interface gráfica para um Sudoku 4x4 que recebe alguns números iniciais e ao precionar o botão Verificar, é verificada a satisfatibilidade (se há uma solução) a partir da configuração inicial e, caso haja, mostrar a solução ao usuário.
O projeto foi desenvolvido na IDE Xcode 7.3.1 com a linguagem Swift 2.2 utilizando o framework UIKit para a interface de usuário, portanto fica disponível exclusivamente para a plataforma iOS. O aplicativo tem como objetivo exemplificar um Sudoku 4x4, porém a classe SudokuNxN.swift gera restrições para Sudokus NxN.
Inicialização:
let sudoku4x4 = Sudoku_NxN(level: 4)
sudoku4x4.toString() // Mostra as restrições de um Sudoku 4x4 no console
let sudoku9x9 = Sudoku_NxN(level: 9)
sudoku9x9.toString() // Mostra as restrições de um Sudoku 9x9 no consoleE a satisfatibilidade é verificada a partir do algoritmo DPLL, implementado na classe DPLL.swift.
Inicialização do DPLL:
let dpll = DPLL(input: [[1,2],[-1,3]], valorations: [3])No caso acima, o DPLL receberá a formula na CNF (1 ∨ 2) ∧ (¬1 ∨ 3) com v(3) = T. Retornará alguma valoração que deixa a formula verdadeira, por exemplo: Seja v uma valoração, onde v(3) = T e v(1) = T, assim, o conjunto de valorações será {3,1}.
O código está comentado e é auto-explicativo.
A equipe é formada por três ex-alunos do Instituto Federal de Educação, Ciência e Tecnologia do Ceará - Campus Maracanaú. Sendo eles:
