Skip to main content
IBM Quantum Platform

Notas de la versión de Qiskit 0.19


0.19.6

Terra 0.14.2

Sin cambios

Aer 0.5.2

Sin cambios

Ignis 0.3.3

Notas de actualización

  • Se ha añadido un nuevo requisito scikit-learn a la lista de requisitos. Esta dependencia se añadió en la versión 0.3.0, pero no se expuso correctamente como tal en dicha versión. Esto daría lugar a un ImportError si se importara el módulo qiskit.ignis.measurement.discriminator.iq_discriminators . Ahora aparece correctamente en la lista de dependencias para que scikit-learn se instale con qiskit-ignis.

Corrección de errores

  • Corrige un problema en qiskit-ignis 0.3.2 que podría plantear un ImportError cuando qiskit.ignis.verification.tomography.fitters.process_fitter fue importado sin cvxpy ser instalado.

Aqua 0.7.3

Sin cambios

IBM Proveedor Q 0.7.2

Sin cambios


0.19.5

Terra 0.14.2

Sin cambios

Aer 0.5.2

Sin cambios

Ignis 0.3.2

Corrección de errores

  • El método qiskit.ignis.verification.TomographyFitter.fit() ha mejorado la lógica de detección del ajustador por defecto. Anteriormente, se utilizaba el método de ajuste cvx siempre que se instalaba cvxpy. Sin embargo, era posible instalar cvxpy sin un solucionador SDP que funcionara para el método cvx fitter. Esta lógica se ha reelaborado para que el método de ajuste cvx sólo se utilice si cvxpy está instalado y existe un solucionador SDP que se pueda utilizar. En caso contrario, se utiliza el ajustador lstsq .
  • Corrige un caso extremo en qiskit.ignis.mitigation.measurement.fitters.MeasurementFitter.apply() para la entrada que tiene etiquetas de estado no válidas o incorrectas que no coinciden con el circuito de calibración. Anteriormente, esto no daba error y sólo devolvía un resultado vacío. En su lugar, ahora este caso se captura correctamente y se lanza una excepción QiskitError cuando se utilizan etiquetas incorrectas.

Aqua 0.7.3

Notas de actualización

  • La dependencia cvxpy, necesaria para el clasificador svm, se ha eliminado de la lista de requisitos y se ha convertido en una dependencia opcional. Esto se debe a que la instalación de cvxpy no es fluida en todos los entornos y a menudo requiere que se instale un compilador para ejecutarse. Para utilizar el clasificador svm ahora tendrá que instalar cvxpy ejecutando pip install cvxpy<1.1.0 o instalarlo con aqua ejecutando pip install qiskit-aqua[cvx].

Corrección de errores

  • El método compose del CircuitOp utilizaba QuantumCircuit.combine , que se ha cambiado para utilizar QuantumCircuit.compose. El uso de combine conduce al problema de que la composición de un operador con un CircuitOp basado en un registro con nombre no encadena los operadores sino que los apila. E.g. al componer Z ^ 2 con un circuito basado en un registro con nombre de 2 qubits se obtuvo un operador de 4 qubits en lugar de uno de 2 qubits.
  • El método MatrixOp.to_instruction antes devolvía un operador y no una instrucción. Este método ha sido actualizado para devolver una Instrucción. Tenga en cuenta que esto sólo funciona si el operador primitivo es unitario, de lo contrario se produce un error en la construcción de la instrucción.
  • El método __hash__ de la clase PauliOp utilizaba el método id() que impide que las comparaciones de conjuntos funcionen como se espera ya que dependen de tablas hash y los objetos idénticos utilizados no tienen hashes idénticos. Ahora, la implementación utiliza un hash de la representación de la cadena en línea con la implementación en la clase Pauli .

IBM Proveedor Q 0.7.2

Sin cambios


0.19.4

Terra 0.14.2

