Skip to main content
IBM Quantum Platform

HalfAdderGate

class qiskit.circuit.library.HalfAdderGate(num_state_qubits, label=None)

GitHub

베이스: Gate

캐리아웃 비트를 포함하여 동일한 크기의 큐비트 레지스터 두 개의 합을 계산합니다.

각각 nn 큐비트가 있는 두 개의 레지스터 an|a\rangle_nbn|b\rangle_n 의 경우 가산기는 다음 연산을 수행합니다

anbn0ana+bn+1.|a\rangle_n |b\rangle_n |0\rangle \mapsto |a\rangle_n |a + b\rangle_{n + 1}.

최종 입력 큐비트는 0|0\rangle 로 초기화된 깨끗한 큐비트입니다. 이 큐비트에는 이월 비트가 저장되어 있으며, 이것이 바로 출력 합계 레지스터에 n+1n + 1 개의 큐비트가 있는 이유입니다.

양자 레지스터 an|a\rangle_n (및 유사하게 bn|b\rangle_n )

an=a0an1,|a\rangle_n = |a_0\rangle \otimes \cdots \otimes |a_{n - 1}\rangle,

의 경우 ai{0,1}a_i \in \{0, 1\}, 정수 값과 연관됩니다

a=20a0+21a1++2n1an1.a = 2^{0}a_{0} + 2^{1}a_{1} + \cdots + 2^{n - 1}a_{n - 1}.

매개변수

  • num_state_qubits (int) – 각 레지스터의 큐비트 수입니다.
  • label (str | None) – 명령을 식별하기 위한 선택적 레이블입니다.

속성

base_class

이 인스트럭션의 베이스 클래스를 가져옵니다. 이것은 self 의 상속 트리에 보장됩니다.

명령어의 "베이스 클래스"는 상속 트리에서 객체가 _모든_ 회로 응용 프로그램에서 완전히 호환되는 것으로 간주해야 하는 가장 낮은 클래스입니다. 이는 일반적으로 서브클래스는 순전히 기본 클래스에 대한 프로그래머 편의를 제공하기 위해 정의되며, 기본 클래스는 동작 관점에서 "진정한" 클래스라는 의미입니다. 특히, 당신은 무시해서는 *안됩니다 *base_class 하드웨어에 따라 다르게 구현될 명령어의 사용자 정의 버전(예: 대체 측정 전략 또는 이를 구별하기 위한 특정 매개변수 집합을 갖는 매개변수화된 게이트 버전)을 정의하는 경우 Target 완전히 매개변수화된 게이트에서.

이는 표준 라이브러리 지침의 싱글톤 인스턴스의 경우를 제외하고는 type(obj) 과 정확히 일치하는 경우가 많습니다. 이러한 싱글톤 인스턴스는 기본 클래스의 특수 서브클래스이며, 이 프로퍼티는 해당 기본 클래스를 반환합니다. 예를 들어,

>>> isinstance(XGate(), XGate)
True
>>> type(XGate()) is XGate
False
>>> XGate().base_class is XGate
True

일반적으로 인스트럭션의 정확한 클래스에 의존해서는 안 되며, 주어진 회로 내에서는 Instruction.name 이 대부분의 상황에서 더 적합한 변별자가 될 것으로 예상됩니다.

decompositions

SessionEquivalenceLibrary 에서 인스트럭션의 분해를 가져옵니다.

definition

다른 기본 게이트의 관점에서 정의를 반환합니다.

label

반품 지침 라벨

mutable

이 인스턴스가 변경 가능한 고유 인스턴스인지 여부입니다.

이 속성이 False 인 경우 게이트 인스턴스는 공유 싱글톤이며 변경할 수 없습니다.

name

이름을 반환합니다.

num_clbits

클릿 수를 반환합니다.

num_qubits

큐비트 수를 반환합니다.

num_state_qubits

상태 큐비트 수, 즉 각 입력 레지스터의 비트 수입니다.

리턴

상태 큐비트 수입니다.

params

이 매개변수 Instruction. 이상적으로는 게이트 각도입니다.


메소드

add_decomposition

add_decomposition(decomposition)

GitHub

SessionEquivalenceLibrary 에 명령의 분해를 추가합니다.

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

