O insight que sugere que matrizes esparsas são úteis segue as linhas de: para qualquer , podemos decompô-la em termos de um conjunto de cujos componentes individuais todos comutam (tornando a diagonalização direta),
Se a matriz for escassa, você não precisará de muitos distintos . Então você pode simular a evolução hamiltoniana
onde . Por exemplo, no seu caso, você pode ter
HHEu
H= ∑i = 1mHEu.
HEue- i Ht= ∏j = 1Ne- i Hmδte- i Hm - 1δt... e- i H1 1δt,
t = NδtH1=14X⊗(18I−6Z⊗Z−4Z⊗I)H2=14(X⊗(11I+5Z)⊗X+Y⊗(11I+5Z)⊗Y)H3=14(11X⊗X−Y⊗Y)⊗(I−Z)
(os 3 termos correspondente ao fato de ser um Hamiltoniano 3-esparso). Acredito que exista uma estratégia aqui: você passa por todos os elementos da matriz diferente de zero do seu Hamiltoniano e os agrupa para que, se eu escrever as coordenadas deles como (e sempre incluir o complexo par conjugado), continuo adicionando outros elementos do meu conjunto não forneceram nem nem igual a ou .. Isso significaria para um Hamiltoniano separado, você tem
(i,j)(k,l)klijmm diferente .
Hi
O problema é que isso não necessariamente funciona diretamente na prática. Por um lado, ainda existem exponencialmente muitos elementos da matriz pelos quais você precisa passar, mas esse sempre será o caso da maneira como você o configura.
A maneira como as pessoas contornam isso é montando um oráculo. Uma possível a Oracle é essencialmente uma função , que retorna a posição e o valor do diferente de zero na entrada fileira. Isso pode ser incorporado em um algoritmo quântico completo. Existem alguns artigos sobre esse tópico (nenhum dos quais eu ainda entendi completamente). Por exemplo, aqui e aqui . Deixe-me tentar fazer uma descrição grosseira da maneira como eles funcionam.f(j,l)lthjth
O primeiro passo é decompor o hamiltoniano como um conjunto de , multiplicado por fatores de escala positivos :
Para simplificar, vamos assumir . Pode-se supor que você recebeu essa decomposição. Em seguida, define-se uma operação (construída com o controle e o controle ) que implementa . Se inserirmos um estado específico (até a normalização) no qubit de controle, aplique , em seguida, meça o qubit de controle, selecionando-o posteriormente no estadoαi
H=∑iαiUi
H=U1+αU2U1U2V=|0⟩⟨0|⊗U1+|1⟩⟨1|⊗U2|0⟩+α−−√|1⟩VL1+αL2(1-α)2/(1+α)2|0⟩+α−−√|1⟩ , se a pós-seleção for bem-sucedida, implementamos , o que ocorre com uma probabilidade de pelo menos . Você pode fazer exatamente o mesmo com vários termos e, de fato, com exponenciais de Hamiltonianos (pense na expansão em série), embora na prática algumas expansões em série melhores sejam usadas com base nas funções de Bessel.
U1+αU2(1−α)2/(1+α)2