Skip to main content
IBM Quantum Platform

Notas de versão do Qiskit 0.36


0.36.2

Terra 0.20.2

Prelúdio

O Qiskit Terra 0.20.2 é uma versão de correção de bugs, que aborda alguns problemas menores identificados desde a última versão do patch.

Correções de bugs

  • Foi corrigido um problema com classes de back-end falsas baseadas em BackendV2-com base em classes de back-end falsas do módulo qiskit.providers.fake_provider , como FakeMontrealV2, em que os valores de dtm e dt e o atributo associado Target.dt não eram convertidos corretamente em segundos. Isso causaria problemas ao usar esses back-ends falsos com agendamento. Consulte #8018.

  • marginal_counts() agora será bem-sucedido quando solicitado a marginalizar a memória com um parâmetro indices contendo elementos diferentes de zero. Anteriormente, os disparos cuja representação do resultado hexadecimal era suficientemente pequena podiam gerar um ValueError. Consulte #8044.

  • O exportador do OpenQASM 3 (qiskit.qasm3) agora produzirá as declarações input ou output antes das declarações de gate. Isso é mais consistente com a gramática ANTLR de referência atual da equipe do OpenQASM 3. Consulte #7964.

  • Foi corrigido um erro na passagem do RZXCalibrationBuilder em que a amplitude do pulso de ressonância cruzada dimensionada podia parecer parametrizada mesmo após a atribuição. Isso pode fazer com que as ferramentas de visualização de pulso usem o formato parametrizado em vez do formato numérico esperado. Consulte #8031.

  • Foi corrigido um problema com a função transpile() quando executada com um backend baseado em BackendV2-e definindo o argumento da palavra-chave scheduling_method . Anteriormente, a função não processava corretamente as durações padrão das instruções suportadas pelo backend, o que levava a um erro.

  • Corrigido um bug na passagem do RZXCalibrationBuilder que fazia com que os pulsos às vezes fossem construídos com durações incorretas. Consulte #7994.

  • A passagem SabreSwap transpiler pass, usado em transpile() quando routing_method="sabre" estiver definido, não descartará mais esporadicamente as portas condicionadas classicamente e seus sucessores dos circuitos durante a fase de roteamento da transpilação. Consulte #8040.

  • Statevector agora permitirá a iteração direta por meio de seus valores (como for coefficient in statevector) e informará corretamente seu comprimento em len. Anteriormente, ele tentava acessar dados fora dos limites e gerava um erro QiskitError. Consulte #8039.

Aer 0.10.4

Nenhuma mudança

Ignis 0.7.1

Prelúdio

Esta é uma versão de correção de bugs que corrige principalmente um problema de empacotamento que estava fazendo com que o diretório docs/ , que contém os arquivos de origem usados para criar a documentação do qiskit-ignis, fosse incluído no pacote Python.

IBM 0.19.1

Nenhuma mudança


0.36.1

Terra 0.20.1

Prelúdio

O Qiskit Terra 0.20.1 é uma versão de correção de bugs que resolve problemas identificados na versão 0.20.0.

Problemas Conhecidos

  • Desserialização do QPY com a função qpy.load() de um objeto UCPauliRotGate diretamente instanciado em um circuito falhará porque o argumento do eixo de rotação para a classe não está armazenado em um local padrão. Para contornar esse problema, você pode usar as subclasses: UCRXGate, UCRYGate, ou UCRZGate (com base no fato de você estar usando um eixo de rotação de "X", "Y" ou "Z" respectivamente) que incorpora o eixo de rotação no construtor da classe e funcionará corretamente no QPY.

  • Desde sua introdução original no Qiskit Terra 0.20, XXPlusYYGate tem usado uma convenção de ângulo negativo em comparação com todas as outras portas de rotação. No Qiskit Terra 0.21, isso será corrigido para ficar consistente com os outros portões de rotação. Isso não afeta nenhum outro portão de rotação, nem XXMinusYYGate.

