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)
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 mediantebasis_gates. -
coupling_map (list[list[int]] | CouplingMap | None) –
Mapa de acoplamiento opcional para el backend. Se admiten varios formatos:
CouplingMapinstancia- 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 ennum_qubits. Si no se especificacoupling_map, se generará un mapa de acoplamiento totalmente conectado connum_qubitsqubits. -
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
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)
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
run
run(run_input, **options)
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
QuantumCircuitobjetos 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
Eleva
- QiskitError - Si la entrada no es
QuantumCircuito una lista de - QuantumCircuit –
set_options
set_options(**fields)
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