sudoku-smt-solvers 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,19 @@
1
- from .benchmarks import BenchmarkRunner, SudokuGenerator
2
- from .solvers import CVC5Solver, DPLLSolver, Z3Solver
1
+ """Sudoku SMT Solvers - A package for solving and benchmarking large-scale Sudoku puzzles.
3
2
 
4
- __version__ = "0.1.0"
3
+ This package provides various SAT and SMT-based solvers optimized for 25x25 Sudoku puzzles,
4
+ along with tools for puzzle generation and solver benchmarking.
5
+
6
+ Key Components:
7
+ - Multiple solver implementations (DPLL, DPLL(T), Z3, CVC5)
8
+ - Sudoku puzzle generator with difficulty settings
9
+ - Benchmarking suite for comparing solver performance
10
+ """
11
+
12
+ from .solvers.dpll_solver import DPLLSolver
13
+ from .solvers.dpllt_solver import DPLLTSolver
14
+ from .solvers.z3_solver import Z3Solver
15
+ from .solvers.cvc5_solver import CVC5Solver
16
+ from .benchmarks.benchmark_runner import BenchmarkRunner
17
+ from .benchmarks.sudoku_generator.sudoku_generator import SudokuGenerator
18
+
19
+ __version__ = "0.2.0"
@@ -1,7 +1,7 @@
1
1
  from typing import List, Optional
2
2
  import atexit
3
3
  from cvc5 import Kind, Solver
4
- from .sudoku_error import SudokuError
4
+ from .utils.sudoku_error import SudokuError
5
5
 
6
6
 
7
7
  class CVC5Solver:
@@ -1,7 +1,7 @@
1
1
  from typing import List, Optional
2
2
  from pysat.solvers import Solver
3
3
  from pysat.formula import CNF
4
- from .sudoku_error import SudokuError
4
+ from .utils.sudoku_error import SudokuError
5
5
 
6
6
 
7
7
  class DPLLSolver:
@@ -1,7 +1,7 @@
1
1
  from typing import List, Optional
2
2
  from pysat.solvers import Solver
3
3
  from pysat.formula import CNF
4
- from .sudoku_error import SudokuError
4
+ from .utils.sudoku_error import SudokuError
5
5
 
6
6
 
7
7
  class DPLLTSolver:
@@ -1,5 +1,5 @@
1
1
  from z3 import Solver, Int, Distinct, sat
2
- from sudoku_smt_solvers.solvers.sudoku_error import SudokuError
2
+ from .utils.sudoku_error import SudokuError
3
3
 
4
4
 
5
5
  class Z3Solver:
@@ -1,31 +1,41 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: sudoku_smt_solvers
3
- Version: 0.1.0
3
+ Version: 0.2.0
4
4
  Summary: A collection of SAT and SMT solvers for solving Sudoku puzzles
5
5
  Home-page: https://liamjdavis.github.io/sudoku-smt-solvers
6
- Author: Liam Davis
7
- Author-email: ljdavis27@amherst.edu
6
+ Author: Liam Davis, Tairan 'Ryan' Ji
7
+ Author-email: ljdavis27@amherst.edu, tji26@amherst.edu
8
8
  License: MIT
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: License :: OSI Approved :: MIT License
11
11
  Classifier: Operating System :: OS Independent
12
- Requires-Python: >=3.9
12
+ Requires-Python: >=3.10
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
15
  Requires-Dist: cvc5
16
- Requires-Dist: pysat
16
+ Requires-Dist: python-sat
17
17
  Requires-Dist: z3-solver
18
+ Dynamic: author
19
+ Dynamic: author-email
20
+ Dynamic: classifier
21
+ Dynamic: description
22
+ Dynamic: description-content-type
23
+ Dynamic: home-page
24
+ Dynamic: license
25
+ Dynamic: requires-dist
26
+ Dynamic: requires-python
27
+ Dynamic: summary
18
28
 
19
29
  # Sudoku-SMT-Solvers
20
30
 
