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 हार्डवेयर पर चलाना
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}")💡
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