BasicSimulator
class qiskit.providers.basic_provider.BasicSimulator(provider=None, target=None, **fields)
Bases: BackendV2
Python implementación de un simulador cuántico básico (no eficiente).
El simulador admite hasta 24 qubits para la simulación de vectores de estado y hasta 2048 qubits para la simulación de operadores de Clifford y estabilizadores.
Parámetros
- provider - Una referencia hacia atrás opcional al objeto proveedor del que procede el backend.
- target (Target | None) – Un objetivo opcional para configurar el simulador.
- fields - kwargs para los valores a utilizar para anular las opciones por defecto.
Eleva
AttributeError - Si se especifica un campo que está fuera de las opciones del backend.
Atributos
MÁX. QUBITS CLIFFORD
Valor predeterminado: 2048
MAX_QUBITS_STATEVECTOR
Valor predeterminado: 24
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
Devuelve
El paso de tiempo de la señal de salida en segundos.
Eleva
NotImplementedError - si el backend no permite consultar el paso de tiempo de la señal 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
Devuelve la agrupación de medidas que están multiplexadas
Es necesario implementarlo si el backend admite la programación Pulse.
Devuelve
La agrupación de mediciones multiplexadas
Eleva
NotImplementedError - si el backend no admite la consulta de la asignación de mediciones
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, **run_options)
Ejecutar en el backend.
Parámetros
- run_input (QuantumCircuit orlist) – el QuantumCircuit (o lista de objetos QuantumCircuit ) a ejecutar
- run_options (kwargs) – opciones adicionales de runtime backend
Devuelve
derivado de BaseJob
Tipo de retorno
Información adicional:
-
las opciones kwarg especificadas en
run_optionsanularán temporalmente cualquier opción establecida con el mismo nombre para la ejecución actual. Estos pueden incluir:- "initial_statevector": vectorial. La opción "vector_estado_inicial" especifica un vector de estado inicial personalizado que se utilizará en lugar del estado todo-cero. El tamaño de este vector debe corresponder al número de qubits del argumento
run_input. - "seed_simulator": int. Es la semilla interna para la generación de muestras.
- "disparos": int. Número de disparos utilizados en la simulación.
- "memoria": bool. Si es True, el resultado contendrá los resultados de cada simulación de disparo individual.
- «use_clifford_optimization»: bool. Si el valor es «True», se habilita la optimización del circuito de Clifford mediante el formalismo del estabilizador. Valor predeterminado: False.
- "initial_statevector": vectorial. La opción "vector_estado_inicial" especifica un vector de estado inicial personalizado que se utilizará en lugar del estado todo-cero. El tamaño de este vector debe corresponder al número de qubits del argumento
Ejemplo:
backend.run(
circuit_2q,
initial_statevector = np.array([1, 0, 0, 1j]) / math.sqrt(2)
)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