인수의 유효성 검사 및 처리와 그 관계.

예를 들어 cx([q[0],q[1]], q[2])cx(q[0], q[2]); cx(q[1], q[2]) 을 의미합니다. 이 메서드는 올바른 그룹화의 인수를 산출합니다. 주어진 예제에서:

in: [[q[0],q[1]], q[2]],[]
outs: [q[0], q[2]], []
      [q[1], q[2]], []

일반적인 방송 규칙은 다음과 같습니다:

  • Len(qargs) == 1:

    [q[0], q[1]] -> [q[0]],[q[1]]
  • Len(qargs) == 2:

    [[q[0], q[1]], [r[0], r[1]]] -> [q[0], r[0]], [q[1], r[1]]
    [[q[0]], [r[0], r[1]]]       -> [q[0], r[0]], [q[0], r[1]]
    [[q[0], q[1]], [r[0]]]       -> [q[0], r[0]], [q[1], r[0]]
  • Len(qargs) >= 3:

    [q[0], q[1]], [r[0], r[1]],  ...] -> [q[0], r[0], ...], [q[1], r[1], ...]

매개변수

  • qargs (list) – 양자 비트 인자 목록입니다.
  • cargs (list) – 클래식 비트 인자 목록입니다.

리턴

인수가 하나인 튜플입니다.

레이즈

CircuitError – 입력이 유효하지 않은 경우. 예를 들어, 인수의 개수가 게이트의 예상치와 일치하지 않습니다.

리턴 유형

Iterable [ tuple [ list, list ]]

control

control(num_ctrl_qubits=1, label=None, ctrl_state=None, annotated=None)

GitHub

제어된 버전을 반환합니다.

제어된 게이트는 일 annotatedControlledGateFalse구현되며, 일 annotatedAnnotatedOperationTrue구현된다.

2.3 버전부터 사용 중단됨

qiskit.circuit.gate.Gate.control()'s argument'는 Qiskit 2.3annotated 부터 사용을 권장하지 않습니다. Qiskit에서 제거될 예정입니다. 3.0 Gate.control 메서드는 더 이상 annotated=None을 허용하지 않습니다. 새로운 기본값은 annotated=True이며, 이는 제어된 게이트를 제어된 게이트 클래스( AnnotatedOperation )로 표현합니다(전용 제어된 게이트 클래스가 이미 존재하지 않는 경우). 이전 동작을 유지하려면 명시적으로 annotated=False를 설정할 수 있습니다. 그러나 annotated=True를 사용하는 것이 권장됩니다. 이는 제어 회로의 생성을 트랜스파일러로 미루고, 추가적인 제어 게이트 최적화를 가능하게 하기 때문입니다(일반적으로 더 높은 품질의 회로로 이어집니다).

매개변수

  • num_ctrl_qubits (int) – 추가할 대조군의 수. 기본값은 1.입니다.
  • label (str | None) – 선택적 게이트 레이블. 기본값은 None.입니다. 제어된 게이트가 주석 처리된 연산으로 구현된 경우 무시됩니다.
  • ctrl_state (int |str | None) – 게이트의 제어 상태는 정수 또는 비트열(예: "110")로 지정됩니다. 만약 None, 기본값은 모두 1인 상태입니다 2**num_ctrl_qubits - 1.
  • annotated (bool | None) – 제어된 게이트를 제어된 게이트로 구현할 것인지, 아니면 주석 처리된 연산으로 구현할 것인지를 나타냅니다. 만약 None, 로 False취급된다면.

리턴

이 게이트의 제어된 버전.

레이즈

QiskitError – 유효하지 않음 num_ctrl_qubits 또는 ctrl_state.

copy

copy(name=None)

GitHub

지침 사본.

매개변수

name (str) – 를 복사된 회로에 부여할 이름으로 지정합니다. None 인 경우 이름은 동일하게 유지됩니다.

리턴

현재 인스트럭션의 사본(이름이 제공된 경우 업데이트된 이름 포함)

리턴 유형

qiskit.circuit.Instruction

inverse

inverse(annotated=False)

GitHub

이 지침을 뒤집습니다.

주석이 False인 경우, 역 인스트럭션은 재귀적으로 반전된 정의가 있는 새로운 인스트럭션으로 구현됩니다.

