Riferimento all'API di Parity Twine Optimizer
Qiskit Functions — strumenti preconfigurati realizzati da organizzazioni partner — astraggono alcune parti del flusso di lavoro di sviluppo software per semplificare e accelerare la scoperta di algoritmi su scala industriale e lo sviluppo di applicazioni. Clicca qui per visualizzare la guida relativa a questa funzione di Qiskit.
ParityQC Guida all'ottimizzatore Parity Twine
Input
Consulta l'elenco seguente per conoscere tutti i parametri di input accettati da questa API.
problem
Tipo: dict[str, float]
La funzione di costo da risolvere. Le chiavi del dizionario corrispondono alle etichette dei qubit, mentre i valori corrispondono ai coefficienti.
- Obbligatorio: sì
- Esempio:
{"()": 3, "(0,)": 1, "(0, 1)": 2, "(1, 2)": -1}
variable_type
Tipo: str
A prescindere dal fatto che le variabili siano di tipo spin ( ) o binary ( ).
- Obbligatorio: sì
- Opzioni: oppure
spinbinary
backend_name
Tipo: str
Nome del backend da utilizzare. Se non specificato, viene scelto il backend meno carico.
- Obbligatorio: No
- Esempio:
ibm_phoenix
problem_type
Tipo: str
Valore predefinito: ""
Specifica il tipo di problema per abilitare una post-elaborazione specializzata. Al momento è supportato solo il ( mis insieme massimo indipendente). Se mis è impostato, l'algoritmo applica una post-elaborazione specifica che sfrutta la struttura MIS. Se lasciato vuoto, viene applicata la post-elaborazione standard.
- Obbligatorio: No
- Opzioni:
mis
Opzioni
Tipo: dict[str, Any]
Opzioni di input, tra cui le seguenti: (Facoltativo) Le opzioni vengono specificate come un dizionario annidato. Consulta l' elenco completo delle opzioni e dei relativi valori predefiniti.
- Obbligatorio: No
- Esempio:
{"shots": 1000, "problem_type": "my_problem", "postprocessing_level": 1, "transpile_only": False, "job_tags": ["my_tag"]}
Elenco opzioni
shots
Tipo: int
Valore predefinito: 100000
Il numero di scatti da utilizzare.
postprocessing_level
Tipo: int
Valore predefinito: 1
Se effettuare o meno la post-elaborazione classica. I valori possibili sono 0 (nessuna post-elaborazione) e 1 (eseguire la post-elaborazione).
transpile_only
Tipo: bool
Valore predefinito: False
Valore booleano che indica se viene eseguita solo la transpilazione del circuito. In tal caso, vengono restituite le metriche del circuito.
job_tags
Tipo: list[str]
Valore predefinito: None
Un'etichetta per identificare un'attività su IBM Quantum® Platform.
- Predefinito:
None - Esempio:
["my_job_tag"]
Output
L'output di questa API è un oggetto dict contenente la soluzione, la stringa di bit della soluzione, il valore dell'obiettivo e i metadati. Se il flag transpile_only è impostato, vengono compilati con valori solo i campi relativi alla metrica del circuito.
Esempio:
{
'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}
}
}
}
Struttura dell'output
solution
Tipo: dict[str, int]
Valore della soluzione. Le chiavi corrispondono a quelle definite in problem.
- Esempio:
{'0': -1, '1': 1, '2': 1}
objective_value
Tipo: float
Costo della soluzione. Misura la qualità della soluzione.
- Esempio:
-1.0
solution_bitstring
Tipo: str
La stringa di bit corrispondente al costo più basso.
- Esempio:
'100'
metadata
circuit_metrics
Tipo: dict[str, Any]
Informazioni sulla trasposizione di Twine.
depth
Tipo: int
La profondità del circuito.
gate_count
Tipo: int
Il numero di porte logiche nel circuito.
two_qubit_gate_depth
Tipo: int
La profondità del circuito a due qubit.
two_qubit_gate_count
Tipo: int
Numero di qubit del circuito.
num_qubits
Tipo: int
Numero di qubit attivi nel circuito.
operations
Tipo: dict[str, int]
Tipo di gate (chiavi) e presenza (valore) nel circuito.
solver_info
Tipo: dict[str, Any]
Approfondimenti algoritmici
variable_mapping
Tipo: dict[str, int]
La mappatura da variabile a qubit utilizzata nel calcolo.
bitstring_distributions
Tipo: dict[str, Any]
Una rappresentazione dello stato di base e della frequenza con cui è stato campionato.
before_postprocessing
Tipo: dict[str, int]
Distribuzione delle stringhe di bit misurate prima della post-elaborazione classica.
after_postprocessing
Tipo: dict[str, int]
Distribuzione delle stringhe di bit misurate dopo la post-elaborazione classica.
best_parameters
Tipo: dict[str, Any]
Parametri di addestramento variazionale ottimizzati.
beta
Tipo: list[float]
Parametro variazionale beta ottimizzato.
gamma
Tipo: list[float]
Parametro variazionale gamma ottimizzato.
resource_usage
Tipo: dict[str, Any]
Informazioni sulle tempistiche.
RUNNING: MAPPING
Tipo: dict[str, float]
Tempo di CPU (s) per il problema di mappatura.
RUNNING: OPTIMIZING_FOR_HARDWARE
Tipo: dict[str, float]
Tempo di CPU (s) per l'ottimizzazione hardware.
RUNNING: WAITING_FOR_QPU
Tipo: dict[str, float]
Tempo di CPU (s) trascorso in attesa della QPU.
RUNNING: EXECUTING_QPU
Tipo: dict[str, float]
Tempo di elaborazione della QPU (in s) impiegato.
RUNNING: POST_PROCESSING
Tipo: dict[str, float]
Tempo di CPU (s) per la post-elaborazione dei risultati.