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.2.tar.gz (53.7 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.2-py3-none-any.whl (30.1 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for symbolic_resonance_solver-0.1.2.tar.gz
Algorithm Hash digest
SHA256 1a109c0aff2ce542561be59ea845fef36723fae230f0cf82a7a8d875d8330d6e
MD5 996f0f1ac6d54503c868186708754972
BLAKE2b-256 3830c144affb4e2213ab1f2b7649a3ccd223dd96037a81378f0cfd237ede2562

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for symbolic_resonance_solver-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 38cb4640560b0e451f56703cc22c379c07eb104b0ee8ff89b0c2a878faee746c
MD5 e35c6694a31f85b4226a2d89ab79bd83
BLAKE2b-256 c38c34013d60d7294ebe089222807168bd9bb138963675693021d82ae49fbeb0

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