AetherOpt is an end-to-end framework and API for mapping hard combinatorial problems to Quadratic Unconstrained Binary Optimization (QUBO) and solving them using classical, quantum-inspired, and quantum solvers.
It is designed with stability, asynchronous execution, and rigorous data validation to serve as a robust backend for production workloads, integrating Cryptography and Data Science pipelines directly into the optimization workflows.
- Asynchronous Execution: Safely run long combinatorial solves in the background with a thread-safe SQLAlchemy integration.
- Strict Data Validation: Comprehensive Pydantic models for all problem domains (Portfolio, Max-Cut, Routing, Scheduling) ensuring fail-fast validation. Support for multi-objective & PUBO schemas.
- Multiple Solvers:
- Simulated Bifurcation: High-performance quantum-inspired solver for dense QUBOs.
- QAOA (Local): Local quantum circuit simulation for Exact QAOA algorithms.
- Hybrid Quantum-Classical Pipeline: Seed classical refinement (like SA or HiGHS) with states found by quantum/quantum-inspired solvers.
- Correlation Reduction: Freeze variables dynamically based on spin correlation to reduce search space.
- Quantum-Inspired SA: Simulated annealing enhanced with barrier tunneling probability bounds.
- Classical SA & HiGHS: Fast, traditional baselines and exact MIP solving.
- Cryptography Layer (Secure QUBO): Submit blind optimization jobs. Matrix coefficients are scalar-blinded before reaching the solver to ensure mathematical privacy.
- Data Science Layer: Automated experiment tracking (SQLite/MLflow concepts) to save run configurations, energies, and metadata across experiments.
Clone the repository and ensure you have uv installed (if not: pip install uv).
uv syncStart the application with both the frontend and API exposed on port 8000:
uv run aetheroptVisit http://localhost:8000 to access the interactive web interface, where you can define matrices and submit jobs seamlessly.
Note
The X-API-Key is configured to secret_key for local development by default. When deploying to production, enforce a secure token by setting the API_KEY environment variable and changing AETHEROPT_ENV=production.
You can also submit jobs directly via curl. Try out this Portfolio Optimization problem!
Show cURL Example
curl -X 'POST' \
'http://localhost:8000/api/v1/jobs/' \
-H 'accept: application/json' \
-H 'X-API-Key: secret_key' \
-H 'Content-Type: application/json' \
-d '{
"problem_type": "portfolio",
"data": {
"expected_returns": [0.1, 0.2],
"covariance_matrix": [[0.04, 0.01], [0.01, 0.05]],
"k": 1,
"risk_aversion": 0.5
},
"solvers": [
"simulated_bifurcation",
"quantum_warmstart",
"highs"
],
"config": {
"num_reads": 10,
"num_steps": 1000,
"secure": true
}
}'After receiving a Job ID, poll the results:
curl -H 'X-API-Key: secret_key' http://localhost:8000/api/v1/results/{YOUR_JOB_ID}Curious about how AetherOpt processes jobs and maps domains to QUBOs with crypto layers? Check out the Architecture Overview.
Execute the comprehensive test suite locally:
uv run pytest