Skip to main content
IBM Quantum Platform

Optimize1qGatesSimpleCommutation

class qiskit.transpiler.passes.Optimize1qGatesSimpleCommutation(*args, **kwargs)

GitHub

Bases : TransformationPass

Optimise les chaînes de portes 1Q interrompues par des portes 2Q en commutant les composants et en resynthétisant les résultats. Les règles de commutation sont stockées dans commutation_table.

REMARQUE : Outre les restrictions mentionnées sur le site commutation_table, ce laissez-passer est soumis à certaines limitations :

  • Ne gère pas plusieurs commutations à la suite sans progrès intermédiaire.
  • Ils ne peuvent faire la navette que vers des postes pour lesquels il existe déjà des parcours.
  • Ne teste pas de manière exhaustive toutes les différentes façons dont les portes de passage peuvent être assignées de part et d'autre d'une barrière pour essayer de trouver des configurations à faible profondeur. (Ceci est particulièrement évident si toutes les portes d'un parcours font la navette avec les barrières du prédécesseur et du successeur)

Paramètres

  • basis (List[str]) – Voir aussi Optimize1qGatesDecomposition.
  • run_to_completion (bool) – Si True, cette passe retente sa chance jusqu'à ce qu'elle ne puisse plus rien faire. Si elle est fausse, elle trouve et effectue une optimisation, et pour une optimisation complète, l'utilisateur est obligé de rappeler la passe jusqu'à ce que le résultat se stabilise.
  • target (Target) – L'argument Target représentant le backend cible, si basis et this sont tous deux spécifiés, cet argument aura la priorité et basis sera ignoré.

Attributs

is_analysis_pass

Vérifier si la passe est une passe d'analyse.

Si le passe est un AnalysisPass,, cela signifie qu'il peut analyser le DAG et écrire les résultats de cette analyse dans l'ensemble de propriétés. Les modifications sur le DAG ne sont pas autorisées par ce type de passe.

is_transformation_pass

Vérifier si le laissez-passer est un laissez-passer de transformation.

Si la passe est une TransformationPass,, cela signifie qu'elle peut manipuler le DAG, mais qu'elle ne peut pas modifier l'ensemble des propriétés (mais qu'elle peut les lire).


Méthodes

execute

execute(passmanager_ir, state, callback=None)

GitHub

Exécuter la tâche d'optimisation pour l'entrée Qiskit IR.

Paramètres

  • passmanager_ir (DAGCircuit) – IR Qiskit à optimiser.
  • state (DAGCircuit) – État lié à l'exécution du flux de travail par le gestionnaire de passes lui-même.
  • callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – Une fonction de rappel qui est appelée à chaque exécution d'une tâche d'optimisation.

Retours

Qiskit IR optimisé et état du flux de travail.

Type de retour

tuple [ DAGCircuit, PassManagerState ]

name

name()

GitHub

Nom du laissez-passer.

Type de retour

str

run

run(dag)

GitHub

Paramètres

dag (DAGCircuit) – le DAG à optimiser.

Retours

le DAG optimisé.

Type de retour

DAGCircuit

update_status

update_status(state, run_state)

GitHub

Mettre à jour le statut du flux de travail.

Paramètres

  • state (PassManagerState) – Transmettre l'état du gestionnaire à mettre à jour.
  • run_state (RunState) – Statut d'achèvement de la tâche en cours.

Retours

Mise à jour de l'état du gestionnaire de passe.

Type de retour

PassManagerState

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.