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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for symbolic_resonance_solver-0.1.7.tar.gz
Algorithm Hash digest
SHA256 5225af0b759e61e3956556f6f46c8563c2fcb0e646de93d744799ec62d0699a5
MD5 85935cc9e91999d4c496d06c44882c1e
BLAKE2b-256 dab089bc4c977e21c149e5c5ad33e29c3ae6891c1c471587431d205ce4a414a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for symbolic_resonance_solver-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 00105f44fd367f5ccdf2d57c3e0663fe18c3f591a3c8fd88e8faec4655dabd1b
MD5 02643c658defeddbac17a94d26a6a6df
BLAKE2b-256 cb3cb3d43aa4cc4c30bdd5b15804eea8eeee4a115a8ab7730b90ee7e413b3fb7

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