QuadraticForm
class qiskit.circuit.library.QuadraticForm(num_result_qubits=None, quadratic=None, linear=None, offset=None, little_endian=True)
베이스: QuantumCircuit
큐비트 레지스터로 인코딩된 이진 변수에 2진법 형식을 구현합니다.
이진 변수에 대한 이차 형식은 비트의 이진 변수, 에 작용하는 이차 함수 입니다. 정수 행렬 , 정수 벡터 및 정수 의 경우 함수는 다음과 같이 작성할 수 있습니다
, 또는 에 스칼라 값이 포함된 경우 이 회로는 이차식의 근사치만 계산합니다.
값을 인코딩하기 위해 큐비트가 제공되면, 이 회로는 [을 2의 보수] ( https://stackoverflow.com/questions/1049722/what-is-twos-complement ) 표현으로 계산합니다.
예를 들어 값은 2의 보수를 사용하므로 값을 나타내는 데 2비트, 부호에 1비트가 필요합니다. 3 = '011'(첫 번째 0은 양수 값을 나타냄)입니다. 반면 = -3 = '101'이 되며, 여기서 첫 번째 1은 음수 값을 나타내고 01은 2의 3의 보수입니다.
값이 너무 커서 m 큐비트로 표현할 수 없는 경우, 결과 비트 문자열은 입니다.
이 회로의 구현은 [1], 그림 6에 설명되어 있습니다.
참조 자료:
[1] 길리엄 외., 제약된 다항식 이진 최적화를 위한 Grover 적응형 검색. arXiv:1912.04088
qiskit.circuit.library.arithmetic.quadratic_form.QuadraticForm 클래스는 키스킷 2.1 에서 더 이상 사용되지 않습니다. 제거됩니다 Qiskit 3.0. 대신 QuadraticFormGate 을 사용하세요.
매개변수
- num_result_qubits (int | None) – 결과를 인코딩하는 데 필요한 큐비트의 수. 클래스 문서에서는 라고 명명되어 있습니다.
- quadratic (np.ndarray | list[list[float |ParameterExpression]] | None) – 2차 계수 를 포함하는 행렬.
- linear (np.ndarray | list[float |ParameterExpression] | None) – 선형 계수를 포함하는 배열, .
- offset (float |ParameterExpression | None) – 상수 오프셋, .
- little_endian (bool) – 결과를 작은 엔디안 단위로 인코딩합니다.
레이즈
- ValueError -
linear와quadratic의 크기가 일치하지 않는 경우. - ValueError -
num_result_qubits이 지정되지 않았지만 이차 형식의 일부 값이 매개변수화되어 있어 확인할 수 없는 경우.
속성
name
유형: str
사람이 읽을 수 있는 회로의 이름입니다.
예제
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit