Skip to main content
IBM Quantum Platform

Diagonalização quântica baseada em amostras (SQD)

Este pacote implementa a diagonalização quântica baseada em amostras (SQD) — uma técnica para determinar os autovalores e autovetores de operadores quânticos, como o hamiltoniano de um sistema quântico [1–6]. Ele pode ser aplicado a hamiltonianos expressos como combinações lineares de operadores de Pauli ou de operadores fermiónicos de segunda quantização. Os fluxos de trabalho baseados em SQD podem ser executados nos computadores quânticos atuais e já demonstraram ser capazes de lidar com problemas de tamanhos muito maiores do que era possível com métodos variacionais — e até mesmo além do alcance dos métodos clássicos exatos de diagonalização.

Os fluxos de trabalho baseados em SQD envolvem, em primeiro lugar, a preparação de um ou mais estados quânticos em um dispositivo quântico e a amostragem desses estados. Em seguida, recorre-se à computação distribuída clássica para processar essas amostras com ruído. Esse processamento ocorre de forma iterativa em duas etapas: primeiro, uma etapa de recuperação de configuração corrige amostras com ruído utilizando informações sobre o problema de entrada; em seguida, o hamiltoniano é projetado e diagonalizado no subespaço gerado por essas amostras. Essas etapas são repetidas de forma autoconsistente até a convergência. O resultado é uma aproximação do menor valor próprio (energia) e do estado próprio de menor energia de um determinado hamiltoniano. O SQD é robusto diante de amostras corrompidas por ruído quântico; na verdade, desde que seja possível recuperar um sinal útil do computador quântico, o resultado do SQD será insensível a sequências de bits ruidosas.

qiskit-addon-sqd pode ser utilizado para processar, de forma clássica, amostras extraídas de diversos circuitos quânticos na prática. Por exemplo:

  1. Uma abordagem de circuito variacional com parâmetros escolhidos de forma que a amostragem do circuito produza configurações eletrônicas nas quais a função de onda alvo (por exemplo, o estado fundamental) tenha suporte significativo. Isso é interessante para aplicações em química, nas quais os hamiltonianos podem conter milhões de termos de interação [1]. Para ver um exemplo dessa abordagem aplicada à química por meio de um circuito LUCJ, consulte o tutorial sobre como aproximar a energia do estado fundamental da molécula de N2.
  2. É preparado um conjunto de estados de base de Krylov em intervalos de tempo crescentes. Partindo do pressuposto de um bom estado inicial e da esparsidade do estado fundamental, está comprovado que essa abordagem converge de forma eficiente. Como é necessário preparar circuitos de evolução temporal trotterizados em um dispositivo quântico, essa abordagem é mais adequada para aplicações em modelos de rede [2], em vez de hamiltonianos complexos de muitos corpos, como os utilizados na química quântica. Para ver um exemplo dessa abordagem aplicada a hamiltonianos de rede fermiónica, consulte o tutorial sobre a aproximação da energia do estado fundamental de um modelo de Anderson simplificado com uma única impureza.
  3. Um conjunto de estados de base de Krylov implementado por meio de uma compilação aleatór qDRIFT e do operador de evolução temporal. Essa abordagem resulta em circuitos de menor profundidade em comparação com as decomposições da evolução temporal baseadas no método de Trotter e, portanto, pode ser utilizada para hamiltonianos da química quântica. Essa técnica foi aplicada à energia do estado fundamental dos hidrocarbonetos aromáticos policíclicos [6].

Introdução

Um guia simples para ajudá-lo a começar rapidamente a usar este pacote está disponível no guia de início rápido.


Exemplos de Caso de Uso

A técnica de diagonalização quântica baseada em amostras pode ser utilizada para implementar um conjunto diversificado de fluxos de trabalho. Alguns exemplos de onde isso já foi utilizado incluem:


Discussão técnica

Dimensões do sistema e requisitos computacionais

