Skip to main content
IBM Quantum Platform

비트_플립_검증

qiskit_addon_utils.noise_management.bit_flip_checks

회로 비트 반전 검사를 통한 사후 선별을 위한 함수 및 클래스.

PostSelectionSummary

class PostSelectionSummary(primary_cregs, measure_map, edges, *, measure_map_ps=None, measure_map_pre=None, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

베이스: object

비트 플립 검사를 기반으로 사후 선별을 수행하는 데 필요한 양자 회로의 속성을 저장하기 위한 헬퍼 클래스입니다.

객체를 PostSelectionSummary 초기화합니다.

매개변수

  • primary_cregs (set[str]) – “기본” 클래식 레지스터의 이름, 즉 회로 전후 검사 접미사로 끝나지 않는 레지스터들의 이름.
  • measure_map (dict[int, tuple[str, int]]) – 레지스터에 할당된 큐비트 인덱스와, 해당 큐비트에 대한 측정(1차 측정)을 유일하게 정의하는 clbit 간의 대응 관계.
  • edges (set[frozenset[int]]) – 인접한 큐비트 쌍을 정의하는 튜플 목록.
  • measure_map_ps (dict[int, tuple[str, int]] | None) – 회로 점검 후 측정용 선택적 지도.
  • measure_map_pre (dict[int, tuple[str, int]] | None) – 회로 점검 전 측정을 위한 선택적 지도.
  • post_check_suffix (str) – 회로 검사 후 레지스터의 접미사.
  • pre_check_suffix (str) – 회로 전 점검 레지스터의 접미사.
  • AddSpectatorPostCircuitBitFlipChecksspectator_cregs (set[str] | None) – 관측값을 저장하는 기본 레지스터의 이름(에 의해 생성된 관측값 패리티 검사 결과의 전반부).

edges

유형: set[frozenset[int]]

가장자리 기반 사후 선별을 위해 고려해야 할 가장자리 집합.

from_circuit

classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

양자 회로에서 초기화합니다.

매개변수

  • circuit (QuantumCircuit) – 비트 플립 검출 기능이 포함된 회로..
  • coupling_map (CouplingMap |list[tuple[int, int]]) – 결합 맵 또는 인접한 큐비트 쌍을 나타내는 튜플 목록.
  • post_check_suffix (str) – 회로 후 검사용 고전적 레지스터에 대한 고정 접미사.
  • pre_check_suffix (str) – 회로 전 검사용 클래식 레지스터에 대한 고정 접미사.
  • spectator_cregs (set[str] | list[str] | None) – 관측값을 저장하는 주요 레지스터의 이름. AddSpectatorPostCircuitBitFlipChecks["spec"]기본값은 이며, 이 값은 에서 사용하는 기본 이름과 일치합니다.

리턴 유형

PostSelectionSummary

measure_map

유형: dict[int, tuple[str, int]]

큐비트 인덱스를 해당 큐비트를 측정하는 데 사용되는 레지스터 및 클비트 인덱스로 매핑하는 표.

measure_map_pre

유형: dict[int, tuple[str, int]]

회로 사전 점검 측정을 위한 큐비트 인덱스에서 레지스터 및 클비트 인덱스로의 대응표.

measure_map_ps

유형: dict[int, tuple[str, int]]

회로 후 검사 측정을 위한 큐비트 인덱스에서 레지스터 및 클비트 인덱스로의 매핑.

post_check_suffix

유형: str

회로 검사 후 레지스터의 접미사.

pre_check_suffix

유형: str

회로 전 점검 레지스터의 접미사.

primary_cregs

유형: set[str]

주요 고전적 레지스터의 명칭.

spectator_cregs

유형: set[str]

관측자 측정을 포함하는 의 primary_cregs 부분집합.

필터링된 샷으로부터 관측량을 계산할 때와 같이, 데이터 전용 주 레지스터를 가져오려면 를 사용하십시오 primary_cregs - spectator_cregs .

PostSelector

class PostSelector(summary)

GitHub

베이스: object

비트 플립 검사 결과를 처리하는 클래스입니다.

객체를 PostSelector 초기화합니다.

매개변수

summary (PostSelectionSummary) – 비트 플립 검사가 포함된 회로의 개요.

compute_mask

compute_mask(result, strategy=PostSelectionStrategy.NODE, *, mode='post')

GitHub

어떤 샷을 유지하거나 제거해야 하는지 나타내는 부울 마스크를 계산합니다.

구조상, 반환된 마스크는 결과의 배열과 동일한 형태를 가지지만, 차원이 하나 적습니다(각 배열의 마지막 축, 즉 clbits에 대한 축은 마스크에 존재하지 않습니다).

매개변수

  • result (dict[str, ndarray[tuple[int, ...], dtype[bool]]]) – 후처리를 수행할 결과. 레지스터 이름을 부울 배열에 매핑하는 사전이어야 합니다.
  • strategy (Literal['node', 'edge'] | ~qiskit_addon_utils.noise_management.bit_flip_checks.post_selector.PostSelectionStrategy) – 사후 선택 전략(“노드” 또는 “에지”).
  • mode (Literal['post', 'pre', 'both']) – 어떤 유형의 사후 선별을 적용할지: - “post”: 회로 후 검사만 적용 - “pre”: 회로 전 검사만 적용 - “both”: 회로 전 검사와 후 검사를 모두 적용

리턴

부울 마스크로, True는 유지할 샷을, False는 제외할 샷을 나타냅니다.

인상

ValueError – 요청된 모드를 사용할 수 없는 경우(예: 회로에 사전 점검 측정값이 없는데 mode=”pre”가 요청된 경우).

리턴 유형

ndarray [ tuple [ int, …], dtype [ bool ]]

from_circuit

classmethod from_circuit(circuit, coupling_map, *, post_check_suffix='_ps', pre_check_suffix='_pre', spectator_cregs=None)

GitHub

양자 회로를 통해 초기화합니다.

매개변수

  • circuit (QuantumCircuit) – 비트 플립 검출 기능을 포함하는 회로.
  • coupling_map (CouplingMap |list[tuple[int, int]]) – 결합 맵 또는 인접한 큐비트 쌍을 나타내는 튜플 목록.
  • post_check_suffix (str) – 회로 후 검사와 관련된 클래식 레지스터용 고정 접미사.
  • pre_check_suffix (str) – 회로 전 검사와 관련된 클래식 레지스터용 고정 접미사.
  • AddSpectatorPostCircuitBitFlipChecksspectator_cregs (set[str] | list[str] | None) – 관찰자 측정값을 저장하는 레지스터의 이름 (에 의해 생성된 관찰자 패리티 검사값의 전반부). AddSpectatorPostCircuitBitFlipChecks기본값은 로 ["spec"] 설정되어 와 일치합니다.

리턴 유형

PostSelector

summary

유형: PostSelectionSummary

비트 플립 검사가 포함된 회로의 개요.

PostSelectionStrategy

class PostSelectionStrategy(value)

GitHub

베이스: str, Enum

지원되는 사후 선택 전략.

EDGE

기본값: 'edge'

인접한 큐비트 쌍 중 두 가지 검사 모두에 실패하는 경우가 있는 모든 샷은 제외한다.

NODE

기본값: 'node'

하나 이상의 검사에 실패한 샷은 모두 제외하십시오.

capitalize

capitalize()

문자열을 대문자로 변환하여 반환합니다.

좀 더 구체적으로 말하자면, 첫 글자는 대문자로, 나머지 글자는 소문자로 설정하세요.

casefold

casefold()

대소문자를 구분하지 않는 비교에 적합한 문자열 버전을 반환합니다.

center

center(width, fillchar=' ', /)

width 길이의 문자열을 중앙 정렬하여 반환합니다.

지정된 채우기 문자(기본값은 공백)를 사용하여 패딩이 적용됩니다.

count

count(sub[, start[, end]]) → int

문자열 [Sstart:end] 내에서 부분 문자열 sub가 서로 겹치지 않고 나타나는 횟수를 반환합니다. 선택적 인자인 start와 end는 슬라이스 표기법에서와 같이 해석됩니다.

encode

encode(encoding='utf-8', errors='strict')

인코딩용으로 등록된 코덱을 사용하여 문자열을 인코딩합니다.

인코딩

문자열을 인코딩할 인코딩 방식입니다.

오류

인코딩 오류에 적용할 오류 처리 방식. 기본값은 ‘strict’이며, 이는 인코딩 오류가 발생하면 UnicodeEncodeError 예외가 발생함을 의미합니다. 다른 가능한 값으로는 'ignore', 'replace', 'xmlcharrefreplace'뿐만 아니라 UnicodeEncodeErrors 처리할 수 있는 codecs.register_error 에 등록된 다른 이름도 있습니다.

endswith

endswith(suffix[, start[, end]]) → bool

S가 지정된 접미사로 끝나는 경우 True를 반환하고, 그렇지 않은 경우 False를 반환합니다. 선택적 시작을 사용할 경우, 해당 위치부터 S 테스트를 시작합니다. '선택적 종료'를 사용하면 해당 위치에서 S에 대한 비교를 중단합니다. 접미사는 시도할 문자열들의 튜플일 수도 있습니다.

expandtabs

expandtabs(tabsize=8)

모든 탭 문자를 공백으로 대체한 사본을 반환합니다.

tabsize가 지정되지 않은 경우, 탭 크기는 8자로 간주됩니다.

find

find(sub[, start[, end]]) → int

[Sstart:end] 범위 내에 포함된 부분 문자열 sub가 S에서 발견되는 가장 낮은 인덱스를 반환합니다. 선택적 인자인 start와 end는 슬라이스 표기법에서와 같이 해석됩니다.

실패 시 -1를 반환합니다.

format

format(*args, **kwargs) → str

args와 kwargs의 값을 대입하여 S의 서식이 지정된 버전을 반환합니다. 대체 문구는 중괄호(‘ {’ and ‘} ’)로 표시됩니다.

format_map

format_map(mapping) → str

mapping에서 정의된 치환을 적용하여 S의 서식이 지정된 버전을 반환합니다. 대체 문구는 중괄호(‘ {’ and ‘} ’)로 표시됩니다.

index

index(sub[, start[, end]]) → int

[Sstart:end] 범위 내에 포함된 부분 문자열 sub가 S에서 발견되는 가장 낮은 인덱스를 반환합니다. 선택적 인자인 start와 end는 슬라이스 표기법에서와 같이 해석됩니다.

부분 문자열이 발견되지 않으면 ValueError 예외가 발생합니다.

isalnum

isalnum()

문자가 영숫자 문자열인 경우 True를 반환하고, 그렇지 않은 경우 False를 반환합니다.

문자열에 포함된 모든 문자가 영숫자이고, 문자열에 적어도 하나의 문자가 포함되어 있다면, 그 문자열은 영숫자 문자열이다.

isalpha

isalpha()

문자열이 알파벳 문자열이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

문자열에 포함된 모든 문자가 알파벳이고, 그 문자열에 적어도 하나의 문자가 포함되어 있다면, 그 문자열은 알파벳 문자열이다.

isascii

isascii()

문자열의 모든 문자가 ASCII인 경우 True를 반환하고, 그렇지 않은 경우 False를 반환합니다.

ASCII 문자의 코드 포인트는 U+0000-U+007F 범위 내에 있습니다. 빈 문자열도 ASCII입니다.

isdecimal

isdecimal()

문자가 10진수 문자열이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

문자열에 포함된 모든 문자가 십진수이고, 문자열에 적어도 하나의 문자가 포함되어 있다면, 그 문자열은 십진수 문자열이다.

isdigit

isdigit()

문자열이 숫자열이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

문자열은 그 문자열에 포함된 모든 문자가 숫자이고, 문자열에 적어도 하나의 문자가 포함되어 있을 때, 숫자열이라고 한다.

isidentifier

isidentifier()

해당 문자열이 유효한 Python 식별자이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

keyword.iskeyword (s)를 호출하여 문자열 s가 “def”나 “class”와 같은 예약된 식별자인지 확인합니다.

islower

islower()

문자가 소문자일 경우 True를 반환하고, 그렇지 않으면 False를 반환합니다.

문자열에 대소문자가 구분되는 문자가 하나 이상 포함되어 있고, 그 모든 문자가 소문자인 경우, 해당 문자열은 소문자 문자열입니다.

isnumeric

isnumeric()

문자가 숫자 문자열이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

문자열에 포함된 모든 문자가 숫자이고, 문자열에 적어도 하나의 문자가 포함되어 있다면, 그 문자열은 숫자 문자열이다.

isprintable

isprintable()

문자열이 인쇄 가능한 경우 True를 반환하고, 그렇지 않은 경우 False를 반환합니다.

문자열은 그 모든 문자가 repr()에서 인쇄 가능한 문자로 간주되거나, 빈 문자열인 경우 인쇄 가능한 문자열로 간주됩니다.

isspace

isspace()

문자열이 공백으로만 구성된 문자열이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

문자열에 포함된 모든 문자가 공백이고, 해당 문자열에 적어도 하나의 문자가 포함되어 있다면, 그 문자열은 공백 문자열이다.

istitle

istitle()

문자가 제목 대소문자 규칙을 따르는 문자열이면 True를 반환하고, 그렇지 않으면 False를 반환합니다.

제목 대소문자 형식의 문자열에서는 대문자와 제목 대소문자 형식의 문자는 대소문자 구분이 없는 문자 뒤에 오직 올 수 있으며, 소문자는 대소문자 구분이 있는 문자 뒤에 오직 올 수 있습니다.

isupper

isupper()

문자열이 대문자로만 구성된 경우 True를 반환하고, 그렇지 않은 경우 False를 반환합니다.

문자열에 대소문자가 구분되는 문자가 하나 이상 포함되어 있고, 그 모든 문자가 대문자인 경우, 해당 문자열은 대문자로 구성된 문자열입니다.

join

join(iterable, /)

임의의 개수의 문자열을 연결합니다.

메서드가 호출된 문자열은 주어진 각 문자열 사이에 삽입됩니다. 결과는 새로운 문자열로 반환됩니다.

예시: ‘.’.join( [‘ab’, ‘pq’, ‘rs’] ) -> ‘ ab.pq.rs ’

ljust

ljust(width, fillchar=' ', /)

width 길이의 왼쪽 정렬된 문자열을 반환합니다.

지정된 채우기 문자(기본값은 공백)를 사용하여 패딩이 적용됩니다.

lower

lower()

문자열을 소문자로 변환한 사본을 반환합니다.

lstrip

lstrip(chars=None, /)

앞쪽의 공백을 제거한 문자열의 복사본을 반환합니다.

chars가 지정되었고 None이 아닌 경우, 대신 chars에 포함된 문자를 제거합니다.

maketrans

static maketrans()

str.translate ()에서 사용할 수 있는 번역 테이블을 반환합니다.

인수가 하나뿐인 경우, 해당 인수는 유니코드 순서 번호(정수) 또는 문자를 유니코드 순서 번호, 문자열 또는 None에 매핑하는 사전이어야 합니다. 그런 다음 문자 키는 서수 값으로 변환됩니다. 인수가 두 개인 경우, 두 인수는 길이가 동일한 문자열이어야 하며, 생성된 딕셔너리에서는 x의 각 문자가 y의 같은 위치에 있는 문자와 대응됩니다. 세 번째 인수가 있는 경우, 해당 인수는 문자열이어야 하며, 이 문자열의 각 문자는 결과에서 None으로 매핑됩니다.

partition

partition(sep, /)

주어진 구분자를 사용하여 문자열을 세 부분으로 나누세요.

이렇게 하면 문자열에서 구분 기호를 검색합니다. 구분 기호가 발견되면, 구분 기호 앞의 부분, 구분 기호 자체, 그리고 구분 기호 뒤의 부분을 포함하는 3-튜플을 반환합니다.

구분 기호를 찾지 못하면, 원본 문자열과 두 개의 빈 문자열로 구성된 3-튜플을 반환합니다.

removeprefix

removeprefix(prefix, /)

주어진 접두사 문자열이 있는 경우 이를 제거한 문자열을 반환합니다.

문자가 접두사 문자열로 시작하면, [stringlen(prefix)를] 반환합니다. 그렇지 않은 경우, 원본 문자열의 복사본을 반환합니다.

removesuffix

removesuffix(suffix, /)

주어진 접미사 문자열이 있다면 이를 제거한 후, 결과 문자열을 반환합니다.

문자열이 접미사 string으로 끝나고, 그 접미사가 비어 있지 않다면, [string:-len(suffix)] 를 반환한다. 그렇지 않은 경우, 원본 문자열의 복사본을 반환합니다.

replace

replace(old, new, count=-1, /)

'old'라는 부분 문자열이 나타나는 모든 부분을 'new'로 대체한 사본을 반환합니다.

바꿀 수 있는 최대 개수입니다. -1(기본값)은 모든 발생 항목을 바꾸는 것을 의미합니다.

선택적 인수 count가 지정된 경우, 처음 count개만 대체됩니다.

rfind

rfind(sub[, start[, end]]) → int

S에서 부분 문자열 sub가 [Sstart:end] 범위 내에 포함되는 위치 중 가장 큰 인덱스를 반환합니다. 선택적 인자인 start와 end는 슬라이스 표기법에서와 같이 해석됩니다.

실패 시 -1를 반환합니다.

rindex

rindex(sub[, start[, end]]) → int

S에서 부분 문자열 sub가 [Sstart:end] 범위 내에 포함되는 위치 중 가장 큰 인덱스를 반환합니다. 선택적 인자인 start와 end는 슬라이스 표기법에서와 같이 해석됩니다.

부분 문자열이 발견되지 않으면 ValueError 예외가 발생합니다.

rjust

rjust(width, fillchar=' ', /)

width 길이의 오른쪽 정렬된 문자열을 반환합니다.

지정된 채우기 문자(기본값은 공백)를 사용하여 패딩이 적용됩니다.

rpartition

rpartition(sep, /)

주어진 구분자를 사용하여 문자열을 세 부분으로 나누세요.

이렇게 하면 문자열의 끝 부분부터 시작하여 구분 기호를 검색합니다. 구분 기호가 발견되면, 구분 기호 앞의 부분, 구분 기호 자체, 그리고 구분 기호 뒤의 부분을 포함하는 3-튜플을 반환합니다.

구분 기호를 찾지 못하면, 두 개의 빈 문자열과 원본 문자열을 포함하는 3-튜플을 반환합니다.

rsplit

rsplit(sep=None, maxsplit=-1)

sep을 구분자로 사용하여 문자열 내의 부분 문자열 목록을 반환합니다.

9월

문자열을 분할하는 데 사용되는 구분자.

'None'(기본값)으로 설정하면 모든 공백 문자(\n, \r, \t, \f 및 공백 포함)에서 분할하며, 결과에서 빈 문자열을 제외합니다.

maxsplit

분할의 최대 개수(왼쪽부터 시작). -1(기본값)은 제한이 없음을 의미합니다.

분할은 문자열의 끝에서 시작하여 앞쪽으로 진행됩니다.

rstrip

rstrip(chars=None, /)

문자열의 끝부분에 있는 공백을 제거한 복사본을 반환합니다.

chars가 지정되었고 None이 아닌 경우, 대신 chars에 포함된 문자를 제거합니다.

split

split(sep=None, maxsplit=-1)

sep을 구분자로 사용하여 문자열 내의 부분 문자열 목록을 반환합니다.

9월

문자열을 분할하는 데 사용되는 구분자.

'None'(기본값)으로 설정하면 모든 공백 문자(\n, \r, \t, \f 및 공백 포함)에서 분할하며, 결과에서 빈 문자열을 제외합니다.

maxsplit

분할의 최대 개수(왼쪽부터 시작). -1(기본값)은 제한이 없음을 의미합니다.

참고로, str.split ()는 주로 의도적으로 구분 기호가 지정된 데이터에 유용합니다. 구두점이 포함된 자연어 텍스트의 경우, 정규 표현식 모듈을 사용하는 것을 고려해 보세요.

splitlines

splitlines(keepends=False)

문자열 내의 각 줄을 줄 경계에서 잘라내어 리스트로 반환합니다.

keepends가 지정되고 true인 경우가 아니면, 결과 목록에는 줄바꿈이 포함되지 않습니다.

startswith

startswith(prefix[, start[, end]]) → bool

S가 지정된 접두사로 시작하는 경우 True를 반환하고, 그렇지 않은 경우 False를 반환합니다. 선택적 시작을 사용할 경우, 해당 위치부터 S 테스트를 시작합니다. '선택적 종료'를 사용하면 해당 위치에서 S에 대한 비교를 중단합니다. 접두사는 시도할 문자열의 튜플일 수도 있습니다.

strip

strip(chars=None, /)

문자열의 앞뒤 공백을 제거한 복사본을 반환합니다.

chars가 지정되었고 None이 아닌 경우, 대신 chars에 포함된 문자를 제거합니다.

swapcase

swapcase()

대문자를 소문자로, 소문자를 대문자로 변환합니다.

title

title()

각 단어의 첫 글자를 대문자로 변환한 문자열을 반환합니다.

좀 더 구체적으로 말하자면, 단어는 대문자로 시작하며 나머지 모든 문자는 소문자로 표기됩니다.

translate

translate(table, /)

주어진 번역표를 사용하여 문자열의 각 문자를 대체하십시오.

테이블

번역 테이블로, 유니코드 서수에서 유니코드 서수, 문자열 또는 None으로의 매핑이어야 합니다.

테이블은 __getitem__을 통해 조회/인덱싱 기능을 구현해야 합니다. 예를 들어, 딕셔너리나 리스트와 같은 방식입니다. 이 작업에서 LookupError, 예외가 발생하면 해당 문자는 변경되지 않은 상태로 유지됩니다. None으로 매핑된 문자는 삭제됩니다.

upper

upper()

문자열을 대문자로 변환한 사본을 반환합니다.

zfill

zfill(width, /)

주어진 너비만큼 필드를 채우기 위해 숫자 문자열의 왼쪽을 0으로 채웁니다.

문자열은 절대로 잘리지 않습니다.

XSlowGate

class XSlowGate(label='xslow', xslow_gate_name='xslow')

GitHub

베이스: Gate

x-슬로우 게이트.

매개변수

  • 이름 – 게이트의 이름.
  • num_qubits – 게이트가 작용하는 큐비트의 수.
  • params – 매개변수 목록.
  • label (str) – 게이트에 붙일 수 있는 선택적 라벨입니다.
  • xslow_gate_name (str)

add_decomposition

add_decomposition(decomposition)

SessionEquivalenceLibrary 에 해당 명령어의 분해 내용을 추가하십시오.

base_class

유형: type[Instruction]

이 명령어의 기본 클래스를 가져옵니다. self이것은 의 계보에 분명히 포함되어 있을 것입니다.

명령어의 “기본 클래스”란, 해당 객체가 _모든_ 회로 응용 분야에서 완전히 호환되는 것으로 간주되어야 하는 상속 트리 내의 가장 하위 클래스를 말합니다. 이는 일반적으로 하위 클래스가 기저 클래스에 비해 프로그래머에게 일종의 편의성을 제공하기 위해 순수하게 정의된 것이며, 행동적 관점에서 볼 때 기저 클래스가 “진정한” 클래스임을 의미합니다. 특히, 대체 측정 전략과 같이 하드웨어에 따라 다르게 구현될 명령어의 사용자 정의 버전을 정의하거나, 완전한 매개변수화 게이트와 Target 구별하기 위해 특정 매개변수 집합을 가진 매개변수화 게이트의 버전을 정의하는 경우에는 이 메서드를 재정의해서는 base_class 됩니다.

type(obj)이는 표준 라이브러리 명령어의 단일 인스턴스인 경우를 제외하고는 대개 와 정확히 동일합니다. 이러한 싱글톤 인스턴스는 해당 기본 클래스의 특수한 하위 클래스이며, 이 속성은 해당 기본 클래스를 반환합니다. 예를 들어,

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

일반적으로 명령어의 정확한 분류에 의존해서는 안 됩니다. 주어진 회로 내에서, 대부분의 상황에서는 가 더 적합한 판별 기준이 될 것으로 Instruction.name 예상됩니다.

broadcast_arguments

broadcast_arguments(qargs, cargs)

인수의 유효성 검사 및 처리, 그리고 그 간의 관계.

cx(q[0], q[2]); cx(q[1], q[2])예를 들어, cx([q[0],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)

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

True``False제어 게이트는 일 때 annotatedControlledGate , 일 때 annotatedAnnotatedOperation 구현됩니다.

2.3 버전부터 사용 중단됨

qiskit.circuit.gate.Gate.control()’의 인수는 annotated Qiskit 2.3 부터 더 이상 사용되지 않습니다. 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")로 지정됩니다. 2**num_ctrl_qubits - 1``None인 경우, 기본값은 모든 비트가 1인 상태가 됩니다.
  • annotated (bool | None) – 제어 게이트를 제어 게이트로 구현할지, 아니면 주석이 달린 연산으로 구현할지 여부를 나타냅니다. False만약 None, 이를 로 간주한다면.

리턴

이 게이트의 제어된 버전입니다.

인상

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

copy

copy(name=None)

지침서 사본.

매개변수

name (str) – 복사된 회로에 부여할 이름입니다. 만약 None 라면 이름이 그대로 유지됩니다.

리턴

현재 지침의 사본으로, 이름이 제공된 경우 해당 이름이 업데이트된 것

리턴 유형

qiskit.circuit.Instruction

decompositions

SessionEquivalenceLibrary 에서 해당 명령어의 분해 정보를 확인하세요.

definition

다른 기본 게이트를 이용하여 이 게이트의 정의를 도출하십시오.

inverse

inverse(annotated=False)

이 명령을 반대로 하세요.

annotated가 False인 경우, 역연산 명령어는 재귀적으로 반전된 정의에 따라 새로운 명령어로 구현됩니다.

AnnotatedOperationannotated가 True인 경우, 역 연산은 로 구현되며, 이는 “역 수정자”가 주어진 연산에 주석 처리된 것과 일치합니다.

Instruction 클래스에서 상속받은 특수 명령어는 자체적인 역함수를 구현할 수 있습니다(예: T 및 Tdg, Barrier 등) 특히, 사용자는 인수를 annotated 어떻게 처리할지 선택할 수 있으며, 여기에는 인수를 무시하고 역함수가 표준 게이트로 정의된 경우 항상 구체적인 게이트 클래스를 반환하는 방식도 포함될 수 있습니다.

매개변수

AnnotatedOperationannotated (bool) – True로 설정하면 출력 역게이트가 로 반환됩니다.

리턴

역연산.

인상

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

is_parameterized

is_parameterized()

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

label

유형: str

반환 명령어 레이블

mutable

유형: bool

이 인스턴스는 변경 가능한 고유 인스턴스인가요, 아닌가요?

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

name

이름을 반환합니다.

num_clbits

clbits의 개수를 반환합니다.

num_qubits

큐비트의 개수를 반환합니다.

params

Instruction.의 매개변수는 다음과 같습니다. 가급적이면 이 값들은 게이트 각도가 되어야 합니다.

power

power(exponent, annotated=False)

exponent이 게이트를 의 제곱으로 올립니다.

단일 게이트로 구현되거나 (참조: UnitaryGate) AnnotatedOperation또는 주석이 달린 연산으로 (참조 ). , RXGate 등과 같은 여러 표준 게이트의 경우, 한 게이트의 전력을 다른 표준 게이트를 통해 직접 반환되는 형태로 표현할 수 있을 때를 말합니다.

매개변수

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

리턴

다음과 같은 기능을 구현하는 연산 gate^exponent

인상

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

repeat

repeat(n)

selfnn 번 반복되는 명령어를 생성합니다.

매개변수

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

리턴

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

리턴 유형

qiskit.circuit.Instruction

인상

CircuitError – n < 1인 경우.

reverse_ops

reverse_ops()

복합 명령어의 경우, 하위 명령어의 순서를 반대로 바꿉니다.

이는 모든 하위 명령어를 재귀적으로 역순으로 처리함으로써 이루어집니다. 어떤 게이트도 반전시키지 않습니다.

리턴

다음과 같은 새로운 명령어

하위 명령어가 역순으로 실행되었습니다.

리턴 유형

qiskit.circuit.Instruction

soft_compare

soft_compare(other)

게이트 간의 부드러운 비교. 이들의 이름, 큐비트 수, 그리고 고전 비트 수는 일치해야 합니다. 매개변수의 개수가 일치해야 합니다. 각 매개변수가 비교됩니다. ParameterExpression 인 경우에는 이를 고려하지 않습니다.

매개변수

other (instruction) – 기타 지침.

리턴

매개변수 표현식까지 ‘self’와 ‘other’는 동일합니다.

리턴 유형

부울

to_matrix

to_matrix()

게이트 단일 행렬에 대한 Numpy.array 를 반환합니다.

리턴

Gate 하위 클래스에 행렬 정의가 있는 경우.

리턴 유형

np.ndarray

인상

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

to_mutable

to_mutable()

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

이 메서드는 이 게이트 인스턴스의 새로운 변경 가능한 복사본을 반환합니다. 싱글톤 인스턴스가 사용 중인 경우, 이는 변경이 가능한 새로운 고유 인스턴스가 됩니다. 인스턴스가 이미 변경 가능한 상태라면, 해당 인스턴스의 심층 복사본이 생성됩니다.

validate_parameter

validate_parameter(parameter)

게이트 매개변수는 int, float 또는 ParameterExpression 유형이어야 합니다

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