Skip to main content
IBM Quantum Platform

Notas de versão do Qiskit 0.19


0.19.6

Terra 0.14.2

Nenhuma mudança

Aer 0.5.2

Nenhuma mudança

Ignis 0.3.3

Notas da Atualização

  • Um novo requisito scikit-learn foi adicionado à lista de requisitos. Essa dependência foi adicionada na versão 0.3.0, mas não foi exposta adequadamente como uma dependência nessa versão. Isso levaria a um ImportError se o módulo qiskit.ignis.measurement.discriminator.iq_discriminators fosse importado. Agora, ele está listado corretamente como uma dependência, de modo que o scikit-learn será instalado com o qiskit-ignis.

Correções de bugs

  • Corrige um problema no qiskit-ignis 0.3.2 que gerava um ImportError quando o qiskit.ignis.verification.tomography.fitters.process_fitter era importado sem que o cvxpy estivesse instalado.

Aqua 0.7.3

Nenhuma mudança

IBM 0.7.2

Nenhuma mudança


0.19.5

Terra 0.14.2

Nenhuma mudança

Aer 0.5.2

Nenhuma mudança

Ignis 0.3.2

Correções de bugs

  • O método qiskit.ignis.verification.TomographyFitter.fit() tem uma lógica de detecção aprimorada para o ajustador padrão. Anteriormente, o método cvx fitter era usado sempre que o cvxpy era instalado. No entanto, foi possível instalar o cvxpy sem um solucionador de SDP que funcionasse para o método cvx fitter. Essa lógica foi reformulada para que o método de ajuste cvx seja usado somente se o cvxpy estiver instalado e houver um solucionador de SDP que possa ser usado. Caso contrário, é usado o ajustador lstsq .
  • Corrige um caso extremo em qiskit.ignis.mitigation.measurement.fitters.MeasurementFitter.apply() para entradas com rótulos de estado inválidos ou incorretos que não correspondem ao circuito de calibração. Anteriormente, isso não dava erro e apenas retornava um resultado vazio. Em vez disso, agora esse caso é capturado corretamente e uma exceção QiskitError é levantada ao usar rótulos incorretos.

Aqua 0.7.3

Notas da Atualização

  • A dependência cvxpy, que é necessária para o classificador svm, foi removida da lista de requisitos e tornou-se uma dependência opcional. Isso ocorre porque a instalação do cvxpy não é perfeita em todos os ambientes e, muitas vezes, exige que um compilador seja instalado para ser executado. Para usar o classificador svm agora, você precisará instalar o cvxpy executando pip install cvxpy<1.1.0 ou instalá-lo com o aqua executando pip install qiskit-aqua[cvx].

Correções de bugs

  • O método compose do CircuitOp usava o QuantumCircuit.combine , que foi alterado para usar o QuantumCircuit.compose. O uso da combinação leva ao problema de que a composição de um operador com um CircuitOp baseado em um registro nomeado não encadeia os operadores, mas os empilha. E.g. a composição do Z ^ 2 com um circuito baseado em um registro nomeado de 2 qubits produziu um operador de 4 qubits em vez de um operador de 2 qubits.
  • O método MatrixOp.to_instruction retornava anteriormente um operador e não uma instrução. Esse método foi atualizado para retornar uma instrução. Observe que isso só funciona se o operador primitivo for unitário; caso contrário, será gerado um erro na construção da instrução.
  • O método __hash__ da classe PauliOp usou o método id() , o que impede que as comparações de conjuntos funcionem como esperado, pois elas dependem de tabelas de hash e objetos idênticos usados para não ter hashes idênticos. Agora, a implementação usa um hash da representação da cadeia de caracteres em linha com a implementação na classe Pauli .

IBM 0.7.2

Nenhuma mudança


0.19.4

Terra 0.14.2

Notas da Atualização

  • Os conversores circuit_to_gate e circuit_to_instruction já haviam incluído automaticamente a porta ou a instrução gerada no SessionEquivalenceLibrary ativo. Esses conversores agora aceitam um argumento opcional de palavra-chave equivalence_library para especificar se e onde as instâncias convertidas devem ser registradas. O comportamento padrão é não registrar a instância convertida.

