Skip to main content
IBM Quantum Platform

PrepareSlaterDeterminant

class PrepareSlaterDeterminant(occupation, rotation_unitary)

베이스: FermionicGate

점유 상태와 궤도 회전을 바탕으로 슬레이터 결정식을 계산합니다.

이 게이트는 참조 InitializeModes 연산과 그 뒤에 오는 로 구성된 것으로 OrbitalRotation, 이 게이트가 작용하는 모드가 로 정의된 결정자에서 시작하여 만큼 occupation 회전된다는 것을 나타냅니다 rotation_unitary. 초기 할당 정보가 알려져 있으므로, 이 게이트를 트랜스파일링할 때 a만 OrbitalRotation 있을 경우 필요한 완전한 정사각형 분해 대신 직사각형 분해를 사용하여 게이트 수를 줄인 합성을 givens_decomposition_slater() 수행할 수 있다(참조 GivensDecompositionSlaterDeterminantSynthesis).

aijUjiaja^\dagger_i \mapsto \sum_j U_{ji} a^\dagger_jOrbitalRotation 관례에 따라, 점유 모드를 회전시키면 이들이 의 해당 열에 매핑되며 rotation_unitary, 이 열들은 준비된 슬레이터 행렬식의 점유 공간을 스팬한다.

시뮬레이션 의미론

시뮬레이션 환경에서 이 게이트는 상태 생성자가 아닌 ‘검증 후 회전(validate-then-rotate )’ 게이트입니다. 즉, 입력 상태 벡터가 (를 통해 InitializeModes) 정의된 occupation 부분공간 내에 포함되는지 검증한 다음, ( rotation_unitary 를 통해 OrbitalRotation) 회전 연산을 적용합니다. 따라서 외부에서 준비된(예: 를 통해 ffsim.slater_determinant()) 실제 기준 상태 벡터가 필요합니다. 참조 점유율을 설정하는 게이트를 출력하는 프로듀서의 동작은 시뮬레이션 경로가 아닌 합성 플러그인에서 수행됩니다.

회전을 적용(제거하는 것이 아니라)함으로써, 와 InitializeModes 를 이 단일 게이트로 OrbitalRotation 병합해도 시뮬레이션된 최종 상태가 변하지 않게 됩니다.

주의

이것은 초기 개발용 시제품입니다. 이 패키지의 출시 전 개발 단계에서는 사전 공지 없이 인터페이스가 변경될 수 있으니 주의하시기 바랍니다.

이 게이트의 인스턴스를 초기화하려면 아래에 나열된 인수를 사용하면 됩니다.

매개변수

  • occupation (Sequence[bool]) – 이 게이트가 적용되는 각 모드에 대한 기준 직종을 나타내는 부울 값의 시퀀스.
  • rotation_unitary (np.ndarray) – n×nn \times n 의 단위 행렬 UUaijUjiaja^\dagger_i \mapsto \sum_j U_{ji} a^\dagger_j 를 통해 궤도 회전을 정의하며, 여기서 nn 는 모드 수(len(occupation))입니다. 이 행렬은 정사각형이고 단위 행렬이어야 합니다. 이는 호출자의 책임이며, 검증되지 않습니다.

인상

ValueError – 만약 가 의 길이와 차원이 일치하는 정사각 행렬이 아니라면 rotation_unitary``occupation .


속성

occupation

회전이 적용되는 기준 직업(모드당 하나의 부울 값).

rotation_unitary

궤도 회전 계수를 나타내는 단위 행렬.

프로토콜 방법

_apply_unitary_placed_

_apply_unitary_placed_(vec, norb, nelec, copy, freg_indices)

참조 직종을 검증하고 회전을 적용하여 모드를 에 배치합니다 vec.

게이트의 정의(_build_definition())에 대한 대리 함수: 선행 함수는 가 정의하는 occupation 부분공간에 vec 국한됨을 InitializeModes 검증하고, 뒤따르는 함수는 이를 OrbitalRotation 회전시킨다. 전체적인 의미론(부분공간 제한 및 스핀 혼합 회전의 배제)에 대해서는 _apply_unitary_placed_ ‘그 게이트들’을 참조하십시오.

매개변수

  • vec (ndarray) – 검증 및 회전할 기준 상태 벡터.
  • norb (int) – 전역 상태 벡터의 공간 궤도 수.
  • nelec (int |tuple[int, int]) – 스핀이 없는 시스템의 경우 단일 정수이거나, 스핀 알파 및 스핀 베타 페르미온의 개수를 저장하는 정수 쌍입니다.
  • copy (bool) – 벡터에 연산을 적용하기 전에 복사할지 여부.
  • freg_indices (list[int]) – 이 게이트의 국소 모드가 매핑되는 절대(전역) 모드 지수.

리턴

변환된 벡터.

리턴 유형

ndarray

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