Skip to main content
IBM Quantum Platform

Notas de la versión de Qiskit 0.36


0.36.2

Terra 0.20.2

Preludio

Qiskit Terra 0.20.2 es una versión de corrección de errores, que aborda algunos problemas menores identificados desde la última versión del parche.

Corrección de errores

  • Se ha corregido un problema con BackendV2-basadas en clases backend falsas del módulo qiskit.providers.fake_provider como FakeMontrealV2, donde los valores de los parámetros dtm y dt y el atributo asociado Target.dt no se convertían correctamente a segundos. Esto causaría problemas al utilizar estos backends falsos con la programación. Ver #8018.

  • marginal_counts() ahora tendrá éxito cuando se le pida que margine la memoria con un parámetro indices que contenga elementos distintos de cero. Anteriormente, los disparos cuya representación hexadecimal del resultado era suficientemente pequeña podían plantear un ValueError. Ver #8044.

  • El exportador OpenQASM 3 (qiskit.qasm3) mostrará ahora las declaraciones input o output antes que las declaraciones de puerta. Esto es más coherente con la gramática ANTLR de referencia actual del equipo de OpenQASM 3. Ver #7964.

  • Se ha corregido un error en el RZXCalibrationBuilder por el que la amplitud del pulso de resonancia cruzada escalada podía parecer parametrizada incluso después de la asignación. Esto podría hacer que las herramientas de visualización de pulsos utilizaran el formato parametrizado en lugar del numérico esperado. Ver #8031.

  • Se ha corregido un problema con la función transpile() cuando se ejecutaba con un backend basado en BackendV2-y se establecía el argumento de la palabra clave scheduling_method . Anteriormente, la función no procesaba correctamente las duraciones por defecto de las instrucciones soportadas por el backend, lo que provocaba un error.

  • Se ha corregido un error en el RZXCalibrationBuilder que provocaba que los pulsos se construyeran a veces con duraciones incorrectas. Ver #7994.

  • El SabreSwap transpiler pass, utilizado en transpile() cuando routing_method="sabre" está configurado, ya no eliminará esporádicamente las puertas condicionadas clásicamente y sus sucesoras de los circuitos durante la fase de enrutamiento de la transpilación. Ver #8040.

  • Statevector permitirá ahora la iteración directa a través de sus valores (como for coefficient in statevector) e informará correctamente de su longitud en len. Antes intentaba acceder a datos fuera de los límites y lanzaba un error QiskitError. Ver #8039.

Aer 0.10.4

No cambia

Ignis 0.7.1

Preludio

Se trata de una corrección de errores que soluciona principalmente un problema de empaquetado que provocaba que el directorio docs/ , que contiene los archivos fuente utilizados para crear la documentación de qiskit-ignis, se incluyera en el paquete Python.

IBM Proveedor Q 0.19.1

No cambia


0.36.1

Terra 0.20.1

Preludio

Qiskit Terra 0.20.1 es una versión de corrección de errores que resuelve los problemas identificados en la versión 0.20.0.

Problemas conocidos

  • QPY deserialización con la qpy.load() de un objeto instanciado directamente UCPauliRotGate en un circuito fallará porque el argumento del eje de rotación de la clase no se almacena en un lugar estándar. Para evitarlo, puedes utilizar las subclases: UCRXGate, UCRYGateo UCRZGate (dependiendo de si estás utilizando un eje de rotación de "X", "Y", o "Z" respectivamente) que incorpora el eje de rotación en el constructor de la clase y funcionará correctamente en QPY.

  • Desde su introducción original en Qiskit Terra 0.20, XXPlusYYGate ha utilizado una convención de ángulo negativo en comparación con todas las demás puertas de rotación. En Qiskit Terra 0.21, esto se corregirá para que sea coherente con las demás puertas de rotación. Esto no afecta a ninguna otra puerta de rotación, ni a XXMinusYYGate.

