Notas de la versión de Qiskit 0.41
0.41.1
Terra 0.23.2
Preludio
El parche Qiskit Terra 0.23.2 corrige otros errores detectados en la serie 0.23.
Corrección de errores
-
Añade las siguientes puertas Clifford, que ya existen en la librería de circuitos, a la clase
CliffordclaseSXGate,SXdgGate,CYGate,DCXGate,iSwapGateyECRGate. -
Añadir una descomposición de un
ECRGateen puertas Clifford (hasta una fase global) a la biblioteca de equivalencias estándar. -
Se ha corregido un problema con la clase
BackendV2Convertercuando se envolvía un simulador basado enBackendV1-simulador basado en Se produciría un error si el campoonline_datedelBackendConfigurationpara el simulador no estuviera presente o si el backend del simulador soportara implementaciones ideales de compuertas que implicaran más de 1 qubit. Corregido #9562. -
Se ha corregido un valor de retorno incorrecto del método
BackendV2Converter.meas_map()que, en su lugar, devolvía el backenddt. -
Se ha corregido la falta de valores de retorno de los métodos
BackendV2Converter.drive_channel(),measure_channel(),acquire_channel()ycontrol_channel(). -
Los obsoletos
QubityClbitpropiedadesregisteryindexserán ahora redondeadas correctamente por QPY (qiskit.qpy) en todos los usos válidos deQuantumRegisteryClassicalRegister. En versiones anteriores de la serie Terra 0.23, esta información se perdía. En versiones anteriores a 0.23.0, esta información se reconstruía parcialmente, pero podía ser incorrecta o producir circuitos no válidos para determinadas configuraciones de registros.La forma correcta de recuperar el índice de un bit dentro de un circuito, y cualquier registro en ese circuito que contenga el bit es llamar a
QuantumCircuit.find_bit(). Este método devolverá la información correcta en todas las versiones de Terra desde su adición en la versión 0.19. -
Se ha solucionado un problema con el método
InstructionScheduleMap.has_custom_gate()que siempre devolvíaTruecuando el objetoInstructionScheduleMapera creado porTarget. Corregido #9595. -
Se ha corregido un error en los eigensolvers de NumPy-based (
NumPyMinimumEigensolver/NumPyEigensolver) y en los evolucionadores temporales de SciPy-based (SciPyRealEvolver/SciPyImaginaryEvolver), donde los operadores que soportan la conversión a matrices dispersas, comoSparsePauliOpse convertían de todos modos en matrices densas. -
Se ha corregido un error en
generate_basic_approximations()por el que la inversa deSdgGateno se reconocía correctamente comoSGate. Corregido #9585. -
Se ha corregido un error del algoritmo
VQDpor el que la función de evaluación de la energía no podía procesar lotes de parámetros, lo que lo hacía incompatible con optimizadores conmax_evals_grouped>1. Corregido #9500. -
Corregido error en
QNSPSAque provocaba un error de tipo cuando las fidelidades calculadas eran del tipointpero la perturbación era del tipofloat.
Aer 0.11.2
No cambia
IBM Proveedor Q 0.20.1
Dado que qiskit-ibmq-provider está obsoleto, las dependencias se han actualizado y corregido a las últimas versiones operativas. Se ha producido un problema con la última versión del paquete requests-ntlm que ha provocado el fallo de algunas pruebas de extremo a extremo.
0.41.0
Terra 0.23.1
Preludio
Qiskit Terra 0.23.1 es un pequeño parche para corregir errores identificados en Qiskit Terra 0.23.0
Corrección de errores
-
Un caso extremo de pickle
InstructionScheduleMapcon iterables no pickleablesargumentsya está corregido. Anteriormente, el uso de un iterable unpickleable como parámetroargumentsdeInstructionScheduleMap.add()(comodict_keys) podía hacer que las llamadas paralelas atranspile()fallaran. Estos argumentos se normalizarán ahora correctamente de forma interna alist. -
Se ha corregido un error de rendimiento en
ReverseEstimatorGradientpor el que el cálculo realizaba una gran cantidad de copias innecesarias si el gradiente sólo se calculaba para un subconjunto de parámetros, o en un circuito con muchas puertas no parametrizadas. -
Se ha corregido una depreciación incorrecta de
Register.name_formatque hacía que el atributo de clase sólo estuviera disponible para las instancias y no para la clase. Al intentar enviar trabajos de circuitos dinámicos a backends de hardware, esto causaba frecuentemente el error:AttributeError: 'property' object has no attribute 'match'Corregido #9493.
Aer 0.11.2
No cambia
IBM Proveedor Q 0.20.0
Preludio
Esta versión del paquete qiskit-ibmq-provider marca el paquete como obsoleto y será retirado y archivado en el futuro. La funcionalidad de qiskit-ibmq-provider ha sido sustituida por 3 paquetes qiskit-ibm-provider, qiskit-ibm-runtime, y qiskit-ibm-experiment que ofrecen diferentes subconjuntos de la funcionalidad que contenía qiskit-ibmq-provider . Puede consultar la tabla aquí:
https://github.com/Qiskit/qiskit-ibmq-provider#migration-guides
para obtener enlaces a las guías de migración para pasar de qiskit-ibmq-provider a sus paquetes sustitutos.
Notas sobre características en desuso
- A partir de la versión 0.20.0,
qiskit-ibmq-providerha quedado obsoleta, su soporte ha finalizado y su eventual archivo no se producirá antes de 3 meses a partir de esa fecha. La función proporcionada por qiskit-ibmq-provider no va a desaparecer, más bien se ha dividido en repositorios separados. Consulte https://github.com/Qiskit/qiskit-ibmq-provider#migration-guides.
Corrección de errores
-
En la próxima versión de terra habrá una versión candidata etiquetada antes de la versión final. Sin embargo, el cambio de la cadena de versión para el paquete está bloqueado en el qiskit-ibmq-provider en este momento porque está tratando de analizar la versión y está asumiendo que no habrá sufijo prelease en la cadena de versión (ver #8200 para más detalles). PR #1135 corrige este parseo de versiones para usar la regex del proyecto pypa/packaging que maneja todas las versiones de paquetes PEP440 incluyendo sufijos de pre-lanzamiento. Esto permitirá a terra liberar una etiqueta 0.21.0rc1 sin romper el qiskit-ibmq-provider.
-
PR #1129 actualiza el método
least_busy()para que ya no admita BaseBackend como tipo válido de entrada o salida, ya que hace tiempo que está obsoleto en qiskit-terra y ha sido eliminado recientemente. -
threading.currentThreadynotifyAllquedaron obsoletos en Python 3.10 (octubre de 2021) y se eliminarán en Python 3.12 (octubre de 2023). PR #1133 los sustituye porthreading.current_thread,notify_allañadido en Python 2.6 (octubre de 2008). -
Las llamadas para ejecutar un circuito cuántico con
dynamic=Trueproducen ahora un error que pide al usuario que instale el nuevoqiskit-ibm-provider.