Skip to main content
IBM Quantum Platform

BasicSimulator

class qiskit.providers.basic_provider.BasicSimulator(provider=None, target=None, **fields)

GitHub

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

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, **run_options)

GitHub

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

BasicProviderJob

Información adicional:

  • las opciones kwarg especificadas en run_options anulará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.

Ejemplo:

backend.run(
    circuit_2q,
    initial_statevector = np.array([1, 0, 0, 1j]) / math.sqrt(2)
)

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.