Referencia de la API de Parity Twine Optimizer
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.
ParityQC Guía del optimizador de Parity Twine
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 ( ) como de tipo binary ( ).
- Obligatorio: Sí
- Opciones:
spinobinary
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.