Skip to content

dnbrito/sudokuSATSolver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Sudoku4x4 Solver - Swift

Demonstração do Funcinamento

Motivação

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.

Descrição

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 console

E 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.

Equipe

A equipe é formada por três ex-alunos do Instituto Federal de Educação, Ciência e Tecnologia do Ceará - Campus Maracanaú. Sendo eles:

About

Aplicativo desenvolvido para o trabalho final da disciplina de "Lógica para Ciência da Computação"

Resources

Stars

2 stars

Watchers

2 watching

Forks

Packages

 
 
 

Contributors

Languages