होम/SDK/Google Cirq
🔵

Google Cirq

NISQ एल्गोरिदम के लिए Google का ओपन-सोर्स फ्रेमवर्क। इसमें शक्तिशाली लोकल सिम्युलेटर, कसा हुआ हार्डवेयर एकीकरण, और नियर-टर्म डिवाइसों के लिए उत्कृष्ट टूलिंग शामिल है।

ओपन सोर्सNISQ केंद्रितलोकल सिम्युलेटरPython

Cirq क्या है?

Cirq, Google का क्वांटम कंप्यूटिंग फ्रेमवर्क है जो NISQ (Noisy Intermediate-Scale Quantum) डिवाइसों के लिए डिज़ाइन किया गया है। यह गेट-स्तरीय ऑपरेशनों पर सूक्ष्म नियंत्रण प्रदान करता है, जो इसे एल्गोरिदम विकास और हार्डवेयर प्रयोगों के लिए आदर्श बनाता है। Cirq में कई मुफ्त सिम्युलेटर शामिल हैं और यह साझेदारियों के माध्यम से Google के क्वांटम हार्डवेयर पर चल सकता है।

इंस्टॉलेशन

terminal
pip install cirq # Core + simulator pip install cirq-google # Google hardware access (optional) pip install cirq-web # Web visualization (optional)

बुनियादी सर्किट और सिम्युलेशन

cirq_basic.py
import cirq import numpy as np # Create qubits q0, q1 = cirq.LineQubit.range(2) # Build a Bell state circuit circuit = cirq.Circuit([ cirq.H(q0), cirq.CNOT(q0, q1), cirq.measure(q0, q1, key='result') ]) print(circuit) # 0: ───H───@───M('result')─── # │ │ # 1: ───────X───M───────────── # Simulate with shots (sampling) sim = cirq.Simulator() result = sim.run(circuit, repetitions=1000) print(result.histogram(key='result')) # Counter({0: 504, 3: 496}) (0=|00⟩, 3=|11⟩)

Statevector और Density Matrix सिम्युलेशन

cirq_statevector.py
import cirq q0, q1 = cirq.LineQubit.range(2) # Build without measurement for statevector circuit = cirq.Circuit([cirq.H(q0), cirq.CNOT(q0, q1)]) # Exact statevector simulation (free, local) sim = cirq.Simulator() result = sim.simulate(circuit) print(result.final_state_vector) # [0.707+0j, 0+0j, 0+0j, 0.707+0j] # Density matrix simulation (for noisy circuits) noise_model = cirq.ConstantQubitNoiseModel( cirq.depolarize(p=0.01) ) noisy_sim = cirq.DensityMatrixSimulator(noise=noise_model) noisy_result = noisy_sim.simulate(circuit) print(noisy_result.final_density_matrix)

Clifford सिम्युलेटर (Stabilizer सर्किट के लिए कुशल)

cirq_clifford.py
import cirq # CliffordSimulator efficiently handles stabilizer circuits # Simulates 1000s of qubits for Clifford gates qubits = cirq.LineQubit.range(50) # 50 qubits! circuit = cirq.Circuit( [cirq.H(q) for q in qubits], [cirq.CNOT(qubits[i], qubits[i+1]) for i in range(49)], cirq.measure(*qubits, key='ghz') ) sim = cirq.CliffordSimulator() result = sim.run(circuit, repetitions=100) print(result.histogram(key='ghz'))

Cirq के साथ Variational एल्गोरिदम

cirq_vqa.py
import cirq import numpy as np from scipy.optimize import minimize q0, q1 = cirq.LineQubit.range(2) def ansatz(theta: float) -> cirq.Circuit: return cirq.Circuit([ cirq.ry(theta)(q0), cirq.CNOT(q0, q1), cirq.measure(q0, q1, key='m') ]) def cost(params): circuit = ansatz(params[0]) sim = cirq.Simulator() result = sim.run(circuit, repetitions=200) counts = result.histogram(key='m') # Minimize energy (simplified objective) return -counts.get(0, 0) / 200 # maximize |00⟩ prob result = minimize(cost, x0=[0.5], method='COBYLA') print(f"Optimal theta: {result.x[0]:.4f}")
💡

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="cirq") # explicit