Skip to main content

A collection of quantum information science problems formulated as reinforcement learning environments

Project description

Qiskit Gym 🏋️‍♀️

Python Qiskit

Qiskit Gym is a collection of quantum information science problems formulated as reinforcement learning environments.

🚀 Key Features

Train AI agents to discover efficient and near-optimal quantum circuit implementations for various quantum computing tasks.

  • 🎯 Purpose-Built RL Environments: Specialized Gymnasium-compatible environments for quantum circuit synthesis problems
  • 🔧 Hardware-Aware Environments: Design environments matching real quantum hardware coupling maps
  • 🔄 Flexible Gate Sets: Define custom gate sets as part of your environments
  • 🧠 State-of-the-Art RL Integration: Built-in support for PPO, Alpha Zero, and custom policy configurations
  • ⚡ High-Performance Backend: Rust-powered core for lightning-fast quantum circuit operations
  • 💾 Model Persistence: Save and load trained models for deployment
  • ⚖️ Scalable Training: Efficient parallel environment execution
  • 📊 Built-in TensorBoard Integration: For training visualization and performance tracking
  • 🔌 Qiskit integration: You can use Qiksit seamlessly to define your problem and use your trained models.

🎲 Supported Problem Types

🔄 Permutation Synthesis

Learn to implement arbitrary qubit permutations using minimal SWAP gates on constrained coupling maps.

🔢 Linear Function Synthesis

Decompose linear Boolean functions into efficient quantum circuits using CNOT gates.

🌊 Clifford Synthesis

Generate optimal implementations of Clifford group elements with customizable gate sets.

🔭 Roadmap and Vision

There are lots of interesting quantum computing problems that can be addressed with RL. We hope to centralize the problem formulations here to make it easier for Quantum and AI researchers to collaborate in taclikng them.

For future releases we plan to include envs for:

  • Pauli Network synthesis
  • Qubit routing
  • Clifford+T synthesis

We are also open to env requests and contributions!

Stay tuned!

🏃‍♂️ Quick Start

Get started with quantum circuit synthesis RL in minutes! Check out our comprehensive tutorial:

👉 examples/intro.ipynb - Interactive Introduction Notebook

This Jupyter notebook walks you through:

  • Setting up different synthesis environments
  • Training RL agents from scratch
  • Evaluating and using trained models
  • Visualizing quantum circuits and training progress

🛠️ Installation

git clone https://github.com/AI4quantum/qiskit-gym.git
cd qiskit-gym
pip install -e .

💡 Example Usage

Here's how to set up a permutation synthesis environment and train an RL agent:

from qiskit_gym.envs import PermutationGym
from qiskit_gym.rl import RLSynthesis, PPOConfig, BasicPolicyConfig
from qiskit.transpiler import CouplingMap

# Create a 3x3 grid coupling map environment
cmap = CouplingMap.from_grid(3, 3, bidirectional=False)
env = PermutationGym.from_coupling_map(cmap)

# Set up RL synthesis with PPO
rls = RLSynthesis(env, PPOConfig(), BasicPolicyConfig())

# Train the agent
rls.learn(num_iterations=100, tb_path="runs/my_experiment/")

# Use the trained model to synthesize circuits
import numpy as np
random_permutation = np.random.permutation(9)
optimized_circuit = rls.synth(random_permutation, num_searches=1000)

🏅 Reward and Gate Penalties (at a glance)

  • Each step returns reward = (1.0 if solved else 0.0) - penalty.
  • penalty is the weighted increase in cost metrics after the chosen gate: CNOT count, CNOT layers, total layers, and total gates.
  • Default weights (MetricsWeights) are n_cnots=0.01, n_layers_cnots=0.0, n_layers=0.0, n_gates=0.0001; configure per env via metrics_weights.
  • Metrics accumulate over the episode; once the target is solved, the positive reward is offset by the penalties from any extra cost incurred.

🤝 Contributing

We welcome contributions! Whether you're adding new synthesis problems, improving RL algorithms, or enhancing documentation - every contribution helps advance quantum computing research.

📝 License

Licensed under the Apache License, Version 2.0. See LICENSE for details.

