Skip to main content
IBM Quantum Platform

Referencia de la API de Parity Twine Optimizer

  • Qiskit Functions

    Qiskit Functions — Las 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.


Entradas

Consulta la siguiente lista para ver todos los parámetros de entrada que admite esta API.

problem

Tipo: dict[str, float]

La función de coste que hay que resolver. Las claves del diccionario se corresponden con las etiquetas de los qubits, y los valores, con los coeficientes.

  • Obligatorio: Sí
  • Ejemplo:{"()": 3, "(0,)": 1, "(0, 1)": 2, "(1, 2)": -1}

variable_type

Tipo: str

Tanto si las variables son de tipo spin ( s{1,1}s \in \{-1, 1\} ) como de tipo binary ( x{0,1}x \in \{0, 1\} ).

  • Obligatorio: Sí
  • Opciones: spin o binary

backend_name

Tipo: str

Nombre del backend que se va a utilizar. Si no se especifica, se elige el servidor de fondo menos cargado.

  • Obligatorio: No
  • Ejemplo:ibm_phoenix

problem_type

Tipo: str

Valor predeterminado: ""

Especifica el tipo de problema para habilitar un posprocesamiento especializado. Por el momento, solo se admite el ( mis conjunto independiente máximo). Si mis se activa esta opción, el algoritmo aplica un posprocesamiento específico que aprovecha la estructura MIS. Si se deja en blanco, se aplica el posprocesamiento estándar.

  • Obligatorio: No
  • Opciones: mis

Opciones

Tipo: dict[str, Any]

Opciones de entrada, entre las que se incluyen las siguientes: (Opcional) Las opciones se especifican como un diccionario anidado. Consulta la lista completa de opciones y sus valores predeterminados.

  • Obligatorio: No
  • Ejemplo:{"shots": 1000, "problem_type": "my_problem", "postprocessing_level": 1, "transpile_only": False, "job_tags": ["my_tag"]}

Lista de opciones

shots

Tipo: int

Valor predeterminado: 100000

El número de disparos que hay que realizar.

postprocessing_level

Tipo: int

Valor predeterminado: 1

Si se debe realizar o no un posprocesamiento clásico. Los valores posibles son 0 (sin posprocesamiento) y 1 (con posprocesamiento).

transpile_only

Tipo: bool

Valor predeterminado: False

Valor booleano que indica si solo se lleva a cabo la transpilación del circuito. En ese caso, se devuelven las métricas del circuito.

job_tags

Tipo: list[str]

Valor predeterminado: None

Una etiqueta para identificar un trabajo en IBM Quantum® Platform.

  • Valor predeterminado: None
  • Ejemplo:["my_job_tag"]

Resultados

El resultado de esta API es un objeto dict que contiene la solución, la cadena de bits de la solución, el valor del objetivo y los metadatos. Si se activa el indicador transpile_only , solo se rellenan con valores los campos de métricas de circuito.

Ejemplo:

{
    'solution': {'0': -1, '1': 1, '2': 1}, 
    'objective_value': -1.0,
    'solution_bitstring': '100',
    'metadata': {
        'circuit_metrics': {
            'depth': 23, 
            'gate_count': 200,
            'two_qubit_gate_depth': 4,
            'two_qubit_gate_count': 4,
            'num_qubits': 3,
            'operations': {'delay': 158, 'rz': 18, 'sx': 15, 'cz': 4, 'measure': 3, 'x': 2}
        }, 
        'solver_info': {
            'variable_mapping': {'0': 0, '1': 1, '2': 2},
            'bitstring_distributions': {
                'before_postprocessing': {'011': 3, '001': 1, '110': 1, '111': 3, '101': 1, '010': 1},
                'after_postprocessing': {'011': 4, '100': 6}
            }, 
            'best_parameters': {
                'beta': [-0.46259546391008877],
                'gamma': [0.6181957189727373]
            }
        },
        'resource_usage': {
            'RUNNING: MAPPING': {'CPU_TIME': 15.536},
            'RUNNING: OPTIMIZING_FOR_HARDWARE': {'CPU_TIME': 0.04}, 
            'RUNNING: WAITING_FOR_QPU': {'CPU_TIME': 0.0},
            'RUNNING: EXECUTING_QPU': {'QPU_TIME': 8.945},
            'RUNNING: POST_PROCESSING': {'CPU_TIME': 0.765}
        }
    }
}

Estructura de salida

solution

Tipo: dict[str, int]

Valor de la solución. Las claves se corresponden con las definidas en problem.

  • Ejemplo:{'0': -1, '1': 1, '2': 1}

objective_value

Tipo: float

Coste de la solución. Cuantifica la calidad de la solución.

  • Ejemplo:-1.0

solution_bitstring

Tipo: str

La cadena de bits correspondiente al coste más bajo.

  • Ejemplo:'100'

metadata

circuit_metrics

Tipo: dict[str, Any]

Información sobre la transpilación de Twine.

depth

Tipo: int

La profundidad del circuito.

gate_count

Tipo: int

El número de puertas del circuito.

two_qubit_gate_depth

Tipo: int

Profundidad del circuito de dos qubits.

two_qubit_gate_count

Tipo: int

Número de qubits del circuito: dos.

num_qubits

Tipo: int

Número de qubits activos en el circuito.

operations

Tipo: dict[str, int]

Tipo de puerta (claves) y presencia (valor) en el circuito.

solver_info

Tipo: dict[str, Any]

Conclusiones basadas en algoritmos

variable_mapping

Tipo: dict[str, int]

La correspondencia entre variables y qubits utilizada en el cálculo.

bitstring_distributions

Tipo: dict[str, Any]

Una representación del estado básico y la frecuencia con la que se tomó una muestra del mismo.

before_postprocessing

Tipo: dict[str, int]

Distribución de las cadenas de bits medidas antes del posprocesamiento clásico.

after_postprocessing

Tipo: dict[str, int]

Distribución de las cadenas de bits medidas tras el posprocesamiento clásico.

best_parameters

Tipo: dict[str, Any]

Parámetros de entrenamiento variacional optimizados.

beta

Tipo: list[float]

Parámetro variacional beta optimizado.

gamma

Tipo: list[float]

Parámetro variacional gamma optimizado.

resource_usage

Tipo: dict[str, Any]

Información sobre los plazos.

RUNNING: MAPPING

Tipo: dict[str, float]

Tiempo de CPU (s) para el problema de mapeo.

RUNNING: OPTIMIZING_FOR_HARDWARE

Tipo: dict[str, float]

Tiempo de CPU (s) para la optimización del hardware.

RUNNING: WAITING_FOR_QPU

Tipo: dict[str, float]

Tiempo de CPU (s) en espera de la QPU.

RUNNING: EXECUTING_QPU

Tipo: dict[str, float]

Tiempo de CPU (s) utilizado.

RUNNING: POST_PROCESSING

Tipo: dict[str, float]

Tiempo de CPU (s) dedicado al posprocesamiento de los resultados.

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