Skip to main content

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:

  1. 3-SAT and k-SAT - Boolean satisfiability problems
  2. Subset Sum - Find subset that sums to target value
  3. Hamiltonian Path - Find path visiting all vertices exactly once
  4. Vertex Cover - Minimum vertex set covering all edges
  5. Maximum Clique - Largest complete subgraph
  6. Exact 3-Cover - Partition into 3-element subsets
  7. Graph Coloring - Minimum colors for vertex coloring
  8. 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:

  1. Symbolic Entropy Spaces: Transform NP problems into prime-basis Hilbert space
  2. Resonance Operators: Quantum-inspired evolution with constraint projectors
  3. 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

🌟 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

symbolic_resonance_solver-0.1.5.tar.gz (57.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

symbolic_resonance_solver-0.1.5-py3-none-any.whl (30.5 kB view details)

Uploaded Python 3

File details

Details for the file symbolic_resonance_solver-0.1.5.tar.gz.

File metadata

File hashes

Hashes for symbolic_resonance_solver-0.1.5.tar.gz
Algorithm Hash digest
SHA256 2bdd780fa24d71ef17562d5113188472fd0388d5f076780ab070c9dc859e0b93
MD5 9fefe20442147e2cf96022ddee20b4ee
BLAKE2b-256 451cf1406285a8eeff7bd6d227308cb2402e76c8ae9e48040847b787e75db626

See more details on using hashes here.

File details

Details for the file symbolic_resonance_solver-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for symbolic_resonance_solver-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 575f3af82a484a0cf613b8f6bd67dca2224782663c1767b4129482e8392169ec
MD5 7fa100210097d5a8316ca5349504002f
BLAKE2b-256 741b72fcd9213574264218c8bef0ae70d23781cb2a57e75dbaa2d475742afc37

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page