Pular para o conteúdo principal

Fórmulas multi-produto (MPF)

Versões dos pacotes

O código desta página foi desenvolvido com os seguintes requisitos. Recomendamos usar essas versões ou mais recentes.

As fórmulas multi-produto (MPF) podem ser usadas para simular com mais precisão a dinâmica de um sistema quântico, ao custo de um maior número de execuções de circuitos. Essa é uma técnica de pós-processamento que mitiga o erro dos valores esperados para estados evoluídos no tempo.

A computação clássica é usada para resolver um sistema de equações lineares que fornece coeficientes para uma combinação ponderada de várias execuções de circuitos. O uso dessa combinação ponderada pode reduzir o erro associado à simulação da evolução temporal, dada uma boa seleção de passos de Trotter. A ferramenta MPF receberá uma seleção de dados --- incluindo o número de passos de Trotter e a ordem da aproximação de Trotter --- para preparar e resolver (ou aproximar a solução de) o sistema de equações lineares associado, que você pode então usar para pós-processar medições de valores esperados de um estado evoluído no tempo.

Instalar o pacote MPF

Há duas maneiras de instalar o pacote MPF: via PyPI e compilando a partir do código-fonte. Recomenda-se instalar em um ambiente virtual para garantir a separação entre as dependências dos pacotes.

Instalar pelo PyPI

A maneira mais direta de instalar o pacote qiskit-addon-mpf é via PyPI.

pip install qiskit-addon-mpf

Compilar a partir do código-fonte

Usuários que desejam desenvolver no repositório ou que preferem instalá-lo manualmente podem fazer isso clonando primeiro o repositório:

git clone git@github.com:Qiskit/qiskit-addon-mpf.git

e instalar o pacote via pip. O repositório também contém diversas dependências opcionais que habilitam determinadas funcionalidades.

Ajuste as opções conforme suas necessidades.

pip install tox notebook -e '.[notebook-dependencies,dev]'

Embasamento teórico

As MPFs podem reduzir o erro de aproximação de Trotter associado à simulação da dinâmica de sistemas quânticos por meio de uma combinação ponderada de várias execuções de circuitos. Essa soma ponderada é definida como:

μ(t)=jxjρjkj(tkj)+some remaining Trotter error,\mu(t) = \sum_j x_j\rho_j^{k_j}\left(\frac{t}{k_j}\right) + \text{some remaining Trotter error},

onde xjx_j são os coeficientes de ponderação, ρjkj\rho_j^{k_j} é a matriz de densidade que corresponde ao estado puro obtido ao evoluir o estado inicial via uma fórmula de produto SkjS^{k_j} que aproxima o operador de evolução temporal usando kjk_j passos de Trotter, e jj indexa cada fórmula de produto usada na soma.

Vários circuitos com um número variável de passos de Trotter são usados para calcular o observável alvo

Em geral, porém, o objetivo de simular a dinâmica quântica é medir algum observável O(t)\mathcal{O}(t), que é uma função do tempo. Ao usar MPFs, múltiplos circuitos — cada um usando kjk_j passos de Trotter — são executados para obter várias medições do observável alvo Okj(t)\mathcal{O}_{k_j}(t). A medição do observável alvo é então obtida calculando:

O(t)=jxj(t)Okj(t).\langle \mathcal{O}(t) \rangle = \sum_j x_j(t) \langle \mathcal{O}_{k_j}(t) \rangle.

Em essência, você pode reduzir o erro total de Trotter aproximando o operador de evolução temporal usando várias fórmulas de produto com um número variável de passos de Trotter em vez de uma única fórmula de produto. Você constrói um circuito para cada termo da soma ponderada, que evolui o sistema de acordo com cada um dos kjk_j passos de Trotter. Cada circuito é então executado separadamente em um QPU para reconstruir os resultados em uma etapa de pós-processamento. A utilidade dessa técnica pode ser vista por duas perspectivas:

  1. Para um número fixo de passos de Trotter que você executa, é possível obter resultados com um erro de Trotter menor no total.
  2. Para um número de passos de Trotter que resulte em circuitos profundos, você pode usar MPF para encontrar vários circuitos de menor profundidade para executar, o que resulta em um erro de aproximação de Trotter semelhante.

Determinar os coeficientes MPF

A funcionalidade central do pacote qiskit-addon-mpf está na determinação dos coeficientes MPF xj(t)x_j(t) (que podem depender do tempo). O processo para obter cada xj(t)x_j(t) envolve resolver um sistema de equações lineares Ax=bAx=b onde xx é o vetor de coeficientes a ser determinado, AA é uma matriz que depende de cada kjk_j e da fórmula de produto usada SS (ou seja, a ordem de aproximação e o número de passos de Trotter), e bb é um vetor de restrições. Esse sistema de equações pode ser resolvido de forma exata ou com um modelo aproximado que minimiza a norma-1 dos coeficientes. Além disso, a escolha de cada kjk_j é um processo heurístico, mas pode ser limitada pelas seguintes restrições:

  1. O maior valor kjk_j é limitado pela maior profundidade de circuito que pode ser executada de forma confiável
  2. O menor kjk_j deve satisfazer dt=t/kj<1dt = t/k_j < 1 pois é onde o erro de Trotter tem melhor comportamento
  3. Nenhum dos coeficientes xjx_j deve ser próximo de 00, pois isso implicaria que eles não contribuem muito para a MPF
  4. Da mesma forma, o coeficiente associado ao maior valor de kjk_j não deve dominar, pois isso implica que você está usando uma única fórmula de produto
  5. Por fim, a norma dos coeficientes xjx_j obtidos deve ser pequena, pois isso indica uma MPF bem condicionada 1

Próximos passos

Recomendações

Referências

  1. A. Carrera Vazquez, D. J. Egger, D. Ochsner, and S. Wörner, "Well-conditioned multi-product formulas for hardware-friendly Hamiltonian simulation", Quantum 7, 1067 (2023).
  2. S. Zhuk, N. Robertson, and S. Bravyi, "Trotter error bounds and dynamic multi-product formulas for Hamiltonian simulation", Phys. Rev. Research 6, 033309 (2024).
  3. N. Robertson, et al. "Tensor Network enhanced Dynamic Multiproduct Formulas", arXiv:2407.17405v2 [quant-ph].