Correções de bugs

  • Fixo Clifford, Pauli e CNOTDihedral inicialização do operador de circuitos compatíveis que contêm Delay instruções. Essas instruções são tratadas como identidades ao serem convertidas em operadores.

  • Foi corrigido um problema em que a função eval_observables() gerava um erro se o argumento quantum_state fosse do tipo StateFn. eval_observables agora suporta corretamente todos os tipos de entrada indicados por suas dicas de tipo.

  • Foi corrigido um problema com a função de visualização dag_drawer() e método DAGCircuit.draw() onde anteriormente a gaveta falhava ao tentar gerar uma visualização para um objeto DAGCircuit que continha um objeto Qubit ou Clbit que não fazia parte de um QuantumRegister ou ClassicalRegister. Corrigido #7915.

  • Corrigida a validação de parâmetros para a classe Drag. Anteriormente, ele não era sensível a grandes valores beta com sinais negativos, o que pode ter resultado em amostras de forma de onda com um valor máximo que excede o limite de amplitude de 1.0.

  • A classe QuantumInstance usada por muitos algoritmos (como VQE) estava codificando o valor de um sleep enquanto fazia um loop aguardando a atualização do status do trabalho. Agora, ele respeita o valor de suspensão configurado, conforme definido pelo atributo wait no inicializador do QuantumInstance.

  • Foi corrigido um problema com a função schedule em que os chamadores que especificavam um list de objetos QuantumCircuit com uma única entrada recebiam incorretamente um único objeto Schedule em vez de um list.

  • Foi corrigido um problema com a função de visualização plot_error_map que a impedia de funcionar quando executada com um backend que tinha erro de leitura definido no BackendProperties ou quando executada com um BackendV2 backend. Corrigido #7879.

  • Foi corrigido um bug que poderia resultar em tempo de execução exponencial e não término quando uma instância Pauli é fornecida ao método init_observables().

  • Fixo SabreSwape, por extensão transpile() com optimization_level=3, ocasionalmente reordenando as medições de forma inválida. Anteriormente, se duas medições escrevessem para o mesmo bit clássico, SabreSwap poderia (dependendo do mapa de acoplamento) reordená-las para produzir um circuito não equivalente. Esse comportamento foi estocástico, portanto, pode não ter aparecido de forma confiável. Corrigido #7950

  • A SabreSwap e, por extensão, a passagem do transpilador SabreLayout e transpile() em optimization_level=3, agora tem um mecanismo de escape para garantir que ele nunca fique preso em um loop infinito. Determinadas entradas anteriormente poderiam, com muita má sorte, ficar presas em um mínimo local estável do espaço de busca e a passagem nunca mais avançaria. Agora, ele forçará uma série de trocas que permitirão que o roteamento continue se detectar que não houve progresso recentemente. Corrigido #7707.

  • Foi corrigido um problema com a desserialização do QPY por meio da função qpy.load() da função UCRXGate, UCRYGate, e UCRZGate classes. Anteriormente, um arquivo QPY que continha qualquer uma dessas portas apresentava erro ao tentar carregar o arquivo. Corrigido #7847.

Aer 0.10.4

Nenhuma mudança

Ignis 0.7.0

Nenhuma mudança

IBM 0.19.1

0.19.1

Correções de bugs

  • PR #1129 atualiza o método least_busy() para que ele não seja mais compatível com o BaseBackend como um tipo válido de entrada ou saída, uma vez que ele foi descontinuado há muito tempo no qiskit-terra e foi removido recentemente.

0.36.0

Terra 0.20.0

Nenhuma mudança

Aer 0.10.4

Notas da Atualização

  • O Qiskit Aer não é mais compilado com otimizações inseguras de ponto flutuante. Embora a maioria dos efeitos devesse ter sido localizada no Qiskit Aer, alguns aspectos do manuseio subnormal podem ter vazado anteriormente para o código do usuário, pois a biblioteca definiu incorretamente o modo "flush to zero". Isso não acontecerá mais.

