Skip to main content
IBM Quantum Platform

운영자 유틸리티

qiskit_addon_obp.utils.operations

연산자 역전파를 위한 유틸리티 기능.

apply_op_to

apply_op_to(op1, op1_qargs, op2, op2_qargs, *, apply_as_transform=False)

GitHub

op2 연산자를 op1 연산자에 적용합니다.

이러한 연산자는 더 큰 시스템에서 작동한다고 가정하기 때문에 반드시 동일한 수의 큐비트에서 작동할 필요는 없습니다. 각 운영자의 시스템 내 위치는 해당 qargs 에 의해 정의됩니다. 출력 연산자는 union(op1_qargs, op2_qargs) 에 정의됩니다.

기본적으로 이 함수는 op1op2 에 다음과 같은 방식으로 적용합니다:

op2 @ op1

apply_as_transform=True 을 설정하면 다음과 같은 방식으로 op1op2 에 적용합니다:

op2.adjoint() @ op1 @ op2

매개변수

  • op1 (SparsePauliOp) – op2 이 적용될 운영자입니다.
  • op1_qargs (list[int]) – op1 에 대한 큐비트 인덱스입니다.
  • op2 (SparsePauliOp) – 신청할 운영자는 op1.
  • op2_qargs (list[int]) – op2 에 대한 큐비트 인덱스입니다.
  • apply_as_transform (bool) – op2op1 으로 변환할지 여부.

리턴

튜플 (op, qargs) 여기서 opop2 이 왼쪽으로 적용된 op1 입력이고 qargs 은 새 연산자 op 에 대한 큐비트 인덱스 목록입니다. 출력 op 의 큐비트 ID는 qargs 의 동일한 인덱스에 있는 글로벌 큐비트 ID에 해당합니다.

예를 들어, op 출력이 SparsePauliOp("YX") 이고 qargs 가 [3, 4인] 경우 연산자의 큐비트 0의 X 항은 글로벌 큐비트 ID 3에 해당합니다.

레이즈

ValueError - 고유 연산자 qarg의 수는 해당 연산자의 큐비트 수와 일치해야 합니다.

리턴 유형

tuple [*SparsePauliOp*, list[ int ]]

apply_reset_to

apply_reset_to(op, qubit_id, inplace=False)

GitHub

폴리 연산자에 재설정 작업을 적용합니다.

이 기능은 다음과 같은 방법으로 op 에 재설정 작업을 적용합니다:

<0|op|0>

Qubit-qubit_id 에서 폴리 X 또는 Y 용어가 포함된 용어는 0.0 로 무게가 줄어듭니다. qubit_id 에서 폴리 Z가 포함된 약관은 폴리 Z를 아이덴티티로 대체합니다.

매개변수

  • op (SparsePauliOp) – 재설정이 적용될 운영자입니다.
  • qubit_id (int) – 재설정을 적용할 큐비트의 인덱스입니다.
  • inplace (bool) – 운영자를 제자리에서 수정할지 여부.

리턴

변환된 연산자

리턴 유형

SparsePauliOp

to_global_op

to_global_op(op, qargs, n_qubits)

GitHub

사용하지 않는 큐비트에 ID를 삽입하여 로컬 연산자를 글로벌 연산자로 변환합니다.

매개변수

  • op (SparsePauliOp) – 현지 운영자가 확장합니다.
  • qargs (list[int]) – 로컬 운영자를 위한 큐비트 인덱스.
  • n_qubits (int) – 글로벌 시스템의 큐비트 수입니다.

리턴

n_qubits 운영자의 쿼비트

레이즈

ValueError - 큐비트 ID가 범위를 벗어남

리턴 유형

SparsePauliOp

reduce_op

reduce_op(global_op)

GitHub

글로벌 폴리 연산자의 간결한 표현을 만듭니다.

이 함수는 입력 연산자의 린 표현을 반환하여 폴리-I 항과만 관련된 모든 큐비트가 제거되도록 합니다. 린 연산자가 어떤 큐비트에서 작동하는지를 나타내는 인덱스 목록도 반환됩니다.

예를 들면, 다음과 같습니다.

>>> global_op = SparsePauliOp(["IXI", "IIZ"])
>>> reduced_op, qargs = reduce_op(global_op)
>>> reduced_op
SparsePauliOp(['XI', 'IZ'],
              coeffs=[1.+0.j, 1.+0.j])
>>> qargs
[0, 1]

매개변수

global_op (SparsePauliOp) – 린 표현을 생성할 글로벌 운영자

리턴

  • 신원 조건과만 연관된 큐비트가 제거된 입력 연산자의 간결한 표현입니다.
  • 린 연산자가 작동하는 큐비트를 지정하는 인덱스 목록입니다.

레이즈

ValueError - 입력 연산자가 ID 연산자가 아닐 수 있습니다.

리턴 유형

tuple [*SparsePauliOp*, list[ int ]]

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