Skip to main content
IBM Quantum Platform

AQC

class qiskit.synthesis.unitary.aqc.AQC(optimizer=None, seed=None)

GitHub

베이스: 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)

GitHub

approximating_objective 에 정의된 최적화 문제를 풀고 approximate_circuit 을 근사 회로의 템플릿으로 사용하여 단일 행렬로 표현된 회로를 대략적으로 컴파일합니다.

매개변수

  • target_matrix (ndarray) – 근사할 단일 행렬
  • approximate_circuit (ApproximateCircuit) – 최적화 절차에서 얻은 파라미터 값으로 채워질 템플릿 회로입니다.
  • approximating_objective (ApproximatingObjective) – 최적화 문제에 대한 정의입니다.
  • initial_point (ndarray | None) – 최적화를 시작하기 위한 각도/매개변수의 초기값.

리턴 유형

없음

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