Home / Computer science / N-queens / Solve with home-grown SAT solver
Solver
Define \(N\)-queens solver
(defun my-queens-constraints (size)
(append (my-queens-at-least-one-per-row-clauses size)
(my-queens-at-least-one-per-row-clauses size t)
(my-queens-at-most-one-per-row-clauses size)
(my-queens-at-most-one-per-row-clauses size t)
(my-queens-not-sharing-diagonal-clauses size)
(my-queens-not-sharing-diagonal-clauses size t)))
(defun my-queens (&optional size all-solutions-p)
(let ((size (or size 8)))
(my-sat-solve (my-queens-constraints size) all-solutions-p)))