Skip to main content
IBM Quantum Platform

WhileLoopOp

class qiskit.circuit.WhileLoopOp(condition, body, label=None)

GitHub

베이스: ControlFlowOp

조건(condition)이 False로 평가될 때까지 하위 회로(body)를 반복적으로 실행하는 회로 연산입니다.

condition 에 사용된 클래식 비트는 body 에 첨부된 비트의 하위 집합이어야 합니다.

매개변수

  • bodycondition (tuple[ClassicalRegister, int] | tuple[Clbit, int] | expr.Expr) – 실행하기 전에 확인해야 할 조건입니다. int``int주어진 값과 동일성을 검사할 값의 ClassicalRegister 튜플로 지정하거나, 또는 값 bool 또는 값 중 하나와 비교할 값의 Clbit 튜플로 지정할 수 있습니다.
  • body (QuantumCircuit) – 반복해서 실행될 루프 본문.
  • 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 가 대부분의 상황에서 더 적합한 판별자가 될 것으로 예상됩니다.

blocks

condition

동안 루프의 조건입니다.

decompositions

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

definition

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

label

반품 지침 라벨

mutable

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

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

name

이름을 반환합니다.

num_clbits

클릿 수를 반환합니다.

num_qubits

큐비트 수를 반환합니다.

params


메소드

add_decomposition

add_decomposition(decomposition)

GitHub

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

broadcast_arguments

broadcast_arguments(qargs, cargs)

GitHub

인수의 유효성 검사.

매개변수

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

산출량

튜플(리스트, 리스트) - 단일 인자를 가진 튜플입니다.

레이즈

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

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 포함되어 있는지 여부를 반환합니다.

iter_captured_stretches

iter_captured_stretches()

GitHub

이 구조의 모든 블록에서 캡처된 고유한 스트레치 변수에 대한 이터레이터를 가져옵니다.

리턴 유형

Iterable [ expr.Stretch ]

iter_captured_vars

iter_captured_vars()

GitHub

이 구조의 모든 블록에서 고유하게 캡처된 변수에 대한 이터레이터를 가져옵니다.

리턴 유형

Iterable [ expr.Var ]

repeat

repeat(n)

GitHub

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

매개변수

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

리턴

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

리턴 유형

qiskit.circuit.Instruction

레이즈

CircuitError – n < 1인 경우.

replace_blocks

replace_blocks(blocks)

GitHub

이 제어 흐름 작업의 새 버전을 주어진 새 작업에 blocks 가 지정된 새 버전에 매핑된 새 버전을 반환합니다.

일반적으로 다음과 같은 워크플로에서 사용됩니다:

existing_op = ...

def map_block(block: QuantumCircuit) -> QuantumCircuit:
    new_block = block.copy_empty_like()
    # ... do something to `new_block` ...
    return new_block

new_op = existing_op.replace_blocks(
    map_block(block) for block in existing_op.blocks
)

매핑된 블록이 통합된 회로 리소스 집합에 정의되도록 하는 것은 호출자의 책임입니다 ControlFlowOp 를 생성하는 것처럼 말입니다.

매개변수

블록 - 사용할 새 하위 회로 블록입니다.

리턴

신규 ControlFlowOp 블록을 교체했습니다.

reverse_ops

reverse_ops()

GitHub

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

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

리턴

를 포함하는 새 명령어

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

리턴 유형

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

GitHub

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

매개변수

other (instruction) – 다른 지침.

리턴

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

리턴 유형

부울

to_mutable

to_mutable()

GitHub

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

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

validate_parameter

validate_parameter(parameter)

GitHub

인스트럭션 매개변수에는 유효성 검사나 정규화가 없습니다.

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