Notas de actualización

  • Anteriormente, los convertidores circuit_to_gate y circuit_to_instruction incluían automáticamente la puerta o instrucción generada en el SessionEquivalenceLibrary activo. Estos convertidores aceptan ahora un argumento opcional de palabra clave equivalence_library para especificar si las instancias convertidas deben registrarse y dónde. El comportamiento por defecto es no registrar la instancia convertida.

Corrección de errores

  • Las implementaciones de la puerta X multicontrolada (MCXGrayCode, MCXRecursive y MCXVChain) han modificado sus propiedades name para describir con mayor precisión su implementación (mcx_gray, mcx_recursive y mcx_vchain respectivamente.) Anteriormente, estas puertas compartían el nombre mcx` with ``MCXGate, lo que provocaba que estas puertas se transpilaran y simularan incorrectamente.
  • ControlledGate instancias con un conjunto ctrl_state en algunos casos no se evaluaban como iguales, incluso si las puertas comparadas eran equivalentes. Esto se ha resuelto.
  • Corregida la conversión de unidades SI para qiskit.pulse.SetFrequency. La instrucción SetFrequency debe estar en Hz en el frontend y tiene que convertirse a GHz cuando SetFrequency se convierte en PulseQobjInstruction.
  • Los controles abiertos se aplicaron modificando la definición de una puerta. Sin embargo, cuando la puerta ya existe en la base, esta definición no se utiliza, lo que da lugar a circuitos incorrectos enviados a un backend. Esto modifica el desenrollador para que emita la definición si encuentra una puerta controlada con los controles abiertos.

Aer 0.5.2

Sin cambios

Ignis 0.3.0

Sin cambios

Aqua 0.7.2

Preludio

El cálculo de la expectativa VQE con Aer qasm_simulator ahora tiene por defecto un cálculo que tiene el comportamiento de ruido de disparo esperado.

Notas de actualización

  • cvxpy está ahora en la lista de requisitos como dependencia de qiskit-aqua. Se utiliza para el solucionador de programas cuadráticos que forma parte de qiskit.aqua.algorithms.QSVM. Anteriormente, cvxopt era una dependencia opcional que debía instalarse para utilizar esta funcionalidad. Esto ya no es necesario ya que cvxpy se instalará con qiskit-aqua.
  • Para la tomografía de estados ejecutada como parte de qiskit.aqua.algorithms.HHL con un backend QASM, la función de ajuste de la tomografía qiskit.ignis.verification.StateTomographyFitter.fit() ahora se llama explícitamente con el método establecido en lstsq para utilizar siempre el ajuste por mínimos cuadrados. Anteriormente intentaba utilizar de forma oportunista el instalador cvx si cvxpy estaba instalado. Pero, el ajustador cvx depende de una instalación específicamente configurada cvxpy con un solucionador SDP instalado como parte de cvxpy que no siempre está presente en un entorno con cvxpy instalado.
  • El cálculo de expectativas VQE mediante la instrucción qiskit.providers.aer.extensions.SnapshotExpectationValue de qiskit-aer ya no está activado por defecto. Esto se cambió para ser el valor por defecto en 0.7.0 porque es significativamente más rápido, pero condujo a resultados ideales inesperados sin ruido de disparo (ver #1013 para más detalles). El valor por defecto ha vuelto a cambiar para ajustarse a las expectativas de los usuarios. Ahora se puede optar por utilizar el cálculo de expectativas más rápido estableciendo el nuevo kwarg include_custom en True en el constructor qiskit.aqua.algorithms.VQE .

Nuevas funciones

  • Se ha añadido un nuevo kwarg include_custom al constructor de qiskit.aqua.algorithms.VQE y sus subclases (principalmente qiskit.aqua.algorithms.QAOA). Cuando se establece en true y el kwarg expectation se establece en None (el valor predeterminado), esto permitirá el uso del cálculo de expectativas VQE con la instrucción qasm_simulator qiskit.providers.aer.extensions.SnapshotExpectationValue de Aer. El cálculo especial basado en instantáneas Aer es mucho más rápido, pero con una salida ideal similar a la del simulador de vectores de estado.

IBM Proveedor Q 0.7.2

Sin cambios


0.19.3

Terra 0.14.1

Sin cambios

Aer 0.5.2

Corrección de errores

  • Se ha corregido un error por el que los simuladores de vectores de estado y unitarios ejecutaban un número de disparos (en paralelo) igual al número de subprocesos de la CPU en lugar de ejecutar un único disparo.
  • Corrige las instrucciones de puerta qobj "diagonal" que se aplican incorrectamente en el método del Simulador Qasm de matriz de densidad.
  • Se corrige un error por el que las puertas condicionales no se aplicaban correctamente en el método de simulación de matriz de densidad.
  • Corrección de errores en la puerta CZ y la puerta Z para los métodos "density_matrix_gpu" y "density_matrix_thrust" QasmSimulator.
  • Se soluciona un problema por el que no se comprobaban los requisitos de memoria de la simulación en QasmSimulator cuando se utilizaba un método de simulación no automático.
  • Se ha corregido una fuga de memoria que afectaba a los métodos del simulador de GPU

Ignis 0.3.0

Sin cambios

Aqua 0.7.1

Sin cambios

IBM Proveedor Q 0.7.2

Corrección de errores

  • qiskit.provider.ibmq.IBMQBackend.jobs() devolverá ahora la lista correcta de objetos IBMQJob cuando el kwarg status se establezca en 'RUNNING'. Correcciones #523
  • Los metadatos del paquete se han actualizado para reflejar correctamente la dependencia de qiskit-terra >= 0.14.0. Esta dependencia se añadió implícitamente como parte de la versión 0.7.0, pero no se reflejó en los requisitos del paquete, por lo que antes era posible instalar qiskit-ibmq-provider con una versión de qiskit-terra demasiado antigua. Correcciones #677

0.19.0

Terra 0.14.0

Preludio

La versión 0.14.0 incluye varias novedades y correcciones de errores. El mayor cambio de esta versión es la introducción de una biblioteca de circuitos cuánticos en qiskit.circuit.libraryque contiene algunas familias de circuitos de interés.

La biblioteca de circuitos ofrece a los usuarios acceso a un rico conjunto de familias de circuitos bien estudiados, cuyas instancias pueden utilizarse como puntos de referencia, como bloques de construcción para construir circuitos más complejos o como herramienta para explorar la ventaja computacional cuántica sobre la clásica. El contenido de esta biblioteca seguirá creciendo y madurando.

La versión inicial de la biblioteca de circuitos contiene:

  • standard_gatescompuertas de ancho fijo: son compuertas de ancho fijo utilizadas habitualmente como bloques de construcción primitivos, que constan de compuertas de 1, 2 y 3 qubits. Por ejemplo XGate, RZZGate y CSWAPGate. La antigua ubicación de estas puertas en qiskit.extensions.standard ha quedado obsoleta.
  • generalized_gatesson familias que pueden generalizarse a un número arbitrario de qubits, por ejemplo a Permutation o GMS (puerta global Molmer-Sorensen).
  • boolean_logic: circuitos que transforman los estados de base según funciones lógicas booleanas simples, como ADD o XOR.
  • arithmeticun conjunto de circuitos para hacer aritmética clásica como WeightedAdder y IntegerComparator.
  • basis_changescircuitos como la transformada cuántica de Fourier, QFTque aplican matemáticamente cambios de base.
  • n_localpara crear fácilmente grandes circuitos con capas de rotación y entrelazamiento, tales como TwoLocal que utiliza rotaciones de un solo qubit y entrelazamientos de dos qubits.
  • data_preparationcircuitos que toman datos de entrada clásicos y los codifican en un estado cuántico difícil de simular, p. ej. PauliFeatureMap o ZZFeatureMap.
  • Otros circuitos que han resultado interesantes en la literatura, tales como QuantumVolume, GraphStateo IQP.

Para facilitar el uso de estos circuitos como bloques de construcción, hemos introducido un compose() método de qiskit.circuit.QuantumCircuit para la composición de circuitos, ya sea con otros circuitos (soldándolos por los extremos y, opcionalmente, permutando los hilos) o con otras puertas más sencillas:

>>> lhs.compose(rhs, qubits=[3, 2], inplace=True)
            ┌───┐                   ┌─────┐                ┌───┐
lqr_1_0: ───┤ H ├───    rqr_0: ──■──┤ Tdg ├    lqr_1_0: ───┤ H ├───────────────
            ├───┤              ┌─┴─┐└─────┘                ├───┤
lqr_1_1: ───┤ X ├───    rqr_1: ┤ X ├───────    lqr_1_1: ───┤ X ├───────────────
         ┌──┴───┴──┐           └───┘                    ┌──┴───┴──┐┌───┐
lqr_1_2:U1(0.1)+                     =  lqr_1_2:U1(0.1) ├┤ X ├───────
         └─────────┘                                    └─────────┘└─┬─┘┌─────┐
lqr_2_0: ─────■─────                           lqr_2_0: ─────■───────■──┤ Tdg ├
            ┌─┴─┐                                          ┌─┴─┐        └─────┘
lqr_2_1: ───┤ X ├───                           lqr_2_1: ───┤ X ├───────────────
            └───┘                                          └───┘
lcr_0: 0 ═══════════                           lcr_0: 0 ═══════════════════════
lcr_1: 0 ═══════════                           lcr_1: 0 ═══════════════════════

Con esto, los circuitos de Qiskit ya no asumen un estado inicial implícito de 0|0\rangle, y no se dibujarán con este estado inicial. El estado inicial todo cero se sigue asumiendo en un backend cuando se ejecuta un circuito.

Nuevas funciones

  • Se ha añadido un nuevo método has_entry()a la clase qiskit.circuit.EquivalenceLibrary para comprobar rápidamente si una puerta determinada tiene alguna descomposición conocida en la biblioteca.

  • Una nueva clase IQPpara construir un circuito polinómico cuántico instantáneo, se ha añadido al módulo de biblioteca de circuitos qiskit.circuit.library.

  • Se ha añadido un nuevo compose() a qiskit.circuit.QuantumCircuit. Permite componer dos circuitos cuánticos sin tener que convertir uno en puerta o instrucción. También permite permutaciones de qubits/clbits en el punto de composición, así como la modificación opcional in situ. También puede utilizarse en lugar de append()ya que también permite componer instrucciones y operadores en el circuito.

  • qiskit.circuit.library.Diagonal a la biblioteca de circuitos. Estos circuitos implementan operadores cuánticos diagonales (formados por elementos distintos de cero sólo en la diagonal). El simulador Aer las simula con más eficacia que las matrices densas.

  • Añade el método from_label() a la clase qiskit.quantum_info.Clifford para inicializar como el producto tensorial de compuertas single-qubit I, X, Y, Z, H, o S.

  • El transformador de programación qiskit.pulse.reschedule.compress_pulses() realiza un paso de optimización para reducir el uso de memoria de forma de onda en hardware sustituyendo múltiples instancias idénticas de un pulso en una programación de pulsos por un único pulso. Por ejemplo:

    from qiskit.pulse import reschedule
    
    schedules = []
    for _ in range(2):
        schedule = Schedule()
        drive_channel = DriveChannel(0)
        schedule += Play(SamplePulse([0.0, 0.1]), drive_channel)
        schedule += Play(SamplePulse([0.0, 0.1]), drive_channel)
        schedules.append(schedule)
    
    compressed_schedules = reschedule.compress_pulses(schedules)
  • El sitio qiskit.transpiler.Layout tiene un nuevo método reorder_bits() que se utiliza para reordenar una lista de qubits virtuales basándose en el objeto layout.

  • Se han añadido dos nuevos métodos qiskit.providers.models.PulseBackendConfiguration para interactuar con los canales.

    • get_channel_qubits() para obtener una lista de todos los qubits operados por el canal dado y
    • get_qubit_channel() para obtener una lista de canales que operan en el qubit dado.
  • Se introducen nuevos qiskit.extensions.HamiltonianGate y qiskit.circuit.QuantumCircuit.hamiltonian() que representan la evolución Hamiltoniana de la función de onda del circuito mediante un Operador Hermitiano y un tiempo de evolución especificados por el usuario. El tiempo de evolución puede ser a Parameterpermitiendo la creación de circuitos parametrizados tipo UCCSD o QAOA que compilan a objetos UnitaryGate si se proporcionan parámetros time . El unitario de un HamiltonianGate con operador hamiltoniano H y parámetro temporal t es eiHte^{-iHt}.

  • El módulo de biblioteca de circuitos qiskit.circuit.library proporciona ahora un nuevo circuito booleano lógico AND qiskit.circuit.library.ANDy el circuito OR, qiskit.circuit.library.ORque implementan las operaciones respectivas en un número variable de qubits proporcionados.

  • Se añaden nuevos backends falsos en qiskit.test.mock. Se trata de versiones simuladas de ibmq_armonk, ibmq_essex, ibmq_london, ibmq_valencia, ibmq_cambridge, ibmq_paris, ibmq_rome y ibmq_athens. Al igual que con otros backends falsos, éstos incluyen instantáneas de los datos de calibración (es decir, backend.defaults()) y los datos de error (es decir, backend.properties()) tomados del sistema real, y pueden utilizarse para pruebas locales, compilación y simulación.

  • El parámetro last_update_date para BackendProperties ahora también se puede pasar como un objeto datetime . Antes sólo se aceptaba una cadena en formato ISO8601.

  • Añade qiskit.quantum_info.Statevector.from_int() y qiskit.quantum_info.DensityMatrix.from_int() métodos que permiten construir un estado base computacional para dimensiones de sistema especificadas.

  • Los métodos de la clase qiskit.circuit.QuantumCircuit para añadir puertas (por ejemplo h()) que antes se añadían dinámicamente en tiempo de ejecución a la definición de la clase se han refactorizado para que sean métodos de la clase definidos estáticamente. Esto significa que los analizadores estáticos (como los IDE) ahora pueden leer estos métodos.

Notas de actualización

Notas sobre características en desuso

  • El método qiskit.dagcircuit.DAGCircuit.compose() toma ahora una lista de qubits/clbits que especifican el orden posicional de los bits sobre los que componer. El método de asignación basado en diccionarios que utiliza el argumento edge_map está obsoleto y se eliminará en una futura versión.

  • El método combine_into_edge_map() de la clase qiskit.transpiler.Layout ha quedado obsoleto y se eliminará en una futura versión. En su lugar, el nuevo método reorder_bits() debe utilizarse para reordenar una lista de qubits virtuales de acuerdo con el objeto de disposición.

  • Pasando un objeto qiskit.pulse.ControlChannel a través del parámetro channel para el método qiskit.providers.models.PulseBackendConfiguration método control() ha quedado obsoleto y se eliminará en una futura versión. Los objetos ControlChannel se generan ahora a partir del atributo de configuración del backend channels que tiene la información de todos los canales y los qubits con los que operan. Ahora, se espera que el método control() se espera que tome el parámetro qubits de la forma (control_qubit, target_qubit) y del tipo list o tuple, y devuelve una lista de canales de control.

  • Los métodos AND y OR de qiskit.circuit.QuantumCircuit están obsoletos y se eliminarán en una futura versión. En su lugar, debe utilizar las clases de lógica booleana de la biblioteca de circuitos qiskit.circuit.library.AND y qiskit.circuit.library.OR y luego añadir esos objetos a tu clase. Por ejemplo:

    from qiskit import QuantumCircuit
    from qiskit.circuit.library import AND
    
    qc = QuantumCircuit(2)
    qc.h(0)
    qc.cx(0, 1)
    
    qc_and = AND(2)
    
    qc.compose(qc_and, inplace=True)
  • El módulo qiskit.extensions.standard está obsoleto y se eliminará en una futura versión. Las clases de puerta de ese módulo se han trasladado a qiskit.circuit.library.standard_gates.

Corrección de errores

  • Los métodos qiskit.circuit.QuantumCircuit métodos inverse()mirror() , así como el setter QuantumCircuit.data generarían un circuito no válido cuando se utilizan en una instancia de circuito parametrizada. Esto se ha resuelto y estos métodos deberían funcionar ahora con un circuito parametrizado. Correcciones #4235

  • Anteriormente, al crear una versión controlada de una puerta qiskit estándar, si se especificaba ctrl_state se devolvía un objeto ControlledGate genérico, mientras que sin él se devolvía una puerta qiskit estándar controlada si estaba definida. Este PR permite que las compuertas estándar controladas por qiskit entiendan ctrl_state.

    Además, este PR corrige lo que podría considerarse un error por el que al establecer la ctrl_state de una puerta ya controlada se asumía que el estado especificado se aplicaba a todo el ancho de control en lugar de añadir los qubits de control. Por ejemplo:

    circ = QuantumCircuit(2)
    circ.h(0)
    circ.x(1)
    gate = circ.to_gate()
    cgate = gate.control(1)
    c3gate = cgate.control(2, ctrl_state=0)

    aplicaría ctrl_state a los tres qubits de control en lugar de añadir sólo los dos qubits de control.

  • Se ha corregido un error en random_clifford() que impedía el muestreo del grupo Clifford completo. Correcciones #4271

  • El método qiskit.circuit.Instruction método qiskit.circuit.Instruction.is_parameterized() devolvía True para cualquier instancia de Instruction que tuviera un qiskit.circuit.Parameter en cualquier elemento de su matriz params , incluso si ese Parameter había sido completamente enlazado. Esto se ha corregido para que .is_parameterized devuelva False cuando la instrucción esté completamente ligada.

  • qiskit.circuit.ParameterExpression.subs() no había detectado correctamente algunos casos en los que la sustitución de parámetros daba lugar a dos objetos Parameters distintos en una expresión con el mismo nombre. Esto se ha corregido, por lo que en estos casos aparecerá un CircuitError .

  • Mejorar el rendimiento de qiskit.quantum_info.Statevector y qiskit.quantum_info.DensityMatrix para simulaciones de circuitos de bajo qubit optimizando los métodos de la clase __init__ . Correcciones #4281

  • La función qiskit.compiler.transpile() ahora maneja correctamente cuando el parámetro basis_gates se establece en None. Esto permitirá cualquier puerta en el circuito transpilado de salida, incluidas las puertas añadidas por el proceso de transpilación. Tenga en cuenta que el uso de este parámetro puede tener algunas consecuencias no deseadas durante la optimización. Algunos pases del transpilador dependen de que se haya configurado basis_gates . Por ejemplo, qiskit.transpiler.passes.Optimize1qGates sólo optimiza las cadenas de compuertas u1, u2, y u3 y sin basis_gates es incapaz de desenrollar compuertas que de otro modo podrían optimizarse:

    from qiskit import *
    
    q = QuantumRegister(1, name='q')
    circuit = QuantumCircuit(q)
    circuit.h(q[0])
    circuit.u1(0.1, q[0])
    circuit.u2(0.1, 0.2, q[0])
    circuit.h(q[0])
    circuit.u3(0.1, 0.2, 0.3, q[0])
    
    result = transpile(circuit, basis_gates=None, optimization_level=3)
    result.draw()
         ┌───┐┌─────────────┐┌───┐┌─────────────────┐
    q_0: ┤ H ├┤ U2(0.1,0.3) ├┤ H ├┤ U3(0.1,0.2,0.3)
         └───┘└─────────────┘└───┘└─────────────────┘

    Correcciones #3017

Otras notas

Aer 0.5.1

Sin cambios

Ignis 0.3.0

Sin cambios

Aqua 0.7.0

Preludio

La versión de Qiskit Aqua 0.7.0 introduce un montón de nuevas funcionalidades junto con una mejor integración con qiskit.circuit.QuantumCircuit objetos. Las contribuciones centrales son el módulo de optimización de Qiskit, una refactorización completa de Operators, el uso de circuitos como entrada nativa para los algoritmos y la eliminación de la API declarativa JSON.

Módulo de optimización

El módulo qiskit.optimization` ofrece ahora funciones para modelar y resolver programas cuadráticos. Ofrece varios algoritmos cuánticos y convencionales a corto plazo, como el MinimumEigenOptimizer (que abarca, por ejemplo VQE o QAOA) o CplexOptimizer, así como un conjunto de conversores para traducir entre distintas representaciones del problema, como QuadraticProgramToQubo. Consulte el registro de cambios para ver una lista de las funciones añadidas.