Correções de bugs

  • Corrigir o transpilador de bloqueio de cache para reconhecer que o superop está bloqueado no cache. Esta é a correção do problema 1479 <https://github.com/Qiskit/qiskit-aer/issues/1479>. Agora, a density_matrix com modelos de ruído pode ser paralelizada. Um novo teste, test_noise.TestNoise.test_kraus_gate_noise_on_QFT_cache_blocking, foi adicionado para verificar esse problema. Essa correção também inclui a correção do problema 1483 <https://github.com/Qiskit/qiskit-aer/issues/1483> descoberto com a inclusão de um novo caso de teste. Isso corrige a medida em blocos para o vetor de estado.

  • Corrige um bug em NoiseModel.from_backend() que gerava um erro quando T2 valor maior que 2 * T1 era fornecido pelo backend. Após essa correção, o valor de T2 será truncado para até 2 * T1 e emitirá um aviso ao usuário se for truncado. O bug foi introduzido no número 1391 e, antes disso, o site NoiseModel.from_backend() truncava o valor T2 até 2 * T1 silenciosamente.

    Consulte a edição 1464 para obter detalhes.

  • device=Thrust era muito lento para um pequeno número de qubits porque o OpenMP threading era sempre aplicado. Essa correção se aplica a OpenMP threads da mesma forma que device=CPU usando statevector_parallel_threshold.

  • O Qiskit Aer não definirá mais o modo de ponto flutuante como "flush to zero" quando carregado. Os usuários downstream podem ter visto anteriormente avisos do Numpy, como:

    O valor da menor subnormal para o tipo <class ‘numpy.float64’> é zero.

    Agora, eles não serão mais emitidos, e o tratamento de ponto flutuante estará correto.

  • Foi corrigido um possível problema com a execução de simulações em circuitos que têm o atributo QuantumCircuit.metadata definido. O atributo metadata pode ser qualquer dicionário python e, anteriormente, o qiskit-aer tentava serializar em JSON o conteúdo do atributo para processá-lo com o restante da entrada do circuito, mesmo que o conteúdo não fosse serializável em JSON. Isso não ocorre mais, pois o atributo QuantumCircuit.metadata não é usado para executar a simulação, portanto, agora o conteúdo não é serializado e, em vez disso, é anexado diretamente ao objeto qiskit.result.Result sem tentar serializar o conteúdo em JSON. Corrigido #1435

Ignis 0.7.0

Nenhuma mudança

IBM 0.19.0

Novos Recurso

  • O pacote qiskit-ibmq-provider agora é compatível com os recursos do IBM Quantum LiveData. Esses recursos permitem que os usuários observem o comportamento em tempo real dos back-ends do IBM Quantum durante a execução de trabalhos. Especificamente, o provedor agora inclui uma nova guia no widget relacionado ao Jupyter do backend e oferece suporte à execução de trabalhos (por meio do método qiskit.providers.ibmq.IBMQBackend.run() ) com o parâmetro live_data_enabled=True nos backends IBM Quantum permitidos.
  • Agora você pode especificar um nível de registro diferente na palavra-chave options ao enviar um trabalho Qiskit Runtime com o método qiskit.providers.ibmq.runtime.IBMRuntimeService.run() .

Notas da Atualização

  • Python 3.6 o suporte foi abandonado, pois chegou ao fim da vida útil em dezembro de 2021.
  • qiskit.providers.ibmq.random em relação ao serviço de números aleatórios, o serviço de números aleatórios que era usado para acessar o extrator de aleatoriedade do CQC não é mais suportado e foi removido.

Notas de descontinuação

  • A palavra-chave image no método qiskit.providers.ibmq.runtime.IBMRuntimeService.run() está obsoleta. Em vez disso, você deve especificar a imagem a ser usada na palavra-chave options .

Correções de bugs

  • Corrige o problema #190. Agora, os sites qiskit.providers.ibmq.runtime.RuntimeEncoder e qiskit.providers.ibmq.runtime.RuntimeDecoder foram atualizados para lidar com instâncias da classe Instruction.
  • Corrige o problema nº 74, em que não era possível serializar ndarrays numpy com tipos de objeto. qiskit.providers.ibmq.runtime.RuntimeEncoder e qiskit.providers.ibmq.runtime.RuntimeDecoder foram atualizados para lidar com esses ndarrays.
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.