Skip to main content
IBM Quantum Platform

TokenSwapperSynthesisPermutation

class qiskit.transpiler.passes.synthesis.hls_plugins.TokenSwapperSynthesisPermutation

GitHub

Bases: HighLevelSynthesisPlugin

El plugin de síntesis de permutaciones se basa en el algoritmo de intercambio de fichas.

El nombre de este plugin es :permutation.token_swapper que puede usarse como clave en un HLSConfig para utilizar este método con HighLevelSynthesis.

Más en detalle, este plugin se utiliza para sintetizar objetos de tipo PermutationGate. Cuando la síntesis tiene éxito, el plugin produce un circuito cuántico formado únicamente por puertas de intercambio. Cuando la síntesis no tiene éxito, el plugin emite Ninguno.

Si coupling_map o qubits es None, entonces el circuito sintetizado no está obligado a adherirse a las restricciones de conectividad, como es el caso cuando la síntesis se realiza antes del trazado/encaminamiento.

Por otro lado, si se especifica tanto coupling_map como qubits, se supone que el circuito sintetizado se adhiere a las restricciones de conectividad. Por el momento, el plugin sólo crea puertas de intercambio entre qubits en qubits, es decir, no utiliza ningún otro qubits en el mapa de acoplamiento (si tal síntesis no es posible, el plugin da como salida Ninguno).

El complemento admite las siguientes opciones específicas:

  • pruebas: El número de ensayos para que el intercambiador de fichas realice el mapeo. Se devuelve el circuito con el menor número de SWAPs.
  • semilla: El argumento para el intercambiador de fichas que especifica la semilla para los ensayos aleatorios.
  • umbral_paralelo: El argumento para el intercambiador de fichas que especifica el número de nodos del grafo a partir del cual el algoritmo utilizará el procesamiento paralelo.

Para más detalles sobre el algoritmo de intercambio de fichas, consulte el artículo: arXiv:1902.09102.


Métodos

run

run(high_level_object, coupling_map=None, target=None, qubits=None, **options)

GitHub

Ejecuta la síntesis para la Permutación dada.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.