Skip to main content
IBM Quantum Platform

GateDirection

class qiskit.transpiler.passes.GateDirection(*args, **kwargs)

GitHub

베이스: TransformationPass

하드웨어 결합 방향에 맞게 비대칭 게이트를 수정합니다.

이 패스는 다음 ID를 사용하여 cx, cz, ecr, swap, rzx, rxx, ryy 및 rzz 게이트의 교체를 지원합니다:

                     ┌───┐┌───┐┌───┐
q_0: ──■──      q_0: ┤ H ├┤ X ├┤ H ├
     ┌─┴─┐  =        ├───┤└─┬─┘├───┤
q_1: ┤ X ├      q_1: ┤ H ├──■──┤ H ├
     └───┘           └───┘     └───┘


                  global phase:/2
     ┌──────┐           ┌───┐ ┌────┐┌─────┐┌──────┐┌───┐
q_0:0     ├     q_0: ─┤ S ├─┤ √X ├┤ Sdg ├┤1     ├┤ H ├
     │  ECR │  =       ┌┴───┴┐├────┤└┬───┬┘│  Ecr │├───┤
q_1:1     ├     q_1: ┤ Sdg ├┤ √X ├─┤ S ├─┤0     ├┤ H ├
     └──────┘          └─────┘└────┘ └───┘ └──────┘└───┘
Note: This is done in terms of less-efficient S/SX/Sdg gates instead of the more natural
`RY(pi /2)` so we have a chance for basis translation to keep things in a discrete basis
during resynthesis, if that's what's being asked for.


     ┌──────┐          ┌───┐┌──────┐┌───┐
q_0:0     ├     q_0: ┤ H ├┤1     ├┤ H ├
     │  RZX │  =       ├───┤│  RZX │├───┤
q_1:1     ├     q_1: ┤ H ├┤0     ├┤ H ├
     └──────┘          └───┘└──────┘└───┘

cz, swap, rxx, ryy and rzz directions are fixed by reversing their qargs order.

이 패스는 큐비트 속성의 큐비트 위치가 DAGCircuit.qubits 속성의 큐비트 위치가 물리적 큐비트 인덱스라고 가정합니다. 예를 들어 dag.qubits[0] 가 큐비트 0인 경우 CouplingMap 또는 Target.

GateDirection 통과.

매개변수

  • coupling_map (CouplingMap) – 커플링 맵을 나타내는 방향성 그래프.
  • target (Target) – 이 패스에 사용할 백엔드 대상입니다. 이 옵션을 지정하면 커플링 맵 대신 사용됩니다

속성

is_analysis_pass

패스가 분석 패스인지 확인합니다.

패스가 AnalysisPass, 인 경우 패스가 DAG를 분석하고 해당 분석 결과를 속성 집합에 쓸 수 있음을 의미합니다. 이러한 종류의 패스에서는 DAG에 대한 수정이 허용되지 않습니다.

is_transformation_pass

패스가 변환 패스인지 확인합니다.

패스가 TransformationPass, 인 경우 패스가 DAG를 조작할 수는 있지만 속성 집합을 수정할 수는 없음을 의미합니다(단, 읽을 수는 있음).


메소드

execute

execute(passmanager_ir, state, callback=None)

GitHub

입력된 키스킷 IR에 대한 최적화 작업을 실행합니다.

매개변수

  • passmanager_ir (DAGCircuit) – 최적화할 Qiskit IR.
  • state (DAGCircuit) – 패스 관리자 자체에 의한 워크플로 실행과 관련된 상태.
  • callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – 최적화 작업이 실행될 때마다 호출되는 콜백 함수입니다.

리턴

최적화된 키스킷 IR 및 워크플로 상태.

리턴 유형

튜플 [ DAGCircuit, PassManagerState ]

name

name()

GitHub

패스 이름.

리턴 유형

str

run

run(dag)

GitHub

Dag에서 GateDirection 패스를 실행합니다.

지시된 커플링 맵과 일치하도록 cx 노드를 뒤집습니다. 입력 지연 시간을 수정합니다.

매개변수

dag (DAGCircuit) – DAG를 맵에 추가합니다.

리턴

커플링 맵의 재배열된 다그

리턴 유형

DAGCircuit

레이즈

TranspilerError – cx 노드를 뒤집는 것만으로는 회로를 매핑할 수 없는 경우.

update_status

update_status(state, run_state)

GitHub

워크플로 상태를 업데이트합니다.

매개변수

  • state (PassManagerState) – 관리자 상태를 전달하여 업데이트합니다.
  • run_state (RunState) – 현재 작업의 완료 상태입니다.

리턴

패스 관리자 상태가 업데이트되었습니다.

리턴 유형

PassManagerState

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