Science Workflow

量子計算

線形型を用いた量子状態のモデリング

Back to Science Hub

量子計算でのSounio

Sounioは、量子力学的「複製禁止定理」をコンパイル時に実行させることにより、線形型を介して実行されます。Qubitは、正確に一度だけ消費される必要がある線形リソースです。コピーを試みるとコンパイルエラーが発生します。

量子状態のモデリングによる線形型

// Qubitは複製できません。
// 標準的な量子ゲート(H, X, Y, Z, CNOT)はQubitを消費し、返します。

fn apply_hadamard(q: Qubit) -> Qubit {
    // Hゲートを適用 ...
}

struct QubitPair { fst: Qubit, snd: Qubit }

fn apply_cnot_pair(control: Qubit, target: Qubit) -> QubitPair {
    // CNOTゲートを適用 ...
}

fn bell_state() -> QubitPair {
    let q1 = allocate_qubit()
    let q2 = allocate_qubit()

    let h1 = apply_hadamard(q1)
    let pair = apply_cnot_pair(h1, q2)

    pair
}