Corrección de errores

  • Fijo Clifford, Pauli y CNOTDihedral inicialización de operadores de circuitos compatibles que contienen Delay instrucciones. Estas instrucciones se tratan como identidades al convertirlas en operadores.

  • Se ha corregido un problema por el que la función eval_observables() provocaba un error si su argumento quantum_state era del tipo StateFn. eval_observables ahora admite correctamente todos los tipos de entrada indicados por sus sugerencias de tipo.

  • Solucionado un problema con la función de visualización dag_drawer() y el método DAGCircuit.draw() donde anteriormente el cajón fallaba al intentar generar una visualización para un DAGCircuit que contenía un objeto Qubit o Clbit que no formaba parte de QuantumRegister o ClassicalRegister. Corregido #7915.

  • Corregida la validación de parámetros para la clase Drag. Anteriormente, no era sensible a los valores beta grandes con signo negativo, lo que podía haber dado lugar a muestras de forma de onda con un valor máximo superior al límite de amplitud de 1.0.

  • La clase QuantumInstance utilizada por muchos algoritmos (como VQE) codificaba de forma rígida el valor de un sleep mientras esperaba en bucle a que se actualizara el estado del trabajo. Ahora respeta el valor de reposo configurado según el atributo wait en el inicializador de QuantumInstance.

  • Se ha solucionado un problema con la función schedule por el que las personas que especificaban un list de objetos QuantumCircuit con una única entrada se devolvía incorrectamente un único objeto Schedule en lugar de un list.

  • Se ha solucionado un problema con la función de visualización de plot_error_map que impedía que funcionara cuando se ejecutaba con un backend que tenía definido un error de lectura en el backend proporcionado BackendProperties o cuando se ejecutaba con un BackendV2 backend. Corregido #7879.

  • Se ha corregido un error que podía dar lugar a un tiempo de ejecución exponencial y a la no terminación cuando una Pauli al método init_observables().

  • Fijo SabreSwapy, por extensión transpile() con optimization_level=3, reordenando ocasionalmente las mediciones de forma no válida. Antes, si dos medidas escribían en el mismo bit clásico, SabreSwap podía (dependiendo del mapa de acoplamiento) reordenarlas para producir un circuito no equivalente. Este comportamiento era estocástico, por lo que puede no haber aparecido de forma fiable. Corregido #7950

  • El SabreSwap transpiler pass, y por extensión SabreLayout y transpile() en optimization_level=3, dispone ahora de un mecanismo de escape para garantizar que nunca pueda quedarse atascado en un bucle infinito. Antes, ciertas entradas podían, con mucha mala suerte, quedarse atascadas en un mínimo local estable del espacio de búsqueda y la pasada nunca avanzaría más. Ahora forzará una serie de intercambios que permitan continuar el enrutamiento si detecta que no ha avanzado recientemente. Corregido #7707.

  • Se ha corregido un problema con la deserialización de QPY a través de la función qpy.load() de la función UCRXGate, UCRYGatey UCRZGate . Anteriormente, un archivo QPY que contenía alguna de estas puertas daba error al intentar cargar el archivo. Corregido #7847.

Aer 0.10.4

No cambia

Ignis 0.7.0

No cambia

IBM Proveedor Q 0.19.1

0.19.1

Corrección de errores

  • 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.

0.36.0

Terra 0.20.0

No cambia

Aer 0.10.4

Notas de actualización

  • Qiskit Aer ya no se compila con optimizaciones inseguras de coma flotante. Aunque la mayoría de los efectos deberían haberse localizado en Qiskit Aer, algunos aspectos del manejo subnormal pueden haberse filtrado previamente al código de usuario por la configuración incorrecta del modo "flush to zero" por parte de la biblioteca. Esto ya no ocurrirá.

