boolean satisfiability problem (SAT) algorithm uses inheritance & recursion with backtracking algorithm to determine optimal solution/satisfying assignment n-by-n sudoku implementation included, where n is a perfect square