회로 검사 - Amazon Braket

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

회로 검사

Amazon브라켓의 양자 회로에는 유사시간이라는 개념이 있습니다. Moments 각 게이트는 한 개당 한 개씩 qubit 발생할 수 있습니다. MomentMoments 목적은 회로와 해당 게이트의 주소를 더 쉽게 지정하고 임시 구조를 제공하는 것입니다.

참고

모멘트는 일반적으로 QPU에서 게이트가 실행되는 실시간 시간과 일치하지 않습니다.

회로의 깊이는 해당 회로의 총 모멘트 수로 계산됩니다. 다음 예와 circuit.depth 같이 메서드를 호출하는 회로 깊이를 볼 수 있습니다.

# define a circuit with parametrized gates circ = Circuit().rx(0, 0.15).ry(1, 0.2).cnot(0,2).zz(1, 3, 0.15).x(0) print(circ) print('Total circuit depth:', circ.depth)
T : | 0 | 1 |2| q0 : -Rx(0.15)-C----------X- | q1 : -Ry(0.2)--|-ZZ(0.15)--- | | q2 : ----------X-|---------- | q3 : ------------ZZ(0.15)--- T : | 0 | 1 |2| Total circuit depth: 3

위 회로의 전체 회로 깊이는 3입니다 (모멘트 01, 및 로 표시2). 매 순간의 게이트 작동을 확인할 수 있습니다.

Moments키-값 쌍의 딕셔너리 역할을 합니다.

  • 키는 유사 시간과 정보를 포함하는 입니다MomentsKey(). qubit

  • 값은 의 유형으로 할당됩니다. Instructions()

moments = circ.moments for key, value in moments.items(): print(key) print(value, "\n")
MomentsKey(time=0, qubits=QubitSet([Qubit(0)])) Instruction('operator': Rx('angle': 0.15, 'qubit_count': 1), 'target': QubitSet([Qubit(0)])) MomentsKey(time=0, qubits=QubitSet([Qubit(1)])) Instruction('operator': Ry('angle': 0.2, 'qubit_count': 1), 'target': QubitSet([Qubit(1)])) MomentsKey(time=1, qubits=QubitSet([Qubit(0), Qubit(2)])) Instruction('operator': CNot('qubit_count': 2), 'target': QubitSet([Qubit(0), Qubit(2)])) MomentsKey(time=1, qubits=QubitSet([Qubit(1), Qubit(3)])) Instruction('operator': ZZ('angle': 0.15, 'qubit_count': 2), 'target': QubitSet([Qubit(1), Qubit(3)])) MomentsKey(time=2, qubits=QubitSet([Qubit(0)])) Instruction('operator': X('qubit_count': 1), 'target': QubitSet([Qubit(0)]))

를 통해 회로에 게이트를 추가할 수도 Moments 있습니다.

new_circ = Circuit() instructions = [Instruction(Gate.S(), 0), Instruction(Gate.CZ(), [1,0]), Instruction(Gate.H(), 1) ] new_circ.moments.add(instructions) print(new_circ)
T : |0|1|2| q0 : -S-Z--- | q1 : ---C-H- T : |0|1|2|