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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for symbolic_resonance_solver-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0f393a48e91599a08ac92ae7f9bc108d76eabbd01929f6018fad2aac02bca23b
MD5 1b3c089e55565ddbb113e3b1fc6b37d5
BLAKE2b-256 f53ce149fd6f9ca1281fcf4532962257f7355bf814038556b3c605af8faa7ae4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for symbolic_resonance_solver-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cd40345260fd0f6fc7535fd052357b8fc1e6a287c0ae4d5d4ff40d7dbdfce076
MD5 2376bad1d1a601e06e0edb0905302cdb
BLAKE2b-256 db164a7499093383b42544781e582d047df8fa89945d55994ced61cd782ea662

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