UnitarySynthesisPlugin
class qiskit.transpiler.passes.synthesis.plugin.UnitarySynthesisPlugin
베이스: ABC
추상 단일 합성 플러그인 클래스
이 추상 클래스는 단일 합성 플러그인을 위한 인터페이스를 정의합니다.
속성
max_qubits
단일 합성 플러그인이 지원하는 최대 큐비트 수를 반환합니다.
합성할 유니티의 크기가 이 값을 초과하면 default 플러그인이 사용됩니다. 상한값이 없는 경우 None 및 모든 단수(정의된 경우>= min_qubits )가 활성화되면 이 플러그인으로 전달됩니다.
min_qubits
단일 합성 플러그인이 지원하는 최소 큐비트 수를 반환합니다.
합성할 유니티의 크기가 이 값보다 작으면 default 플러그인이 사용됩니다. 하한값이 없는 경우 None 을 반환하고 모든 단수(정의된 경우<= max_qubits )가 활성화되면 이 플러그인으로 전달됩니다.
supported_bases
합성을 위해 지원되는 염기의 사전을 반환합니다
키는 문자열 기준이고 값은 기준이 작동하는 게이트 이름 목록인 사전을 반환할 것으로 예상됩니다. 합성 메서드가 여러 염기를 지원하지 않는 경우 None 을 반환해야 합니다. 예를 들어,
{
"XZX": ["rz", "rx"],
"XYX": ["rx", "ry"],
}이 메서드에 의해 딕셔너리가 반환되면 실행되는 kwargs에는 번역을 위해 설정된 대상 기저 게이트와 일치하는 기저 문자열(즉, 딕셔너리의 키) 목록이 포함된 매개변수 matched_basis 가 전달됩니다. 사전의 항목이 대상 기준 게이트 세트와 일치하는 항목이 없는 경우 matched_basis kwarg는 빈 목록으로 설정되며 플러그인은 플러그인의 기능과 일치하지 않는 대상 기준 게이트 세트를 처리하는 방법을 선택할 수 있습니다.
supports_basis_gates
플러그인이 촬영을 지원하는지 여부를 반환합니다 basis_gates
True 을 반환하면 플러그인의 run() 메서드에 대상 백엔드가 지원하는 게이트 이름 목록이 포함된 basis_gates kwarg가 전달됩니다. 예: ['sx', 'x', 'cx', 'id', 'rz'].
supports_coupling_map
플러그인이 촬영을 지원하는지 여부를 반환합니다 coupling_map
이렇게 하면 True 이 반환되면 플러그인의 run() 메서드는 하나의 kwarg coupling_map 를 받게 됩니다. coupling_map kwarg는 튜플로 설정되며, 첫 번째 요소는 대상 백엔드의 큐비트 연결을 나타내는 CouplingMap 객체이고, 두 번째 요소는 유니티가 있는 커플링 맵의 큐비트 인덱스를 나타내는 정수 목록입니다. 대상 백엔드에 커플링 맵이 설정되어 있지 않은 경우 coupling_map kwarg의 값은 (None, qubit_indices) 이 됩니다.
supports_gate_errors
플러그인이 촬영을 지원하는지 여부를 반환합니다 gate_errors
gate_errors 는 {gate_name: {(qubit_1, qubit_2): error}} 형식의 사전이 됩니다. 예를 들어,
{
'sx': {(0,): 0.0006149355812506126, (1,): 0.0006149355812506126},
'cx': {(0, 1): 0.012012477900732316, (1, 0): 5.191111111111111e-07}
}이 사전은 각 큐비트의 모든 게이트에 대해 게이트 오류를 보고하는 대상 백엔드에 따라 달라지므로 완전하지 않거나 비어 있을 수 있습니다. gate_errors 에 보고된 게이트 오류율은 대상 장치 Backend 객체에 의해 제공되며 정확한 의미는 백엔드에 따라 다를 수 있습니다.
supports_gate_errors_by_qubit
플러그인이 촬영을 지원하는지 여부를 반환합니다 gate_errors_by_qubit
이는 동일한 데이터에 대해 다른 보기를 사용한다는 점에서 supports_gate_errors/gate_errors 과 다릅니다. 이것은 게이트 이름으로 키가 지정되는 대신 큐비트로 키가 지정되며, 게이트를 나타내기 위해 Gate 인스턴스를 사용하여 게이트를 나타냅니다(게이트 이름 대신).
gate_errors_by_qubit 는 {(qubits,): [Gate, error]} 형식의 사전이 됩니다. 예를 들어,
{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}이 사전은 각 큐비트의 모든 게이트에 대해 게이트 오류를 보고하는 대상 백엔드에 따라 달라지므로 완전하지 않거나 비어 있을 수 있습니다. gate_errors 에 보고된 게이트 오류율은 대상 장치 Backend 객체에 의해 제공되며 정확한 의미는 백엔드에 따라 다를 수 있습니다.
기본값은 False입니다
supports_gate_lengths
플러그인이 촬영을 지원하는지 여부를 반환합니다 gate_lengths
gate_lengths 는 {gate_name: {(qubit_1, qubit_2): length}} 형식의 사전이 됩니다. 예를 들어,
{
'sx': {(0,): 0.0006149355812506126, (1,): 0.0006149355812506126},
'cx': {(0, 1): 0.012012477900732316, (1, 0): 5.191111111111111e-07}
}여기서 length 값은 초 단위입니다.
이 사전은 각 큐비트에 대한 모든 게이트의 게이트 길이를 보고하는 대상 백엔드에 따라 달라지므로 완전하지 않거나 비어 있을 수 있다는 점에 유의하세요.
supports_gate_lengths_by_qubit
플러그인이 촬영을 지원하는지 여부를 반환합니다 gate_lengths_by_qubit
이는 동일한 데이터에 대해 다른 보기를 사용한다는 점에서 supports_gate_lengths/gate_lengths 과 다릅니다. 게이트 이름으로 키가 지정되는 대신 큐비트로 키가 지정되며, 게이트를 나타내기 위해 Gate 인스턴스를 사용하여 게이트를 표현합니다(게이트 이름 대신)
gate_lengths_by_qubit 는 {(qubits,): [Gate, length]} 형식의 사전이 됩니다. 예를 들어,
{
(0,): [SXGate(): 0.0006149355812506126, RZGate(): 0.0],
(0, 1): [CXGate(): 0.012012477900732316]
}여기서 length 값은 초 단위입니다.
이 사전은 각 큐비트에 대한 모든 게이트의 게이트 길이를 보고하는 대상 백엔드에 따라 달라지므로 완전하지 않거나 비어 있을 수 있다는 점에 유의하세요.
기본값은 False입니다
supports_natural_direction
플러그인이 2쿼비트 게이트의 방향성을 고려하는 토글을 지원하는지 여부를 natural_direction 로 반환합니다.
이러한 값의 가능한 값과 의미는 UnitarySynthesis 문서를 참조하세요.
supports_pulse_optimize
플러그인이 합성 중 펄스를 최적화하는 토글을 지원하는지 여부를 pulse_optimize 로 반환합니다.
이러한 값의 가능한 값과 의미는 UnitarySynthesis 문서를 참조하세요.
supports_target
플러그인이 target 를 옵션으로 지원하는지 여부
target 는 합성 패스 출력의 대상 디바이스를 나타내는 Target 오브젝트가 되어 합성 패스의 출력 대상 디바이스를 나타냅니다.
기본적으로 이 값은 False 플러그인 인터페이스가 이전 버전의 Target 클래스보다 앞선다. 플러그인이 이 속성에 대해 True 을 반환하는 경우, 플러그인은 전달된 값 대신 Targetsupports_gate_lengths , supports_gate_errors, supports_coupling_map, supports_basis_gates 중 하나라도 설정된 경우 전달된 값 대신 을 사용합니다(모든 매개 변수에 중복 정보가 포함되어야 하는 것이 이상적이지만).
메소드
run
abstractmethod run(unitary, **options)
주어진 유니타리 행렬에 대한 합성 실행
매개변수
- unitary (numpy.ndarray) – 객체에 합성할 단일 행렬은
DAGCircuit객체 - 옵션 - 클래스의
support_*메서드 출력에 따라 전달되는 선택적 kwarg입니다. 이러한 메서드에 대한 설명서를 참조하세요UnitarySynthesisPlugin에서 키와 값에 대한 문서를 참조하세요.
리턴
유니티의 다그 회로 표현입니다. 또는 (dag, wires) 형식의 튜플을 반환할 수 있습니다. 여기서 dag 은 유니티의 회로 표현의 dag 회로 표현이고 wires 은 사용할 매핑 와이어입니다 qiskit.dagcircuit.DAGCircuit.substitute_node_with_dag(). 튜플을 반환하고 wires 이 None 인 경우 이는 마치 DAGCircuit 가 반환된 것처럼 동작합니다. 또한 None 으로 반환되면 대체되지 않습니다.
리턴 유형