Skip to main content
IBM Quantum Platform

SolovayKitaevDecomposition

class qiskit.synthesis.SolovayKitaevDecomposition(basic_approximations=None, *, basis_gates=None, depth=12, check_input=False)

GitHub

베이스: object

솔로베이 키타에프 이산 분해 알고리즘.

이 클래스는 트랜스파일러 패스에 의해 재귀적으로 호출되기 때문에 분리되어 있습니다. 참조 SolovayKitaev 를 참조하세요.

참고

파일이 .npy 전달되면 basic_approximations , 내부적으로 피클(pickle)을 사용하여 데이터를 로드합니다. 이는 잠재적인 보안 취약점이며 신뢰할 수 있는 파일만 로드해야 합니다.

매개변수

  • basic_approximations (str |dict[str, np.ndarray] | list[GateSequence] | None) –

    이산 게이트를 이용한 기본 SO(3) 근사법의 명세. 이 알고리즘의 각 반복 단계에서, 잔여 오차는 이 집합 내에서 가장 가까운 게이트 시퀀스로 근사화됩니다. a가 지정된 str 경우, 이는 근사값을 불러올 파일 이름을 나타냅니다. 만약 a라면 dict, 여기에는 쌍이 {gates: effective_SO3_matrix} 포함된다. 예를 들어, {"h t": np.array([[0, 0.7071, -0.7071], [0, -0.7071, -0.7071], [-1, 0, 0]]}. 목록인 경우, 이 목록은 딕셔너리와 동일한 정보를 포함하지만, 이미 SO(3) 행렬과 게이트를 포함하는 객체로 GateSequence 변환된 상태입니다.

    이 매개변수 또는 basis_gatesdepth 을 지정할 수 있습니다.

  • basis_gates (list[str |Gate] | None) – 불연속형(즉, 파라미터화되지 않은) 표준 게이트 목록입니다. 기본값은 ["h", "t", "tdg"] 입니다.

  • depth (int) – 기저 세트에서 고려할 기저 게이트 조합의 수입니다. 이는 알고리즘이 얼마나 빨리 수렴하는지를 결정하며, 충분히 높게 선택해야 합니다.

  • check_input (bool) – True, 행렬이 예상되는 형식인지 확인하는 중간 단계를 수행합니다.


속성

basis_gates

기본 근사치의 기본 게이트 집합입니다.

None, 기본값은 ["h", "t", "tdg"] 입니다.

check_input

내부 데이터에 대한 런타임 검사를 수행할지 여부입니다.

depth

기본 근사치의 최대 게이트 깊이입니다.


메소드

find_basic_approximation

find_basic_approximation(sequence)

GitHub

self._basic_approximations 에서 sequence 에 근사한 GateSequence 을 찾습니다.

2.3 버전부터 사용 중단됨

해당 메서드는 Qiskit qiskit.synthesis.discrete_basis.solovay_kitaev.SolovayKitaevDecomposition.find_basic_approximation()2.3 부터 사용 중단되었습니다. 출시일로부터 3개월이 지나지 않으면 제거되지 않습니다. 대신 query_basic_approximation을 사용하십시오. 이 함수는 게이트(Gate) 또는 행렬을 입력으로 받아 근사 게이트( QuantumCircuit ) 객체를 반환합니다.

매개변수

sequence (GateSequence) – GateSequence 에 대한 근사치를 찾습니다.

리턴

GateSequence 와 비슷한 sequence.

리턴 유형

GateSequence

load_basic_approximations

static load_basic_approximations(data)

GitHub

기본 근사치를 로드합니다.

참고

문자열로 전달된 data 경우, 이 메서드는 내부적으로 파일을 로드하기 위해 pickle을 사용합니다. 이는 잠재적인 보안 취약점이며 신뢰할 수 있는 파일만 로드해야 합니다.

매개변수

data (list |str |dict) – 문자열인 경우 데이터를 로드할 파일의 경로를 지정합니다. 사전의 경우 {gates: matrix} 또는 {gates: (matrix, global_phase)} 으로 직접 분해를 지정합니다. 여기서 gates 는 SO(3) 매트릭스 matrix 를 생성하는 게이트의 이름입니다. {"h t": np.array([[0, 0.7071, -0.7071], [0, -0.7071, -0.7071], [-1, 0, 0]]}global_phase 는 양자 게이트의 U(2) 행렬과 저장된 SO(3) 행렬 사이의 전역 위상차를 설명하기 위해 주어질 수 있습니다. 지정하지 않으면 global_phase 이 0으로 간주됩니다.

리턴

유형으로 기본 근사치 목록 GateSequence.

레이즈

ValueError - 게이트 조합과 관련 행렬의 수가 일치하지 않는 경우.

리턴 유형

목록 게이트[ 시퀀스]

query_basic_approximation

query_basic_approximation(gate)

GitHub

행렬의 기본 근사값을 쿼리합니다.

매개변수

gate (ndarray |Gate)

리턴 유형

QuantumCircuit

run

run(gate_matrix, recursion_degree, return_dag=False, check_input=True)

GitHub

알고리즘을 실행합니다.

매개변수

  • gate_matrix (np.ndarray | Gate) – 대략적인 단일 큐비트 게이트입니다. 가 될 수 있습니다 Gate일 수 있으며, 여기서 Gate.to_matrix() 는 행렬을 반환하거나 게이트를 나타내는 2×22\times 2 단일 행렬을 반환합니다.
  • recursion_degree (int) – 재귀도는 논문에서 nn 이라고 합니다.
  • QuantumCircuitDAGCircuitreturn_dag (bool) – a를 반환하고, 그렇지 않으면 a를 반환한다 True .
  • check_input (bool) – True 입력 행렬이 분해에 유효한지 확인합니다. 같은 이름의 클래스 속성을 재정의하지만 이 함수 호출에 대해서만 재정의합니다.

리턴

지정된 이산 기준으로 gate_matrix 에 근사한 1쿼비트 회로입니다.

리턴 유형

QuantumCircuit | DAGCircuit

save_basic_approximations

save_basic_approximations(filename)

GitHub

기본 근사값을 파일에 저장합니다.

그런 다음 클래스 이니셜라이저(기본값)를 통해 다시 로드하거나 load_basic_approximations():

filename = "approximations.bin"
sk.save_basic_approximations(filename)

new_sk = SolovayKitaevDecomposition(filename)

매개변수

filename (str) – 근사치를 저장할 파일 이름입니다.

레이즈

ValueError - 파일 이름의 확장자가.npy인 경우. 형식이.npy가 아니므로 이 형식으로 저장하면 파일을 다시 로드할 때 오류가 발생할 수 있습니다.

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