Skip to main content
IBM Quantum Platform

Referencia de la API del simulador de dinámica Q-CTRL

  • Qiskit Functions —herramientas preconfiguradas creadas por organizaciones colaboradoras— abstraen partes del flujo de trabajo de desarrollo de software para simplificar y acelerar el descubrimiento de algoritmos y el desarrollo de aplicaciones a escala industrial. Haz clic aquí para ver la guía de esta función de Qiskit.

Caution

El simulador de dinámica admite una descripción del modelo físico en lugar de circuitos. Fire Opal crea y optimiza los circuitos para el backend de destino, por lo que no es necesario transpilar ni precompilar nada.


Entradas

Consulta la siguiente lista para ver todos los parámetros de entrada que admite esta API. Todos los parámetros se pasan como argumentos de palabra clave. model, simulation, y observables pueden especificarse, cada uno de ellos, bien como un diccionario de Python (una lista de diccionarios en el caso de observables) o bien como una cadena JSON. La función rechaza los argumentos de primer nivel desconocidos.

model

Tipo: dict[str, Any] or str

El modelo de Fermi-Hubbard, en formato de diccionario o como cadena JSON. Consulta «Campos del modelo» para ver los campos que contiene.

  • Obligatorio: Sí
  • Ejemplo:{"hopping_amplitude": 1.0, "on_site_interaction": [2.0, 2.5, 2.0], "chemical_potential": 0.5}

Campos del modelo

hopping_amplitude

Tipo: float or list[float]

Amplitud de tunelización. Un escalar se transmite a todos los enlaces. Una lista debe contener entradas len(initial_state) - 1 (una por cada bono).

on_site_interaction

Tipo: float or list[float]

Nivel de interacción en el propio sitio. Un escalar se distribuye a todos los sitios. Una lista debe contener len(initial_state) entradas (una por sitio).

chemical_potential

Tipo: float or list[float]

Potencial químico. Un escalar se distribuye a todos los sitios. Una lista debe contener len(initial_state) entradas (una por sitio).

simulation

Tipo: dict[str, Any] or str

El esquema de simulación de Trotter, expresado como un diccionario o una cadena JSON. Consulta «Campos de simulación» para ver los campos que contiene.

  • Obligatorio: Sí
  • Ejemplo:{"method": "trotter", "step_count": 5, "time_step": 0.1}

Campos de simulación

method

Tipo: str

Método de simulación. "trotter" es el método admitido.

  • Opciones: trotter

step_count

Tipo: int

Número de pasos de Trotter.

time_step

Tipo: float

Duración de cada paso de Trotter.

observables

Tipo: list[dict[str, Any]] or str

Los operadores de ocupación dispersa que se van a medir, un diccionario por cada observable, proporcionados como una lista de diccionarios o una cadena JSON. Debe contener al menos una variable observable. Consulta «Campos observables» para ver los campos que contiene cada diccionario.

  • Obligatorio: Sí
  • Ejemplo:[{"operators": [[["Nup", 0]]], "coefficients": [1.0]}]

Campos observables

operators

Tipo: list[list[list[str, int]]]

Los términos de la observable. Cada término es un producto de pares [operator_name, site_index] , donde operator_name es o "Nup" "Ndn".

coefficients

Tipo: list[float]

Un coeficiente por término en operators.

initial_state

Tipo: str

El estado de Fock inicial, con un carácter por sitio de la red. Debe ser un valor no vacío. El número de sitios de la red es len(initial_state), y la simulación utiliza qubits 2 * len(initial_state) . El backend debe tener al menos ese número de qubits.

  • Obligatorio: Sí
  • Caracteres permitidos:
    • "e": (vacío) solar sin ocupar
    • "u": (arriba) ocupado por un solo usuario, poner en marcha
    • "d": (hacia abajo) ocupado por una sola persona, desaceleración
    • "b": (ambos) con doble ocupación
  • Ejemplo:"udb"

shots

Tipo: int

El número de disparos que se deben utilizar en cada ejecución del circuito. Debe ser un número entero positivo.

  • Obligatorio: Sí
  • Ejemplo:1000

backend_name

Tipo: str

Valor predeterminado: Automatic selection

Nombre del backend que se va a utilizar. Si no se indica ningún nombre, la función selecciona automáticamente un backend con suficientes qubits.

  • Obligatorio: No
  • Ejemplo:"ibm_phoenix"

Opciones

Tipo: dict

Valor predeterminado: {}

Opciones de ejecución adicionales, pasadas como options. Las opciones se especifican como un diccionario anidado. Consulta la lista de opciones para obtener más detalles y conocer los valores predeterminados.

  • Obligatorio: No
  • Ejemplo:{"job_tags": ["my_tag"]}

Lista de opciones

session_id

Tipo: str

Valor predeterminado: ""

Un ID de sesión existente del servicio « IBM Quantum Compute ».

  • Ejemplo:"cw4r3je6f0t010870y3g"
job_tags

Tipo: list[str]

Valor predeterminado: []

Una lista de etiquetas de empleo.

  • Ejemplo:["job_tag1", "job_tag2"]

Resultados

El resultado de esta API es un dict que contiene los resultados de la simulación y los metadatos. Los resultados incluyen los valores esperados de las observables solicitadas en cada paso temporal de la evolución temporal de Trotter.

Tipo: dict[str, Any]

Los resultados de la simulación y los metadatos que figuran en la sección «Estructura de los resultados ».

  • Ejemplo:{"observable_expectation_values": [[1.0, 0.96, 0.91],[0.0, 0.04, 0.08]], "observables": [{"operators": [[["Nup", 0]]],"coefficients": [1.0]}], "warnings": [], "metadata": {}}

Estructura de salida

observable_expectation_values

Tipo: list[list[float]]

Valores esperados, una lista por cada variable observable de entrada, en el mismo orden que observables. Cada lista contiene valores step_count + 1 , incluido el estado inicial.

observables

Tipo: list[dict[str, Any]]

Las magnitudes observables que se midieron se reflejaron a partir de los datos de entrada.

warnings

Tipo: list[str]

Advertencias generadas durante la compilación o la ejecución de la simulación.

metadata

resource_usage

Tipo: dict

Un desglose del tiempo de CPU y QPU (en segundos) para cada etapa de la ejecución. Cada etapa tiene un CPU_TIME y un QPU_TIME.

RUNNING: MAPPING

Tipo: dict

Identificar el problema en el dispositivo.

RUNNING: OPTIMIZING_HARDWARE

Tipo: dict

Optimización de los circuitos para el hardware.

RUNNING: WAITING_QPU

Tipo: dict

Tiempo de espera en la cola de la QPU (tiempo de CPU).

RUNNING: EXECUTING_QPU

Tipo: dict

Tiempo de ejecución en la QPU (tiempo de QPU).

RUNNING: POST_PROCESSING

Tipo: dict

Posprocesamiento de los resultados.

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