21
31
  [![Pytest + CI/CD](https://github.com/liamjdavis/Sudoku-SMT-Solvers/actions/workflows/test.yml/badge.svg)](ttps://github.com/liamjdavis/Sudoku-SMT-Solvers/actions/workflows/test.yml)
22
32
  [![Coverage Status](https://coveralls.io/repos/github/liamjdavis/Sudoku-SMT-Solvers/badge.svg)](https://coveralls.io/github/liamjdavis/Sudoku-SMT-Solvers)
23
33
  [![Docs Build Deployment](https://github.com/liamjdavis/Sudoku-SMT-Solvers/actions/workflows/docs.yml/badge.svg)](https://github.com/liamjdavis/Sudoku-SMT-Solvers/actions/workflows/docs.yml)
24
- [![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://liamjdavis.github.io/sudoku-smt-solvers)
34
+ [![Documentation](https://img.shields.io/badge/docs-latest-blue.svg)](https://liamjdavis.github.io/Sudoku-SMT-Solvers)
25
35
 
26
36
 
27
37
  ## About
28
- This repository contains the code for the study "Evaluating SMT-Based Solvers on Sudoku". Created by Liam Davis (@liamjdavis) and Ryan Ji (@TairanJ) as their for COSC-241 Artificial Intelligence at Amherst College, it evaluates the efficacy of SMT-Based Solvers by benchmarking three modern SMT solvers (DPLL(T), Z3, and CVC5) against the DPLL algorithm on a collection of 100 25x25 Sudoku puzzles of varying difficulty.
38
+ This repository contains the code for the study "Evaluating SMT-Based Solvers on Sudoku". Created by Liam Davis (@liamjdavis) and Tairan "Ryan" Ji (@TairanJ) as their for COSC-241 Artificial Intelligence at Amherst College, it evaluates the efficacy of SMT-Based Solvers by benchmarking three modern SMT solvers (DPLL(T), Z3, and CVC5) against the DPLL algorithm on a collection of 100 25x25 Sudoku puzzles of varying difficulty.
29
39
 
30
40
  Along with the study, we also published `sudoku-smt-solvers`, a Python package that provides the various SMT-based Sudoku solvers and benchmarking tools we built for this study. The package features DPLL(T), Z3, and CVC5 solvers optimized for 25x25 Sudoku puzzles, a puzzle generator for creating test cases, and a comprehensive benchmarking suite. Available through pip, it offers a simple API for solving Sudoku puzzles using state-of-the-art SMT solvers while facilitating performance comparisons between different solving approaches.
31
41
 
@@ -0,0 +1,13 @@
1
+ sudoku_smt_solvers/__init__.py,sha256=9LqjXOhMICYiSF1Ja22tDh3gopxsj2fg4yYXaENqu3M,763
2
+ sudoku_smt_solvers/benchmarks/__init__.py,sha256=lMrK_yj_otywN4dMvvVFtTzyTdamS_4nUgjm-k07obU,271
3
+ sudoku_smt_solvers/benchmarks/benchmark_runner.py,sha256=Mc87ul-6VkWMomtlmOMc9GXmC4AwfQUwIWKDjeFvSVA,7712
4
+ sudoku_smt_solvers/solvers/__init__.py,sha256=5qFfWzKN2WPDoFLN5ye6Ly5BqEaUdk2ks_jPP3c53l8,142
5
+ sudoku_smt_solvers/solvers/cvc5_solver.py,sha256=igN27LHxUADmYw3farmEeGtjJEsrdSQEk0X0X_EItyQ,6855
6
+ sudoku_smt_solvers/solvers/dpll_solver.py,sha256=itLEx8QdomSS9nA7CrhSlU7wN-e8vDInAWiwhXX-7Ug,6144
7
+ sudoku_smt_solvers/solvers/dpllt_solver.py,sha256=8HJWOGU6Oj4hNpgkK96sI51bdiTfRLSlf5yhic7WeF0,7992
8
+ sudoku_smt_solvers/solvers/z3_solver.py,sha256=e6WPwPdN8uUipjxNm7KRYlbsNNwGyxH3s4wy5wC8PPc,4902
9
+ sudoku_smt_solvers-0.2.0.dist-info/LICENSE,sha256=PbuZlvluV1l4HMMfPAVe5yjVvFGBK9DFp20JNhoJ8bI,1067
10
+ sudoku_smt_solvers-0.2.0.dist-info/METADATA,sha256=fLlazpd0XnC3xb5Ix3ZF1nzcc8xI_pBDrk-dp0FmEZY,6680
11
+ sudoku_smt_solvers-0.2.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
12
+ sudoku_smt_solvers-0.2.0.dist-info/top_level.txt,sha256=Ww9vs8KC4aujzfGfddMl_X8Qzh-Cywn9aBTLQgemi5A,19
13
+ sudoku_smt_solvers-0.2.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.7.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,8 +0,0 @@
1
- class SudokuError(Exception):
2
- """An exception class for errors in the sudoku solver"""
3
-
4
- def __init__(self, message):
5
- self.message = message
6
-
7
- def __str__(self):
8
- return self.message
@@ -1,14 +0,0 @@
1
- sudoku_smt_solvers/__init__.py,sha256=vTwJLa8Yp7q-OdzA44zhFIK-LhK2o8aDt-4qOJJ1M7M,134
2
- sudoku_smt_solvers/benchmarks/__init__.py,sha256=lMrK_yj_otywN4dMvvVFtTzyTdamS_4nUgjm-k07obU,271
3
- sudoku_smt_solvers/benchmarks/benchmark_runner.py,sha256=Mc87ul-6VkWMomtlmOMc9GXmC4AwfQUwIWKDjeFvSVA,7712
4
- sudoku_smt_solvers/solvers/__init__.py,sha256=5qFfWzKN2WPDoFLN5ye6Ly5BqEaUdk2ks_jPP3c53l8,142
5
- sudoku_smt_solvers/solvers/cvc5_solver.py,sha256=DfLlgzhhgSaI3tV_4mzy3vdpxY5tISSFhs0xhRWcMYk,6849
6
- sudoku_smt_solvers/solvers/dpll_solver.py,sha256=ThLT1v87oNnzDMpYmoPcmTeeXijVIgk6A6qULWVID28,6138
7
- sudoku_smt_solvers/solvers/dpllt_solver.py,sha256=4UXcod7EnJGlD7OlakmPHOuIyWga5yN9rMtKMvuEAc8,7986
8
- sudoku_smt_solvers/solvers/sudoku_error.py,sha256=iUcv1QCgQ7anov0b-AtIB1fbfZ3yWfci4eTp_8RuUJg,208
9
- sudoku_smt_solvers/solvers/z3_solver.py,sha256=awQ3tzEMIy2woFmATMiwQsC2YtktxfJlx55MudB1SN0,4922
10
- sudoku_smt_solvers-0.1.0.dist-info/LICENSE,sha256=PbuZlvluV1l4HMMfPAVe5yjVvFGBK9DFp20JNhoJ8bI,1067
11
- sudoku_smt_solvers-0.1.0.dist-info/METADATA,sha256=lbOf7Pgg4nsMlchZ54WHWcJoGa98BvgCMHCMieULSrw,6414
12
- sudoku_smt_solvers-0.1.0.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
13
- sudoku_smt_solvers-0.1.0.dist-info/top_level.txt,sha256=Ww9vs8KC4aujzfGfddMl_X8Qzh-Cywn9aBTLQgemi5A,19
14
- sudoku_smt_solvers-0.1.0.dist-info/RECORD,,