양자 프로그래밍

ClassBinu·2024년 4월 8일
0

양자 컴퓨팅

목록 보기
5/17

1. 특정 2큐비트 얽인 상태인 벨 상태 생성

from qiskit import QuantumCircuit
from qiskit.quantum_info import SparsePauliOp
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService, EstimatorV2 as Estimator

# 2개의 큐비트 회로를 생성
qc = QuantumCircuit(2)

# 0번 큐비트에 하다마드 게이트 적용
qc.h(0)

# 0번 큐비트를 제어 비트로 해서 1번 비트에 CNOT 게이트 적용
qc.cx(0, 1)

# 회로 출력
qc.draw("mpl")

벨 상태란?

2큐비트 시스템에서 양자 얽힘을 보여주는 특별한 종류의 양자 상태
4가지 기본적인 벨 상태

1-1. 관찰 가능 라벨 생성

observables_labels = ["ZZ", "ZI", "IZ", "XX", "XI"]
observables = [SparsePauliOp(label) for label in observables_labels]

2. 회로 및 연산자 최적화

service = QiskitRuntimeService()
from qiskit_ibm_runtime.fake_provider import FakeCairoV2

backend = FakeCairoV2()

pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
isa_circuit = pm.run(qc)

isa_circuit.draw("mpl", idle_wires=False)

양자 컴퓨팅에서는 큐비트를 와이어(wire)라고 부르기도 함.
왜냐면 회로도에서 각 큐비트가 하나의 수평선(와이서)로 표시되기 때문

3. 양자 원시 함수 사용해서 실행

0개의 댓글

관련 채용 정보