Criar um template de função para simulação hamiltoniana
Este template encapsula um fluxo de trabalho para simular a evolução temporal de um estado inicial em relação a um Hamiltoniano baseado em spin definido pelo usuário e retorna um conjunto de valores esperados especificados usando o addon AQC.
Este template é estruturado como um padrão Qiskit com as seguintes etapas:
1. Coleta de entradas e mapeamento do problema
Esta seção recebe como entrada o Hamiltoniano a simular, um estado inicial na forma de um QuantumCircuit, um conjunto de observáveis para estimar os valores esperados e uma especificação de opções para o addon AQC. Esta etapa valida que todos os dados de entrada necessários estão presentes e que estão no formato correto.
Os argumentos de entrada são então usados para construir os circuitos quânticos e operadores relevantes para o fluxo de trabalho. Um circuito alvo é criado e uma representação de estado produto matricial desse circuito é encontrada usando o addon AQC. Em seguida, um circuito ansatz é gerado e otimizado usando métodos de rede tensorial, produzindo um circuito final que executa o restante da evolução temporal.
2. Preparar os circuitos gerados para execução
Os circuitos gerados pelo addon AQC são então transpilados para execução em um backend escolhido. Uma instância de EstimatorV2 é criada com um conjunto padrão de opções de mitigação de erros para gerenciar a execução do circuito.
3. Execução
Por fim, o circuito ansatz é transpilado e executado em um QPU, coletando estimativas para todos os valores esperados especificados, que são retornados em um formato serializável para acesso pelo usuário.