LinearAmplitudeFunction
class qiskit.circuit.library.LinearAmplitudeFunction(num_state_qubits, slope, offset, domain, image, rescaling_factor=1, breakpoints=None, name='F')
베이스: QuantumCircuit
큐비트 진폭에 대해 (부분적으로) 선형 함수를 구현하는 회로입니다.
함수의 진폭 함수 는 매핑입니다
함수의 경우 , 여기서 은 큐비트 상태입니다.
이 회로는 부분 선형 함수 에 대해 를 구현합니다. 이 경우 테일러 확장 및 선형 제어 폴리-Y 회전을 사용하여 매핑을 대략적으로 구현할 수 있습니다(자세한 내용은 [1, 2] 참조). 이 근사치는 rescaling_factor 을 사용하여 테일러 확장의 정확도를 결정합니다.
일반적으로 관심 함수 는 어떤 간격 에서 domain 로, 에서 image 로, 에서 으로 정의됩니다. 아핀 변환을 사용하여 을 로 재조정할 수 있습니다:
다음 항목으로 바꾸십시오.
이 간격 에 기울기 와 오프셋 을 갖는 부분 선형 함수인 경우 다음과 같이 작성할 수 있습니다
여기서 는 인수가 구간 에 속할 때 1을, 그렇지 않을 때 0을 반환하는 지표 함수이다. 의 중단점은 인수를 breakpoints 통해 지정할 수 있습니다.
참조 자료:
[1] Woerner, S., & Egger, D. J. (2018). 양자 위험 분석. arXiv:1806.06893
[2.] Gacon, J., Zoufal, C., & Woerner, S. (2020). 양자 강화 시뮬레이션 기반 최적화. arXiv:2005.10780
qiskit.circuit.library.arithmetic.linear_amplitude_function.LinearAmplitudeFunction 클래스는 키스킷 2.2 에서 더 이상 사용되지 않습니다. 키스킷 3.0 에서 제거됩니다. 대신 qiskit.circuit.library.LinearAmplitudeFunctionGate 클래스를 사용하세요.
매개변수
- num_state_qubits (int) – 변수를 인코딩하는 데 사용되는 큐비트 수 .
- slope (float |list[float]) – 선형 함수의 기울기입니다. 조각 단위 선형 함수인 경우 기울기 목록이 될 수 있습니다.
- offset (float |list[float]) – 선형 함수의 오프셋입니다. 조각 단위 선형 함수인 경우 오프셋 목록이 될 수 있습니다.
- domain (tuple[float, float]) – 함수의 도메인은 튜플 입니다.
- image (tuple[float, float]) – 함수 이미지 튜플 .
- rescaling_factor (float) – 테일러 근사치의 정확도를 조정하는 리스케일링 계수입니다.
- breakpoints (list[float] | None) – 함수가 부분적으로 선형인 경우 중단점입니다. 없음인 경우 함수가 조각 단위로 제공되지 않습니다.
- name (str) – 서킷의 이름입니다.
속성
name
유형: str
사람이 읽을 수 있는 회로의 이름입니다.
예제
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit