📕

『誰でも作れる!君だけの量子コンピュータ』第1章(拡張編)

に公開

― 無限を有限に落とす工学 ―


1. 固定小数点誤差伝播解析

まず前提。

Q1.15 の最小分解能:

\epsilon = 2^{-15} \approx 3.05 \times 10^{-5}

■ 加算誤差

加算は誤差を増幅しない。

最大誤差:

\epsilon_{add} = 2\epsilon

問題なし。


■ 乗算誤差

乗算では誤差が掛け算される。

理想:

x \cdot y

実装:

(x + \delta_x)(y + \delta_y)

展開:

xy + x\delta_y + y\delta_x + \delta_x\delta_y

支配項:

|x|\epsilon + |y|\epsilon

最大誤差:

\approx 2\epsilon

スケーリング後:

\approx 6 \times 10^{-5}

■ Hゲート1回の誤差

Hは:

2加算 + 2乗算

誤差上限:

\epsilon_H \approx 4\epsilon

≈ 1.2e-4


■ n回適用時

理論的上限:

\epsilon_{total} \approx n \cdot \epsilon_H

1000回で:

≈ 0.12

つまり振幅が10%ズレる可能性。

ここで正規化が効く。


2. エラー上限理論評価

量子状態のノルム誤差:

\Delta = |\alpha|^2 + |\beta|^2 - 1

最大誤差近似:

\Delta \approx 2|\alpha|\delta_\alpha + 2|\beta|\delta_\beta

最悪ケース:

\approx 4\epsilon

Q1.15なら許容範囲。

Q1.11なら破綻する。

つまりビット幅は思想。


3. LUT vs DSP最適化議論

■ 選択肢A:LUT乗算

  • 資源軽い
  • 低精度
  • 遅い

■ 選択肢B:DSPブロック

  • 高精度
  • 高速
  • 消費大

■ Tang Nano 4Kの場合

DSPブロック:8個

1-qubitに必要:

  • 乗算2〜4
  • 正規化で+3

合計7

ギリ。

2-qubitはDSP爆発。

つまり:

今の設計は1-qubit専用最適化。

ここにスケーリング問題が現れる。


4. パイプライン遅延設計

100MHzクロック。

■ パイプライン段数

Stage 0: 入力ラッチ
Stage 1: 加算
Stage 2: 乗算部分積
Stage 3: 加減算
Stage 4: シフト
Stage 5: 書き戻し

6段。

遅延:

6 × 10ns = 60ns

量子ゲート1発60ns。


■ スループット

パイプライン化すれば、

1クロックごとに新演算投入可能。

つまり:

100MHzで毎秒1億ゲート。

理論的には冷凍機より速い。

(スケールは別問題)


5. レイテンシ vs 精度トレードオフ

精度上げるなら:

  • Q1.23(24bit)
  • 乗算48bit
  • DSP倍増

しかし:

DSP足りない。

遅延増える。

つまり:

精度と速度は交換関係。

工学の現実。


6. 有限精度と量子の哲学

数学世界:

\mathbb{C}^2

FPGA世界:

\mathbb{Z}_{2^{16}}^4

連続空間を格子に落とす。

ヒルベルト空間を量子化する。

皮肉だ。

量子を実装するために、
また量子化している。


7. エラー発散シミュレーション

理論的に:

Hを無限回繰り返すと周期2。

実装では:

微妙に周期ズレ。

そのズレを観察する実験。

【ここに誤差推移グラフを貼る】

これは学術的にも面白い。


8. ここまでのまとめ(工学的)

  • 数式は理想
  • 固定小数点は近似
  • 誤差は蓄積
  • 正規化で抑制
  • DSPは資源
  • LUTは制約
  • パイプラインは速度

量子エンジン設計は、

DSP最適化問題である。


  • 凡人
    「量子入門書だよな?」

  • エディ
    「うん。でも現実を知らない量子は危険だよ。」


9. この章で得たもの

あなたは今、

  • 数式を回路に落とした
  • 無限を有限に圧縮した
  • 誤差を見積もった
  • リソースを評価した

もう量子は神秘ではない。

量子は設計対象だ。


Discussion