qiskit.transpiler.generate_preset_pass_manager
qiskit.transpiler.generate_preset_pass_manager(optimization_level=2, backend=None, target=None, basis_gates=None, coupling_map=None, initial_layout=None, layout_method=None, routing_method=None, translation_method=None, scheduling_method=None, approximation_degree=1.0, seed_transpiler=None, unitary_synthesis_method='default', unitary_synthesis_plugin_config=None, hls_config=None, init_method=None, optimization_method=None, dt=None, qubits_initially_zero=True, *, _skip_target=False)
Générer un préréglage PassManager
Cette fonction permet de générer rapidement un gestionnaire de passes prédéfini. Les gestionnaires de passes prédéfinis sont les gestionnaires de passes utilisés par défaut par la transpile() fonction. Cette fonction offre un moyen simple et pratique de créer un objet autonome PassManager qui reflète ce que la transpile() fonction construit et utilise en interne.
Les contraintes cibles pour la construction du gestionnaire de passe peuvent être spécifiées par le biais d'un Target ou d'une instance BackendV2 ou par des contraintes libres (basis_gates, coupling_map, ou dt). L'ordre de priorité des contraintes cibles est le suivant : si une entrée target est fournie, elle aura la priorité sur toute entrée backend ou sur les contraintes libres. Si une adresse backend est fournie en même temps qu'une contrainte non contraignante de la liste ci-dessus, la contrainte non contraignante aura la priorité sur la contrainte correspondante du backend. Ce comportement est résumé dans le tableau ci-dessous. La première colonne du tableau résume les contraintes potentielles fournies par l'utilisateur, et chaque cellule indique si la priorité est attribuée à cette entrée de contrainte spécifique ou à une autre entrée (cible/backend( V1 )/backend( V2 )).
Fourni par l'utilisateur | cible | backend( V2 ) |
|---|---|---|
| portes_de_base | cible | portes_de_base |
| carte de couplage | cible | carte de couplage |
| dt | cible | dt |
Lorsque la base cible est constituée de portes Clifford+T, cette fonction construit un pipeline de transpileur Clifford+T spécialisé; voir generate_preset_clifford_t_pass_manager() pour une documentation plus détaillée. Les arguments qui ne s'appliquent qu'à la transposition en ensembles de bases continus sont ignorés dans ce flux. Par exemple, le "unitary_synthesis_method" n'est pas pris en compte lors de la synthèse d'opérateurs unitaires à un seul qubit en une séquence de type Clifford+T.
Paramètres
-
optimization_level (int) –
Le niveau d'optimisation à générer un
StagedPassManagerpour. Par défaut, le niveau d'optimisation 2 est utilisé si ce paramètre n'est pas spécifié. Il peut s'agir de 0, 1, 2 ou 3. Les niveaux supérieurs génèrent des circuits potentiellement plus optimisés, au prix d'un temps de transpilation plus long :- 0 : pas d'optimisation
- 1 : optimisation de la lumière
- 2 : optimisation lourde
- 3 : une optimisation encore plus lourde
-
backend (Backend | None) – Objet de backend facultatif pouvant servir de source pour les valeurs par défaut des paramètres
basis_gates,coupling_map, ettarget. Si l'un de ces autres arguments est spécifié en plus debackendcelui-ci, il prévaudra sur la valeur contenue dans le backend. -
target (Target | None) – Le
Targetcorrespondant à une cible de compilation backend. Les attributs suivants seront déduits de cet argument s'ils ne sont pas définis :coupling_mapetbasis_gates. -
basis_gates (list[str] | None) – Liste des noms de portes de base vers lesquelles effectuer le dépliage (par exemple :
['u1', 'u2', 'u3', 'cx']). -
coupling_map (CouplingMap |list | None) –
Le graphe orienté représente une carte de couplage. Plusieurs formats sont pris en charge :
CouplingMapinstance- Doit être donnée sous la forme d'une matrice d'adjacence, où chaque entrée spécifie toutes les interactions dirigées à deux qubits prises en charge par le backend, par exemple
[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]
-
initial_layout (Layout |list[int]) – Position initiale des qubits virtuels sur les qubits physiques.
-
layout_method (str | None) – La méthode
Passà utiliser pour choisir l'emplacement initial des qubits.TrivialLayoutLes choix valides sont'trivial','dense', et'sabre', qui représentent respectivement,DenseLayoutetSabreLayout.StagedPassManagerIl peut également s'agir du nom du plugin externe à utiliser pour l'étapelayoutde sortie. Vous pouvez afficher la liste des plugins installés en utilisantlist_stage_plugins()avec"layout"comme argumentstage_name. -
routing_method (str | None) – Le pass à utiliser pour acheminer les qubits sur l'architecture.
BasicSwapLes choix valides sont'basic','lookahead','sabre', et'none', qui représentent respectivement,LookaheadSwap,SabreSwap, et une erreur si un routage est nécessaire.StagedPassManagerIl peut également s'agir du nom du plugin externe à utiliser pour l'étaperoutingde sortie. Vous pouvez afficher la liste des plugins installés en utilisantlist_stage_plugins()avec"routing"comme argumentstage_name. -
translation_method (str | None) – Méthode à utiliser pour convertir les portes en portes de base.
BasisTranslator'translator'Choix valides,'synthesis'représentant respectivement, etUnitarySynthesis.StagedPassManagerIl peut également s'agir du nom du plugin externe à utiliser pour l'étapetranslationde sortie. Vous pouvez afficher la liste des plugins installés en utilisantlist_stage_plugins()avec"translation"comme argumentstage_name. -
scheduling_method (str | None) – Le passeport à utiliser pour la programmation des cours. Les choix valides sont
'alap'et'asap'.StagedPassManagerIl peut également s'agir du nom du plugin externe à utiliser pour l'étapeschedulingde sortie. Vous pouvez afficher la liste des plugins installés en utilisantlist_stage_plugins()avec"scheduling"comme argumentstage_name. -
approximation_degree (float | None) – Curseur heuristique utilisé pour l'approximation des circuits, où
1.0signifie « aucune approximation » (dans les limites de la tolérance numérique) et0.0signifie « approximation maximale ». Sitargetest disponible, une valeur deNoneindique qu’une approximation est autorisée dans la limite du taux d’erreur indiqué pour une opération dans la cible. -
seed_transpiler (int | None) – Définit une graine aléatoire pour les parties stochastiques du transpileur. Si cela n'est pas spécifié ici, cela peut également être défini via une variable d'environnement :
QISKIT_TRANSPILER_SEEDou dans un fichier de configuration utilisateur. L'ordre de priorité est le suivant : cet argument, puis la variable d'environnement, et enfin l'option de configuration de l'utilisateur. Ainsi, la définition de cet argument prévaudra sur les autres méthodes de définition d'une valeur de départ. -
unitary_synthesis_method (str) – Le nom de la méthode de synthèse unitaire à utiliser. Par défaut,
'default'est utilisé. Vous pouvez voir la liste des plugins installés avecunitary_synthesis_plugin_names(). -
unitary_synthesis_plugin_config (dict | None) – Un dictionnaire de configuration facultatif qui sera transmis directement au plugin de synthèse unitaire. Par défaut, ce paramètre n'aura aucun effet, car la méthode de synthèse unitaire par défaut ne permet pas de configuration personnalisée. Cela ne devrait être nécessaire que lorsqu'un plugin de synthèse unitaire est spécifié avec l'argument
unitary_synthesis_method. Comme cette option varie selon chaque plugin de synthèse unitaire, veuillez consulter la documentation du plugin concerné pour savoir comment l'utiliser. -
hls_config (HLSConfig | None) – Une classe
HLSConfigde configuration facultative qui sera transmise directement àHighLevelSynthesisla phase de transformation. Cette classe de configuration permet de définir, pour divers objets de haut niveau, les listes d'algorithmes de synthèse et leurs paramètres. -
StagedPassManagerinit_method (str | None) – Le nom du plugin à utiliser pour l'étapeinitde sortie. Par défaut, aucun plugin externe n'est utilisé. Vous pouvez afficher la liste des plugins installés en utilisantlist_stage_plugins()avec"init"comme argument pour le nom de l'environnement. -
StagedPassManageroptimization_method (str | None) – Le nom du plugin à utiliser pour l'étapeoptimizationde sortie. Par défaut, aucun plugin externe n'est utilisé. Vous pouvez afficher la liste des plugins installés en utilisantlist_stage_plugins()avec"optimization"comme argumentstage_name. -
dt (float | None) – Durée d'échantillonnage (résolution) du backend, en secondes. Si
None(par défaut) et qu'un backend est fourni,backend.dtest utilisé. -
qubits_initially_zero (bool) – Indique si le circuit d'entrée est initialisé à zéro.
Retours
Le gestionnaire de passe prédéfini pour les options données
Type de retour
Augmentations
ValueError - si une valeur invalide est transmise pour optimization_level .