Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Note that method findSolution() in PartialSolution.java has the task of enumerating different solutions starting from the square located at (initialI,initialJ). It does so by binding the value of this square to each possible value and recurring on an unexplored square until no square has more than one possible value. If the set of possible values for a square becomes empty, then the partial solution with that square is a dead end; it cannot be extended (by binding the unexplored squares to values) to a final solution. When all squares in a partial solution have exactly one value, it is a final solution. In this assignment, you will build a parallel Sudoku puzzle solver by performing the enumeration of possible values for a square (and the return of all solutions based on this choice) in parallel and combining the results of these parallel computations to return the set of all possible solutions extending to the initial puzzle.

Your assignment is as follows:

Part 1: Perform a sequential task decomposition on a solution to Assignment 11, creating a separate Callable task (as discussed in Lecture 31) for each possible value for the square located at (initialI,initialJ). Test your code by running findSolution() on the given tests, and devised devise at least 5 more tests for findSolution(). Then record the execution time output for solving puzzle1 in Sudoku.java using this sequential version.

...