User Tools

Site Tools


sc330_f2016:prolog2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sc330_f2016:prolog2 [2018/10/26 02:02]
morse
sc330_f2016:prolog2 [2021/06/30 23:42] (current)
Line 38: Line 38:
 ---- ----
 ====Hints==== ====Hints====
-  * Whenever an integer is inserted into a blank space recheck the Sudoku constraints. The idea is to fail as quickly as possible to avoid extra work. The ''​is_set/​1''​ in the lists library '':​- use_module(library(lists)).''​ predicate should be useful. ​+  * Whenever an integer is inserted into a blank space recheck the Sudoku constraints. The idea is to **be efficient by failing ​as quickly as possible** to avoid extra work. The ''​is_set/​1''​ in the lists library '':​- use_module(library(lists)).''​ predicate should be useful. ​
   * Instantiate blank squares form left to right, top to bottom. While not vital, our test problems were chosen to run faster for algorithms that choose that order.   * Instantiate blank squares form left to right, top to bottom. While not vital, our test problems were chosen to run faster for algorithms that choose that order.
   * The code <code prolog>​(nonvar(S00);​ var(S00), digit(S00), is_set(Row0),​ is_set(Col0),​ is_set(Cub0)) </​code>​ will check if a single square is correct, where S00 is the spot at (0,0) and Row0, Col0, and Cub0 are the first row, col, and cube respectively. You shouldn'​t explicitly make variables for each of them, but access each space recursively. Do this for each spot, and use lists and helpers to traverse through the board.   * The code <code prolog>​(nonvar(S00);​ var(S00), digit(S00), is_set(Row0),​ is_set(Col0),​ is_set(Cub0)) </​code>​ will check if a single square is correct, where S00 is the spot at (0,0) and Row0, Col0, and Cub0 are the first row, col, and cube respectively. You shouldn'​t explicitly make variables for each of them, but access each space recursively. Do this for each spot, and use lists and helpers to traverse through the board.
sc330_f2016/prolog2.txt ยท Last modified: 2021/06/30 23:42 (external edit)