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

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,,