Skip to main content
IBM Quantum Platform

GenericBackendV2

class qiskit.providers.fake_provider.GenericBackendV2(num_qubits, basis_gates=None, *, coupling_map=None, control_flow=False, dtm=None, dt=None, seed=None, noise_info=True)

GitHub

Bases: BackendV2

Genérico BackendV2 con un constructor configurable. Esta clase devolverá una instancia BackendV2 que se ejecuta en un simulador local (en el espíritu de los backends falsos) y contiene toda la información necesaria para probar los componentes que interactúan con el backend, como el transpilador. A GenericBackendV2 instancia puede construirse a partir de tan sólo un num_qubits especificado, pero los usuarios pueden configurar adicionalmente las puertas base, el mapa de acoplamiento, la capacidad de ejecutar circuitos dinámicos (instrucciones de flujo de control) y el dtm. El resto de las propiedades del backend se generan por muestreo aleatorio a partir de rangos por defecto extraídos de los datos históricos del backend IBM. La semilla para esta generación aleatoria puede fijarse para garantizar la reproducibilidad de la salida del backend. Este backend sólo soporta puertas en la biblioteca estándar, si necesitas un backend más flexible, siempre existe la opción de instanciar directamente un objeto Target para utilizarlo en la transpilación.

Parámetros

  • num_qubits (int) – Número de qubits que se utilizarán para construir el objetivo del backend. Tenga en cuenta que, aunque no hay límite en el tamaño del objetivo que se puede construir, este backend se ejecuta en simuladores locales ruidosos, y estos podrían presentar limitaciones en el número de qubits que se pueden simular.

  • basis_gates (list[str] | None) – Lista de nombres de puertas base que debe admitir el objetivo. Deben formar parte de la biblioteca de circuitos estándar de qiskit. El conjunto predeterminado de puertas base es ["id", "rz", "sx", "x", "cx"] . Las instrucciones "reset", "delay" y "measure" siempre son compatibles por defecto, incluso si no se especifican mediante basis_gates.

  • coupling_map (list[list[int]] | CouplingMap | None) –

    Mapa de acoplamiento opcional para el backend. Se admiten varios formatos:

    1. CouplingMap instancia
    2. List, debe darse como una lista de aristas que represente las dos interacciones qubit soportadas por el backend, por ejemplo: [[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]

    Si se especifica coupling_map , debe coincidir con el número de qubits especificado en num_qubits. Si no se especifica coupling_map , se generará un mapa de acoplamiento totalmente conectado con num_qubits qubits.

  • control_flow (bool) – Indicador para habilitar las directivas de flujo de control en el destino (por defecto es False).

  • dtm (float | None) – Resolución temporal del sistema de señales de salida en nanosegundos. Ninguno por defecto.

  • dt (float | None) – Resolución temporal del sistema de señales de entrada en nanosegundos. Ninguno por defecto.

  • seed (int | None) – Semilla opcional para la generación de valores por defecto.

  • noise_info (bool) – Si es true, asocia puertas y qubits con información de ruido por defecto.


Atributos

coupling_map

Devuelve el CouplingMap objeto

dt

Devuelve la resolución temporal del sistema de las señales de entrada

Es necesario implementarlo si el backend admite la programación Pulse.

Devuelve

El paso de tiempo de la señal de entrada en segundos. Si el backend no define dt, se devolverá None .

dtm

Devuelve la resolución temporal del sistema de las señales de salida

instruction_durations

Devuelve el InstructionDurations objeto.

instructions

Una lista de tuplas de instrucciones en el backend del formulario (instruction, (qubits))

max_circuits

meas_map

num_qubits

Devuelve el número de qubits que tiene el backend.

operation_names

Una lista de nombres de instrucciones que admite el backend.

operations

Una lista de Instruction instancias que soporta el backend.

options

Devuelve las opciones para el backend

Las opciones de un backend son los parámetros dinámicos que definen cómo se utiliza el backend. Se utilizan para controlar el run() método.

provider

Devuelve el proveedor de backend.

Devuelve

el proveedor responsable del backend.

Tipo de retorno

proveedor

target

version

Valor predeterminado: 2

name

Nombre del backend.

description

Descripción opcional legible por humanos.

online_date

Fecha de puesta en línea del backend.

backend_version

Versión del backend que se proporciona. No es lo mismo que BackendV2.versionque es la versión de la interfaz Backend interfaz abstracta.


Métodos

qubit_properties

qubit_properties(qubit)

GitHub

Devuelve QubitProperties para un qubit dado.

Si no hay definidos o el backend no admite la consulta de estos detalles, no es necesario implementar este método.

Parámetros

qubit (int |list[int]) – El qubit para el que se busca el QubitProperties objeto. Puede ser un único número entero que represente 1 qubit, o bien una lista de qubits; en ese caso, se devolverá una lista de QubitProperties objetos en el mismo orden

Devuelve

El objeto QubitProperties objeto para el qubit especificado. Si se proporciona una lista de qubits, se devolverá una lista. Si faltan propiedades para un qubit, esto puede ser None.

Eleva

NotImplementedError - si el backend no permite consultar las propiedades de los qubits

Tipo de retorno

QubitProperties | lista [ QubitProperties ]

run

run(run_input, **options)

GitHub

Ejecutar en el backend utilizando un simulador.

Este método ejecuta trabajos de circuito (un individuo o una lista de QuantumCircuit ) utilizando BasicSimulator o el simulador Aer y devuelve un objeto Job objeto.

Si qiskit-aer está instalado, los trabajos se ejecutarán utilizando el modelo AerSimulator con ruido del backend. De lo contrario, los trabajos se ejecutarán utilizando el simulador BasicSimulator sin ruido.

Parámetros

  • run_input (QuantumCircuit orlist) – Un individuo o una lista de QuantumCircuit objetos para ejecutar en el backend.
  • options - Cualquier opción kwarg a pasar al backend para ejecutar la configuración. Si una clave también está presente en el atributo/objeto de opciones, se espera que se utilice el valor especificado en lugar del establecido en el objeto de opciones.

Devuelve

El objeto de trabajo para la ejecución

Tipo de retorno

job

Eleva

set_options

set_options(**fields)

GitHub

Establecer los campos de opciones para el backend

Este método se utiliza para actualizar las opciones de un backend. Si necesita cambiar alguna de las opciones antes de ejecutar sólo tiene que pasar el kwarg con el nuevo valor de las opciones.

Parámetros

fields - Los campos para actualizar las opciones

Eleva

AttributeError - Si el campo introducido no forma parte de las opciones

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