Skip to main content
IBM Quantum Platform

TEBDEvolver

class TEBDEvolver(evolution_state, *args, order=2, **kwargs)

GitHub

Bases: TEBD, Evolver

Um algoritmo TEBD para a evolução de um MPO interno.

Conforme discutido em mais detalhes em quimb_tebdessa extensão da implementação existente do quimbquimb.tensor.TEBD da implementação existente do evolui no tempo um operador de produto matricial interno (MPO) em vez do estado de produto matricial convencional (MPS).

Em termos mais concretos, espera-se que o objeto interno seja um MPOState.

Aviso

A API dessa classe é, na verdade, muito maior do que a mostrada aqui, porque ela herda métodos adicionais da quimb.tensor.TEBD classe base. No entanto, não duplicamos essa API aqui.

Inicializar uma TEBDEvolver instância.

Parâmetros

  • evolution_state (MPOState | MatrixProductState) –

    uma referência ao estado da evolução temporal. Isso substitui o argumento p0 da classe quimb.tensor.TEBD classe subjacente.

    Aviso

    Em contraste com o comportamento padrão, esse estado NÃO será canonizado. Em vez disso, ele é considerado como está e é mantido por referência (ou seja, nenhuma cópia é criada). Isso garante que o mesmo objeto possa ser compartilhado entre duas instâncias dessa classe, conforme exigido pelo DynamicMPF algoritmo.

  • args - quaisquer outros argumentos posicionais serão encaminhados para o quimb.tensor.TEBD construtor.

  • order (int) – a ordem da fórmula Suzuki-Trotter integrada a ser usada durante a evolução do tempo. Esse será o valor encaminhado para o método quimb.tensor.TEBD.step() método.

  • kwargs - qualquer outro argumento de palavra-chave será encaminhado para o quimb.tensor.TEBD construtor.


Atributos

conjugate

Retorna se essa instância do time-evolver atua no lado direito.

evolved_time

Retorna o tempo de evolução atual.


Métodos

step

step()

GitHub

Execute uma única etapa de tempo do TEBD.

Isso basicamente chama quimb.tensor.TEBD.step() e encaminha o valor do atributo order que foi fornecido na construção.

Tipo de retorno

Nenhum

sweep

sweep(direction, dt_frac, dt=None, queue=False)

GitHub

Executar uma única varredura do algoritmo TEBD [1].

O algoritmo TEBD atualiza as ligações pares e ímpares da rede de tensores subjacente de forma alternada. Na implementação da classe base quimb.tensor.TEBD isso é realizado na forma de "varreduras" alternadas nas direções esquerda e direita sobre o estado interno.

Estamos sobrescrevendo o comportamento desse método nessa subclasse para chamar o método especializado gate_split() especializado.

Parâmetros

  • direction (Literal['left', 'right']) – a direção da varredura. Deve ser uma das cadeias de caracteres literais, "left" ou "right".
  • dt_frac (float) – a fração da etapa de tempo interna (dt) para a qual evoluir no tempo. É assim que qualquer fórmula Suzuki-Trotter integrada especifica sua divisão.
  • dt (float | None) – um valor opcional para substituir o intervalo de tempo interno.
  • queue (bool) – definir isso como True gerará uma mensagem NotImplementedError.

Aumentos

Tipo de retorno

Nenhum

Referências

[1]: https://en.wikipedia.org/wiki/Time-evolving _block_decimation

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