ColibriTD Riferimento API QUICK-PDE
Qiskit Functions — strumenti preconfigurati realizzati da organizzazioni partner — astraggono alcune parti del flusso di lavoro dello sviluppo software per semplificare e accelerare la scoperta di algoritmi su larga scala e lo sviluppo di applicazioni. Clicca qui per visualizzare la guida relativa a questa funzione di Qiskit.
Guida alle funzioni QUICK-PDE di Qiskit
Input
use_case
Tipo: `Literal['MD', 'CFD']`
Seleziona il sistema di equazioni differenziali da risolvere
- Specifico per un caso d'uso: No
- Esempio:
"CFD"
parameters
Tipo: `dict[str, Any]`
I parametri dell'equazione differenziale (parametri fisici e condizioni al contorno), che devono rispettare il formato indicato:
Caso d'uso | Chiave | Tipo di valore | Descrizione | Esempio |
|---|---|---|---|---|
| CFD | a | float | Coefficiente dei valori iniziali di | 1.0 |
| CFD | b | float | Offset dei valori iniziali di | 1.0 |
| MP | t | float | tensione superficiale | 12.0 |
| MP | K | float | modulo di compressibilità | 100.0 |
| MP | n | int | legge di potenza | 4.0 |
| MP | b | float | forza per unità di massa | 10.0 |
| MP | epsilon_0 | float | limite di sollecitazione proporzionale | 0.1 |
| MP | sigma_0 | float | limite di deformazione proporzionale | 5.0 |
- Specifico per un caso d'uso: No
- Esempio:
{"a": 1.0, "b": 1.0}
nb_qubits
Tipo: `Optional[dict[str, dict[str, int]]]`
Numero di qubit per funzione e per variabile. I valori ottimizzati vengono selezionati dalla funzione, ma se desideri provare a trovare una combinazione migliore, puoi sovrascrivere i valori predefiniti.
- Specifico per un caso d'uso: No
- Esempio:
{"u": {"x": 1, "t":3}}
depth
Tipo: `Optional[dict[str, int]]`
Profondità dell'ansatz per funzione. I valori ottimizzati vengono selezionati dalla funzione, ma se desideri provare a trovare una combinazione migliore, puoi sovrascrivere i valori predefiniti.
- Specifico per un caso d'uso: No
- Esempio:
{"u": 4}
optimizer
Tipo: `Optional[list[str]]`
Ottimizzatori da utilizzare: "CMAES" della libreria cma Python oppure uno degli ottimizzatori di SciPy
- Specifico per il caso d'uso: MD
- Esempio:
"SLSQP"
shots
Tipo: `Optional[list[int]]`
Numero di colpi utilizzati per completare ogni circuito. Poiché sono necessarie diverse fasi di ottimizzazione, la lunghezza dell'elenco deve essere pari al numero di ottimizzatori utilizzati (4 nel caso del CFD). I valori predefiniti sono [50_000] * nb_optimizers per MD e [5_00, 2_000, 5_000, 10_000] per CFD.
- Specifico per un caso d'uso: No
- Esempio:
[15_000, 30_000]
optimizer_options
Tipo: `Optional[dict[str, Any]]`
Opzioni da passare all'ottimizzatore. I dettagli di questo input dipendono dall'ottimizzatore utilizzato; per ulteriori informazioni, consultare la documentazione dell'ottimizzatore in uso.
- Specifico per il caso d'uso: MD
- Esempio:
{"maxiter": 50 }
initialization
Tipo: `Optional[Literal['RANDOM', 'PHYSICALLY_INFORMED']]`
Valore predefinito: `PHYSICALLY_INFORMED`
Se iniziare con angolazioni casuali o con angolazioni scelte con cura. Attenzione: anche le angolazioni scelte con cura potrebbero non funzionare nel 100% dei casi.
- Specifico per un caso d'uso: No
- Esempio:
"RANDOM"
backend_name
Tipo: `Optional[str]`
Il nome del backend da utilizzare.
- Specifico per un caso d'uso: No
- Esempio:
ibm_torino
mode
Tipo: `Optional[Literal['job', 'session', 'batch']]`
Valore predefinito: `job`
La modalità di esecuzione da utilizzare.
- Specifico per un caso d'uso: No
- Esempio:
"job"
Emissione
Il risultato è un dizionario contenente l'elenco dei punti di campionamento e i valori delle funzioni in ciascuno di questi punti:
from numpy import arraysolution = {
"functions": {
"u": array(
[
[0.01, 0.1, 1],
[0.02, 0.2, 2],
[0.03, 0.3, 3],
[0.04, 0.4, 4],
]
),
},
"samples": {
"t": array([0.1, 0.2, 0.3, 0.4]),
"x": array([0.5, 0.6, 0.7]),
},
}La forma di un array di soluzioni dipende dai campioni delle variabili:
assert len(solution["functions"]["u"].shape) == len(solution["samples"])
for col_size, samples in zip(
solution["functions"]["u"].shape, solution["samples"].values()
):
assert col_size == len(samples)La corrispondenza tra i punti campione delle variabili della funzione e la dimensione dell'array delle soluzioni viene effettuata in ordine alfanumerico in base al nome della variabile. Ad esempio, se le variabili sono "t" e "x", una riga di solution["functions"]["u"] rappresenta i valori della soluzione per un valore fisso "t"di, mentre una colonna di solution["functions"]["u"] rappresenta i valori della soluzione per un valore fisso "x"di.