AQC
class qiskit.synthesis.unitary.aqc.AQC(optimizer=None, seed=None)
베이스: object
근사치 양자 컴파일러의 일반적인 구현입니다. 이 구현은 근사 회로, 목적 및 최적화 도구의 기본 구현에 구애받지 않습니다. 사용자는 추상 클래스의 해당 구현을 전달할 수 있습니다:
- 옵티마이저는 최적화 프로세스를 실행하는 데 사용되는 호출 가능한
Minimizer프로토콜의 구현입니다. 최적화 도구의 선택은 전반적인 컨버전스, 최적화 프로세스에 필요한 시간 및 목표 값 달성에 영향을 미칠 수 있습니다. - 대략적인 회로는 최적화하려는 매개변수를 나타내는 템플릿을 나타냅니다. 현재 4회전 CNOT 단위 블록을 기반으로 하는 구현은 하나뿐입니다:
CNOTUnitCircuit. 자세한 내용은 백서를 참조하세요. - 근사 목적은 근사 회로 구현과 밀접하게 연결되어 있으며 근사 회로 매개변수와 관련하여 목적 함수 및 기울기를 계산하는 두 가지 방법을 제공합니다. 이 목표는 옵티마이저에게 전달됩니다. 현재 4회전 CNOT 단위 블록을 기반으로 하는 두 가지 구현이 있습니다:
DefaultCNOTUnitObjective과 그 가속 버전FastCNOTUnitObjective. 두 구현 모두 대상 행렬과 그 근사치 사이의 힐버트-슈미트 곱을 최대화한다는 동일한 아이디어를 공유합니다. 전자의 구현 방식을 기본으로 고려해야 합니다. 전자는 성능 문제가 발생할 수 있으며 주로 적은 수의 큐비트(최대 5개 또는 6개)에 적합하지만 후자인 가속화된 큐비트는 더 큰 문제에 적용할 수 있습니다. - 이 구현은 잠재적으로 큰 대상 행렬을 생성할 뿐만 아니라 대상 행렬과 비슷한 크기의 임시 메모리 버퍼를 할당하기 때문에 큐비트 수에 따라 행렬 크기가 기하급수적으로 증가한다는 점을 고려해야 합니다.
매개변수
- optimizer (Minimizer | None) – 최적의 근사 회로를 찾는 최적화 절차에 사용되는 최적화 프로그램입니다. 기본적으로
L-BFGS-B메서드를 사용하는 스키피 최소화기는 최대 반복 횟수를 1000으로 설정하여 사용합니다. - seed (int | None) – 난수 생성기에서 사용할 시드 값입니다.
메소드
compile_unitary
compile_unitary(target_matrix, approximate_circuit, approximating_objective, initial_point=None)
approximating_objective 에 정의된 최적화 문제를 풀고 approximate_circuit 을 근사 회로의 템플릿으로 사용하여 단일 행렬로 표현된 회로를 대략적으로 컴파일합니다.
매개변수
- target_matrix (ndarray) – 근사할 단일 행렬
- approximate_circuit (ApproximateCircuit) – 최적화 절차에서 얻은 파라미터 값으로 채워질 템플릿 회로입니다.
- approximating_objective (ApproximatingObjective) – 최적화 문제에 대한 정의입니다.
- initial_point (ndarray | None) – 최적화를 시작하기 위한 각도/매개변수의 초기값.
리턴 유형
없음
이 페이지가 도움이 되었습니까?
GitHub에서 버그, 오타를 보고하거나 컨텐츠를 요청하십시오.