Corrección de errores

  • Arreglar el transpilador de bloqueo de caché para que reconozca que la superop está bloqueada en caché. Esta es la solución para el problema 1479 <https://github.com/Qiskit/qiskit-aer/issues/1479> ahora density_matrix con modelos de ruido puede ser paralelizado. Se añade una nueva prueba, test_noise.TestNoise.test_kraus_gate_noise_on_QFT_cache_blocking para verificar este problema. Además, esta corrección incluye la corrección del problema 1483 <https://github.com/Qiskit/qiskit-aer/issues/1483> descubierto mediante la adición de un nuevo caso de prueba. Esto fija la medida sobre trozos para el vector de estado.

  • Corrige un error en NoiseModel.from_backend() que provocaba un error cuando T2 valor superior a 2 * T1 era suministrado por el backend. Después de esta corrección, pasa a truncar T2 valor hasta 2 \ * T1 y emitir una advertencia al usuario si trunca. El error se introdujo en #1391 y, antes de eso, NoiseModel.from_backend() había truncado el valor de T2 hasta 2 * T1 silenciosamente.

    Para más detalles, véase el número 1464.

  • device=Thrust era muy lento para un número pequeño de qubits porque siempre se aplicaba OpenMP threading. Esta corrección se aplica a OpenMP threads igual que device=CPU usando statevector_parallel_threshold.

  • Qiskit Aer ya no establecerá el modo de punto flotante a "ras a cero" cuando se carga. Los usuarios posteriores pueden haber visto previamente advertencias de Numpy como:

    El valor de la subnormalidad más pequeña para el tipo <class ‘numpy.float64’> es cero.

    Ahora ya no se emitirán, y el manejo del punto flotante será correcto.

  • Se ha corregido un posible problema con la ejecución de simulaciones en circuitos que tienen el atributo QuantumCircuit.metadata establecido. El atributo metadata puede ser cualquier diccionario python y anteriormente qiskit-aer intentaba serializar JSON el contenido del atributo para procesarlo con el resto de la entrada del circuito, incluso si el contenido no era serializable JSON. Esto ya no ocurre porque el atributo QuantumCircuit.metadata no se utiliza para ejecutar la simulación, por lo que ahora los contenidos no se serializan y en su lugar se adjuntan directamente al objeto qiskit.result.Result sin intentar serializar el contenido en JSON. Corregido #1435

Ignis 0.7.0

No cambia

IBM Proveedor Q 0.19.0

Nuevas funciones

  • El paquete qiskit-ibmq-provider es ahora compatible con las funciones de IBM Quantum LiveData. Estas funciones permiten a los usuarios observar el comportamiento en tiempo real de los backends de IBM Quantum mientras se ejecutan los trabajos. En concreto, el proveedor incluye ahora una nueva pestaña en el widget del backend relacionado con Jupyter y admite la ejecución de trabajos (a través del método qiskit.providers.ibmq.IBMQBackend.run() ) con el parámetro live_data_enabled=True en los backends permitidos de IBM Quantum.
  • Ahora puede especificar un nivel de registro diferente en la palabra clave options al enviar un trabajo Qiskit Runtime con el método qiskit.providers.ibmq.runtime.IBMRuntimeService.run() .

Notas de actualización

  • Python 3.6 se ha suprimido el soporte, ya que ha llegado al final de su vida útil en diciembre de 2021.
  • qiskit.providers.ibmq.random el servicio de números aleatorios que se utilizaba para acceder al extractor de aleatoriedad CQC ya no es compatible y ha sido eliminado.

Notas sobre características en desuso

  • La palabra clave image en el método qiskit.providers.ibmq.runtime.IBMRuntimeService.run() está obsoleta. En su lugar, debe especificar la imagen que desea utilizar en la palabra clave options .

Corrección de errores

  • Soluciona el problema #190. Ahora qiskit.providers.ibmq.runtime.RuntimeEncoder y qiskit.providers.ibmq.runtime.RuntimeDecoder han sido actualizados para manejar instancias de la clase Instrucción.
  • Corrige el problema #74 por el que las ndarrays de numpy con tipos de objeto no podían serializarse. qiskit.providers.ibmq.runtime.RuntimeEncoder y qiskit.providers.ibmq.runtime.RuntimeDecoder se han actualizado para manejar estos ndarrays.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.