Note di rilascio di Qiskit 0.41
0.41.1
Terra 0.23.2
Preludio
Il rilascio della patch di Qiskit Terra 0.23.2 risolve ulteriori bug identificati nella serie 0.23.
Correzioni di bug
-
Aggiungere le seguenti porte di Clifford, già presenti nella libreria dei circuiti, alla classe
Cliffordclasse:SXGate,SXdgGate,CYGate,DCXGate,iSwapGateeECRGate. -
Aggiungere una decomposizione di un
ECRGatein porte di Clifford (fino a una fase globale) alla libreria delle equivalenze standard. -
Corretto un problema con la classe
BackendV2Converterdurante il wrapping di un simulatore basato suBackendV1-basato sul simulatore. Si verificherebbe un errore se il campoonline_datenel fileBackendConfigurationdel simulatore non fosse presente o se il backend del simulatore supportasse implementazioni ideali di porte che coinvolgono più di un qubit. Corretto #9562. -
Corretto un valore di ritorno errato del metodo
BackendV2Converter.meas_map()che restituiva invece il backenddt. -
Corretti i valori di ritorno mancanti dei metodi
BackendV2Converter.drive_channel(),measure_channel(),acquire_channel()econtrol_channel(). -
I metodi deprecati
QubiteClbiteregistereindexsaranno ora correttamente eseguite da QPY (qiskit.qpy) in tutti gli usi validi diQuantumRegistereClassicalRegister. Nelle versioni precedenti della serie Terra 0.23, queste informazioni andavano perse. Nelle versioni precedenti a 0.23.0, queste informazioni venivano parzialmente ricostruite, ma potevano essere errate o produrre circuiti non validi per alcune configurazioni di registro.Il modo corretto per recuperare l'indice di un bit all'interno di un circuito, e tutti i registri di quel circuito in cui il bit è contenuto, è quello di chiamare
QuantumCircuit.find_bit(). Questo metodo restituisce le informazioni corrette in tutte le versioni di Terra dalla sua aggiunta nella versione 0.19. -
Corretto un problema con il metodo
InstructionScheduleMap.has_custom_gate()che restituiva sempreTruequando l'oggettoInstructionScheduleMapè stato creato daTarget. Corretto #9595. -
Corretto un bug negli eigensolver di NumPy-based (
NumPyMinimumEigensolver/NumPyEigensolver) e negli evolutori temporali di SciPy-based (SciPyRealEvolver/SciPyImaginaryEvolver), dove gli operatori che supportano la conversione in matrici rade, come ad esempioSparsePauliOpvenivano comunque convertiti in matrici dense. -
Corretto un bug in
generate_basic_approximations()in cui l'inverso dell'elementoSdgGatenon veniva riconosciuto correttamente comeSGate. Corretto #9585. -
È stato risolto un bug nell'algoritmo
VQDin cui la funzione di valutazione dell'energia non poteva elaborare lotti di parametri, rendendola incompatibile con gli ottimizzatori conmax_evals_grouped>1. Corretto #9500. -
Corretto il bug in
QNSPSAche generava un errore di tipo quando le fedeltà calcolate erano di tipointma la perturbazione era di tipofloat.
Aer 0.11.2
Nessuna modifica
IBM Q Fornitore 0.20.1
Poiché qiskit-ibmq-provider è ormai deprecato, le dipendenze sono state aggiornate e corrette alle ultime versioni funzionanti. Si è verificato un problema con l'ultima versione del pacchetto requests-ntlm che ha causato il fallimento di alcuni test end-to-end.
0.41.0
Terra 0.23.1
Preludio
Qiskit Terra 0.23.1 è una piccola release di patch per correggere i bug identificati in Qiskit Terra 0.23.0
Correzioni di bug
-
Un caso limite di pickle
InstructionScheduleMapcon gli iterabili non-picchiabiliargumentsè stato risolto. In precedenza, l'uso di un iterabile non modificabile come parametro diargumentsaInstructionScheduleMap.add()(comedict_keys) poteva far fallire le chiamate parallele atranspile()fallissero. Questi argomenti saranno ora correttamente normalizzati internamente alist. -
È stato risolto un problema di prestazioni in
ReverseEstimatorGradientin cui il calcolo eseguiva una grande quantità di copie non necessarie se il gradiente veniva calcolato solo per un sottoinsieme di parametri o in un circuito con molte porte non parametrizzate. -
Corretta una deprecazione errata di
Register.name_formatche rendeva l'attributo class disponibile solo per le istanze e non per la classe. Quando si cercava di inviare lavori di circuiti dinamici ai backend hardware, si verificava spesso questo errore:AttributeError: 'property' object has no attribute 'match'Corretto #9493.
Aer 0.11.2
Nessuna modifica
IBM Q Fornitore 0.20.0
Preludio
Questo rilascio del pacchetto qiskit-ibmq-provider lo segna come deprecato e sarà ritirato e archiviato in futuro. La funzionalità di qiskit-ibmq-provider è stata sostituita da 3 pacchetti qiskit-ibm-provider, qiskit-ibm-runtime e qiskit-ibm-experiment che offrono diversi sottoinsiemi di funzionalità contenute in qiskit-ibmq-provider . È possibile consultare la tabella qui:
https://github.com/Qiskit/qiskit-ibmq-provider#migration-guides
per i link alle guide alla migrazione da qiskit-ibmq-provider ai pacchetti sostitutivi.
Note di deprecazione
- A partire dalla versione 0.20.0,
qiskit-ibmq-providerè stato deprecato e il suo supporto è terminato e l'eventuale archiviazione non avverrà prima di 3 mesi da tale data. La funzione fornita da qiskit-ibmq-provider non sta scomparendo, ma è stata suddivisa in repository separati. Si prega di vedere https://github.com/Qiskit/qiskit-ibmq-provider#migration-guides.
Correzioni di bug
-
Nel prossimo rilascio di terra ci sarà una release candidate taggata prima del rilascio finale. Tuttavia, la modifica della stringa di versione del pacchetto è bloccata da qiskit-ibmq-provider in questo momento, perché cerca di analizzare la versione e presuppone che non ci sia il suffisso prelease nella stringa di versione (vedere #8200 per i dettagli). Il PR #1135 corregge il parsing della versione in modo da usare la regex del progetto pypa/packaging, che gestisce tutte le versioni dei pacchetti PEP440 includendo i suffissi pre-release. Questo permetterà a terra di rilasciare un tag 0.21.0rc1 senza rompere il qiskit-ibmq-provider.
-
PR #1129 aggiorna il metodo
least_busy()per non supportare più BaseBackend come tipo di ingresso o di uscita valido, poiché è stato deprecato da tempo in qiskit-terra e recentemente rimosso. -
threading.currentThreadenotifyAllsono stati deprecati in Python 3.10 (ottobre 2021) e saranno rimossi in Python 3.12 (ottobre 2023). Il PR #1133 li sostituisce conthreading.current_thread,notify_allaggiunto a Python 2.6 (ottobre 2008). -
Le chiamate per eseguire un circuito quantistico con
dynamic=Truesollevano ora un errore che chiede all'utente di installare il nuovoqiskit-ibm-provider.