주석이 True인 경우, 역방향 명령어는 AnnotatedOperation로 구현되며, "역 수정자"로 주석이 달린 지정된 명령어에 해당합니다.

Instruction을 상속하는 특수 인스트럭션은 자체 역(예: T 및 Tdg, Barrier 등)을 구현할 수 있습니다 특히, 역이 표준 게이트로 정의된 경우 annotated 인수를 무시하고 항상 구체적인 게이트 클래스를 반환하는 등 인수를 처리하는 방법을 선택할 수 있습니다.

매개변수

annotated (bool) – true로 설정하면 출력 역 게이트는 다음과 같이 반환됩니다 AnnotatedOperation.

리턴

역 연산입니다.

레이즈

CircuitError – 해당 명령어가 복합 명령어가 아니며, 이에 대한 역연산이 구현되지 않은 경우.

is_parameterized

is_parameterized()

GitHub

컴파일 시 매개변수가 Instruction 포함되어 있는지 여부를 반환합니다.

power

power(exponent, annotated=False)

GitHub

이 게이트를 exponent 의 힘으로 올리십시오.

단일 게이트(참조. UnitaryGate) 또는 주석이 달린 연산으로(참조. AnnotatedOperation). 다음과 같은 여러 표준 게이트의 경우 RXGate와 같이 게이트의 전력을 직접 반환되는 다른 표준 게이트로 표현할 수 있는 경우.

매개변수

  • exponent (float) – 게이트를 올릴 수 있는 힘
  • annotated (bool) – 는 파워 게이트를 주석 처리된 연산으로 구현할 수 있는지 여부를 나타냅니다. 다음과 같은 여러 표준 게이트의 경우 RXGate와 같이 여러 개의 표준 게이트가 있는 경우, 게이트의 전력을 다른 표준 게이트로 표현할 수 있는 경우 이 인수는 무시됩니다.

리턴

다음을 구현하는 작업 gate^exponent

레이즈

CircuitError – 게이트가 유니터리가 아닐 경우

repeat

repeat(n)

GitHub

nn 를 반복하는 self 명령어를 생성합니다.

매개변수

n (int) – 지시를 반복할 횟수

리턴

정의가 포함되어 있습니다.

리턴 유형

qiskit.circuit.Instruction

레이즈

CircuitError – n < 1인 경우.

reverse_ops

reverse_ops()

GitHub

복합 인스트럭션의 경우 하위 인스트럭션의 순서를 반대로 합니다.

이는 모든 하위 인스트럭션을 재귀적으로 뒤집는 방식으로 수행됩니다. 어떤 게이트도 반전시키지 않습니다.

리턴

를 포함하는 새 명령어

하위 지침이 반전되었습니다.

리턴 유형

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

게이트 간 소프트 비교. 이름, 큐비트 수, 클래식 비트 번호가 일치해야 합니다. 매개변수의 개수가 일치해야 합니다. 각 매개변수를 비교합니다. ParameterExpression 인 경우 고려되지 않습니다.

매개변수

other (instruction) – 다른 지침.

리턴

는 자체 및 기타 매개변수 표현식과 동일합니다.

리턴 유형

부울

to_matrix

to_matrix()

GitHub

게이트 유니타리 행렬에 대해 Numpy.array 을 반환합니다.

리턴

게이트 서브클래스에 행렬 정의가 있는 경우.

리턴 유형

np.ndarray

레이즈

CircuitError – 게이트(Gate)의 하위 클래스가 이 메서드를 구현하지 않은 경우, 이 기본 클래스 메서드가 호출되면 예외가 발생합니다.

to_mutable

to_mutable()

GitHub

이 게이트의 변경 가능한 복사본을 반환합니다.

이 메서드는 이 게이트 인스턴스의 변경 가능한 새 복사본을 반환합니다. 싱글톤 인스턴스가 사용 중인 경우 이는 변경 가능한 새 고유 인스턴스가 됩니다. 인스턴스가 이미 변경 가능한 경우 해당 인스턴스의 딥카피가 됩니다.

validate_parameter

validate_parameter(parameter)

GitHub

게이트 파라미터는 int, float 또는 ParameterExpression

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