Rudy’s OBTF Rudolf Adamkovič

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)))

© 2025 Rudolf Adamkovič under GNU General Public License version 3.
Made with Emacs and secret alien technologies of yesteryear.