Skip to content

About

OptiQ-Flow is a quantum-powered portfolio optimization system built for real NISQ hardware. It uses QAOA with advanced error mitigation to overcome noise in quantum devices. By comparing runs with and without mitigation, it proves improved accuracy, enabling reliable, real-time financial optimization on quantum hardware.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

16 Commits

Folders and files

Repository files navigation

📌 Project Overview

Field Description
Project Name OptiQ-Flow
Tagline Quantum Portfolio Optimization with Error Mitigation
Domain Quantum Computing · Finance
License MIT
Python Version 3.10+
Quantum SDK Qiskit 1.x
UI Streamlit
Hardware IBM Quantum (NISQ devices)

🚀 Overview

Topic Details
Core Idea Solve portfolio optimization using quantum algorithms
Theory Used Markowitz Mean–Variance Optimization
Quantum Algorithm QAOA (Quantum Approximate Optimization Algorithm)
Key Challenge Noise on NISQ quantum hardware
Solution Dual-run QAOA with and without error mitigation
Output Quantified improvement using financial metrics

🎯 Problem Statement

Issue Explanation
Scaling Markowitz optimization scales poorly with asset count
Classical Limitation Classical solvers struggle with large constrained portfolios
Quantum Limitation Noise degrades QAOA accuracy on real hardware
Research Gap Most demos ignore hardware noise
OptiQ-Flow Goal Measure and mitigate quantum noise impact

💡 Key Contributions

Contribution Description
QUBO Mapping Converts Markowitz problem to QUBO / Ising Hamiltonian
Real Hardware Executes QAOA on IBM Quantum devices
Dual Execution Runs QAOA with and without error mitigation
Error Mitigation Readout calibration and Zero-Noise Extrapolation
Evaluation Compares against classical cvxpy baseline
Visualization Interactive Streamlit dashboard

🧠 Solution Architecture

Stage Component Description
1 Market Data Historical or synthetic prices from Yahoo Finance
2 Returns Asset return computation
3 Covariance Covariance matrix estimation
4 QUBO Model Mean–variance mapped to QUBO
5 Ising Model QUBO converted to Ising Hamiltonian
6 QAOA (Raw) Noisy execution without mitigation
7 QAOA (Mitigated) Readout + ZNE applied
8 Comparison Classical vs quantum results
9 Metrics Sharpe ratio, accuracy, convergence
10 Visualization Streamlit charts and heatmaps

🔑 Key Takeaways

Aspect Outcome
Architecture Dual-run quantum pipeline
Hardware Real NISQ execution
Impact Error mitigation improves accuracy
Evaluation Quantitative financial metrics
Usability Visual and interactive analysis

🛠 Technology Stack

Layer Tools Purpose
Quantum SDK Qiskit 1.x, IBM Runtime Circuit execution
Simulator Qiskit Aer Noisy & noiseless testing
Optimizers COBYLA, SLSQP QAOA parameter tuning
Classical Solver cvxpy Markowitz baseline
Data yfinance, pandas, NumPy Market data handling
Visualization Plotly, Matplotlib Graphs and heatmaps
Dashboard Streamlit User interface
Error Mitigation Readout calibration, ZNE Noise reduction

📦 Installation

Step Command
Clone Repo git clone https://github.com/your-org/optiq-flow.git
Enter Directory cd optiq-flow
Create Venv python -m venv .venv
Activate (Windows) .venv\Scripts\activate
Activate (macOS/Linux) source .venv/bin/activate
Install Dependencies pip install -r requirements.txt

🔑 IBM Quantum Access

Item Value
File .env
Variable IBM_QUANTUM_TOKEN
Token Source https://quantum.ibm.com
Cost Free

⚡ Quick Start (Python API)

Step Description
1 Fetch stock price data
2 Compute returns and covariance
3 Solve classical Markowitz
4 Initialize QAOA optimizer
5 Enable error mitigation
6 Run quantum optimization
7 Compare results

📊 Results

Method Sharpe Ratio Accuracy (%) Runtime (s)
Classical (cvxpy) 1.45 100.0 0.5
QAOA (No Mitigation) 1.12 73.2 45.3
QAOA (With Mitigation) 1.38 94.1 52.7

🧩 Project Structure

Path Description
README.md Documentation
requirements.txt Dependencies
config.py Global config
src/portfolio_data.py Data pipeline
src/qubo_formulation.py QUBO construction
src/qaoa_optimizer.py QAOA execution
src/error_mitigation.py Noise mitigation
src/classical_baseline.py Classical solver
src/visualization.py Plot utilities
app.py Streamlit app
notebooks/analysis.ipynb Experiments
tests/test_qaoa.py Unit tests

▶️ How to Run OptiQ-Flow

Option Action
A Double-click run_optiq.bat
B cd optiq_flow && streamlit run app.py
App Entry app.py
Platform Streamlit

🔮 Future Extensions

Area Extension
Strategy Dynamic rebalancing
Scale 1000+ qubit devices (IBM Condor)
Algorithms VQE, ADAPT-QAOA
Constraints Transaction costs
Objectives ESG + risk-return

📚 References

Reference Description
Farhi et al. QAOA (arXiv:1411.4028)
Markowitz (1952) Portfolio Selection
Temme et al. (2017) Error Mitigation
IBM Qiskit Docs Quantum SDK reference

About

OptiQ-Flow is a quantum-powered portfolio optimization system built for real NISQ hardware. It uses QAOA with advanced error mitigation to overcome noise in quantum devices. By comparing runs with and without mitigation, it proves improved accuracy, enabling reliable, real-time financial optimization on quantum hardware.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages