QuantumForge is a quantum circuit design environment that focuses on adaptive synthesis of quantum circuits. It leverages reinforcement learning techniques to construct and optimize quantum circuits that generate desired quantum states.
- Support for both Qiskit and Cirq backends
- Gymnasium-compatible environment
- Advanced action space including multi-qubit gates
- Realistic noise simulation
- Reinforcement learning integration with Stable Baselines3
- Hyperparameter optimization using Optuna
- Circuit optimization and visualization
- Clone this repository
- Install the required dependencies:
pip install -r requirements.txt
See example.py
for a basic usage example. This script demonstrates:
- Training a PPO agent on the QuantumForge environment
- Evaluating the trained agent
- Visualizing rewards and final quantum states
To run the basic example:
python example.py
See advanced_example.py
for a more sophisticated usage. This script showcases:
- Hyperparameter optimization using Optuna
- Training with optimized hyperparameters
- Circuit optimization
- Visualizing the optimized circuit
To run the advanced example:
python advanced_example.py
- Observations: The current quantum state represented as a complex vector
- Actions: (operation, qubit1, qubit2, parameter)
- Operations: X, Z, H, RY, CNOT, CZ
- Qubits: Indices of qubits to apply operations
- Parameter: Used for parameterized gates (e.g., RY)
- Reward: Based on the fidelity between the current state and the target state, with a penalty for circuit depth
The project uses Stable Baselines3 for reinforcement learning algorithms. The examples demonstrate the use of PPO (Proximal Policy Optimization), but other algorithms like A2C and SAC are also available.
Optuna is used for hyperparameter optimization in the advanced example. This allows for automatic tuning of the RL algorithm's hyperparameters to achieve better performance.
QuantumForge supports two quantum computing backends:
- Qiskit: IBM's open-source framework for quantum computing
- Cirq: Google's framework for writing, manipulating, and optimizing quantum circuits
Both backends provide similar functionality for the purposes of this environment, including noise simulation.
The examples generate various visualizations:
- Reward plots over time
- Final quantum state visualizations
- Optimized circuit visualization
These are saved as PNG files in the project directory.