Skip to main content
IBM Quantum Platform

TEBDEvolver

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

GitHub

Basi: TEBD, Evolver

Un algoritmo TEBD per l'evoluzione di un MPO interno.

Come discusso in dettaglio in quimb_tebdquesta estensione dell'esistente quimbquimb.tensor.TEBD di 'evolve nel tempo un operatore di prodotto matriciale interno (MPO) piuttosto che il convenzionale stato di prodotto matriciale (MPS).

Più concretamente, ci si aspetta che l'oggetto interno sia un oggetto MPOState.

Avvertenza

L'API di questa classe è in realtà molto più ampia di quella mostrata qui, perché eredita metodi aggiuntivi dalla classe base quimb.tensor.TEBD classe base. Tuttavia, non riproduciamo qui l'API.

Inizializza un'istanza TEBDEvolver istanza.

Parametri

  • evolution_state (MPOState | MatrixProductState) –

    un riferimento allo stato di evoluzione temporale. Questo sovrascrive l'argomento p0 della classe sottostante quimb.tensor.TEBD della classe.

    Avvertenza

    A differenza del comportamento predefinito, questo stato NON sarà canonicalizzato. Invece, viene preso così com'è e conservato per riferimento (cioè non viene creata alcuna copia). Questo assicura che lo stesso oggetto possa essere condiviso tra due istanze di questa classe, come richiesto dall'algoritmo DynamicMPF algoritmo.

  • args - qualsiasi altro argomento posizionale sarà inoltrato al costruttore quimb.tensor.TEBD costruttore.

  • order (int) – l'ordine della formula Suzuki-Trotter incorporata da utilizzare durante l'evoluzione temporale. Questo sarà il valore inviato al metodo quimb.tensor.TEBD.step() metodo.

  • kwargs - qualsiasi altro argomento di parola chiave sarà inoltrato al costruttore quimb.tensor.TEBD al costruttore.


Attributi

conjugate

Restituisce se questa istanza di time-evolver agisce sul lato destro.

evolved_time

Restituisce il tempo di evoluzione corrente.


Metodi

step

step()

GitHub

Eseguire un singolo passo temporale di TEBD.

Questo richiama essenzialmente quimb.tensor.TEBD.step() e inoltra il valore dell'attributo order fornito al momento della costruzione.

Tipo di restituzione

Nessuna

sweep

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

GitHub

Eseguire un singolo sweep dell'algoritmo TEBD [1].

L'algoritmo TEBD aggiorna alternativamente i legami pari e dispari della rete tensoriale sottostante. Nell'implementazione della classe quimb.tensor.TEBD è realizzata sotto forma di "sweep" alternati in direzione sinistra e destra sullo stato interno.

Stiamo sovrascrivendo il comportamento di questo metodo in questa sottoclasse, per chiamare il metodo specializzato gate_split() specializzato.

Parametri

  • direction (Literal['left', 'right']) – la direzione della spazzata. Deve essere una delle stringhe letterali "left" o "right".
  • dt_frac (float) – la frazione del passo temporale interno (dt) per cui evolvere nel tempo. Questo è il modo in cui qualsiasi formula Suzuki-Trotter incorporata specifica la sua suddivisione.
  • dt (float | None) – un valore opzionale per sovrascrivere il passo temporale interno.
  • queue (bool) – impostando questo valore a True si solleverà un problema di NotImplementedError.

Aumenti

Tipo di restituzione

Nessuna

Riferimenti

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

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.