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) – 함수가 구간별 선형일 때의 분할점. None인 경우, 해당 함수는 구간별 함수가 아닙니다.
- name (str) – 회로 이름.
속성
name
유형: str
사람이 읽을 수 있는 회로의 이름입니다.
예제
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit