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가지 기본적인 벨 상태
observables_labels = ["ZZ", "ZI", "IZ", "XX", "XI"]
observables = [SparsePauliOp(label) for label in observables_labels]
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)라고 부르기도 함.
왜냐면 회로도에서 각 큐비트가 하나의 수평선(와이서)로 표시되기 때문