O custo computacional do SQD é determinado principalmente pelas chamadas ao solucionador de estados próprios. Em cada etapa da iteração de recuperação da configuração autoconsistente, são realizadas n_batches de chamadas ao solucionador de estados próprios. As diferentes chamadas são embaraçosamente paralelas. Neste tutorial, essas chamadas estão dentro de um loop for. É altamente recomendável executar essas chamadas em paralelo.

A qiskit_addon_sqd.fermion.solve_fermion() função é multithread e capaz de lidar com sistemas com cerca de 25 orbitais espaciais e cerca de 10 elétrons, com dimensões do subespaço de cerca de $10^7$, utilizando cerca de 10 a 30 núcleos.

Escolha das dimensões do subespaço

A escolha da dimensão do subespaço afeta a precisão e o tempo de execução do solucionador de estados próprios. Quanto maior for o subespaço, mais preciso será o cálculo, em troca de um aumento no tempo de execução e nos requisitos de memória. Não se sabe qual é o tamanho ideal do subespaço de um determinado sistema; portanto, é possível realizar um estudo de convergência com a dimensão do subespaço, conforme descrito neste guia.

A dimensão do subespaço é definida indiretamente

Neste pacote, o usuário controla o número de sequências de bits contidas em cada subespaço por meio do argumento samples_per_batch em qiskit_addon_sqd.subsampling.postselect_and_subsample(). O valor desse argumento estabelece um limite superior para a dimensão do subespaço no caso de aplicações em química quântica. Veja este exemplo para obter mais detalhes.

Solucionadores

As etapas de projeção e diagonalização são realizadas por um solucionador clássico. Apresentamos aqui dois solucionadores genéricos: um para sistemas fermiónicos e outro para sistemas de qubits. Outros solucionadores que possam ser mais eficientes para sistemas específicos podem ser integrados pelos usuários.


contribuindo

O código-fonte está disponível em GitHub.

O guia do desenvolvedor está disponível em CONTRIBUTING.md, na raiz do repositório deste projeto. Ao participar, espera-se que você respeite o código de conduta do Qiskit.

Utilizamos os tickets d GitHub para acompanhar solicitações e bugs.


Citando este pacote

Caso utilize este pacote em sua pesquisa, use o arquivo CITATION.bib no repositório deste projeto para citar a(s) referência(s) apropriada(s).


Licença

Apache 2.0 da licença


Política de descontinuação

Seguimos o sistema de versionamento semântico. Ocasionalmente, podemos realizar alterações que afetam a compatibilidade com versões anteriores, a fim de melhorar a experiência do usuário. Sempre que possível, manteremos as interfaces antigas e as marcaremos como obsoletas, desde que possam coexistir com as novas. Cada melhoria significativa, alteração que implique incompatibilidade ou descontinuação será documentada nas notas de lançamento.


Referências

  1. Javier Robledo-Moreno e outros, Química além das soluções exatas em um supercomputador centrado na mecânica quântica, arXiv:2405.05068[ quant-ph].

  2. Jeffery Yu e outros, Algoritmo centrado em computação quântica para diagonalização de Krylov baseada em amostras, arXiv:2501.09702 [quant-ph].

  3. Keita Kanno e outros, Interação de Configuração Selecionada Quântica: diagonalização clássica de hamiltonianos em subespaços selecionados por computadores quânticos, arXiv:2302.11320 [quant-ph].

  4. Kenji Sugisaki e outros, Interação de configurações selecionadas quânticamente com base em simulação hamiltoniana para cálculos de estrutura eletrônica em grande escala com um computador quântico, arXiv:2412.07218 [quant-ph].

  5. Mathias Mikkelsen, Yuya O. Nakagawa, “Interação de configuração selecionada quântica com estado evoluído no tempo ”, arXiv:2412.13839 [quant-ph].

  6. Samuele Piccinelli e outros, Química quântica com convergência comprovável por meio da diagonalização quântica de Krylov baseada em amostras aleatórias, arXiv:2508.02578 [quant-ph].

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.