Qiskit क्या है?
Qiskit, IBM का ओपन-सोर्स क्वांटम कंप्यूटिंग SDK है। यह IBM Quantum सिमुलेटर और वास्तविक क्वांटम हार्डवेयर पर क्वांटम सर्किट रचने, विज़ुअलाइज़ करने, ऑप्टिमाइज़ करने और चलाने के लिए उपकरण प्रदान करता है। मुफ़्त टियर में कई QPU तक पहुँच शामिल है, जिसमें कतार समय (queue time) के अलावा कोई लागत नहीं है।
📦
v1.x
वर्तमान संस्करण
🖥️
30+ qubits
Aer सिमुलेटर
⚛️
127 qubits
मुफ़्त वास्तविक QPU
🆓
मुफ़्त
खाता खोलें
इंस्टॉलेशन
terminal
pip install qiskit # Core
pip install qiskit-aer # Local simulator
pip install qiskit-ibm-runtime # IBM Quantum cloud access
pip install qiskit[visualization] # Optional: circuit diagramsमुफ़्त IBM Quantum पहुँच सेट करना
- 1quantum.ibm.com पर जाएँ और "Sign in" → "Create an IBMid" (मुफ़्त) पर क्लिक करें।
- 2लॉगिन के बाद, अपनी प्रोफ़ाइल (ऊपर-दाएँ) → "Manage account" → "API token" पर जाएँ।
- 3API token कॉपी करें और उसे नीचे दिए गए save_account() कॉल में पेस्ट करें।
- 4सेटअप स्क्रिप्ट को एक बार चलाएँ। क्रेडेंशियल्स ~/.qiskit/qiskit-ibm.json में सहेजे जाते हैं।
setup_credentials.py
from qiskit_ibm_runtime import QiskitRuntimeService
# Save your IBM Quantum token (only needed once)
QiskitRuntimeService.save_account(
channel="ibm_quantum",
token="YOUR_IBM_QUANTUM_TOKEN_HERE",
overwrite=True
)
# Verify the connection
service = QiskitRuntimeService(channel="ibm_quantum")
backends = service.backends()
print(f"Available backends: {[b.name for b in backends]}")मुफ़्त लोकल सिमुलेटर पर चलाना
Qiskit Aer एक उच्च-प्रदर्शन वाला लोकल सिमुलेटर प्रदान करता है। किसी खाते की आवश्यकता नहीं — अपनी मशीन पर असीमित सर्किट चलाएँ।
local_sim.py
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram
# Build a Bell state circuit
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
# Run on local Aer simulator (free, unlimited)
sim = AerSimulator()
job = sim.run(qc, shots=4096)
result = job.result()
counts = result.get_counts()
print(counts) # {'00': ~2048, '11': ~2048}
# Statevector simulation (no measurement noise)
from qiskit.quantum_info import Statevector
sv = Statevector.from_instruction(qc.remove_final_measurements(inplace=False))
print(sv) # [0.707+0j, 0, 0, 0.707+0j]वास्तविक मुफ़्त QPU हार्डवेयर पर चलाना
See which QPUs you can use for free, and read how transpilation rewrites your circuit for a specific backend.
real_hardware.py
from qiskit import QuantumCircuit, transpile
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
service = QiskitRuntimeService(channel="ibm_quantum")
# Find the least-busy free QPU
backend = service.least_busy(
operational=True,
simulator=False,
min_num_qubits=2
)
print(f"Running on: {backend.name} ({backend.num_qubits} qubits)")
# Build circuit
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
# Transpile for the specific backend
qc_t = transpile(qc, backend, optimization_level=3)
# Submit job using SamplerV2 (modern Qiskit Runtime API)
with Sampler(mode=backend) as sampler:
job = sampler.run([qc_t], shots=1024)
result = job.result()
print(result[0].data.meas.get_counts())वेरिएशनल क्वांटम आइगनसॉल्वर (VQE)
vqe_example.py
from qiskit.circuit.library import TwoLocal
from qiskit.quantum_info import SparsePauliOp
from qiskit_ibm_runtime import QiskitRuntimeService, Session
from qiskit_ibm_runtime import EstimatorV2 as Estimator
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager
import numpy as np
# Define a simple Hamiltonian (H2 molecule)
hamiltonian = SparsePauliOp.from_list([
("ZZ", -1.0523732),
("IZ", 0.3979374),
("ZI", -0.3979374),
("XX", 0.1809312),
("YY", 0.1809312),
])
# Ansatz circuit
ansatz = TwoLocal(2, ['ry', 'rz'], 'cx', reps=2)
init_params = np.zeros(ansatz.num_parameters)
service = QiskitRuntimeService(channel="ibm_quantum")
backend = service.least_busy(operational=True, simulator=False)
pm = generate_preset_pass_manager(backend=backend, optimization_level=1)
ansatz_isa = pm.run(ansatz)
hamiltonian_isa = hamiltonian.apply_layout(ansatz_isa.layout)
with Session(backend=backend) as session:
estimator = Estimator(mode=session)
job = estimator.run([(ansatz_isa, hamiltonian_isa, init_params)])
print(f"Energy estimate: {job.result()[0].data.evs}")Keep exploring
💡
Also available via HLQuantum
Want to run the same circuit on multiple backends without rewriting your code? HLQuantum abstracts this SDK (and 5 others) behind a single unified API.
python
import hlquantum as hlq
qc = hlq.Circuit(2)
qc.h(0).cx(0, 1).measure_all()
# One line to switch between any backend
result = hlq.run(qc, shots=1024) # auto-detect
result = hlq.run(qc, shots=1024, backend="qiskit") # explicit