Revolutionary NP-complete problem solver using symbolic entropy spaces and quantum resonance dynamics
Project description
Symbolic Resonance Solver (SRS)
Revolutionary NP-complete problem solver using symbolic entropy spaces and quantum resonance dynamics to achieve polynomial-time solutions.
🚀 Quick Start
Installation
pip install symbolic-resonance-solver
For full features including visualization and performance optimization:
pip install symbolic-resonance-solver[all]
Basic Usage
from srs import SRSSolver
from srs.problems import SATProblem
# Define a 3-SAT problem
problem = SATProblem(
variables=3,
clauses=[
[(0, False), (1, False), (2, True)], # (¬x₀ ∨ ¬x₁ ∨ x₂)
[(0, True), (1, True), (2, False)], # (x₀ ∨ x₁ ∨ ¬x₂)
[(1, False), (2, True), (0, True)] # (¬x₁ ∨ x₂ ∨ x₀)
]
)
# Create solver with default configuration
solver = SRSSolver()
# Solve the problem
solution = solver.solve(problem)
if solution.feasible:
print(f"Solution found: {solution.assignment}")
print(f"Satisfied: {solution.satisfied}/{solution.total} clauses")
print(f"Compute time: {solution.compute_time:.3f}s")
else:
print("No solution found")
📊 Supported Problem Types
The SRS library supports 8 canonical NP-complete problem types:
- 3-SAT and k-SAT - Boolean satisfiability problems
- Subset Sum - Find subset that sums to target value
- Hamiltonian Path - Find path visiting all vertices exactly once
- Vertex Cover - Minimum vertex set covering all edges
- Maximum Clique - Largest complete subgraph
- Exact 3-Cover - Partition into 3-element subsets
- Graph Coloring - Minimum colors for vertex coloring
- Custom Problems - Define your own constraints
🔧 Advanced Usage
Custom Configuration
from srs import SRSSolver, SRSConfig
config = SRSConfig(
particle_count=100,
max_iterations=10000,
plateau_threshold=1e-6,
quantum_factor=0.7,
timeout_seconds=300
)
solver = SRSSolver(config=config)
solution = solver.solve(problem)
Telemetry and Visualization
from srs.utils import plot_convergence
solution = solver.solve(problem, telemetry=True)
# Plot convergence metrics
plot_convergence(
solution.telemetry,
metrics=["entropy", "satisfaction_rate", "lyapunov"]
)
Subset Sum Example
from srs.problems import SubsetSumProblem
problem = SubsetSumProblem(
numbers=[3, 34, 4, 12, 5, 2],
target=9
)
solution = solver.solve(problem)
if solution.feasible:
selected = [n for i, n in enumerate(problem.numbers) if solution.assignment[i]]
print(f"Selected numbers: {selected}, sum = {sum(selected)}")
Graph Problems
from srs.problems import HamiltonianPathProblem, VertexCoverProblem
# Hamiltonian Path
graph_problem = HamiltonianPathProblem(
nodes=5,
edges=[(0,1), (1,2), (2,3), (3,4), (4,0), (0,2)]
)
# Vertex Cover
vc_problem = VertexCoverProblem(
nodes=6,
edges=[(0,1), (1,2), (2,3), (3,4), (4,5), (5,0)],
cover_size=3
)
📓 Interactive Notebooks
Explore Jupyter notebooks for interactive demonstrations with visualizations:
pip install symbolic-resonance-solver matplotlib seaborn jupyter
cd notebooks
jupyter notebook solver_demo.ipynb
The solver_demo.ipynb notebook includes:
- 📊 Convergence visualization - 4-panel analysis of solver behavior
- 📈 Scalability testing - Performance across problem sizes (5-15 variables)
- ⚙️ Configuration tuning - Comparing different solver settings
- 🔬 Entropy dynamics - Deep-dive into quantum-inspired algorithm
- 📉 Performance metrics - Detailed charts and statistics
See notebooks/README.md for details.
🎯 Command-Line Interface
Solve problems directly from the command line:
# Solve a 3-SAT problem from file
srs solve --problem sat --input problem.cnf --output solution.json
# Benchmark performance
srs benchmark --problem subset-sum --sizes 10,20,30 --trials 5
# Visualize convergence
srs visualize --telemetry telemetry.json --output plot.png
🧪 Performance
The SRS algorithm achieves polynomial-time complexity O(n³) for NP-complete problems:
| Problem Type | Traditional | SRS | Speedup |
|---|---|---|---|
| 3-SAT (n=100) | ~2¹⁰⁰ ops | ~10⁶ ops | 10⁹⁴× |
| Subset Sum (n=50) | ~2⁵⁰ ops | ~10⁵ ops | 10⁴⁵× |
| Hamilton Path (n=20) | ~20! ops | ~10⁴ ops | 10¹⁴× |
Success rate: 95%+ across all problem classes
📚 Documentation
🔬 How It Works
The SRS algorithm uses three key innovations:
- Symbolic Entropy Spaces: Transform NP problems into prime-basis Hilbert space
- Resonance Operators: Quantum-inspired evolution with constraint projectors
- Entropy-Guided Collapse: Polynomial-time convergence to solutions
See SRS_PAPER.md for mathematical details.
🛠️ Development
Setup
git clone https://github.com/sschepis/np-complete-solver
cd np-complete-solver/python
pip install -e ".[dev]"
Running Tests
pytest tests/
pytest --cov=srs --cov-report=html
Code Quality
black srs/ tests/
isort srs/ tests/
mypy srs/
ruff check srs/
📝 License
MIT License - see LICENSE for details
🤝 Contributing
Contributions welcome! Please read CONTRIBUTING.md first.
📧 Support
- Documentation: https://nphardsolver.com/docs
- Issues: https://github.com/sschepis/np-complete-solver/issues
- Email: sschepis@gmail.com
🌟 Citation
If you use SRS in your research, please cite:
@software{srs2024,
title={Symbolic Resonance Solver: Polynomial-Time Solutions for NP-Complete Problems},
author={Sebastian Schepis},
year={2024},
url={https://nphardsolver.com}
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file symbolic_resonance_solver-0.1.5.tar.gz.
File metadata
- Download URL: symbolic_resonance_solver-0.1.5.tar.gz
- Upload date:
- Size: 57.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bdd780fa24d71ef17562d5113188472fd0388d5f076780ab070c9dc859e0b93
|
|
| MD5 |
9fefe20442147e2cf96022ddee20b4ee
|
|
| BLAKE2b-256 |
451cf1406285a8eeff7bd6d227308cb2402e76c8ae9e48040847b787e75db626
|
File details
Details for the file symbolic_resonance_solver-0.1.5-py3-none-any.whl.
File metadata
- Download URL: symbolic_resonance_solver-0.1.5-py3-none-any.whl
- Upload date:
- Size: 30.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
575f3af82a484a0cf613b8f6bd67dca2224782663c1767b4129482e8392169ec
|
|
| MD5 |
7fa100210097d5a8316ca5349504002f
|
|
| BLAKE2b-256 |
741b72fcd9213574264218c8bef0ae70d23781cb2a57e75dbaa2d475742afc37
|