Skip to main content
IBM Quantum Platform

Parametro

class qiskit.circuit.Parameter(name, uuid=None)

Basi: ParameterExpression

Un parametro simbolico in tempo di compilazione.

Il valore di un Parameter deve essere interamente determinato prima che un circuito inizi l'esecuzione. In genere ciò significa che dovrete specificare i valori per tutte Parameterle variabili "s" presenti in un circuito utilizzando QuantumCircuit.assign_parameters(), anche se alcuni fornitori di hardware potrebbero consentirvi di definire un circuito in termini di questi parametri, a condizione che specifichiate i valori separatamente.

Questo è l'atomo di ParameterExpressioned è essa stessa un'espressione. Il valore numerico di un parametro non deve necessariamente essere fissato durante la definizione del circuito.

Esempi

Costruire una porta X a rotazione variabile utilizzando i parametri del circuito.

from qiskit.circuit import QuantumCircuit, Parameter

# create the parameter
phi = Parameter("phi")
qc = QuantumCircuit(1)

# parameterize the rotation
qc.rx(phi, 0)
qc.draw("mpl")

# bind the parameters after circuit to create a bound circuit
bc = qc.assign_parameters({phi: 3.14})
bc.measure_all()
bc.draw("mpl")
Schema del circuito prodotto dal codice precedente.Schema del circuito prodotto dal codice precedente.

Attributi

name

Restituisce il nome del file Parameter.

num_parameters

Il numero di parametri non associati nell'espressione.

Ciò equivale a len(expr.parameters) ma non comporta il sovraccarico di creare un insieme e contarne la lunghezza.

parameters

Ottiene i parametri presenti nell'espressione.

Nota

Qiskit garantisce l'uguaglianza (tramite ==) tra i parametri recuperati da un'espressione e gli oggetti originali utilizzati per creare l'espressione Parameter originali usati per creare l'espressione, ma non garantisce che i confronti is abbiano successo.

uuid

Restituisce il valore UUID dell'elemento Parameter.

Nei casi d'uso avanzati, questa proprietà può essere passata al costruttore Parameter per produrre un'istanza che sia uguale a un'altra istanza.


Metodi

abs

abs()

Prendere il valore assoluto dell'espressione.

arccos

arccos()

Arccosina dell'espressione.

arcsin

arcsin()

Arcsine dell'espressione.

arctan

arctan()

Arctangente dell'espressione.

assign

assign(parameter, value)

Assegna un parametro a un valore, che può essere numerico o un'altra espressione di parametro.

Parametri

  • parametro - Un parametro di questa espressione il cui valore sarà aggiornato.
  • value - Il nuovo valore a cui legarsi.

Risultati

Una nuova espressione parametrizzata da qualsiasi parametro non vincolato dall'assegnazione.

bind

bind(parameter_values, allow_unknown_parameters=False)

Lega l'insieme dei parametri forniti ai loro valori corrispondenti.

Parametri

  • parametri_valori - Mappatura delle Parameter al valore numerico a cui saranno legati.
  • allow_unknown_parameters - Se False, solleva un errore se parameter_values contiene Parameternelle chiavi al di fuori di quelle presenti nell'espressione. Se True, tali parametri vengono semplicemente ignorati.

Aumenti

  • CircuitError

    • Se parametri_valori contiene parametri diversi da quelli presenti in self. - Se viene passato un valore non numerico in parameter_values.
  • ZeroDivisionError

    • Se il vincolo dei valori forniti richiede la divisione per zero.

Risultati

Una nuova espressione parametrizzata da qualsiasi parametro non vincolato da parameter_values.

bind_all

bind_all(values)

Lega tutti i parametri di self ai valori numerici del dizionario, restituendo un valore numerico.

Questo è un caso particolare di bind() che può raggiungere prestazioni più elevate. Non è un problema che il dizionario values contenga parametri non utilizzati in questa espressione; l'aspettativa è che lo stesso dizionario dei vincoli venga fornito anche ad altre espressioni.

È un errore chiamare questo metodo con un dizionario values che non vincola tutti i valori o chiamarlo con valori non numerici, ma questo non viene controllato esplicitamente, poiché questo metodo è destinato a un uso sensibile alle prestazioni. Il passaggio di un dizionario errato può provocare un comportamento imprevisto.

A differenza di bind()questo metodo non solleva un'eccezione se vengono incontrati valori in virgola mobile non finiti.

Parametri

valori - mappatura dei parametri in valori numerici.

conjugate

conjugate()

Restituisce la coniugazione complessa dell'espressione.

cos

cos()

Coseno dell'espressione.

exp

exp()

Esponenzia l'espressione.

gradient

gradient(param)

Restituisce la derivata di questa espressione rispetto al parametro di ingresso.

Parametri

param - Il parametro rispetto al quale viene calcolata la derivata.

Risultati

La derivata come valore numerico costante o come valore simbolico ParameterExpression.

is_real

is_real()

Verificare se l'espressione rappresenta un numero reale.

Si noti che questo restituirà None se ci sono parametri non vincolati, nel qual caso non è possibile determinare se l'espressione è reale.

is_symbol

is_symbol()

Controlla se l'espressione corrisponde a un simbolo semplice.

Risultati

True se questa espressione corrisponde a un simbolo, False altrimenti.

log

log()

Prendere il logaritmo naturale dell'espressione.

numeric

numeric(strict=True)

Fusione di questa espressione in un valore numerico.

Parametri

strict - Se True (valore predefinito) questa funzione solleva un errore se ci sono simboli non legati nell'espressione. Se False, consente di eseguire il casting se l'espressione rappresenta un valore numerico, indipendentemente dai simboli non legati. Ad esempio, (0 * Parameter("x")) è 0 ma è presente il simbolo x .

sign

sign()

Restituisce il segno dell'espressione.

sin

sin()

Seno dell'espressione.

subs

subs(parameter_map, allow_unknown_parameters=False)

Restituisce una nuova espressione con parametri sostitutivi.

Parametri

  • parametro_mappa - Mappatura da Parameterin self alle istanze ParameterExpression con cui devono essere sostituite.
  • allow_unknown_parameters - Se False, solleva un errore se parameter_map contiene Parameternelle chiavi al di fuori di quelle presenti nell'espressione. Se True, tali parametri vengono semplicemente ignorati.

Aumenti

CircuitError

  • Se parameter_map contiene parametri diversi da quelli presenti in self. - Se i parametri sostitutivi in parameter_map causerebbero un conflitto di nomi nell'espressione generata.

Risultati

Una nuova espressione con la sostituzione dei parametri specificati.

sympify

sympify()

Restituisce un equivalente SymPy di questa espressione.

Risultati

Un equivalente SymPy di questa espressione.

tan

tan()

Tangente dell'espressione.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.