Skip to main content
IBM Quantum Platform

LinearAmplitudeFunction

class qiskit.circuit.library.LinearAmplitudeFunction(num_state_qubits, slope, offset, domain, image, rescaling_factor=1, breakpoints=None, name='F')

GitHub

베이스: QuantumCircuit

큐비트 진폭에 대해 (부분적으로) 선형 함수를 구현하는 회로입니다.

ff 함수의 진폭 함수 FF 는 매핑입니다

Fx0=1f^(x)x0+f^(x)x1.F|x\rangle|0\rangle = \sqrt{1 - \hat{f}(x)} |x\rangle|0\rangle + \sqrt{\hat{f}(x)} |x\rangle|1\rangle.

함수의 경우 f^:{0,...,2n1}[0,1]\hat{f}: \{ 0, ..., 2^n - 1 \} \rightarrow [0, 1], 여기서 x|x\ranglenn 큐비트 상태입니다.

이 회로는 부분 선형 함수 f^\hat{f} 에 대해 FF 를 구현합니다. 이 경우 테일러 확장 및 선형 제어 폴리-Y 회전을 사용하여 FF 매핑을 대략적으로 구현할 수 있습니다(자세한 내용은 [1, 2] 참조). 이 근사치는 rescaling_factor 을 사용하여 테일러 확장의 정확도를 결정합니다.

일반적으로 관심 함수 ff 는 어떤 간격 [a,b][a,b] 에서 domain 로, [c,d][c,d] 에서 image 로, {1,...,N}\{ 1, ..., N \} 에서 [0,1][0, 1] 으로 정의됩니다. 아핀 변환을 사용하여 fff^\hat{f} 로 재조정할 수 있습니다:

f^(x)=f(ϕ(x))cdc\hat{f}(x) = \frac{f(\phi(x)) - c}{d - c}

다음 항목으로 바꾸십시오.

ϕ(x)=a+ba2n1x.\phi(x) = a + \frac{b - a}{2^n - 1} x.

ffmm 간격 [pi1,pi],i{1,...,m}[p_{i-1}, p_i], i \in \{1, ..., m\} 에 기울기 αi\alpha_i 와 오프셋 βi\beta_i 을 갖는 부분 선형 함수인 경우 다음과 같이 작성할 수 있습니다

f(x)=i=1m1[pi1,pi](x)(αix+βi)f(x) = \sum_{i=1}^m 1_{[p_{i-1}, p_i]}(x) (\alpha_i x + \beta_i)

여기서 1[a,b]1_{[a, b]} 는 인수가 구간 [a,b][a, b] 에 속할 때 1을, 그렇지 않을 때 0을 반환하는 지표 함수이다. pip_i 의 중단점은 인수를 breakpoints 통해 지정할 수 있습니다.

참조 자료:

[1] Woerner, S., & Egger, D. J. (2018). 양자 위험 분석. arXiv:1806.06893

[2.] Gacon, J., Zoufal, C., & Woerner, S. (2020). 양자 강화 시뮬레이션 기반 최적화. arXiv:2005.10780

버전부터 사용되지 않음 2.2

qiskit.circuit.library.arithmetic.linear_amplitude_function.LinearAmplitudeFunction 클래스는 키스킷 2.2 에서 더 이상 사용되지 않습니다. 키스킷 3.0 에서 제거됩니다. 대신 qiskit.circuit.library.LinearAmplitudeFunctionGate 클래스를 사용하세요.

매개변수

  • num_state_qubits (int) – 변수를 인코딩하는 데 사용되는 큐비트 수 xx.
  • slope (float |list[float]) – 선형 함수의 기울기입니다. 조각 단위 선형 함수인 경우 기울기 목록이 될 수 있습니다.
  • offset (float |list[float]) – 선형 함수의 오프셋입니다. 조각 단위 선형 함수인 경우 오프셋 목록이 될 수 있습니다.
  • domain (tuple[float, float]) – 함수의 도메인은 튜플 (xmin,xmax)(x_{\min}, x_{\max}) 입니다.
  • image (tuple[float, float]) – 함수 이미지 튜플 (fmin,fmax)(f_{\min}, f_{\max}).
  • 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

메소드

post_processing

post_processing(scaled_value)

GitHub

대략적인 f^\hat{f} 의 함수 값을 ff 에 매핑합니다.

매개변수

scaled_value (float) – f^(x)\hat{f}(x) 의 테일러 확장 함수 값입니다.

리턴

scaled_value 은 먼저 테일러 근사에 사용된 변환을 반전시킨 다음 [0,1][0, 1] 에서 원래 도메인으로 다시 매핑하여 ff 의 도메인으로 다시 매핑했습니다.

리턴 유형

부동

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