Como parte de um algoritmo variacional, eu gostaria de construir um circuito quântico (idealmente com pyQuil ) que simule um hamiltoniano da forma:
Quando se trata do último termo, o problema é que o pyQuil lança o seguinte erro:
TypeError: PauliTerm coefficient must be real
Comecei a mergulhar na literatura e parece um problema não trivial. Encontrei este artigo sobre Hamiltonianos quânticos universais, onde são discutidas codificações complexas e reais, bem como codificações locais. No entanto, ainda não está claro para mim como alguém praticamente implementaria algo assim. Alguém pode me dar alguns conselhos práticos sobre como resolver esse problema?
programming
simulation
hamiltonian-simulation
pyquil
Mark Fingerhuth
fonte
fonte
Respostas:
Um hamiltoniano convencional é hermitiano. Portanto, se contiver um termo não eremita, também deverá conter seu conjunto eremita como outro termo ou ter 0 peso. Nesse caso em particular, como é o próprio hermitiano, o coeficiente teria que ser 0. Portanto, se você está falando de hamiltonianos convencionais, provavelmente cometeu um erro no cálculo. Observe que, se o conjugado hermitiano do termo não estiver presente, você não pode simplesmente consertar as coisas adicionando-o; isso lhe dará um resultado completamente diferente.Z⊗X⊗Y
Por outro lado, você pode querer implementar um hamiltoniano não hermitiano . Essas coisas existem, geralmente para a descrição de processos de ruído, mas não são tão difundidas. Você precisa incluir explicitamente a terminologia "não-eremita"; caso contrário, todos pensarão que o que você está fazendo está errado porque não é eremita, e um hamiltoniano deve ser eremita. Não estou muito familiarizado com quais recursos os vários simuladores oferecem, mas ficaria surpreso se eles tiverem o não-Hermiticity incorporado.
fonte
A saída é H:
Como é uma matriz real, hermitiano significa simétrico, mas isso não é simétrico e, portanto, não é hermitiano. O triângulo superior direito não é igual ao triângulo inferior direito.
No entanto, o triângulo superior direito é o negativo do triângulo inferior direito, por isso é anti-hermitiano.
Assim, seguindo a sugestão de AHussain de adicionar a transposição do conjugado, resulta em 0. Basta executar este comando:
e você obterá uma matriz 8x8 de zeros.
Portanto, quando você cria seu hermitiano hamiltoniano adicionando a transposição conjugada, obtém 0 para este termo e, portanto, não precisa ter nenhum coeficiente imaginário .
fonte