Backends
qiskit_addon_mpf.backends
Backends opcionais para o algoritmo DynamicMPF algoritmo.
Disponibilidade
O fato de um determinado backend poder ser usado depende da disponibilidade da biblioteca de rede de tensores subjacente. Isso pode ser facilmente afirmado em tempo de execução usando os seguintes indicadores:
HAS_QUIMB
Indica se a dependência opcional quimb opcional está instalada.
HAS_TENPY
Indica se a dependência opcional tenpy opcional está instalada.
Backends
Dependendo da disponibilidade (veja acima), os seguintes backends estão disponíveis:
quimb_tebd | A quimb-com base no backend TEBD. |
quimb_layers | Um backend de evolução de tempo em camadas usando quimb. |
quimb_circuit | Um backend de evolução de tempo baseado em circuito usando quimb. |
tenpy_tebd | A tenpy-com base no backend TEBD. |
tenpy_layers | Um backend de evolução de tempo em camadas usando tenpy. |
Interface
A interface implementada por qualquer um desses backends opcionais é composta pelas seguintes classes:
Evolver
class Evolver
Bases: ABC
A interface para os algoritmos de evolução temporal usados no DynamicMPF.
Essa interface de evolução temporal é usada pelos aplicativos DynamicMPF.lhs e DynamicMPF.rhs e deve evoluir no tempo um objeto State sob seu capô. O mecanismo exato do algoritmo é descrito com mais detalhes em DynamicMPF, State, e setup_dynamic_lse().
conjugate
abstract property
Tipo: bool
Retorna se essa instância do time-evolver atua no lado direito.
evolved_time
abstract property
Tipo: float
Retorna o tempo de evolução atual.
step
abstract step()
Execute uma única etapa de tempo desse algoritmo de evolução no tempo.
Isso deve agir sobre o objeto State (para o qual nenhum nome é prescrito por essa interface). Se essa instância do algoritmo de evolução no tempo deve evoluir o State do lado esquerdo ou direito, depende do valor de conjugate.
Tipo de retorno
Nenhum
Estado
class State
Bases: ABC
A interface para o DynamicMPF.evolution_state.
Esse estado de evolução temporal é compartilhado entre as instâncias LHS e RHS Evolver da instância DynamicMPF instância. Na maioria dos casos em que um backend concreto que implementa essa interface é baseado em redes de tensores, esse estado será um operador de produto matricial (MPO). Isso se deve ao fato de que a maioria dos algoritmos de evolução temporal normalmente evoluiria um estado de produto de matriz (MPS), conforme mostrado na figura abaixo, em que os blocos de evolução temporal (U#) são aplicados sucessivamente a um MPS unidimensional (S#). Aqui, a rede de tensores cresce para a direita com o passar do tempo.
MPS Evolution
S0┄┄┲━━━━┱┄┄┄┄┄┄┄┄┲━━━━┱┄
│ ┃ U1 ┃ ┃ U5 ┃
S1┄┄┺━━━━┹┄┲━━━━┱┄┺━━━━┹┄
│ ┃ U3 ┃
S2┄┄┲━━━━┱┄┺━━━━┹┄┲━━━━┱┄ ...
│ ┃ U2 ┃ ┃ U6 ┃
S3┄┄┺━━━━┹┄┲━━━━┱┄┺━━━━┹┄
│ ┃ U4 ┃
S4┄┄┄┄┄┄┄┄┄┺━━━━┹┄┄┄┄┄┄┄┄No entanto, no nosso caso, queremos que dois mecanismos de evolução temporal compartilhem um único estado. Para conseguir isso, podemos fazer com que um deles desenvolva o estado a partir da direita (exatamente como antes, U#), mas fazer com que o segundo desenvolva o estado a partir da esquerda (V#). Isso exige que o estado também tenha ligações indo nessa direção, tornando-o um MPO bidimensional (M#) em vez do MPS unidimensional de antes.
MPO Evolution
┄┲━━━━┱┄┄┄┄┄┄┄┄┲━━━━┱┄┄M0┄┄┲━━━━┱┄┄┄┄┄┄┄┄┲━━━━┱┄
┃ V5 ┃ ┃ V1 ┃ │ ┃ U1 ┃ ┃ U5 ┃
┄┺━━━━┹┄┲━━━━┱┄┺━━━━┹┄┄M1┄┄┺━━━━┹┄┲━━━━┱┄┺━━━━┹┄
┃ V3 ┃ │ ┃ U3 ┃
... ┄┲━━━━┱┄┺━━━━┹┄┲━━━━┱┄┄M2┄┄┲━━━━┱┄┺━━━━┹┄┲━━━━┱┄ ...
┃ V6 ┃ ┃ V2 ┃ │ ┃ U2 ┃ ┃ U6 ┃
┄┺━━━━┹┄┲━━━━┱┄┺━━━━┹┄┄M3┄┄┺━━━━┹┄┲━━━━┱┄┺━━━━┹┄
┃ V4 ┃ │ ┃ U4 ┃
┄┄┄┄┄┄┄┄┺━━━━┹┄┄┄┄┄┄┄┄┄M4┄┄┄┄┄┄┄┄┄┺━━━━┹┄┄┄┄┄┄┄┄overlap
abstract overlap(initial_state)
Calcule a sobreposição desse estado com o estado inicial fornecido.
Uma implementação concreta desse método deve gerar um erro TypeError se o objeto initial_state fornecido não for compatível com o backend de implementação.
Parâmetros
initial_state (Any) – o estado inicial com o qual será calculada a sobreposição.
Aumentos
TypeError - se o estado inicial fornecido tiver um tipo incompatível.
Retorna
A sobreposição desse estado com o estado fornecido.
Tipo de retorno