重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
quantum-expert by personamanagmentlayer/pcl
npx skills add https://github.com/personamanagmentlayer/pcl --skill quantum-expert提供量子计算、量子算法、Qiskit 编程和量子信息理论的专家指导。
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit import Aer, execute, transpile
from qiskit.visualization import plot_histogram, plot_bloch_multivector
import numpy as np
# Basic Quantum Circuit
def create_bell_state():
"""创建贝尔态(最大纠缠态)"""
qc = QuantumCircuit(2, 2)
# 在量子比特 0 上创建叠加态
qc.h(0)
# 纠缠量子比特 0 和 1
qc.cx(0, 1)
# 测量两个量子比特
qc.measure([0, 1], [0, 1])
return qc
# Quantum Teleportation
def quantum_teleportation():
"""实现量子隐形传态协议"""
qc = QuantumCircuit(3, 3)
# 准备要传送的状态(量子比特 0)
qc.ry(np.pi/4, 0)
# 在量子比特 1 和 2 之间创建贝尔对
qc.h(1)
qc.cx(1, 2)
# 对量子比特 0 和 1 进行贝尔测量
qc.cx(0, 1)
qc.h(0)
qc.measure([0, 1], [0, 1])
# 根据测量结果对量子比特 2 应用校正
qc.cx(1, 2)
qc.cz(0, 2)
# 测量最终状态
qc.measure(2, 2)
return qc
# Grover's Search Algorithm
class GroverSearch:
def __init__(self, n_qubits: int, marked_state: str):
self.n_qubits = n_qubits
self.marked_state = marked_state
self.circuit = None
def create_oracle(self):
"""创建标记目标状态的预言机"""
oracle = QuantumCircuit(self.n_qubits)
# 通过翻转相位来标记目标状态
for i, bit in enumerate(reversed(self.marked_state)):
if bit == '0':
oracle.x(i)
# 多控制 Z 门
oracle.h(self.n_qubits - 1)
oracle.mcx(list(range(self.n_qubits - 1)), self.n_qubits - 1)
oracle.h(self.n_qubits - 1)
# 逆计算
for i, bit in enumerate(reversed(self.marked_state)):
if bit == '0':
oracle.x(i)
return oracle
def create_diffuser(self):
"""创建扩散算子"""
diffuser = QuantumCircuit(self.n_qubits)
# 应用 H 门
diffuser.h(range(self.n_qubits))
# 应用 X 门
diffuser.x(range(self.n_qubits))
# 多控制 Z 门
diffuser.h(self.n_qubits - 1)
diffuser.mcx(list(range(self.n_qubits - 1)), self.n_qubits - 1)
diffuser.h(self.n_qubits - 1)
# 应用 X 门
diffuser.x(range(self.n_qubits))
# 应用 H 门
diffuser.h(range(self.n_qubits))
return diffuser
def build_circuit(self):
"""构建完整的格罗弗算法电路"""
self.circuit = QuantumCircuit(self.n_qubits, self.n_qubits)
# 初始化为叠加态
self.circuit.h(range(self.n_qubits))
# 计算最优迭代次数
n_iterations = int(np.pi / 4 * np.sqrt(2**self.n_qubits))
oracle = self.create_oracle()
diffuser = self.create_diffuser()
# 应用格罗弗迭代
for _ in range(n_iterations):
self.circuit.compose(oracle, inplace=True)
self.circuit.compose(diffuser, inplace=True)
# 测量
self.circuit.measure(range(self.n_qubits), range(self.n_qubits))
return self.circuit
def run(self, shots: int = 1024):
"""执行电路"""
backend = Aer.get_backend('qasm_simulator')
job = execute(self.circuit, backend, shots=shots)
result = job.result()
counts = result.get_counts()
return counts
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
from qiskit.algorithms import VQE
from qiskit.algorithms.optimizers import SLSQP
from qiskit.circuit.library import TwoLocal
from qiskit.primitives import Estimator
from qiskit.quantum_info import SparsePauliOp
class VQESolver:
"""用于寻找基态能量的变分量子本征求解器"""
def __init__(self, hamiltonian: SparsePauliOp, n_qubits: int):
self.hamiltonian = hamiltonian
self.n_qubits = n_qubits
def create_ansatz(self, reps: int = 2):
"""创建参数化量子电路(拟设)"""
ansatz = TwoLocal(
self.n_qubits,
'ry',
'cz',
reps=reps,
entanglement='linear'
)
return ansatz
def run_vqe(self):
"""运行 VQE 算法"""
ansatz = self.create_ansatz()
optimizer = SLSQP(maxiter=100)
estimator = Estimator()
vqe = VQE(estimator, ansatz, optimizer)
result = vqe.compute_minimum_eigenvalue(self.hamiltonian)
return {
"eigenvalue": result.eigenvalue,
"optimal_parameters": result.optimal_parameters,
"optimal_point": result.optimal_point,
"cost_function_evals": result.cost_function_evals
}
# 示例:H2 分子
def create_h2_hamiltonian():
"""为 H2 分子创建哈密顿量"""
# 简化的哈密顿量
hamiltonian = SparsePauliOp.from_list([
("II", -1.0523732),
("IZ", 0.39793742),
("ZI", -0.39793742),
("ZZ", -0.01128010),
("XX", 0.18093119)
])
return hamiltonian
from qiskit_machine_learning.algorithms import VQC
from qiskit_machine_learning.neural_networks import CircuitQNN
from qiskit.circuit import Parameter
import numpy as np
class QuantumClassifier:
"""变分量子分类器"""
def __init__(self, n_features: int, n_classes: int):
self.n_features = n_features
self.n_classes = n_classes
self.vqc = None
def create_feature_map(self):
"""创建特征映射以编码经典数据"""
qc = QuantumCircuit(self.n_features)
for i in range(self.n_features):
param = Parameter(f'x[{i}]')
qc.ry(param, i)
return qc
def create_ansatz(self):
"""创建参数化电路"""
ansatz = TwoLocal(
self.n_features,
['ry', 'rz'],
'cz',
reps=2,
entanglement='full'
)
return ansatz
def train(self, X_train, y_train):
"""训练量子分类器"""
feature_map = self.create_feature_map()
ansatz = self.create_ansatz()
self.vqc = VQC(
num_qubits=self.n_features,
feature_map=feature_map,
ansatz=ansatz,
optimizer=SLSQP(maxiter=100)
)
self.vqc.fit(X_train, y_train)
def predict(self, X_test):
"""使用训练好的模型进行预测"""
return self.vqc.predict(X_test)
❌ 在 NISQ 设备上使用深度电路 ❌ 忽略硬件连接性 ❌ 没有错误缓解 ❌ 未经证明即声称量子优势 ❌ 未先用模拟验证 ❌ 忽略退相干时间 ❌ 低效的状态准备
每周安装量
64
仓库
GitHub 星标数
12
首次出现
2026年1月24日
安全审计
安装于
opencode55
codex54
gemini-cli50
github-copilot46
cursor43
kimi-cli42
Expert guidance for quantum computing, quantum algorithms, Qiskit programming, and quantum information theory.
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit import Aer, execute, transpile
from qiskit.visualization import plot_histogram, plot_bloch_multivector
import numpy as np
# Basic Quantum Circuit
def create_bell_state():
"""Create Bell state (maximally entangled state)"""
qc = QuantumCircuit(2, 2)
# Create superposition on qubit 0
qc.h(0)
# Entangle qubits 0 and 1
qc.cx(0, 1)
# Measure both qubits
qc.measure([0, 1], [0, 1])
return qc
# Quantum Teleportation
def quantum_teleportation():
"""Implement quantum teleportation protocol"""
qc = QuantumCircuit(3, 3)
# Prepare state to teleport (qubit 0)
qc.ry(np.pi/4, 0)
# Create Bell pair between qubits 1 and 2
qc.h(1)
qc.cx(1, 2)
# Bell measurement on qubits 0 and 1
qc.cx(0, 1)
qc.h(0)
qc.measure([0, 1], [0, 1])
# Apply corrections on qubit 2 based on measurement
qc.cx(1, 2)
qc.cz(0, 2)
# Measure final state
qc.measure(2, 2)
return qc
# Grover's Search Algorithm
class GroverSearch:
def __init__(self, n_qubits: int, marked_state: str):
self.n_qubits = n_qubits
self.marked_state = marked_state
self.circuit = None
def create_oracle(self):
"""Create oracle that marks the target state"""
oracle = QuantumCircuit(self.n_qubits)
# Mark the target state by flipping phase
for i, bit in enumerate(reversed(self.marked_state)):
if bit == '0':
oracle.x(i)
# Multi-controlled Z gate
oracle.h(self.n_qubits - 1)
oracle.mcx(list(range(self.n_qubits - 1)), self.n_qubits - 1)
oracle.h(self.n_qubits - 1)
# Uncompute
for i, bit in enumerate(reversed(self.marked_state)):
if bit == '0':
oracle.x(i)
return oracle
def create_diffuser(self):
"""Create diffusion operator"""
diffuser = QuantumCircuit(self.n_qubits)
# Apply H gates
diffuser.h(range(self.n_qubits))
# Apply X gates
diffuser.x(range(self.n_qubits))
# Multi-controlled Z
diffuser.h(self.n_qubits - 1)
diffuser.mcx(list(range(self.n_qubits - 1)), self.n_qubits - 1)
diffuser.h(self.n_qubits - 1)
# Apply X gates
diffuser.x(range(self.n_qubits))
# Apply H gates
diffuser.h(range(self.n_qubits))
return diffuser
def build_circuit(self):
"""Build complete Grover's algorithm circuit"""
self.circuit = QuantumCircuit(self.n_qubits, self.n_qubits)
# Initialize in superposition
self.circuit.h(range(self.n_qubits))
# Calculate optimal number of iterations
n_iterations = int(np.pi / 4 * np.sqrt(2**self.n_qubits))
oracle = self.create_oracle()
diffuser = self.create_diffuser()
# Apply Grover iteration
for _ in range(n_iterations):
self.circuit.compose(oracle, inplace=True)
self.circuit.compose(diffuser, inplace=True)
# Measure
self.circuit.measure(range(self.n_qubits), range(self.n_qubits))
return self.circuit
def run(self, shots: int = 1024):
"""Execute circuit"""
backend = Aer.get_backend('qasm_simulator')
job = execute(self.circuit, backend, shots=shots)
result = job.result()
counts = result.get_counts()
return counts
from qiskit.algorithms import VQE
from qiskit.algorithms.optimizers import SLSQP
from qiskit.circuit.library import TwoLocal
from qiskit.primitives import Estimator
from qiskit.quantum_info import SparsePauliOp
class VQESolver:
"""Variational Quantum Eigensolver for finding ground state energy"""
def __init__(self, hamiltonian: SparsePauliOp, n_qubits: int):
self.hamiltonian = hamiltonian
self.n_qubits = n_qubits
def create_ansatz(self, reps: int = 2):
"""Create parameterized quantum circuit (ansatz)"""
ansatz = TwoLocal(
self.n_qubits,
'ry',
'cz',
reps=reps,
entanglement='linear'
)
return ansatz
def run_vqe(self):
"""Run VQE algorithm"""
ansatz = self.create_ansatz()
optimizer = SLSQP(maxiter=100)
estimator = Estimator()
vqe = VQE(estimator, ansatz, optimizer)
result = vqe.compute_minimum_eigenvalue(self.hamiltonian)
return {
"eigenvalue": result.eigenvalue,
"optimal_parameters": result.optimal_parameters,
"optimal_point": result.optimal_point,
"cost_function_evals": result.cost_function_evals
}
# Example: H2 molecule
def create_h2_hamiltonian():
"""Create Hamiltonian for H2 molecule"""
# Simplified Hamiltonian
hamiltonian = SparsePauliOp.from_list([
("II", -1.0523732),
("IZ", 0.39793742),
("ZI", -0.39793742),
("ZZ", -0.01128010),
("XX", 0.18093119)
])
return hamiltonian
from qiskit_machine_learning.algorithms import VQC
from qiskit_machine_learning.neural_networks import CircuitQNN
from qiskit.circuit import Parameter
import numpy as np
class QuantumClassifier:
"""Variational Quantum Classifier"""
def __init__(self, n_features: int, n_classes: int):
self.n_features = n_features
self.n_classes = n_classes
self.vqc = None
def create_feature_map(self):
"""Create feature map to encode classical data"""
qc = QuantumCircuit(self.n_features)
for i in range(self.n_features):
param = Parameter(f'x[{i}]')
qc.ry(param, i)
return qc
def create_ansatz(self):
"""Create parameterized circuit"""
ansatz = TwoLocal(
self.n_features,
['ry', 'rz'],
'cz',
reps=2,
entanglement='full'
)
return ansatz
def train(self, X_train, y_train):
"""Train quantum classifier"""
feature_map = self.create_feature_map()
ansatz = self.create_ansatz()
self.vqc = VQC(
num_qubits=self.n_features,
feature_map=feature_map,
ansatz=ansatz,
optimizer=SLSQP(maxiter=100)
)
self.vqc.fit(X_train, y_train)
def predict(self, X_test):
"""Predict using trained model"""
return self.vqc.predict(X_test)
❌ Deep circuits on NISQ devices ❌ Ignoring hardware connectivity ❌ No error mitigation ❌ Claiming quantum advantage without proof ❌ Not validating with simulation first ❌ Ignoring decoherence times ❌ Inefficient state preparation
Weekly Installs
64
Repository
GitHub Stars
12
First Seen
Jan 24, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode55
codex54
gemini-cli50
github-copilot46
cursor43
kimi-cli42
学术论文写作全流程指南:从规划到精炼,涵盖各学科结构与最佳实践
369 周安装