Skip to main content
IBM Quantum Platform

TEBDEvolver

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

GitHub

Bases: TEBD, Evolver

내부 MPO를 발전시키기 위한 TEBD 알고리즘입니다.

에서 자세히 설명한 것처럼 quimb_tebd에서 자세히 설명한 것처럼 기존 quimbquimb.tensor.TEBD 구현 시간의 확장은 기존의 행렬 제품 상태(MPS)가 아닌 내부 행렬 제품 연산자(MPO)를 발전시킵니다.

보다 구체적으로, 내부 객체는 MPOState.

경고

이 클래스의 API는 기본 클래스에서 추가 메서드를 상속하기 때문에 실제로는 여기에 표시된 것보다 훨씬 큽니다 quimb.tensor.TEBD 베이스 클래스에서 추가 메서드를 상속받기 때문입니다. 그러나 여기서는 해당 API를 복제하지 않습니다.

인스턴스를 초기화합니다 TEBDEvolver 인스턴스를 초기화합니다.

매개변수

  • evolution_state (MPOState | MatrixProductState) –

    시간 진화 상태에 대한 참조입니다. 이렇게 하면 기본 클래스의 p0 인수를 덮어씁니다 quimb.tensor.TEBD 클래스의 인수를 덮어씁니다.

    경고

    기본 동작과 달리 이 상태는 표준화되지 않습니다. 대신 있는 그대로 가져와 참조로 보관합니다(즉, 복사본이 생성되지 않음). 이렇게 하면 이 클래스의 두 인스턴스 간에 동일한 객체를 공유할 수 있습니다 DynamicMPF 알고리즘이 요구합니다.

  • args - 추가 위치 인수가 있는 경우 quimb.tensor.TEBD 생성자로 전달됩니다.

  • order (int) – 시간 진화 중에 사용할 기본 제공 스즈키-트로터 공식의 순서를 지정합니다. 이 값은 quimb.tensor.TEBD.step() 메서드에 전달됩니다.

  • kwargs - 모든 추가 키워드 인수는 quimb.tensor.TEBD 생성자로 전달됩니다.


속성

conjugate

이 타임 에볼버 인스턴스가 오른쪽에서 작동하는지 여부를 반환합니다.

evolved_time

현재 진화 시간을 반환합니다.


메소드

step

step()

GitHub

TEBD의 단일 시간 단계를 수행합니다.

이것은 본질적으로 quimb.tensor.TEBD.step() 를 호출하고 구성 시 제공된 order 속성의 값을 전달합니다.

리턴 유형

없음

sweep

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

GitHub

TEBD 알고리즘의 단일 스윕을 수행합니다 [1].

TEBD 알고리즘은 기본 텐서 네트워크의 짝수 결합과 홀수 결합을 번갈아 가며 업데이트합니다. 베이스 클래스의 구현에서 quimb.tensor.TEBD 베이스 클래스의 구현에서는 내부 상태를 왼쪽과 오른쪽 방향으로 번갈아 "스윕"하는 형태로 구현됩니다.

이 서브클래스에서 이 메서드의 동작을 덮어쓰기하여 전문화된 gate_split() 메서드를 호출하기 위해 이 메서드의 동작을 덮어씁니다.

매개변수

  • direction (Literal['left', 'right']) – 스윕의 방향을 지정합니다. 리터럴 문자열인 "left" 또는 "right" 중 하나이어야 합니다.
  • dt_frac (float) – 내부 시간 단계(dt)의 몇 분의 1을 시간 진화할지 설정합니다. 내장된 스즈키-트로터 공식이 분할을 지정하는 방식입니다.
  • dt (float | None) – 내부 시간 단계를 덮어쓰는 선택적 값입니다.
  • queue (bool) – True 로 설정하면 NotImplementedError.

레이즈

리턴 유형

없음

참조

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

이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.