Flujo del operador

La lógica de operadores proporcionada en qiskit.aqua.operators` se ha refactorizado por completo y ahora es un conjunto completo de herramientas para construir cálculos cuánticos físicamente intuitivos. Contiene funciones de estado, operadores y medidas e internamente se basa en los objetos Operator de Terra. El cálculo de los valores de expectativa y las evoluciones se ha simplificado mucho y objetos como ExpectationFactory producen el algoritmo de expectativa adecuado y más eficaz en función del tipo de entrada del operador. Consulte el registro de cambios para ver las funciones añadidas.

Circuitos nativos

Los algoritmos suelen utilizar circuitos parametrizados como entrada, por ejemplo el VQE, el VQC o el QSVM. Anteriormente, estas entradas tenían que ser del tipo VariationalForm o FeatureMap que envolvían el objeto circuito. Ahora los circuitos se admiten de forma nativa en estos algoritmos, lo que significa que cualquier QuantumCircuit construido individualmente se puede pasar a estos algoritmos. En combinación con el lanzamiento de la biblioteca de circuitos, que ofrece una amplia colección de familias de circuitos, ahora es fácil construir circuitos elaborados como entrada del algoritmo.

API JSON declarativa

Se ha eliminado la posibilidad de ejecutar algoritmos utilizando diccionarios como parámetros, así como de utilizar la interfaz gráfica de Aqua.

IBM Proveedor Q 0.7.0

Nuevas funciones

  • Ahora se lanza una nueva excepción, qiskit.providers.ibmq.IBMQBackendJobLimitError, si no se ha podido enviar un trabajo porque se ha alcanzado el límite de trabajos activos.
  • qiskit.providers.ibmq.job.IBMQJob y qiskit.providers.ibmq.managed.ManagedJobSet tienen cada uno dos nuevos métodos update_name y update_tags. Se utilizan para cambiar el nombre y las etiquetas de un trabajo o un conjunto de trabajos, respectivamente.
  • qiskit.providers.ibmq.IBMQFactory.save_account() y qiskit.providers.ibmq.IBMQFactory.enable_account() aceptan ahora los parámetros opcionales hub, group, y project, que permiten especificar un proveedor predeterminado para guardar en disco o utilizar, respectivamente.

Notas de actualización

  • Los métodos qiskit.providers.ibmq.job.IBMQJob creation_date y time_per_step devuelven ahora la información de fecha y hora como un objeto datetime en hora local en lugar de UTC. Del mismo modo, los parámetros start_datetime y end_datetime, de qiskit.providers.ibmq.IBMQBackendService.jobs() y qiskit.providers.ibmq.IBMQBackend.jobs() pueden especificarse ahora en hora local.
  • El método qiskit.providers.ibmq.job.QueueInfo.format() utiliza ahora un formateador personalizado de datetime a cadena, y la flecha del paquete ya no es necesaria y se ha eliminado de la lista de requisitos.

Notas sobre características en desuso

  • Los métodos from_dict() y to_dict() de qiskit.providers.ibmq.job.IBMQJob están obsoletos y se eliminarán en la próxima versión.

Corrección de errores

  • Se ha solucionado un problema por el que nest_asyncio.apply() podía lanzar una excepción si no había un bucle asyncio debido a la creación de hilos.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.