qiskit
IBM量子计算框架。当面向IBM Quantum硬件时使用;或在生产负载中使用Qiskit Runtime;或需要IBM优化工具时使用。最适合用于IBM硬件执行、量子误差缓解以及企业级量子计算。针对Google硬件使用cirq;进行基于梯度的量子机器学习使用pennylane;用于开放量子系统仿真使用qutip。
分类
开发工具安装
热度:0
下载并解压到你的 skills 目录
复制命令,发送给智能体自动安装:
下载并安装这个技能 https://openskills.cc/api/download?slug=k-dense-ai-skills-qiskit&locale=zh&source=copy
name:qiskitdescription:IBM quantum computing framework. Use when targeting IBM Quantum hardware, working with Qiskit Runtime for production workloads, or needing IBM optimization tools. Best for IBM hardware execution, quantum error mitigation, and enterprise quantum computing. For Google hardware use cirq; for gradient-based quantum ML use pennylane; for open quantum system simulations use qutip.license:Apache-2.0 licensemetadata:[object Object]
Qiskit
Overview
Qiskit is the world's most popular open-source quantum computing framework with 13M+ downloads. Build quantum circuits, optimize for hardware, execute on simulators or real quantum computers, and analyze results. Supports IBM Quantum (100+ qubit systems), IonQ, Amazon Braket, and other providers.
Key Features:
Quick Start
Installation
uv pip install qiskit
uv pip install "qiskit[visualization]" matplotlibFirst Circuit
from qiskit import QuantumCircuit
from qiskit.primitives import StatevectorSampler
# Create Bell state (entangled qubits)
qc = QuantumCircuit(2)
qc.h(0) # Hadamard on qubit 0
qc.cx(0, 1) # CNOT from qubit 0 to 1
qc.measure_all() # Measure both qubits
# Run locally
sampler = StatevectorSampler()
result = sampler.run([qc], shots=1024).result()
counts = result[0].data.meas.get_counts()
print(counts) # {'00': ~512, '11': ~512}Visualization
from qiskit.visualization import plot_histogram
qc.draw('mpl') # Circuit diagram
plot_histogram(counts) # Results histogramCore Capabilities
1. Setup and Installation
For detailed installation, authentication, and IBM Quantum account setup:
references/setup.mdTopics covered:
2. Building Quantum Circuits
For constructing quantum circuits with gates, measurements, and composition:
references/circuits.mdTopics covered:
3. Primitives (Sampler and Estimator)
For executing quantum circuits and computing results:
references/primitives.mdTopics covered:
4. Transpilation and Optimization
For optimizing circuits and preparing for hardware execution:
references/transpilation.mdTopics covered:
5. Visualization
For displaying circuits, results, and quantum states:
references/visualization.mdTopics covered:
6. Hardware Backends
For running on simulators and real quantum computers:
references/backends.mdTopics covered:
7. Qiskit Patterns Workflow
For implementing the four-step quantum computing workflow:
references/patterns.mdTopics covered:
8. Quantum Algorithms and Applications
For implementing specific quantum algorithms:
references/algorithms.mdTopics covered:
Workflow Decision Guide
If you need to:
references/setup.mdreferences/circuits.mdreferences/circuits.mdreferences/primitives.mdreferences/primitives.mdreferences/transpilation.mdreferences/visualization.mdreferences/backends.mdreferences/backends.mdreferences/patterns.mdreferences/algorithms.mdreferences/algorithms.mdBest Practices
Development Workflow
from qiskit.primitives import StatevectorSampler
sampler = StatevectorSampler()from qiskit import transpile
qc_optimized = transpile(qc, backend=backend, optimization_level=3)- Sampler for bitstrings (optimization algorithms)
- Estimator for expectation values (chemistry, physics)
- Session: Iterative algorithms (VQE, QAOA)
- Batch: Independent parallel jobs
- Single job: One-off experiments
Performance Optimization
Hardware Execution
Common Patterns
Pattern 1: Simple Circuit Execution
from qiskit import QuantumCircuit, transpile
from qiskit.primitives import StatevectorSampler
qc = QuantumCircuit(2)
qc.h(0)
qc.cx(0, 1)
qc.measure_all()
sampler = StatevectorSampler()
result = sampler.run([qc], shots=1024).result()
counts = result[0].data.meas.get_counts()Pattern 2: Hardware Execution with Transpilation
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
from qiskit import transpile
service = QiskitRuntimeService()
backend = service.backend("ibm_brisbane")
qc_optimized = transpile(qc, backend=backend, optimization_level=3)
sampler = Sampler(backend)
job = sampler.run([qc_optimized], shots=1024)
result = job.result()Pattern 3: Variational Algorithm (VQE)
from qiskit_ibm_runtime import Session, EstimatorV2 as Estimator
from scipy.optimize import minimize
with Session(backend=backend) as session:
estimator = Estimator(session=session)
def cost_function(params):
bound_qc = ansatz.assign_parameters(params)
qc_isa = transpile(bound_qc, backend=backend)
result = estimator.run([(qc_isa, hamiltonian)]).result()
return result[0].data.evs
result = minimize(cost_function, initial_params, method='COBYLA')