Correções de bugs

  • As implementações do X Gate multicontrolado (MCXGrayCode, MCXRecursive e MCXVChain) tiveram suas propriedades name alteradas para descrever com mais precisão sua implementação (mcx_gray, mcx_recursive e mcx_vchain , respectivamente) Anteriormente, esses portões compartilhavam o nome mcx` with ``MCXGate, o que fazia com que fossem transpilados e simulados incorretamente.
  • ControlledGate instâncias com um conjunto ctrl_state não estavam, em alguns casos, sendo avaliadas como iguais, mesmo que as portas comparadas fossem equivalentes. Isto foi resolvido.
  • Corrigida a conversão da unidade SI para qiskit.pulse.SetFrequency. A instrução SetFrequency deve estar em Hz no frontend e precisa ser convertida em GHz quando SetFrequency for convertido em PulseQobjInstruction.
  • Os controles abertos foram implementados modificando a definição de um portão. No entanto, quando a porta já existe na base, essa definição não é usada, o que resulta em circuitos incorretos enviados a um backend. Isso modifica o desenrolador para emitir a definição se ele encontrar um portão controlado com controles abertos.

Aer 0.5.2

Nenhuma mudança

Ignis 0.3.0

Nenhuma mudança

Aqua 0.7.2

Prelúdio

O cálculo de expectativa de VQE com o Aer qasm_simulator agora tem como padrão um cálculo que tem o comportamento esperado de ruído de disparo.

Notas da Atualização

  • cvxpy agora está na lista de requisitos como uma dependência do qiskit-aqua. Ele é usado para o solucionador de programa quadrático que é usado como parte do site qiskit.aqua.algorithms.QSVM. Anteriormente, o cvxopt era uma dependência opcional que precisava ser instalada para usar essa funcionalidade. Isso não é mais necessário, pois o cvxpy será instalado com o qiskit-aqua.
  • Para a tomografia de estado executada como parte do site qiskit.aqua.algorithms.HHL com um backend QASM, a função de ajuste de tomografia qiskit.ignis.verification.StateTomographyFitter.fit() agora é chamada explicitamente com o método definido como lstsq para usar sempre o ajuste de mínimos quadrados. Anteriormente, ele tentava oportunamente usar o instalador do cvx se o cvxpy estivesse instalado. No entanto, o instalador cvx depende de uma instalação cvxpy configurada especificamente com um solucionador SDP instalado como parte do cvxpy , o que nem sempre está presente em um ambiente com o cvxpy instalado.
  • O cálculo de expectativa de VQE usando a instrução qiskit.providers.aer.extensions.SnapshotExpectationValue do qiskit-aer não está mais ativado por padrão. Isso foi alterado para ser o padrão em 0.7.0 porque é significativamente mais rápido, mas levou a resultados ideais inesperados sem ruído de disparo (consulte #1013 para obter mais detalhes). O padrão agora foi alterado para corresponder às expectativas do usuário. O uso do cálculo de expectativa mais rápido agora é opcional, definindo o novo kwarg include_custom como True no construtor qiskit.aqua.algorithms.VQE .

Novos Recurso

  • Um novo kwarg include_custom foi adicionado ao construtor de qiskit.aqua.algorithms.VQE e suas subclasses (principalmente qiskit.aqua.algorithms.QAOA). Quando definido como true e o kwarg expectation estiver definido como None (o padrão), isso permitirá o uso do cálculo de expectativa de VQE com a instrução qasm_simulator qiskit.providers.aer.extensions.SnapshotExpectationValue do Aer. A computação especial baseada no instantâneo Aer é muito mais rápida, mas com o resultado ideal semelhante ao do simulador de vetor de estado.

IBM 0.7.2

Nenhuma mudança


0.19.3

Terra 0.14.1

Nenhuma mudança

Aer 0.5.2

Correções de bugs

  • Corrigido o erro que fazia com que os simuladores de vetor de estado e unitário executassem um número de disparos (paralelos) igual ao número de threads da CPU em vez de executar apenas um único disparo.
  • Corrige as instruções de porta qobj "diagonal" que estão sendo aplicadas incorretamente no método Qasm Simulator da matriz de densidade.
  • Corrige o erro em que as portas condicionais não estavam sendo aplicadas corretamente no método de simulação de matriz de densidade.
  • Correção de bug no CZ gate e Z gate para os métodos "density_matrix_gpu" e "density_matrix_thrust" QasmSimulator.
  • Corrige o problema em que os requisitos de memória da simulação não estavam sendo verificados no site QasmSimulator ao usar um método de simulação não automático.
  • Correção de um vazamento de memória que afetava os métodos do simulador de GPU

Ignis 0.3.0

Nenhuma mudança

Aqua 0.7.1

Nenhuma mudança

IBM 0.7.2

Correções de bugs

  • qiskit.provider.ibmq.IBMQBackend.jobs() agora retornará a lista correta de objetos IBMQJob quando o kwarg status for definido como 'RUNNING'. Correções #523
  • Os metadados do pacote foram atualizados para refletir corretamente a dependência de qiskit-terra >= 0.14.0. Essa dependência foi adicionada implicitamente como parte da versão 0.7.0, mas não foi refletida nos requisitos do pacote, portanto, era possível instalar o qiskit-ibmq-provider com uma versão do qiskit-terra que era muito antiga. Correções #677

0.19.0

Terra 0.14.0

Prelúdio

A versão 0.14.0 inclui vários novos recursos e correções de bugs. A maior mudança desta versão é a introdução de uma biblioteca de circuitos quânticos em qiskit.circuit.libraryque contém algumas famílias de circuitos de interesse.

A biblioteca de circuitos oferece aos usuários acesso a um rico conjunto de famílias de circuitos bem estudados, cujas instâncias podem ser usadas como benchmarks, como blocos de construção em circuitos mais complexos ou como uma ferramenta para explorar a vantagem computacional quântica em relação à clássica. O conteúdo dessa biblioteca continuará crescendo e amadurecendo.

A versão inicial da biblioteca de circuitos contém:

  • standard_gates: são portas de largura fixa comumente usadas como blocos de construção primitivos, consistindo em portas de 1, 2 e 3 qubits. Por exemplo, o XGate, RZZGate e CSWAPGate. O antigo local desses portões em qiskit.extensions.standard está obsoleto.
  • generalized_gates: essas são famílias que podem ser generalizadas para um número arbitrário de qubits, por exemplo, a Permutation ou GMS (porta global Molmer-Sorensen).
  • boolean_logiccircuitos que transformam os estados da base de acordo com funções lógicas booleanas simples, como ADD ou XOR.
  • arithmetic: um conjunto de circuitos para fazer aritmética clássica, como WeightedAdder e IntegerComparator.
  • basis_changescircuitos como a transformada quântica de Fourier, QFTque aplicam matematicamente as mudanças de base.
  • n_localpadrões para criar facilmente grandes circuitos com camadas de rotação e emaranhamento, como o TwoLocal que usa rotações de um qubit e emaranhamentos de dois qubits.
  • data_preparationcircuitos que recebem dados de entrada clássicos e os codificam em um estado quântico difícil de simular, por exemplo PauliFeatureMap ou ZZFeatureMap.
  • Outros circuitos que se mostraram interessantes na literatura, como QuantumVolume, GraphState, ou IQP.

Para facilitar o uso desses circuitos como blocos de construção, introduzimos um compose() método de qiskit.circuit.QuantumCircuit para a composição de circuitos com outros circuitos (soldando-os nas extremidades e, opcionalmente, permutando os fios) ou com outras portas mais simples:

>>> 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 ═══════════════════════

Com isso, os circuitos do Qiskit não assumem mais um estado inicial implícito de 0|0\rangle, e não serão desenhados com esse estado inicial. O estado inicial totalmente zero ainda é assumido em um backend quando um circuito é executado.

Novos Recurso

  • Um novo método, has_entry()foi adicionado à classe qiskit.circuit.EquivalenceLibrary para verificar rapidamente se uma determinada porta tem alguma decomposição conhecida na biblioteca.

  • Uma nova classe IQPpara construir um circuito polinomial quântico instantâneo, foi adicionada ao módulo da biblioteca de circuitos qiskit.circuit.library.

  • Um novo método compose() foi adicionado ao qiskit.circuit.QuantumCircuit. Ele permite a composição de dois circuitos quânticos sem a necessidade de transformar um deles em uma porta ou instrução. Ele também permite permutações de qubits/clbits no ponto de composição, bem como a modificação opcional no local. Ele também pode ser usado no lugar de append()pois permite compor instruções e operadores no circuito também.

  • qiskit.circuit.library.Diagonal circuitos foram adicionados à biblioteca de circuitos. Esses circuitos implementam operadores quânticos diagonais (que consistem em elementos diferentes de zero somente na diagonal). Elas são simuladas com mais eficiência pelo simulador Aer do que as matrizes densas.

  • Add from_label() à classe qiskit.quantum_info.Clifford para inicialização como o produto tensorial de portas I, X, Y, Z, H ou S de um único qubit.

  • Transformador de programação qiskit.pulse.reschedule.compress_pulses() executa uma passagem de otimização para reduzir o uso da memória de forma de onda no hardware, substituindo várias instâncias idênticas de um pulso em uma programação de pulso por um único pulso. Por exemplo:

    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)
  • O qiskit.transpiler.Layout tem um novo método reorder_bits() que é usado para reordenar uma lista de qubits virtuais com base no objeto de layout.

  • Dois novos métodos foram adicionados à seção qiskit.providers.models.PulseBackendConfiguration para interagir com os canais.

    • get_channel_qubits() para obter uma lista de todos os qubits operados pelo canal fornecido e
    • get_qubit_channel() para obter uma lista de canais que operam no qubit fornecido.
  • Novos qiskit.extensions.HamiltonianGate e qiskit.circuit.QuantumCircuit.hamiltonian() métodos são introduzidos, representando a evolução hamiltoniana da função de onda do circuito por um operador hermitiano e tempo de evolução especificados pelo usuário. O tempo de evolução pode ser a Parameterpermitindo a criação de circuitos parametrizados no estilo UCCSD ou QAOA que são compilados em objetos UnitaryGate se forem fornecidos parâmetros time . A unidade de um HamiltonianGate com operador hamiltoniano H e parâmetro de tempo t é eiHte^{-iHt}.

  • O módulo da biblioteca de circuitos qiskit.circuit.library agora oferece um novo circuito lógico booleano AND, qiskit.circuit.library.ANDe circuito OR, qiskit.circuit.library.ORque implementa as respectivas operações em um número variável de qubits fornecidos.

  • Novos backends falsos são adicionados em qiskit.test.mock. Isso inclui versões simuladas de ibmq_armonk, ibmq_essex, ibmq_london, ibmq_valencia, ibmq_cambridge, ibmq_paris, ibmq_rome e ibmq_athens. Como em outros back-ends falsos, eles incluem instantâneos de dados de calibração (ou seja, backend.defaults()) e dados de erro (ou seja, backend.properties()) retirados do sistema real e podem ser usados para testes locais, compilação e simulação.

  • O parâmetro last_update_date para BackendProperties agora também pode ser passado como um objeto datetime . Anteriormente, apenas uma string no formato ISO8601 era aceita.

  • Adiciona qiskit.quantum_info.Statevector.from_int() e qiskit.quantum_info.DensityMatrix.from_int() que permitem a construção de um estado de base computacional para dimensões de sistema especificadas.

  • Os métodos na classe qiskit.circuit.QuantumCircuit para adicionar gates (por exemplo h()), que anteriormente eram adicionados dinamicamente em tempo de execução à definição da classe, foram refatorados para serem métodos da classe definidos estaticamente. Isso significa que o analisador estático (como os IDEs) agora pode ler esses métodos.

Notas da Atualização

Notas de descontinuação

  • O método qiskit.dagcircuit.DAGCircuit.compose() agora recebe uma lista de qubits/clbits que especificam a ordem posicional dos bits para compor. O método de mapeamento baseado em dicionário usando o argumento edge_map está obsoleto e será removido em uma versão futura.

  • O método combine_into_edge_map() da classe qiskit.transpiler.Layout foi preterido e será removido em uma versão futura. Em vez disso, o novo método reorder_bits() deve ser usado para reordenar uma lista de qubits virtuais de acordo com o objeto de layout.

  • Passando um objeto qiskit.pulse.ControlChannel por meio do parâmetro channel para o método qiskit.providers.models.PulseBackendConfiguration method control() foi preterido e será removido em uma versão futura. Os objetos ControlChannel agora são gerados a partir do atributo de configuração de backend channels , que tem as informações de todos os canais e os qubits em que eles operam. Agora, o método control() deve receber o parâmetro qubits do formulário (control_qubit, target_qubit) e do tipo list ou tuple, e retorna uma lista de canais de controle.

  • Os métodos AND e OR de qiskit.circuit.QuantumCircuit estão obsoletos e serão removidos em uma versão futura. Em vez disso, você deve usar as classes de lógica booleana da biblioteca de circuitos qiskit.circuit.library.AND amd qiskit.circuit.library.OR e, em seguida, anexar esses objetos à sua classe. Por exemplo:

    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)
  • O módulo qiskit.extensions.standard está obsoleto e será removido em uma versão futura. As classes de portais desse módulo foram movidas para qiskit.circuit.library.standard_gates.

Correções de bugs

  • Os qiskit.circuit.QuantumCircuit methods inverse()mirror() , bem como o setter QuantumCircuit.data gerariam um circuito inválido quando usados em uma instância de circuito parametrizado. Isso foi resolvido e esses métodos agora devem funcionar com um circuito parametrizado. Correções #4235

  • Anteriormente, ao criar uma versão controlada de um portão padrão do qiskit, se um ctrl_state fosse especificado, um objeto genérico ControlledGate seria retornado, ao passo que, sem ele, um portão controlado padrão do qiskit seria retornado se estivesse definido. Esse PR permite que as portas controladas por qiskit padrão entendam ctrl_state.

    Além disso, esse PR corrige o que pode ser considerado um bug em que a configuração de ctrl_state de um portão já controlado assumiria o estado especificado aplicado à largura de controle total em vez de os qubits de controle serem adicionados. Por exemplo,:

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

    aplicaria ctrl_state a todos os três qubits de controle em vez de apenas os dois qubits de controle adicionados.

  • Corrigido um erro no random_clifford() que impedia a amostragem do grupo Clifford completo. Correções #4271

  • O método qiskit.circuit.Instruction method qiskit.circuit.Instruction.is_parameterized() já havia retornado True para qualquer instância Instruction que tivesse um qiskit.circuit.Parameter em qualquer elemento de sua matriz params , mesmo que essa Parameter tenha sido totalmente vinculada. Isso foi corrigido para que o site .is_parameterized retorne False quando a instrução estiver totalmente vinculada.

  • qiskit.circuit.ParameterExpression.subs() não havia detectado corretamente alguns casos em que a substituição de parâmetros resultaria em dois objetos Parameters distintos em uma expressão com o mesmo nome. Isso foi corrigido, portanto, um CircuitError será levantado nesses casos.

  • Melhorar o desempenho de qiskit.quantum_info.Statevector e qiskit.quantum_info.DensityMatrix para simulações de circuitos de baixo qubit, otimizando a classe __init__ métodos. Correções #4281

  • A função qiskit.compiler.transpile() agora trata corretamente quando o parâmetro basis_gates é definido como None. Isso permitirá qualquer porta no circuito transpilado de saída, inclusive as portas adicionadas pelo processo de transpilação. Observe que o uso desse parâmetro pode ter algumas consequências não intencionais durante a otimização. Algumas passagens do transpilador dependem de um conjunto basis_gates . Por exemplo, qiskit.transpiler.passes.Optimize1qGates otimiza apenas as cadeias de portas u1, u2 e u3 e, sem basis_gates , não consegue desenrolar portas que, de outra forma, poderiam ser otimizadas:

    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)
         └───┘└─────────────┘└───┘└─────────────────┘

    Correções #3017

Outras observações

Aer 0.5.1

Nenhuma mudança

Ignis 0.3.0

Nenhuma mudança

Aqua 0.7.0

Prelúdio

A versão do Qiskit Aqua 0.7.0 apresenta uma série de novas funcionalidades, além de uma integração aprimorada com qiskit.circuit.QuantumCircuit objetos. As principais contribuições são o módulo de otimização do Qiskit, uma refatoração completa dos Operadores, usando circuitos como entrada nativa para os algoritmos e a remoção da API JSON declarativa.

Módulo de otimização

O módulo qiskit.optimization` agora oferece funcionalidade para modelagem e solução de programas quadráticos. Ele fornece vários algoritmos quânticos e convencionais de curto prazo, como o MinimumEigenOptimizer (que abrange, por exemplo VQE ou QAOA) ou CplexOptimizer, bem como um conjunto de conversores para traduzir entre diferentes representações de problemas, como QuadraticProgramToQubo. Consulte o registro de alterações para obter uma lista dos recursos adicionados.