🧪 Relevant Papers

  • Kremer, D., Villar, V., Paik, H., Duran, I., Faro, I., & Cruz-Benito, J. (2024). Practical and efficient quantum circuit synthesis and transpiling with reinforcement learning. arXiv preprint arXiv:2405.13196.

  • Dubal, A., Kremer, D., Martiel, S., Villar, V., Wang, D., & Cruz-Benito, J. (2025). Pauli Network Circuit Synthesis with Reinforcement Learning. arXiv preprint arXiv:2503.14448.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

qiskit_gym-0.3.0-cp314-cp314-win_amd64.whl (372.3 kB view details)

Uploaded CPython 3.14Windows x86-64

qiskit_gym-0.3.0-cp314-cp314-manylinux_2_34_x86_64.whl (515.2 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

qiskit_gym-0.3.0-cp314-cp314-macosx_11_0_arm64.whl (467.7 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

qiskit_gym-0.3.0-cp313-cp313-win_amd64.whl (375.2 kB view details)

Uploaded CPython 3.13Windows x86-64

qiskit_gym-0.3.0-cp313-cp313-manylinux_2_34_x86_64.whl (517.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

qiskit_gym-0.3.0-cp313-cp313-macosx_11_0_arm64.whl (473.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

qiskit_gym-0.3.0-cp312-cp312-win_amd64.whl (376.2 kB view details)

Uploaded CPython 3.12Windows x86-64

qiskit_gym-0.3.0-cp312-cp312-manylinux_2_34_x86_64.whl (517.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

qiskit_gym-0.3.0-cp312-cp312-macosx_11_0_arm64.whl (473.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

qiskit_gym-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl (493.5 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

qiskit_gym-0.3.0-cp311-cp311-win_amd64.whl (374.6 kB view details)

Uploaded CPython 3.11Windows x86-64

qiskit_gym-0.3.0-cp311-cp311-manylinux_2_34_x86_64.whl (512.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

qiskit_gym-0.3.0-cp311-cp311-macosx_11_0_arm64.whl (466.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

qiskit_gym-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl (487.0 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

qiskit_gym-0.3.0-cp310-cp310-win_amd64.whl (373.8 kB view details)

Uploaded CPython 3.10Windows x86-64

qiskit_gym-0.3.0-cp310-cp310-manylinux_2_34_x86_64.whl (512.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

qiskit_gym-0.3.0-cp310-cp310-macosx_11_0_arm64.whl (465.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

qiskit_gym-0.3.0-cp310-cp310-macosx_10_12_x86_64.whl (487.2 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file qiskit_gym-0.3.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: qiskit_gym-0.3.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 372.3 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for qiskit_gym-0.3.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 53d305331a7e3409adfd51ca0a413ff5a3d1f075f31ea5771fe896bf068d21d0
MD5 84659dbf0e4d57cd2096c9caa27c1175
BLAKE2b-256 f1f6e22785dc1e991f033114279ac611c95b8a2c0349f7141a7a1082733c6356

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 9f5be229e9e8e83c266776ab5b34df24aacd98b137eba7fd92b198b9660a513f
MD5 60d0b6f733e0789510041e99e64b6ed2
BLAKE2b-256 30ff88cb341cb4c1044a2243c3e0d8d674c91b7b125fac00e0083a1ac8a8e4c5

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9b3193b76839c9db5a4a7bcb5b59ceebc7dd391575c54aea75f380dfcb88a97c
MD5 3b309c91c59f85002944aabe8b2099c3
BLAKE2b-256 357e703a1a52a407465dd9e70c5ed11071c247a425139906dac9c1e161a85976

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: qiskit_gym-0.3.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 375.2 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for qiskit_gym-0.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ee2b8bc4d95692a251d85e601ebb8297b003d6a42e28510a1653f8eec317d523
MD5 828af562c01c33b4f078a76334398265
BLAKE2b-256 f6b7cbf25ad6110bcae699dc6af93e6dd3c17c8757a8c0e6f557bcf7961a0ccc

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 75ee7f88f9c2b08e17734e2d29c867702291334568de67785e08f259ebaf3af1
MD5 90989106b95469ded17a11efd942a787
BLAKE2b-256 93e3a0587e8a912220333066d53428ae7edbc7cda8de296bd4d6a25b3ac37f32

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5566b31f7603dc37d96a54931892556170e0fa5261a7b45b5061d4280576fa50
MD5 925bc07ee7ff963099aee0635ce4987a
BLAKE2b-256 ab66c91d5cbde70e8c533a306d34e0a3ab3cf01790ff02389ddc73f4d76ab2a4

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: qiskit_gym-0.3.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 376.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for qiskit_gym-0.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 d05121ef170c767cd3e775cb633505587fec653a55450e8122a678a8193f62ce
MD5 f6dd7087985bce755d5185f9439bf50c
BLAKE2b-256 863fd7f0739e6b926a9c2816bf4c13dbe7aa0928b0648c64f6af699265f87260

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3dcfae8fc83bfc97d921c3428d579f13378342f11e067ffda64f9520b69b0f7b
MD5 66f996e738661f5b643b73a14f838dc2
BLAKE2b-256 e8e3c9a473f07b46cda0535a48f49d9302ac8813146649c476a505b0a30fea89

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e29716b8262ae3853c8a4c1892e49f985d0cbd2094d640af5cce3bbe9e4c4296
MD5 f20864cc646846886ea838159971995e
BLAKE2b-256 2b514125a4c52da9bc8ee1516d928e9282fa79b292e5e4be539b64a2ec054114

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5f53b9ca40cbc7287698e1663b1815ae8cefe590df5b702c116c4675a5cf041a
MD5 46ad3f88e532501fab0ee2767d3904b2
BLAKE2b-256 c1afcfc634646e2d72837c5ad717d5b047bcd1a4efbf037b75787a98d75cec4b

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: qiskit_gym-0.3.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 374.6 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for qiskit_gym-0.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0644a656ebe1f941c815339f84f05a4e9b9bc50cb2a6efacbf81ecb92569ce64
MD5 58d8d0f13e263afad7e4b176b8b9babc
BLAKE2b-256 5078f4ed2ba54987f078eb42158cf09afb109a9b6c6c59a39d987ceabba5f974

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6293c25b25df448ab4993cb38b28a15614456eaba943e1f611ed3649dbd0ee5e
MD5 abb03822b92ccdc62493c3c6fb06ab6e
BLAKE2b-256 2e2b4755b209a78d3bebb13b63b86dd92d814c1aac1e2791143e4e450d55625e

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 82b969b092373aab6234de5eded96c03f567f420083ec2f0b33cdc74b83f2ef8
MD5 61e751f974a3e8915fac09644aa01c7a
BLAKE2b-256 f18561c03b8ebfd211a19d22d66b7fe8667f654e367fae27b652da0a46b0238b

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b819a8ba43df0cfacea5357e0d23e3ca42a0d4fd8ae44796a1214d4cd9de5898
MD5 cc695730c50ac1af15cee29de0242559
BLAKE2b-256 976847a1fc6637fdac5adfbeaf569ea502c0aa1b05ddf7bf6ce2a6eb329e74cf

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: qiskit_gym-0.3.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 373.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for qiskit_gym-0.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ccaeca3c4e5543914c824cb278a32ebad796981ab44d2396c2c8f55d3c954516
MD5 716cece41c25f55c7e2a396428c50dfd
BLAKE2b-256 350d86e38ae69511669344f172e9c818c5c6357791c7e39c54c9bfa7d62d7d05

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 4cbe088c366b9a523002cfafc0f35b8ddb6f67d5324499b99423e3b565e8dcd2
MD5 7639f103cbce33815572149b58685097
BLAKE2b-256 cf3e9faf25299bcbe81e2d7f3115c54132baa450f42d12b49e6fd328dbac7aae

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6006f862e533853811d148d8511b714f4d7247c383025e2fc9572dd956a3930a
MD5 fc7adf9c315fff420b6bbd6332f61ce9
BLAKE2b-256 c4499d70b91cb5e2c146eb8dc468b27b294be386e26d27818a5b32f66b5a0280

See more details on using hashes here.

File details

Details for the file qiskit_gym-0.3.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for qiskit_gym-0.3.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4e648b885909105841acc739235461b2aaf27f2b7b92174309643a0df6dd973e
MD5 ee1dc79a32b00749446d19dacd5501be
BLAKE2b-256 96b96b4183e39cc010fee2aefc5cf1a8a339b3bd8d3ca1d7a5e815604f3f5f03

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