Skip to main content
IBM Quantum Platform

qiskit.circuit.library.excitation_preserving

qiskit.circuit.library.excitation_preserving(num_qubits, mode='iswap', entanglement='full', reps=3, skip_unentangled_qubits=False, skip_final_rotation_layer=False, parameter_prefix='θ', insert_barriers=False, name='ExcitationPreserving')

GitHub

휴리스틱 여기 보존 파동 함수 안사츠.

excitation_preserving 회로는 00|00\rangle, 01+10|01\rangle + |10\rangle11|11\rangle 상태의 비율을 유지합니다. 이를 위해 이 회로는 다음과 같은 형식의 2-큐비트 상호작용을 사용합니다

(10000cos(θ/2)isin(θ/2)00isin(θ/2)cos(θ/2)0000eiϕ)\providecommand{\rotationangle}{\theta/2} \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & \cos\left(\rotationangle\right) & -i\sin\left(\rotationangle\right) & 0 \\ 0 & -i\sin\left(\rotationangle\right) & \cos\left(\rotationangle\right) & 0 \\ 0 & 0 & 0 & e^{-i\phi} \end{pmatrix}

모드의 경우 "fsim" 또는 eiϕ=1e^{-i\phi} = 1 모드의 경우 "iswap".

UCC-안사츠와 같은 다른 파동 함수도 여기 보존 기능이 있다는 점에 유의하세요. 그러나 이러한 회로는 빠르게 복잡해질 수 있는 반면, 휴리스틱 동기에 의한 회로는 더 단순한 패턴을 따릅니다.

이 시험용 파동 함수는 2-큐비트 얽힘을 가진 ZZ 회전 층들로 구성되어 있습니다. 이 얽힘은 XX+YYXX+YY 회전을 사용하여 생성되며, 선택적으로 모드에 대해 위상 제어 "fsim"게이트를 적용하기도 합니다.

예:

선형 얽힘을 사용하면 이 회로는 다음과 같이 표현됩니다:

from qiskit.circuit.library import excitation_preserving

ansatz = excitation_preserving(3, reps=1, insert_barriers=True, entanglement="linear")
ansatz.draw("mpl")
이전 코드에서 출력한 회로도입니다.

인텐그레이션 구조는 entanglement 인수를 사용하여 명시적으로 지정할 수 있습니다. "fsim" 모드에는 각 블록에 추가로 매개변수화된 CPhaseGate 를 추가합니다:

ansatz = excitation_preserving(3, reps=1, mode="fsim", entanglement=[[0, 2]])
ansatz.draw("mpl")
이전 코드에서 출력한 회로도입니다.이전 코드에서 출력한 회로도입니다.

매개변수

  • num_qubits (int) – 큐비트 수입니다.
  • mode (str) – 인탱글러 모드를 선택하면 "iswap" 또는 "fsim"이 될 수 있습니다.
  • reps (int) – 회전 레이어와 얽힘 레이어의 구조가 얼마나 자주 반복되는지 지정합니다.
  • entanglement (str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]] | Callable[[int], str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]]]) – 입력 블록이 어떤 큐비트에 작용하는지를 지정하는 인덱스들. 자세한 내용은 를 n_local() 참조하십시오.
  • skip_final_rotation_layer (bool) – 회로에 최종 회전 레이어를 추가할지 여부입니다.
  • skip_unentangled_qubits (bool) – True 이면 회전 게이트는 얽혀 있는 큐비트에만 작동합니다. False 이면 회전 게이트가 모든 큐비트에 작용합니다.
  • parameter_prefix (str) – 무료 매개변수의 이름입니다.
  • insert_barriers (bool) – True를 선택하면 각 레이어 사이에 장벽이 삽입됩니다. False이면 장벽이 삽입되지 않습니다.
  • name (str) – 서킷의 이름입니다.

리턴

여기 보존 회로.

리턴 유형

QuantumCircuit

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