Claude Code Plugins

Community-maintained marketplace

Feedback

quantum-algorithms

@benchflow-ai/skillsbench
15
0

Implement quantum algorithms including Grover's search, VQE, QAOA, and QFT. Use when building quantum algorithms or optimization subroutines.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name quantum-algorithms
description Implement quantum algorithms including Grover's search, VQE, QAOA, and QFT. Use when building quantum algorithms or optimization subroutines.

Quantum Algorithms

pip install qiskit qiskit-aer qiskit-algorithms numpy scipy

Quantum Fourier Transform

def qft(n_qubits):
    """QFT with controlled-phase and swap gates."""
    qc = QuantumCircuit(n_qubits)
    for j in range(n_qubits):
        qc.h(j)
        for k in range(j + 1, n_qubits):
            qc.cp(np.pi / (2 ** (k - j)), k, j)
    for i in range(n_qubits // 2):
        qc.swap(i, n_qubits - i - 1)
    return qc

Grover's Search

def grovers_algorithm(marked_states, n_qubits, iterations=None):
    """Amplitude amplification - optimal iterations: π/4 * sqrt(N/M)."""
    if iterations is None:
        iterations = int(np.floor(np.pi / 4 * np.sqrt(2**n_qubits / len(marked_states))))
    qc = QuantumCircuit(n_qubits, n_qubits)
    qc.h(range(n_qubits))
    for _ in range(iterations):
        qc.compose(grover_oracle(marked_states, n_qubits), inplace=True)
        qc.compose(grover_diffuser(n_qubits), inplace=True)
    qc.measure(range(n_qubits), range(n_qubits))
    return qc

def grover_oracle(marked_states, n_qubits):
    """Phase flip marked states - flip 0s, MCZ, unflip."""
    oracle = QuantumCircuit(n_qubits)
    for state in marked_states:
        for i, bit in enumerate(reversed(state)):
            if bit == '0': oracle.x(i)
        oracle.h(n_qubits - 1); oracle.mcx(list(range(n_qubits - 1)), n_qubits - 1); oracle.h(n_qubits - 1)
        for i, bit in enumerate(reversed(state)):
            if bit == '0': oracle.x(i)
    return oracle

def grover_diffuser(n_qubits):
    """Reflection about uniform superposition."""
    qc = QuantumCircuit(n_qubits)
    qc.h(range(n_qubits)); qc.x(range(n_qubits))
    qc.h(n_qubits - 1); qc.mcx(list(range(n_qubits - 1)), n_qubits - 1); qc.h(n_qubits - 1)
    qc.x(range(n_qubits)); qc.h(range(n_qubits))
    return qc

VQE & QAOA

def vqe_ansatz(n_qubits, depth=1):
    """Hardware-efficient ansatz with RY-RZ + CX entangling."""
    from qiskit.circuit import Parameter
    qc = QuantumCircuit(n_qubits)
    idx = 0
    for d in range(depth):
        for i in range(n_qubits):
            qc.ry(Parameter(f'θ{idx}'), i); qc.rz(Parameter(f'φ{idx}'), i); idx += 1
        for i in range(n_qubits - 1): qc.cx(i, i + 1)
    return qc

def maxcut_qaoa(graph, p=1):
    """QAOA for MaxCut - cost (ZZ interactions) + mixer (X rotations)."""
    from qiskit.circuit import Parameter
    n, qc = len(graph.nodes()), QuantumCircuit(len(graph.nodes()))
    gamma, beta = [Parameter(f'γ{i}') for i in range(p)], [Parameter(f'β{i}') for i in range(p)]
    qc.h(range(n))
    for layer in range(p):
        for i, j in graph.edges():
            qc.cx(i, j); qc.rz(gamma[layer], j); qc.cx(i, j)
        for i in range(n): qc.rx(2 * beta[layer], i)
    return qc