qgym packageο
The qgym package consist of gyms and tools used for reinforcement learning (RL) environments in the Quantum domain. Itβs main purpose is to easily create RL environments for the different passes of the OpenQL framework, by simply initializing an environment class. This abstraction of the environment allows RL developers to develop RL agents to improve the OpenQL framework, without requiring prior knowledge of OpenQL.
Example
We want to create an environment for the OpenQL pass of initial mapping for a system
with a QPU topology of 3x3. Using the qgym package this becomes:
from qgym.envs import InitialMapping
env = InitialMapping(0.5, connection_grid_size=(3,3))
We can then use the environment in the code block above to train a stable baseline RL agent using the following code:
from stable_baselines3 import PPO
model = PPO("MultiInputPolicy", env, verbose=1)
model.learn(int(1e5))
- qgym.envs package
InitialMappingRoutingScheduling- qgym.envs.initial_mapping package
BasicRewarderEpisodeRewarderInitialMappingInitialMappingStateInitialMappingState.__init__()InitialMappingState.create_observation_space()InitialMappingState.graphsInitialMappingState.is_done()InitialMappingState.is_truncated()InitialMappingState.mapped_qubitsInitialMappingState.mappingInitialMappingState.mapping_dictInitialMappingState.n_nodesInitialMappingState.obtain_info()InitialMappingState.obtain_observation()InitialMappingState.reset()InitialMappingState.steps_doneInitialMappingState.update_state()
SingleStepRewarder- qgym.envs.initial_mapping.initial_mapping module
- qgym.envs.initial_mapping.initial_mapping_rewarders module
- qgym.envs.initial_mapping.initial_mapping_state module
- qgym.envs.initial_mapping.initial_mapping_visualiser module
- qgym.envs.routing package
BasicRewarderEpisodeRewarderRoutingRoutingStateRoutingState.__init__()RoutingState.connection_graphRoutingState.create_observation_space()RoutingState.edgesRoutingState.interaction_circuitRoutingState.interaction_generatorRoutingState.is_done()RoutingState.is_legal_surpass()RoutingState.mappingRoutingState.max_observation_reachRoutingState.n_connectionsRoutingState.n_qubitsRoutingState.obtain_info()RoutingState.obtain_observation()RoutingState.positionRoutingState.reset()RoutingState.steps_doneRoutingState.swap_gates_insertedRoutingState.update_state()
SwapQualityRewarder- qgym.envs.routing.routing module
- qgym.envs.routing.routing_rewarders module
- qgym.envs.routing.routing_state module
- qgym.envs.routing.routing_visualiser module
- qgym.envs.scheduling package
BasicRewarderCommutationRulebookEpisodeRewarderMachinePropertiesMachineProperties.__init__()MachineProperties.__repr__()MachineProperties.__str__()MachineProperties.add_gates()MachineProperties.add_not_in_same_cycle()MachineProperties.add_same_start()MachineProperties.encode()MachineProperties.from_file()MachineProperties.from_mapping()MachineProperties.gatesMachineProperties.n_gatesMachineProperties.n_qubitsMachineProperties.not_in_same_cycleMachineProperties.same_start
SchedulingSchedulingStateSchedulingState.__init__()SchedulingState.busySchedulingState.circuit_infoSchedulingState.create_observation_space()SchedulingState.cycleSchedulingState.gatesSchedulingState.is_done()SchedulingState.machine_propertiesSchedulingState.obtain_info()SchedulingState.obtain_observation()SchedulingState.reset()SchedulingState.steps_doneSchedulingState.update_state()SchedulingState.utils
- qgym.envs.scheduling.machine_properties module
- qgym.envs.scheduling.rulebook module
- qgym.envs.scheduling.scheduling module
- qgym.envs.scheduling.scheduling_dataclasses module
- qgym.envs.scheduling.scheduling_rewarders module
- qgym.envs.scheduling.scheduling_state module
- qgym.envs.scheduling.scheduling_visualiser module
- qgym.generators package
BasicCircuitGeneratorBasicGraphGeneratorBasicInteractionGeneratorNullCircuitGeneratorNullGraphGeneratorNullInteractionGeneratorWorkshopCircuitGenerator- qgym.generators.circuit module
- qgym.generators.graph module
- qgym.generators.interaction module
- qgym.spaces package
- qgym.templates package
- qgym.utils package