Skip to main content
IBM Quantum Platform

TEBDEvolver

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

GitHub

Bases: TEBD, Evolver

Un algoritmo TEBD para evolucionar un MPO interno.

Como se explica con más detalle en quimb_tebdesta ampliación de quimbquimb.tensor.TEBD desarrolla un operador de producto matricial interno (MPO) en lugar del estado de producto matricial convencional (MPS).

Más concretamente, se espera que el objeto interno sea un MPOState.

Aviso

La API de esta clase es en realidad mucho mayor de lo que se muestra aquí, porque hereda métodos adicionales de la clase quimb.tensor.TEBD clase base. Sin embargo, aquí no duplicamos esa API.

Inicializar una TEBDEvolver instancia.

Parámetros

  • evolution_state (MPOState | MatrixProductState) –

    una referencia al estado de evolución temporal. Esto sobrescribe el argumento p0 de la clase subyacente quimb.tensor.TEBD subyacente.

    Aviso

    A diferencia del comportamiento por defecto, este estado NO será canonicalizado. En su lugar, se toma tal cual y se guarda por referencia (es decir, no se crea ninguna copia). Esto asegura que el mismo objeto puede ser compartido entre dos instancias de esta clase, como lo requiere el DynamicMPF algoritmo.

  • args - cualquier otro argumento posicional se enviará al quimb.tensor.TEBD constructor.

  • order (int) – el orden de la fórmula Suzuki-Trotter incorporada que se utilizará durante la evolución temporal. Este será el valor enviado al método quimb.tensor.TEBD.step() método.

  • kwargs - cualquier otro argumento de palabra clave se enviará al constructor quimb.tensor.TEBD constructor.


Atributos

conjugate

Devuelve si esta instancia de evolvente temporal actúa sobre el lado derecho.

evolved_time

Devuelve el tiempo de evolución actual.


Métodos

step

step()

GitHub

Realizar un único paso temporal de TEBD.

Esto esencialmente llama a quimb.tensor.TEBD.step() y reenvía el valor del atributo order que se proporcionó en la construcción.

Tipo de retorno

Ninguna

sweep

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

GitHub

Realiza un único barrido del algoritmo TEBD [1].

El algoritmo TEBD actualiza los enlaces pares e impares de la red tensorial subyacente de forma alterna. En la implementación de la clase quimb.tensor.TEBD clase base, esto se realiza en forma de "barridos" alternos en dirección izquierda y derecha sobre el estado interno.

Estamos sobrescribiendo el comportamiento de este método en esta subclase, para llamar al método especializado gate_split() especializado.

Parámetros

  • direction (Literal['left', 'right']) – la dirección del barrido. Debe ser una de las cadenas literales "left" o "right".
  • dt_frac (float) – para qué fracción del paso de tiempo interno (dt) evolucionar en el tiempo. Así es como cualquier fórmula Suzuki-Trotter incorporada especifica su división.
  • dt (float | None) – un valor opcional para sobrescribir el paso de tiempo interno.
  • queue (bool) – si se establece en True , aparecerá un mensaje NotImplementedError.

Eleva

Tipo de retorno

Ninguna

Referencias

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

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.