Fluxo do operador

A lógica do operador fornecida em qiskit.aqua.operators` foi completamente refatorada e agora é um conjunto completo de ferramentas para a construção de cálculos quânticos fisicamente intuitivos. Ele contém funções de estado, operadores e medições e depende internamente dos objetos Operator do Terra. O cálculo dos valores de expectativa e das evoluções foi bastante simplificado e objetos como o ExpectationFactory produzem o algoritmo de expectativa adequado e mais eficiente com base no tipo de entrada do Operador. Consulte o registro de alterações para obter uma visão geral da funcionalidade adicionada.

Circuitos nativos

Os algoritmos geralmente usam circuitos parametrizados como entrada, por exemplo, o VQE, o VQC ou o QSVM. Anteriormente, essas entradas tinham de ser do tipo VariationalForm ou FeatureMap , que estavam envolvendo o objeto do circuito. Agora, os circuitos têm suporte nativo nesses algoritmos, o que significa que qualquer QuantumCircuit construído individualmente pode ser passado para esses algoritmos. Em combinação com o lançamento da biblioteca de circuitos, que oferece uma ampla coleção de famílias de circuitos, agora é fácil construir circuitos elaborados como entrada de algoritmo.

API JSON declarativa

A capacidade de executar algoritmos usando dicionários como parâmetros, bem como usando a GUI das interfaces Aqua, foi removida.

IBM 0.7.0

Novos Recurso

  • Uma nova exceção, qiskit.providers.ibmq.IBMQBackendJobLimitError, agora é levantada se um trabalho não puder ser enviado porque o limite de trabalhos ativos foi atingido.
  • qiskit.providers.ibmq.job.IBMQJob e qiskit.providers.ibmq.managed.ManagedJobSet têm, cada um, dois novos métodos update_name e update_tags. Eles são usados para alterar o nome e as tags de um trabalho ou de um conjunto de trabalhos, respectivamente.
  • qiskit.providers.ibmq.IBMQFactory.save_account() e qiskit.providers.ibmq.IBMQFactory.enable_account() agora aceitam os parâmetros opcionais hub, group e project, que permitem especificar um provedor padrão para salvar em disco ou usar, respectivamente.

Notas da Atualização

  • Os métodos qiskit.providers.ibmq.job.IBMQJob creation_date e time_per_step agora retornam informações de data e hora como um objeto datetime na hora local em vez de UTC. Da mesma forma, os parâmetros start_datetime e end_datetime, de qiskit.providers.ibmq.IBMQBackendService.jobs() e qiskit.providers.ibmq.IBMQBackend.jobs() agora podem ser especificados em horário local.
  • O método qiskit.providers.ibmq.job.QueueInfo.format() agora usa um formatador personalizado de datetime para string, e a seta do pacote não é mais necessária e foi removida da lista de requisitos.

Notas de descontinuação

  • Os métodos from_dict() e to_dict() de qiskit.providers.ibmq.job.IBMQJob estão obsoletos e serão removidos na próxima versão.

Correções de bugs

  • Foi corrigido um problema em que o site nest_asyncio.apply() poderia gerar uma exceção se não houvesse um loop asyncio devido ao threading.
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.