第4章: 中性原子

⚛️ 光ツイーザー、Rydberg封鎖、そして1原子ずつ組み立てるレジスタ

📖 読了時間: 40-45分 📊 難易度: 上級 💻 コード例: 6個 📝 演習問題: 5問

🌐 JP | 🇬🇧 EN | Last sync: 2026-08-13

基礎数理道場 > 量子ハードウェア入門 > 第4章

第2章と第3章の2つの方式は、ある軸の両端に位置しています。超伝導量子ビットは作り込まれた人工物です。高速で、集積度が高く、そして自分を構成する材料の欠陥に律速されます。イオントラップの量子ビットは天然の対象です。低速で、宇宙のどのイオンとも同一で、そして自分を保持する電極表面で起きることに律速されます。本章で扱うのは、この後者の性質をさらに押し進めた方式です。光ツイーザー中の中性原子を保持しているのは、光だけです。近くに電極はなく、接合もなく、酸化膜もなく、そして — ここが際立った点ですが — 量子ビットそのものの製造工程がどこにも存在しません。

これは材料問題を解決してしまったように聞こえますし、ある意味では実際にそうです。しかしその帰結は、勝利宣言というより教訓的なものです。材料問題を取り除くと、残る限界は原子物理であり、原子物理は交渉に応じません。Rydberg状態の寿命、基底状態原子の分極率、光子1個の反跳 — これらが、どれだけプロセスを磨いても下げられない誤り床を定めます。その床がどこにあり、何でできているのかを理解することが本章の目的です。

本章ではまた、量子ハードウェアの使い方として本質的に異なるものに出会います。本コースの対をなすアルゴリズム編は、すべてデジタルモデルを前提としていました。レジスタ、離散的なゲートの列、測定です。中性原子配列はそのようにも動かせますが、アナログモード、すなわち原子間の相互作用ハミルトニアン自体が調べたい模型であるという動作も可能です。それは Ising模型のシミュレーションではありません。原子でできた Ising模型そのものであり、そのパラメータをレーザーで設定するのです。

単位と規約。 第1章から第3章と同様、ハミルトニアンは $\hbar = 1$ で書きます。したがってハミルトニアンは角周波数の次元をもち、「$V/h = 10$ MHz」と書かれた結合は $V = 2\pi\hbar \times 10^7\ \mathrm{s^{-1}}$ を意味します。冷却原子分野の慣用単位は、レーザー結合と相互作用に MHz(第2章の超伝導回路では GHz、第3章のイオンでは MHz)、温度に µK、距離に µm です。本章で一貫して用いる換算は $h \times 1\ \text{MHz} = k_B \times 48.0\ \mu\mathrm{K} = 4.14\ \mathrm{neV}$ です。$T_1$、$T_2$、$T_2^\ast$ の定義は第1章で固定したものをそのまま使います。量子ビットの順序はシリーズ全体と同じビッグエンディアンで、2原子状態 $|q_0 q_1\rangle$ では原子0が左端の記号かつ基底添字の最上位ビットです。

学習目標

本章を修了すると、以下のことができるようになります:


4.1 光から力を作る

2つの力、そしてトラップになるのは一方だけ

レーザー光は原子に2種類の異なる力を及ぼします。この区別が本章全体を組織します。

第1は散乱力(放射圧)です。原子はビームから光子を吸収してその運動量 $\hbar k$ をビーム方向に受け取り、ランダムな方向へ再放出します。多数のサイクルで平均すると再放出は寄与しないので、正味の力は $\hbar k$ に散乱率を掛けたものになります:

$$ F_{\text{scatt}} = \hbar k \, \Gamma_{\text{sc}}, \qquad \Gamma_{\text{sc}} = \frac{\Gamma}{2}\,\frac{s_0}{1 + s_0 + \left(2\delta/\Gamma\right)^2} $$

ここで $\Gamma$ は遷移の自然線幅、$s_0 = I/I_{\text{sat}}$ は飽和パラメータ、$\delta = \omega_L - \omega_0 - \mathbf{k}\cdot\mathbf{v}$ は運動する原子が見る離調です。この力は散逸的です — 自発放出される光子とともにエントロピーを持ち去ります — そして飽和します。$s_0 \to \infty$ では原子は時間の半分を励起状態で過ごし、$\Gamma_{\text{sc}} \to \Gamma/2$ となります。

第2は双極子力で、4.2節で扱います。こちらは保存力でポテンシャルから導かれ、飽和せず、ツイーザーで実際に原子を保持しているのはこの力です。2つの力は離調依存性が異なります — 散乱力は $1/\delta^2$、双極子力は $1/\delta$ で減衰します — そしてこれこそが、大きく離調したトラップが光子をほとんど散乱させずに原子を何分も保持できる理由のすべてです。

Doppler冷却と2つの限界

赤方離調した対向2ビームを原子に当てます。一方のビームに向かって動く原子は、そのビームがDopplerシフトで共鳴に近づいたように見えるので、そちらからより多く吸収し、押し戻されます。2ビームの力を速度の1次まで展開すると粘性的な減衰が得られます:

$$ F \simeq -\alpha v, \qquad \alpha = -\frac{8\hbar k^2 s_0 (\delta/\Gamma)}{\left[1 + s_0 + (2\delta/\Gamma)^2\right]^2} $$

$\delta < 0$ でこれは正になります。これが光モラセスで、3次元にして磁場勾配を加えると(復元力が速度依存だけでなく位置依存にもなり)磁気光学トラップ(MOT)になります。

冷却は無限には続きません。運動を減衰させるのと同じ光子が運動を蹴りもするからです。減衰とランダムな自発放出による運動量拡散を釣り合わせるとDoppler限界

$$ k_B T_D = \frac{\hbar\Gamma}{2} $$

が得られ、さらにその下に光子1個の運動量で決まる反跳限界 $k_B T_{\text{rec}} = \hbar^2 k^2 / m$ という床があります。どちらも原子と遷移の性質であって装置の性質ではありません — これが本章で最初に現れる「工学では取り除けない限界」です。(偏光勾配冷却などのサブDoppler機構は $T_D$ を破りますが、$T_{\text{rec}}$ は破りません。)

この熱力学には少し立ち止まる価値があります。レーザー冷却は古典統計力学コースの意味での冷凍機ではありません — 低温熱浴が存在しないのです。これは、指向性のある入射と等方的な出射という光子の流れによってエントロピーを外へ送り出す散乱過程です。だからこそ室温の真空槽の中で機能するのであり、また $10^4$ 個の原子雲の「温度」が速度分布についての言明でしかない理由でもあります。

Code Example 1: 放射圧とDoppler限界

"""放射圧、Doppler限界、そして減速器の長さ。

定数はSI単位系。結果は冷却原子の実験室で使われる単位で印字します。
"""
import numpy as np

# --- 基礎物理定数(SI単位系)----------------------------------------------
hbar = 1.054571817e-34        # J s
kB = 1.380649e-23             # J / K
u = 1.66053906660e-27         # kg
g_earth = 9.80665             # m / s^2

# --- Rb-87 D2線 ----------------------------------------------------------
m = 86.909180527 * u          # kg
lam = 780.241209e-9           # m
Gamma = 2 * np.pi * 6.0666e6  # s^-1、自然線幅
k = 2 * np.pi / lam           # m^-1

v_rec = hbar * k / m                    # 光子1個の反跳速度
a_max = hbar * k * Gamma / (2 * m)      # 完全飽和での減速度
T_dopp = hbar * Gamma / (2 * kB)        # Doppler限界
T_rec = hbar ** 2 * k ** 2 / (m * kB)   # 反跳温度

print("Rb-87 D2線")
print(f"  wavelength                   {lam * 1e9:.2f} nm")
print(f"  linewidth Gamma/2pi          {Gamma / (2 * np.pi) / 1e6:.3f} MHz")
print(f"  excited-state lifetime 1/G   {1 / Gamma * 1e9:.1f} ns")
print(f"  recoil velocity hbar k / m   {v_rec * 1e3:.3f} mm/s")
print(f"  max deceleration hbar k G/2m {a_max:.3e} m/s^2 = {a_max / g_earth:.3e} g")
print(f"  Doppler limit hbar G / 2 kB  {T_dopp * 1e6:.1f} uK")
print(f"  recoil temperature           {T_rec * 1e6:.3f} uK")


def scattering_rate(s0, detuning, v):
    """1本のビームによる光子散乱率。detuning と v はSI単位。"""
    delta = detuning - k * v      # 原子が見るDopplerシフト後の離調
    return 0.5 * Gamma * s0 / (1.0 + s0 + (2.0 * delta / Gamma) ** 2)


# --- 減速器はどれだけ長くなければならないか ------------------------------
T_source = 300.0
v_th = np.sqrt(3 * kB * T_source / m)
print()
print(f"熱的ビーム({T_source:.0f} K): v_rms = {v_th:.1f} m/s, "
      f"停止までに光子 {v_th / v_rec:.3e} 個")
print(f"{'eta = a/a_max':>14}{'a (m/s^2)':>12}{'stop time (ms)':>16}{'stop length (m)':>17}")
for eta in [0.3, 0.5, 0.7, 1.0]:
    a = eta * a_max
    print(f"{eta:>14.1f}{a:>12.3e}{v_th / a * 1e3:>16.2f}{v_th ** 2 / (2 * a):>17.3f}")

# --- 光モラセス:減衰係数と捕獲速度 --------------------------------------
print()
print("光モラセス(各軸に対向2ビーム、s0 = 0.2):")
s0 = 0.2
print(f"{'detuning/Gamma':>15}{'alpha (kg/s)':>14}{'m/alpha (us)':>14}{'v_cap (m/s)':>13}")
for d in [-0.25, -0.5, -1.0, -2.0]:
    D = 1.0 + s0 + (2.0 * d) ** 2
    alpha = -8.0 * hbar * k ** 2 * s0 * d / D ** 2   # 1次で F = -alpha v
    print(f"{d:>15.2f}{alpha:>14.3e}{m / alpha * 1e6:>14.2f}{abs(d) * Gamma / k:>13.2f}")

# --- 低速展開の数値的検証 ------------------------------------------------
d, v = -0.5, 0.01
F_exact = hbar * k * (scattering_rate(s0, d * Gamma, v) - scattering_rate(s0, d * Gamma, -v))
D = 1.0 + s0 + (2.0 * d) ** 2
alpha = -8.0 * hbar * k ** 2 * s0 * d / D ** 2
print()
print(f"検証(v = {v} m/s, 離調 = {d} Gamma):")
print(f"  厳密な2ビーム力      {F_exact:+.4e} N")
print(f"  -alpha v              {-alpha * v:+.4e} N")
print(f"  比                    {F_exact / (-alpha * v):.5f}")
print()
print("捕獲速度は毎秒数メートル。熱速度はその数百倍です。")
print("Zeeman減速器や2D-MOTが買っているのは、到達温度ではなくこの隔たりです。")
Rb-87 D2線
  wavelength                   780.24 nm
  linewidth Gamma/2pi          6.067 MHz
  excited-state lifetime 1/G   26.2 ns
  recoil velocity hbar k / m   5.885 mm/s
  max deceleration hbar k G/2m 1.122e+05 m/s^2 = 1.144e+04 g
  Doppler limit hbar G / 2 kB  145.6 uK
  recoil temperature           0.362 uK

熱的ビーム(300 K): v_rms = 293.4 m/s, 停止までに光子 4.986e+04 個
 eta = a/a_max   a (m/s^2)  stop time (ms)  stop length (m)
           0.3   3.365e+04            8.72            1.280
           0.5   5.608e+04            5.23            0.768
           0.7   7.851e+04            3.74            0.548
           1.0   1.122e+05            2.62            0.384

光モラセス(各軸に対向2ビーム、s0 = 0.2):
 detuning/Gamma  alpha (kg/s)  m/alpha (us)  v_cap (m/s)
          -0.25     1.301e-21        110.92         1.18
          -0.50     1.130e-21        127.67         2.37
          -1.00     4.047e-22        356.63         4.73
          -2.00     7.397e-23       1950.94         9.47

検証(v = 0.01 m/s, 離調 = -0.5 Gamma):
  厳密な2ビーム力      -1.1304e-23 N
  -alpha v              -1.1304e-23 N
  比                    1.00000

捕獲速度は毎秒数メートル。熱速度はその数百倍です。
Zeeman減速器や2D-MOTが買っているのは、到達温度ではなくこの隔たりです。

着目点。 この出力の3つの数値は記憶に値します。

減速度は巨大なのに、停止距離はそれでも大きい。 ルビジウム原子は完全飽和で $1.1\times 10^5\ \mathrm{m/s^2}$ — 重力加速度の1万1千倍 — で減速します。何でも瞬時に止まりそうに聞こえます。しかし熱的原子は300 Kの源を293 m/sで出発し、$v^2/2a$ は理論上の最大値でも38 cmです。実際の減速器が使う $\eta \approx 0.5$ の設計余裕では77 cmになります。冷却原子装置の前段が磁石コイルを巻いた1メートルの真空管である理由はこれで、この数字は工学上の妥協ではなく $v_{\text{th}}^2 m / (\hbar k \Gamma)$ そのものです。

原子1個あたり5万個の光子。 原子1個を止めるには $v_{\text{th}}/v_{\text{rec}} \approx 5\times10^4$ 回の吸収-放出サイクルが必要で、そのすべてが原子を同じ基底状態に戻さなければサイクルは破れます。これがレーザー冷却が閉じた循環遷移をもつアルカリ・アルカリ土類で機能し、それ以外のほとんど — とくに大半の分子 — で困難な理由です。

捕獲速度は毎秒数メートル。 モラセスの減衰は強く $m/\alpha$ は100 µs程度ですが、作用するのはDopplerシフトが離調と同程度の原子、すなわち $v \lesssim |\delta|/k \approx$ 数 m/s だけです。熱分布はその数百倍です。Zeeman減速器や2次元MOTの存在意義は、この100倍の隔たりを埋めることに尽きます。それに比べれば到達温度はほとんど付随的です。

ここで現れなかったものに注目してください。固体の物性は1つも登場していません。上のすべての数値を決める2つの定数 $\Gamma$ と $k$ は、ルビジウム原子に属しています。


4.2 光ツイーザー

双極子力

振動電場の中の原子は誘起双極子モーメント $\mathbf{p} = \alpha \mathbf{E}$ をもち、自分が誘起した電場とその双極子の相互作用エネルギーは、光の1周期で平均すると

$$ U_{\text{dip}}(\mathbf{r}) = -\frac{1}{2\epsilon_0 c}\,\mathrm{Re}\,\alpha(\omega_L)\, I(\mathbf{r}) $$

となります。関係するすべての共鳴より低い周波数(「赤方離調」)にレーザーを合わせると $\mathrm{Re}\,\alpha > 0$ となり、エネルギーは強度が最大の場所で最小になるので、原子は焦点へ引き込まれます。機構はこれだけです。集光したレーザービームは、その強度分布が形をなすポテンシャル井戸なのです。

両D線から大きく離調しているが微細構造が無視できるほどではないアルカリ原子では、分極率はこの2つの遷移で支配され、標準的な結果は

$$ U_{\text{dip}}(\mathbf{r}) = -\frac{\pi c^2}{2}\left[\frac{2\Gamma_{D2}}{\omega_{D2}^3}\left(\frac{1}{\omega_{D2} - \omega_L} + \frac{1}{\omega_{D2} + \omega_L}\right) + \frac{\Gamma_{D1}}{\omega_{D1}^3}\left(\frac{1}{\omega_{D1} - \omega_L} + \frac{1}{\omega_{D1} + \omega_L}\right)\right] I(\mathbf{r}) $$

です。重み2と1は $D_2$ 遷移と $D_1$ 遷移の線強度、各括弧内の第2項は逆回転項で、光トラップ波長では効くにもかかわらずしばしば断りなく落とされます。対応する光子散乱率には $\Gamma/\delta$ が余分に付き、これが決定的な非対称性を生みます:

$$ \frac{U_{\text{dip}}}{\hbar\Gamma_{\text{sc}}} \sim \frac{\delta}{\Gamma} $$

トラップ波長1064 nm、ルビジウムのD線が780 nm付近なら $\delta/\Gamma \sim 10^7$ です。この1千万倍が、光ツイーザーを加熱器ではなくトラップにしています。

集光ビームの幾何

パワー $P$、ウエスト $w_0$ のGaussビームの強度は

$$ I(r, z) = \frac{2P}{\pi w(z)^2}\exp!\left(-\frac{2r^2}{w(z)^2}\right), \qquad w(z) = w_0\sqrt{1 + (z/z_R)^2}, \qquad z_R = \frac{\pi w_0^2}{\lambda} $$

です。焦点まわりで展開すると3次元調和トラップになり、

$$ \omega_r = \sqrt{\frac{4U_0}{m w_0^2}}, \qquad \omega_z = \sqrt{\frac{2U_0}{m z_R^2}}, \qquad \frac{\omega_r}{\omega_z} = \sqrt{2}\,\frac{z_R}{w_0} = \frac{\sqrt{2}\pi w_0}{\lambda} $$

となります。アスペクト比は $w_0/\lambda$ のみに依存するので、回折限界のツイーザーは必ずビーム方向で横方向より数倍弱くなります。この幾何学的事実ひとつが原子配列の設計を支配します。ビームに垂直な面内の2次元配列が自然であり、3次元へ広げるには複数のビーム方向を用いるか、はるかに柔らかい軸を受け入れるしかありません。

ロードと「50%問題」

原子は低温の原子雲からツイーザーへロードされ、その後トラップは意図的に損失性にされます。光支援衝突が原子を対で追い出すので、トラップには原子1個か0個のどちらかが、それぞれほぼ1/2の確率で残ります。この「衝突封鎖」が単一原子占有を確実にする仕組みであり、同時に、ロード直後の $N$ サイト配列にはランダムな位置に約 $N/2$ 個の原子しか入っていない理由でもあります。

解決策はこの方式を実用化した技術そのものです。配列を撮像し、どのサイトが埋まっているかを求め、可動ツイーザーで原子を1個ずつ動かして目標の幾何が欠陥なく埋まるまで並べ替えます。並べ替えは実時間の古典制御問題 — 検出、衝突しない移動集合の計画、実行 — であり、時間を消費します。その時間は4.5節でデューティ比として再登場します。その代価として得られるものは注目に値します。レジスタの幾何がソフトウェアになるのです。鎖、正方格子、三角格子、Kagome格子、あるいは任意のグラフが、同じ装置とホログラムの違いだけで実現します。

Code Example 2: ツイーザーの深さ、振動数、加熱

"""光ツイーザー:Gaussビームの双極子ポテンシャル、深さ、トラップ振動数、加熱。

Code Example 1 の続き(同一セッション)。
"""
import numpy as np

c = 2.99792458e8

# --- Rb-87のD1線とD2線:(波長, 線幅, 線強度の重み) ------------------------
lines = [(794.978851e-9, 2 * np.pi * 5.7500e6, 1.0),    # D1線、重み1
         (780.241209e-9, 2 * np.pi * 6.0666e6, 2.0)]    # D2線、重み2

lam_L = 1064e-9                      # トラップレーザー:両D線から遠く赤方離調
omega_L = 2 * np.pi * c / lam_L
k_L = 2 * np.pi / lam_L
E_rec = hbar ** 2 * k_L ** 2 / (2 * m)          # トラップ波長での反跳エネルギー


def dipole_coefficients():
    """D線について和をとった U/I(J/(W/m^2))と Gamma_sc/I(s^-1/(W/m^2))。"""
    u_sum, g_sum = 0.0, 0.0
    for lam_i, Gam_i, w_i in lines:
        w0 = 2 * np.pi * c / lam_i
        # 回転項と逆回転項の和。赤方離調では括弧内が正になる
        br = 1.0 / (w0 - omega_L) + 1.0 / (w0 + omega_L)
        u_sum += w_i * Gam_i / w0 ** 3 * br
        g_sum += w_i * (Gam_i ** 2 / w0 ** 3) * (omega_L / w0) ** 3 * br ** 2
    return -0.5 * np.pi * c ** 2 * u_sum, 0.5 * np.pi * c ** 2 / hbar * g_sum


U_per_I, Gsc_per_I = dipole_coefficients()
alpha_au = -U_per_I * 2 * 8.8541878128e-12 * c / 1.64877727436e-41  # 相互検証用


def tweezer(P, w0):
    """ピーク強度、深さ(K)、Rayleigh長、トラップ振動数(Hz)、Gamma_sc を返す。"""
    I0 = 2.0 * P / (np.pi * w0 ** 2)
    U0 = U_per_I * I0                       # J、負の値
    zR = np.pi * w0 ** 2 / lam_L
    nu_r = np.sqrt(4.0 * abs(U0) / (m * w0 ** 2)) / (2 * np.pi)
    nu_z = np.sqrt(2.0 * abs(U0) / (m * zR ** 2)) / (2 * np.pi)
    return I0, -U0 / kB, zR, nu_r, nu_z, Gsc_per_I * I0


print(f"トラップレーザー {lam_L * 1e9:.0f} nm")
print(f"  U/I        = {U_per_I:.4e} J per (W/m^2)"
      f"  = {-U_per_I / kB * 1e7 * 1e6:.3f} uK per (kW/cm^2)")
print(f"  ここから導かれる基底状態分極率: {alpha_au:.1f} 原子単位")
print(f"  Gamma_sc/I = {Gsc_per_I:.4e} s^-1 per (W/m^2)")
print(f"  (|U|/hbar) / Gamma_sc = {abs(U_per_I) / (hbar * Gsc_per_I):.3e}"
      f"   (rad/s で表したトラップ深さ ÷ 毎秒の散乱光子数)")
print(f"  {lam_L * 1e9:.0f} nm での反跳エネルギー: {E_rec / kB * 1e6:.4f} uK")
print()
hdr = (f"{'P (mW)':>7}{'w0 (um)':>9}{'I0 (kW/cm2)':>13}{'depth (mK)':>12}"
       f"{'zR (um)':>9}{'nu_r (kHz)':>11}{'nu_z (kHz)':>11}{'G_sc (1/s)':>11}")
print(hdr)
print("-" * len(hdr))
for P, w0 in [(2e-3, 1.0e-6), (5e-3, 1.0e-6), (5e-3, 1.5e-6), (20e-3, 2.0e-6)]:
    I0, depth, zR, nu_r, nu_z, gsc = tweezer(P, w0)
    print(f"{P * 1e3:>7.1f}{w0 * 1e6:>9.1f}{I0 * 1e-7:>13.3f}{depth * 1e3:>12.4f}"
          f"{zR * 1e6:>9.2f}{nu_r * 1e-3:>11.3f}{nu_z * 1e-3:>11.3f}{gsc:>11.3f}")

# --- 基準ツイーザーの詳細 ------------------------------------------------
P, w0 = 5e-3, 1.0e-6
I0, depth, zR, nu_r, nu_z, gsc = tweezer(P, w0)
U0 = depth * kB
dTdt = 2.0 * gsc * E_rec / (3.0 * kB)      # 3次元調和トラップの全エネルギーは 3 kB T
print()
print(f"基準ツイーザー: P = {P * 1e3:.0f} mW, w0 = {w0 * 1e6:.1f} um, "
      f"深さ = {depth * 1e6:.1f} uK")
print(f"  径方向の調和長           {np.sqrt(hbar / (m * 2 * np.pi * nu_r)) * 1e9:.1f} nm"
      f"  = {np.sqrt(hbar / (m * 2 * np.pi * nu_r)) / w0:.4f} w0")
print(f"  束縛準位数               径方向 {U0 / (2 * np.pi * hbar * nu_r):.0f}, "
      f"軸方向 {U0 / (2 * np.pi * hbar * nu_z):.0f}")
print(f"  反跳加熱                 {dTdt * 1e6:.3f} uK/s")
print(f"  深さの1/10まで加熱する時間 {0.1 * depth / dTdt:.0f} s")
print(f"  T = 深さ/10 の原子:      {0.1 * depth * 1e6:.1f} uK, "
      f"径方向の平均量子数 {0.1 * depth * kB / (2 * np.pi * hbar * nu_r):.1f}")

print()
print("アスペクト比:回折限界のツイーザーはビーム方向で必ず弱くなります。")
for w0 in [0.7e-6, 1.0e-6, 1.5e-6, 2.5e-6]:
    zR = np.pi * w0 ** 2 / lam_L
    _, _, _, nu_r, nu_z, _ = tweezer(5e-3, w0)
    print(f"  w0 = {w0 * 1e6:.1f} um -> zR/w0 = {zR / w0:5.2f}, "
          f"nu_r/nu_z = {nu_r / nu_z:5.2f} (予測値 {np.sqrt(2) * zR / w0:5.2f})")
トラップレーザー 1064 nm
  U/I        = -2.1034e-36 J per (W/m^2)  = 1.524 uK per (kW/cm^2)
  ここから導かれる基底状態分極率: 677.3 原子単位
  Gamma_sc/I = 5.5019e-10 s^-1 per (W/m^2)
  (|U|/hbar) / Gamma_sc = 3.625e+07   (rad/s で表したトラップ深さ ÷ 毎秒の散乱光子数)
  1064 nm での反跳エネルギー: 0.0973 uK

 P (mW)  w0 (um)  I0 (kW/cm2)  depth (mK)  zR (um) nu_r (kHz) nu_z (kHz) G_sc (1/s)
-----------------------------------------------------------------------------------
    2.0      1.0      127.324      0.1940     2.95     43.362     10.385      0.701
    5.0      1.0      318.310      0.4849     2.95     68.562     16.419      1.751
    5.0      1.5      141.471      0.2155     6.64     30.472      4.865      0.778
   20.0      2.0      318.310      0.4849    11.81     34.281      4.105      1.751

基準ツイーザー: P = 5 mW, w0 = 1.0 um, 深さ = 484.9 uK
  径方向の調和長           41.2 nm  = 0.0412 w0
  束縛準位数               径方向 147, 軸方向 615
  反跳加熱                 0.114 uK/s
  深さの1/10まで加熱する時間 427 s
  T = 深さ/10 の原子:      48.5 uK, 径方向の平均量子数 14.7

アスペクト比:回折限界のツイーザーはビーム方向で必ず弱くなります。
  w0 = 0.7 um -> zR/w0 =  2.07, nu_r/nu_z =  2.92 (予測値  2.92)
  w0 = 1.0 um -> zR/w0 =  2.95, nu_r/nu_z =  4.18 (予測値  4.18)
  w0 = 1.5 um -> zR/w0 =  4.43, nu_r/nu_z =  6.26 (予測値  6.26)
  w0 = 2.5 um -> zR/w0 =  7.38, nu_r/nu_z = 10.44 (予測値 10.44)

着目点。 まず読むべきは分極率の相互検証です。D線2本の和は677原子単位を返し、文献値の690付近に対して数%の一致です。遷移2本しか含まない式が、ルビジウムのスペクトル全体にわたる和を数%で再現しています。トラップの計算に原子構造がどれだけ必要かを較正する、有用な目安です。

5 mWのビームが485 µKのトラップを作る。 5ミリワットはレーザーポインタ程度で、それが作るトラップは485 µKの深さ — 反跳限界の約3300倍、Doppler限界の約3倍 — であり、原子がMOTから来るならこれはまさに欲しい余裕です。これほど控えめなパワーで足りるのはピーク強度に $1/w_0^2$ があるためで、1ミクロンに集光すれば5 mWは318 kW/cm² になります。

トラップは著しく非調和で、しかもそれは問題にならない。 径方向の束縛準位は147個あり、調和長はウエストの4%です。最低の数準位にいる原子は十分に調和的な領域にいますし、$T = U_0/10$ の原子は約15量子を占めますがそれでも問題ありません。ツイーザーの調和近似が安全なのは、ポテンシャルが調和的だからではなく、占有されている部分が調和的だからです。

光子散乱は毎秒1.75回で、それがトラップの時計。 散乱1回で約2反跳エネルギーが入るので加熱は0.11 µK/s、原子がトラップ深さの1/10だけ温まるには数百秒かかります。Example 1で冷却力を生んだ26 nsの励起状態寿命と比べてください。同じ原子-光相互作用が、共鳴から7桁離れたところで評価されると、問題中で最速の過程から最遅の過程に変わっています。実際には残留ガスとの衝突が先に効くことが多く、だからこの種の実験は極高真空で行われます — これは材料・表面科学の問題ですが、量子ビットではなく真空槽の問題です。


4.3 Rydberg状態と封鎖

主量子数1つがすべてを変える

基底状態のアルカリ原子は、本章の目的からすれば不活性です。5 µm離れた2原子の間のvan der Waals裾は弱すぎて、どんな実験的時間尺度でも何も起きません。それは量子情報を蓄えるにはまさに望むところであり、2量子ビットゲートには絶対に足りません。中性原子はこれを相互作用をスイッチすることで解決します。原子を主量子数 $n$ の大きな状態、すなわちRydberg状態へ励起すると、軌道半径が $n^2 a_0$ のように増大し、原子は巨大かつ極端に分極しやすくなります。

スケーリングはすべて $n$ のべきであり、それがこの方式の設計パラメータです。

スケーリング 帰結
軌道半径 $n^2$ $n = 70$ で原子の大きさは $\sim 0.3\ \mu$m
隣接Rydberg状態間の双極子行列要素 $n^2$ マイクロ波および他原子との強い結合
van der Waals係数 $C_6$ $n^{11}$ この表で最も速く増大する量
放射寿命 $n^3$ 高い $n$ ほど長く生きる。珍しく、そして有難い
dc分極率 $n^7$ 迷走電場が準位を、しかも大きくシフトさせる
黒体輻射による遷移率 $n^{-2}$ 300 Kでは実効寿命を短くする

永久双極子をもたない2つのRydberg原子は2次のvan der Waalsシフト

$$ V(R) = \frac{C_6}{R^6} $$

で相互作用し、$C_6 \propto n^{11}$ なので $n = 40$ から $n = 80$ へ移るだけで相互作用は $2^{11} = 2048$ 倍になります。

封鎖条件

さて2原子を $|g\rangle \to |r\rangle$ 遷移に共鳴なRabi周波数 $\Omega$ のレーザーで駆動します。対が十分近く

$$ V(R) = \frac{C_6}{R^6} \gg \hbar\Omega $$

であれば、二重励起状態 $|rr\rangle$ は共鳴から外れて占有されません。1原子は励起できるが2原子はできない。これがRydberg封鎖であり、不等式の両辺が釣り合う距離が封鎖半径

$$ R_b = \left(\frac{C_6}{\hbar\Omega}\right)^{1/6} $$

を定めます。この式で重要なのは6乗根です。これにより $R_b$ は $n^{11}$ ではなく $n^{11/6}$ で増え、$\Omega^{-1/6}$ すなわちほとんど変化しません。空間的に鋭い封鎖を生むvan der Waals相互作用の急峻さが、同時に封鎖半径を鈍いつまみにしています。大きく調整できませんし、その必要もありません。

Code Example 3: Rydberg状態のスケーリング則

"""Rydberg状態のスケーリング則:主量子数1つが相互作用を買う仕組み。"""
import numpy as np

# Rb の nS Rydberg状態に対するアンカー値。桁のオーダーの参照値であり、
# 以下で意味を持つのはすべて*比*であって、比はスケーリング則が決める。
n_ref = 70
C6_ref_GHz_um6 = 858.0        # Rb |70S> の C6/h、単位 GHz um^6
tau_ref_us = 150.0            # 室温での |70S> 寿命、単位 us


def C6(n):
    """C6/h(GHz um^6)。C6 は n^11 で増大する。"""
    return C6_ref_GHz_um6 * (n / n_ref) ** 11


def lifetime(n):
    """Rydberg寿命(us)。放射寿命は n^3、黒体輻射律速は n^2。ここでは n^3。"""
    return tau_ref_us * (n / n_ref) ** 3


def blockade_radius(n, Omega_MHz):
    """C6/R_b^6 = hbar*Omega、すなわち (C6/h)/R_b^6 = Omega/2pi となる R_b。"""
    return (C6(n) * 1e3 / Omega_MHz) ** (1.0 / 6.0)     # GHz を MHz に換算


print("Rb nS のスケーリング: C6 ~ n^11、tau ~ n^3、双極子モーメント ~ n^2、"
      "分極率 ~ n^7")
print(f"アンカー: n = {n_ref}, C6/h = {C6_ref_GHz_um6:.0f} GHz um^6, "
      f"tau = {tau_ref_us:.0f} us")
print()
Om = 2.0     # MHz。基底-Rydberg遷移の代表的なRabi周波数
hdr = (f"{'n':>5}{'C6/h (GHz um^6)':>17}{'R_b (um)':>10}{'tau (us)':>10}"
       f"{'Rabi cycles':>13}{'dc-Stark rel.':>15}")
print(hdr)
print("-" * len(hdr))
for n in [40, 50, 60, 70, 80, 100, 120]:
    print(f"{n:>5}{C6(n):>17.3e}{blockade_radius(n, Om):>10.2f}{lifetime(n):>10.1f}"
          f"{Om * lifetime(n):>13.0f}{(n / n_ref) ** 7:>15.2f}")

print()
print(f"Omega/2pi = {Om:.0f} MHz では、封鎖半径は n^(11/6) でしか増えません:")
for n in [50, 100]:
    print(f"  n = {n:>3}: R_b = {blockade_radius(n, Om):5.2f} um")
print(f"  比 {blockade_radius(100, Om) / blockade_radius(50, Om):.3f}"
      f"  対 2^(11/6) = {2 ** (11 / 6):.3f}")

print()
print("封鎖半径とRabi周波数: R_b ~ Omega^(-1/6)。きわめて鈍いつまみです。")
print(f"{'Omega/2pi (MHz)':>17}{'R_b at n=70 (um)':>19}")
for Om_i in [0.2, 1.0, 2.0, 5.0, 20.0]:
    print(f"{Om_i:>17.1f}{blockade_radius(70, Om_i):>19.2f}")

print()
print("van der Waals相互作用は急峻です。格子間隔1つ分での大きさを見ます。")
n, a_um = 70, 5.0
print(f"  n = {n}, 最近接間隔 a = {a_um:.1f} um")
for r in [1, 2, 3, 4]:
    R = r * a_um
    V_MHz = C6(n) * 1e3 / R ** 6
    print(f"    R = {R:5.1f} um ({r} a): V/h = {V_MHz:11.4f} MHz"
          f"   V/(hbar Om) = {V_MHz / Om:10.4f}")

print()
print("相反する2つの要求が、使える n の範囲を両側から挟み込みます:")
print(f"  n が小さい: R_b < 間隔 となり封鎖が起きない "
      f"(n = 40 では R_b = {blockade_radius(40, Om):.2f} um)")
print(f"  n が大きい: dc Stark感度が n^7 で増え、次近接まで封鎖されてしまう")
print(f"  n = 40 -> 120 で、同じ電場ノイズに対する感度は "
      f"{(120 / 40) ** 7:.0f} 倍になる")
Rb nS のスケーリング: C6 ~ n^11、tau ~ n^3、双極子モーメント ~ n^2、分極率 ~ n^7
アンカー: n = 70, C6/h = 858 GHz um^6, tau = 150 us

    n  C6/h (GHz um^6)  R_b (um)  tau (us)  Rabi cycles  dc-Stark rel.
----------------------------------------------------------------------
   40        1.820e+00      3.11      28.0           56           0.02
   50        2.119e+01      4.69      54.7          109           0.09
   60        1.574e+02      6.55      94.5          189           0.34
   70        8.580e+02      8.68     150.0          300           1.00
   80        3.727e+03     11.09     223.9          448           2.55
  100        4.339e+04     16.70     437.3          875          12.14
  120        3.224e+05     23.33     755.7         1511          43.51

Omega/2pi = 2 MHz では、封鎖半径は n^(11/6) でしか増えません:
  n =  50: R_b =  4.69 um
  n = 100: R_b = 16.70 um
  比 3.564  対 2^(11/6) = 3.564

封鎖半径とRabi周波数: R_b ~ Omega^(-1/6)。きわめて鈍いつまみです。
  Omega/2pi (MHz)   R_b at n=70 (um)
              0.2              12.75
              1.0               9.75
              2.0               8.68
              5.0               7.45
             20.0               5.92

van der Waals相互作用は急峻です。格子間隔1つ分での大きさを見ます。
  n = 70, 最近接間隔 a = 5.0 um
    R =   5.0 um (1 a): V/h =     54.9120 MHz   V/(hbar Om) =    27.4560
    R =  10.0 um (2 a): V/h =      0.8580 MHz   V/(hbar Om) =     0.4290
    R =  15.0 um (3 a): V/h =      0.0753 MHz   V/(hbar Om) =     0.0377
    R =  20.0 um (4 a): V/h =      0.0134 MHz   V/(hbar Om) =     0.0067

相反する2つの要求が、使える n の範囲を両側から挟み込みます:
  n が小さい: R_b < 間隔 となり封鎖が起きない (n = 40 では R_b = 3.11 um)
  n が大きい: dc Stark感度が n^7 で増え、次近接まで封鎖されてしまう
  n = 40 -> 120 で、同じ電場ノイズに対する感度は 2187 倍になる

着目点。 この表は、両側に硬い境界をもつ設計空間です。

下から:相互作用がない。 $n = 40$ では $C_6/h$ は2 GHz·µm⁶ を下回り、$\Omega/2\pi = 2$ MHz での封鎖半径は3.1 µmです。ツイーザーは数µmより密に並べられません — 回折限界とトラップ間クロストークの両方が押し戻します — ので、低い $n$ では封鎖半径が実現可能な間隔を下回り、ゲートが成立しません。

上から:他のすべてが悪化する。 $n = 120$ にすると $C_6$ は $1.8\times10^5$ 倍になり封鎖半径は23 µmになりますが、これは大きすぎます。5 µm格子では4サイト離れた原子まで封鎖され、レジスタは個別指定性を失います。同時にdc分極率が $n^7$ で増えるので、$n = 40$ では無視できた同じ迷走電場が $n = 120$ では2187倍のシフトを生みます。Rydberg実験が入念に電場制御された筐体の中で行われるのはこのためで、この感度こそが任意に高い $n$ へ登れない理由です。

相互作用が急峻であること、それが手品の種。 $n = 70$、間隔5 µmでは最近接シフトが55 MHz、次近接が0.86 MHz — $2^6 = 64$ なので64倍の差です。このコントラストが、全体照射のレーザーパルスで最近接対をすべて封鎖しつつ次近接を実質自由に保つことを可能にし、それがまさに4.4節で秩序相を生む構造です。

寿命のスケーリングは唯一の幸運。 ほとんどの量子方式では、相互作用に使う状態は情報を蓄える状態より速く崩壊します。ここではRydberg寿命が $n^3$ で増えるので、寿命内に使えるRabi振動の回数も増えます。$n = 40$ で56回に対し $n = 120$ で1511回です。それでも有限な数であり、4.4節ではこれを誤り床に変換します。

2原子を厳密に

封鎖は述べるのが簡単で、少し間違えるのも簡単なので、厳密に解いておく価値があります。共鳴駆動された2原子は、$|g\rangle = |0\rangle$、$|r\rangle = |1\rangle$ として

$$ \frac{H}{\hbar} = \frac{\Omega}{2}\sum_{i=0,1} X_i - \Delta \sum_{i=0,1} n_i + V\, n_0 n_1, \qquad n_i = \frac{I - Z_i}{2} $$

というハミルトニアンを4次元空間 $\lbrace |gg\rangle, |gr\rangle, |rg\rangle, |rr\rangle \rbrace$ 上にもちます。これは $4\times4$ 行列なので、アルゴリズム編の道具立てをそのまま使えます。行列を組み、指数関数を取り、Born則の確率を読むだけです。$V \to \infty$ の極限では $|rr\rangle$ が除かれ、駆動は $|gg\rangle$ を対称な1励起状態

$$ |W\rangle = \frac{|gr\rangle + |rg\rangle}{\sqrt{2}} $$

にのみ結合し、行列要素は $\langle W| H |gg\rangle = \Omega/\sqrt{2}$ です。したがって対はRabi周波数 $\sqrt{2}\,\Omega$ の2準位系としてふるまいます — 同じレーザーで駆動した1原子より測定可能なほど速いのです。この $\sqrt{2}$ は、占有確率ではなく周波数であり、いかなる効率の較正も要さないので、封鎖の実験的証拠として最も明快なものです。

Code Example 4: 2原子封鎖のダイナミクス

"""2原子のRydberg封鎖:sqrt(2) 倍の集団Rabi周波数。

アルゴリズム編と同じ状態ベクトルの流儀でユニタリ発展を扱います。ハミルトニアン
を行列として組み、指数関数を取り、Born則の確率を読み取ります。
単位は hbar = 1、周波数はすべて Omega 単位。基底はビッグエンディアンで
|q0 q1>、|0> = |g>、|1> = |r>、添字は 2*q0 + q1。
"""
import numpy as np
from scipy.linalg import expm

BASIS = ["gg", "gr", "rg", "rr"]
I2 = np.eye(2, dtype=complex)
X = np.array([[0, 1], [1, 0]], dtype=complex)
NR = np.array([[0, 0], [0, 1]], dtype=complex)      # |r><r| 射影演算子


def H_two_atom(Omega, Delta, V):
    """H/hbar = (Omega/2) sum_i X_i - Delta sum_i n_i + V n_0 n_1 を返す。"""
    H = 0.5 * Omega * (np.kron(X, I2) + np.kron(I2, X))
    H -= Delta * (np.kron(NR, I2) + np.kron(I2, NR))
    H += V * np.kron(NR, NR)
    return H


def populations(psi0, H, times):
    """時間格子全体での4基底状態の占有確率。eigh は1回だけ呼ぶ。"""
    w, U = np.linalg.eigh(H)
    c = U.conj().T @ psi0
    psis = (np.exp(-1j * np.outer(times, w)) * c) @ U.T
    return np.abs(psis) ** 2


psi_gg = np.zeros(4, dtype=complex)
psi_gg[0] = 1.0
Omega = 1.0            # 時間の単位を定める

print("|gg> から両原子を共鳴駆動する。hbar = 1、Omega = 1。")
print()
ts = np.array([0.0, np.pi / 4, np.pi / 2, np.pi / np.sqrt(2), np.pi, 2 * np.pi])
for label, V in [("V = 0 (相互作用なし、独立な2原子)", 0.0),
                 ("V = 1000 Omega (封鎖された2原子)", 1000.0)]:
    pops = populations(psi_gg, H_two_atom(Omega, 0.0, V), ts)
    print(label)
    print(f"  {'Omega t':>10}" + "".join(f"{'P(' + b + ')':>11}" for b in BASIS)
          + f"{'P(1 exc.)':>11}")
    for t, p in zip(ts, pops):
        print(f"  {t:>10.5f}" + "".join(f"{x:>11.6f}" for x in p)
              + f"{p[1] + p[2]:>11.6f}")
    print()

# --- スペクトルから厳密なBohr振動数を得る --------------------------------
print("H の固有値(Omega単位)と、駆動されるBohr振動数:")
print(f"  {'V/Omega':>10}{'eigenvalues':>44}{'omega_Bohr':>12}{'expected':>11}")
for V in [0.0, 1.0, 5.0, 1000.0]:
    H = H_two_atom(Omega, 0.0, V)
    w, U = np.linalg.eigh(H)
    weight = np.abs(U.conj().T @ psi_gg) ** 2
    live = w[weight > 1e-9]
    gap = live.max() - live.min()
    exp = {0.0: "2 (= 2 Om)", 1000.0: "1.414214"}.get(V, "-")   # 予測値
    print(f"  {V:>10.1f}" + "".join(f"{x:>11.5f}" for x in w)
          + f"{gap:>12.6f}{exp:>11}")
print(f"  sqrt(2) = {np.sqrt(2):.6f}: 封鎖された2原子は、|gg> と")
print("  |W> = (|gr> + |rg>)/sqrt(2) が張る2準位系であり、結合は Omega/sqrt(2)、")
print("  したがってRabi周波数は sqrt(2) Omega。1原子より測定可能なほど速い。")

# --- 集団的なパイ時間を測定する ------------------------------------------
def first_max_time(V, Omega=1.0):
    """1励起占有確率が最初に極大となる時刻(放物線内挿で精密化)。"""
    ts = np.linspace(1e-3, 8.0, 400001)
    sig = populations(psi_gg, H_two_atom(Omega, 0.0, V), ts)[:, 1:3].sum(axis=1)
    i = np.argmax(sig[1:-1] >= np.maximum(sig[:-2], sig[2:])) + 1
    a, b, cc = sig[i - 1], sig[i], sig[i + 1]
    dt = ts[1] - ts[0]
    return ts[i] + 0.5 * dt * (a - cc) / (a - 2 * b + cc)


print()
print("1励起占有確率が最初に極大となる時刻(1/Omega 単位):")
print(f"  {'V/Omega':>10}{'t_max':>12}{'pi/t_max':>12}")
for V in [0.0, 3.0, 10.0, 100.0, 1000.0]:
    t = first_max_time(V)
    print(f"  {V:>10.1f}{t:>12.6f}{np.pi / t:>12.6f}")
print(f"  封鎖時の予測値  t = pi/sqrt(2) = {np.pi / np.sqrt(2):.6f}")
print(f"  独立時の予測値  t = pi/2      = {np.pi / 2:.6f}")

# --- |rr> への漏れはどれだけか -------------------------------------------
print()
print("封鎖の漏れ:集団振動1周期の中での P(rr) の最大値。")
print(f"  {'V/Omega':>10}{'max P(rr)':>14}{'(Omega/V)^2/2':>16}{'ratio':>9}")
Vs = [2.0, 5.0, 10.0, 30.0, 100.0, 300.0, 1000.0]
pmaxes = []
for V in Vs:
    ts = np.linspace(0.0, 2 * np.pi / np.sqrt(2), 8001)
    pmax = populations(psi_gg, H_two_atom(Omega, 0.0, V), ts)[:, 3].max()
    pmaxes.append(pmax)
    print(f"  {V:>10.1f}{pmax:>14.3e}{0.5 * (Omega / V) ** 2:>16.3e}"
          f"{pmax / (0.5 * (Omega / V) ** 2):>9.3f}")
slope = np.polyfit(np.log(Vs[3:]), np.log(pmaxes[3:]), 1)[0]
print(f"  当てはめた指数: max P(rr) ~ (V/Omega)^{slope:.4f}")
print()
print("漏れは相互作用の2乗で減るので、原理上「封鎖を強める」のは安価です。")
print("ただし P(rr) ~ (Omega/V)^2 かつ V ~ 1/R^6 なので P(rr) ~ R^12 であり、")
print(f"漏れを100分の1にするには間隔を {100 ** (1 / 12):.3f} 分の1にすればよい")
print("— その係数こそが厄介なのです。")
|gg> から両原子を共鳴駆動する。hbar = 1、Omega = 1。

V = 0 (相互作用なし、独立な2原子)
     Omega t      P(gg)      P(gr)      P(rg)      P(rr)  P(1 exc.)
     0.00000   1.000000   0.000000   0.000000   0.000000   0.000000
     0.78540   0.728553   0.125000   0.125000   0.021447   0.250000
     1.57080   0.250000   0.250000   0.250000   0.250000   0.500000
     2.22144   0.038868   0.158282   0.158282   0.644568   0.316564
     3.14159   0.000000   0.000000   0.000000   1.000000   0.000000
     6.28319   1.000000   0.000000   0.000000   0.000000   0.000000

V = 1000 Omega (封鎖された2原子)
     Omega t      P(gg)      P(gr)      P(rg)      P(rr)  P(1 exc.)
     0.00000   1.000000   0.000000   0.000000   0.000000   0.000000
     0.78540   0.722008   0.138996   0.138996   0.000000   0.277992
     1.57080   0.197150   0.401425   0.401425   0.000000   0.802849
     2.22144   0.000000   0.500000   0.500000   0.000001   0.999999
     3.14159   0.366872   0.316564   0.316564   0.000000   0.633128
     6.28319   0.070892   0.464554   0.464554   0.000000   0.929107

H の固有値(Omega単位)と、駆動されるBohr振動数:
     V/Omega                                 eigenvalues  omega_Bohr   expected
         0.0   -1.00000    0.00000    0.00000    1.00000    2.000000 2 (= 2 Om)
         1.0   -0.85464    0.00000    0.40303    1.45161    2.306244          -
         5.0   -0.75191    0.00000    0.65194    5.09996    5.851867          -
      1000.0   -0.70736    0.00000    0.70686 1000.00050    1.414213   1.414214
  sqrt(2) = 1.414214: 封鎖された2原子は、|gg> と
  |W> = (|gr> + |rg>)/sqrt(2) が張る2準位系であり、結合は Omega/sqrt(2)、
  したがってRabi周波数は sqrt(2) Omega。1原子より測定可能なほど速い。

1励起占有確率が最初に極大となる時刻(1/Omega 単位):
     V/Omega       t_max    pi/t_max
         0.0    1.570796    2.000000
         3.0    2.296593    1.367936
        10.0    2.218955    1.415798
       100.0    2.221439    1.414215
      1000.0    2.221441    1.414214
  封鎖時の予測値  t = pi/sqrt(2) = 2.221441
  独立時の予測値  t = pi/2      = 1.570796

封鎖の漏れ:集団振動1周期の中での P(rr) の最大値。
     V/Omega     max P(rr)   (Omega/V)^2/2    ratio
         2.0     1.841e-01       1.250e-01    1.473
         5.0     2.554e-02       2.000e-02    1.277
        10.0     5.685e-03       5.000e-03    1.137
        30.0     5.817e-04       5.556e-04    1.047
       100.0     5.069e-05       5.000e-05    1.014
       300.0     5.582e-06       5.556e-06    1.005
      1000.0     5.007e-07       5.000e-07    1.001
  当てはめた指数: max P(rr) ~ (V/Omega)^-2.0123

漏れは相互作用の2乗で減るので、原理上「封鎖を強める」のは安価です。
ただし P(rr) ~ (Omega/V)^2 かつ V ~ 1/R^6 なので P(rr) ~ R^12 であり、
漏れを100分の1にするには間隔を 1.468 分の1にすればよい
— その係数こそが厄介なのです。

着目点。 2つの極限は量的にではなく質的に異なります。

独立な原子は確実に $|rr\rangle$ に到達し、封鎖された原子は確実に $|W\rangle$ に到達する。 $V = 0$、$\Omega t = \pi$ では各原子が独立に $\pi$ パルスを完了するので出力は確率1.000000で $|rr\rangle$ です。$V = 1000\,\Omega$、$\Omega t = \pi/\sqrt{2} = 2.221$ では、出力は確率0.999999で最大エンタングル状態 $|W\rangle$、$P(rr) = 10^{-6}$ です。同じレーザーパルス、$1/\Omega$ 単位で同じ長さ、そして相互作用が生成される状態を変えました。エンタングル状態がより早く到達することにも注目してください。$\pi$ ではなく2.221です。

$\sqrt{2}$ は厳密で、スペクトルの中にある。 $V = 1000$ での固有値は $-0.70736$、$0$、$0.70686$、$1000.0005$ です。$|gg\rangle$ から重みをもつ2状態の分裂は $1.414213$、$\sqrt2 = 1.414214$ に対する値です。第1極大の時刻も6桁で一致します。これはアルゴリズム編で写像を閉じた形と照合したのと同種の検査 — 対角化から出た数と議論から出た数が一致する — です。

漏れは2次で、係数は1/2。 集団振動1周期内の $P(rr)$ の最大値は $V/\Omega \gtrsim 30$ で5%以内で $\tfrac12(\Omega/V)^2$ に従い(印字された表の比は $V/\Omega = 30$ で1.047、100で1.014であり、1%に達するのは $V/\Omega \approx 100$ からです)、当てはめた指数は $-2.0123$ です。2次則は $\Omega/V$ についての通常の2次摂動論の結果ですが、有用なのは係数です。これがあれば、必要なゲート誤差を何もシミュレートせずに必要な $V/\Omega$ に直せます。

そして良い知らせに隠れた困難。 $P(rr) \propto (\Omega/V)^2$ かつ $V \propto R^{-6}$ なので漏れは $R^{12}$ で効きます。100分の1にするのに必要な間隔の縮小はわずか $100^{1/12} = 1.468$ 倍 — 同じことですが、$V$ を10倍にするのに必要な間隔の縮小も同じ $10^{1/6} = 1.468$ 倍です。指数は味方です。味方でないのは、間隔を詰めるとツイーザー自体が互いに数ミクロン以内に来てしまうことと、$\Omega$ を上げるには非共鳴遷移も駆動してしまうレーザーパワーが必要なことです。4.4節はその妥協に数値を与えます。


4.4 同じ配列を使う2つの計算法

デジタル:封鎖ゲート

封鎖をゲートに変えるには、Rydberg状態でない量子ビットが必要です。Rydberg状態はマイクロ秒しか生きませんが、量子ビットはもっと長く生きるべきだからです。標準的な選択は2つの超微細基底状態 $|0\rangle$ と $|1\rangle$ で、$|1\rangle$ のみを $|r\rangle$ にレーザー結合させます。各原子はいま3準位系であり、対は9次元を張ります。

原型となるプロトコル(Jaksch ら、2000年)は3パルスです。

  1. 制御原子に $\pi$ パルス、$|1\rangle \to |r\rangle$;
  2. 標的原子に $2\pi$ パルス、$|1\rangle \to |r\rangle \to |1\rangle$;
  3. 制御原子に $\pi$ パルス、$|r\rangle \to |1\rangle$ で戻す。

4つの計算基底入力を追ってみます。制御が $|0\rangle$ なら段階1は何もせず、標的の完全な $2\pi$ 回転はそれを $|1\rangle$ に戻し、2準位系の $2\pi$ 回転が必ず伴う幾何位相 $-1$ を得ます。制御が $|1\rangle$ なら段階2の間それは $|r\rangle$ にあり、標的 $|1\rangle$ なら封鎖が $|rr\rangle$ を共鳴から外し、標的の回転は抑制されて位相を得ません — 一方で制御の2回の $\pi$ パルスが $(-i)^2 = -1$ を供給します。4つの場合を集めると

$$ U = \mathrm{diag}(1, -1, -1, -1) = (Z \otimes Z)\cdot \mathrm{CZ} $$

となり、1量子ビットの $Z$ ゲートを除けばCZ、つまり完全に使えるエンタングリングゲートです。機構を平明に述べる価値があります。このゲートは、原子が励起されている間だけオンになる相互作用によって動き、生じる位相は相互作用エネルギーではなく回転の「不在」である。 封鎖がシフトさせるのではなく抑制するというこの構造的特徴が、ゲート誤差が $V$ に漏れを通じてのみ依存する理由であり、$V$ の正確な値に鈍感にできる理由です。

そのうえで誤差を決めるのは2つの物理機構です。有限の封鎖は $|rr\rangle$ を占有させ、その大きさは測定した $\tfrac12(\Omega/V)^2$ です。有限のRydberg寿命は上にいる間に原子を崩壊させ、その確率は $|r\rangle$ に滞在する時間、したがって $\gamma/\Omega$ に比例します。一方は $\Omega$ を小さくしたがり他方は大きくしたがるので最適値があり、そこでは

$$ \varepsilon_{\min} \sim \left(\frac{\gamma}{V}\right)^{2/3} \sim \frac{R^4}{(\tau C_6)^{2/3}} $$

となります。

Code Example 5: 封鎖CZゲートとその誤り床

"""封鎖によるCZゲートと、物理が敷く誤り床。

1原子あたり3準位:|0> と |1> が量子ビット(超微細基底準位。レーザーが結合する
のは |1> のみ)、|r> がRydberg状態。添字は 3*a0 + a1。

Code Example 3 の続き(同一セッション)。C6(n) と lifetime(n) はそこで定義済み。
"""
import numpy as np
from scipy.linalg import expm

LEV = ["0", "1", "r"]
QUBIT_IDX = [0, 1, 3, 4]           # 9次元空間の中の |00>, |01>, |10>, |11>
I3 = np.eye(3, dtype=complex)
SIG = np.zeros((3, 3), dtype=complex)
SIG[1, 2] = SIG[2, 1] = 1.0        # |1><r| + |r><1|、レーザー結合
NR = np.zeros((3, 3), dtype=complex)
NR[2, 2] = 1.0                     # |r><r| 射影演算子

VV = np.kron(NR, NR)               # Rydberg-Rydberg相互作用の演算子
NR_TOT = np.kron(NR, I3) + np.kron(I3, NR)
DRIVE = [np.kron(SIG, I3), np.kron(I3, SIG)]


def gate_matrix(Omega, V, gamma):
    """Jaksch の pi - 2pi - pi 系列を量子ビット部分空間に射影した 4x4 ブロック。"""
    H0 = V * VV - 0.5j * gamma * NR_TOT       # |r> からの崩壊を表す非エルミート項
    U = np.eye(9, dtype=complex)
    for atom, area in [(0, np.pi), (1, 2 * np.pi), (0, np.pi)]:
        H = H0 + 0.5 * Omega * DRIVE[atom]
        U = expm(-1j * H * (area / Omega)) @ U
    return U[np.ix_(QUBIT_IDX, QUBIT_IDX)]


def avg_gate_error(M, G, d=4):
    """(漏れを含みうる)M の、目標 G に対する平均ゲート忠実度からの誤差。"""
    F = (abs(np.trace(G.conj().T @ M)) ** 2 + np.trace(M.conj().T @ M).real) / (d * (d + 1))
    return 1.0 - F


G_ideal = np.diag([1.0, -1.0, -1.0, -1.0]).astype(complex)   # 局所的にCZと等価

print("理想的な封鎖CZ:Jaksch の pi - 2pi - pi 系列、V -> 無限大、崩壊なし。")
M = gate_matrix(1.0, 1e7, 0.0)
print("  得られた 4x4 ブロック(丸め済み):")
for row in np.round(M, 6):
    print("   " + "  ".join(f"{z.real:+.4f}{z.imag:+.4f}j" for z in row))
print(f"  diag(1,-1,-1,-1) に対する誤差: {avg_gate_error(M, G_ideal):.3e}")
print("  diag(1,-1,-1,-1) = (Z x Z) . CZ なので、1量子ビットZゲートを除けばCZ。")

# --- 2つの誤り機構を別々に見る -------------------------------------------
print()
print("封鎖の漏れのみ(gamma = 0)、V/Omega に対する誤差:")
print(f"  {'V/Omega':>10}{'gate error':>14}{'(Omega/V)^2':>14}")
for V in [10.0, 30.0, 100.0, 300.0, 1000.0]:
    print(f"  {V:>10.1f}{avg_gate_error(gate_matrix(1.0, V, 0.0), G_ideal):>14.3e}"
          f"{(1.0 / V) ** 2:>14.3e}")
print()
print("Rydberg崩壊のみ(V -> 無限大)、gamma/Omega に対する誤差:")
print(f"  {'gamma/Omega':>13}{'gate error':>14}{'gamma/Omega':>14}")
for g in [1e-2, 3e-3, 1e-3, 3e-4, 1e-4]:
    print(f"  {g:>13.1e}{avg_gate_error(gate_matrix(1.0, 1e7, g), G_ideal):>14.3e}{g:>14.3e}")
print("  崩壊誤差は gamma/Omega に比例する。ゲート時間が 4pi/Omega で、その一定")
print("  割合だけRydberg準位に居るからである。したがって速いほうが良い。")
print("  漏れ誤差は Omega/V の2乗。遅いほうが良い。ゆえに最適値が存在する。")


# --- 実際のRbの数値に対する最適点 ----------------------------------------
def total_error(Omega_ang, V_ang, gamma):
    return avg_gate_error(gate_matrix(Omega_ang, V_ang, gamma), G_ideal)


def optimize(n, R_um, n_scan=61):
    """R_um だけ離れた Rb |nS> 原子に対する最適 Omega と誤り床。"""
    V_ang = 2 * np.pi * C6(n) * 1e9 / R_um ** 6            # 角周波数 rad/s
    gamma = 1.0 / (lifetime(n) * 1e-6)                     # 崩壊率 s^-1
    grid = np.logspace(np.log10(1e-4 * V_ang), np.log10(0.3 * V_ang), n_scan)
    errs = np.array([total_error(1.0, V_ang / Om, gamma / Om) for Om in grid])
    i = int(np.argmin(errs))
    return V_ang, gamma, grid[i], errs[i]


print()
print("ツイーザー配列中の Rb |nS> 原子:本質的なゲート誤り床。")
hdr = (f"{'n':>5}{'R (um)':>8}{'V/h (MHz)':>12}{'tau (us)':>10}"
       f"{'Om_opt/2pi (MHz)':>18}{'T_gate (us)':>13}{'error':>11}")
print(hdr)
print("-" * len(hdr))
rows = []
for n, R in [(70, 3.0), (70, 4.0), (70, 5.0), (70, 6.0), (70, 8.0),
             (50, 4.0), (100, 4.0), (100, 8.0)]:
    V_ang, gamma, Om, err = optimize(n, R)
    rows.append((n, R, err))
    print(f"{n:>5}{R:>8.1f}{V_ang / (2 * np.pi) / 1e6:>12.3f}{1e6 / gamma:>10.1f}"
          f"{Om / (2 * np.pi) / 1e6:>18.4f}{4 * np.pi / Om * 1e6:>13.4f}{err:>11.3e}")

# --- 誤り床のスケーリング ------------------------------------------------
print()
print("スケーリングの検証: 誤差 ~ (gamma/V)^(2/3) ~ R^4 / (tau C6)^(2/3)。")
Rs = np.array([3.0, 4.0, 5.0, 6.0, 8.0])
errs = np.array([optimize(70, R)[3] for R in Rs])
print(f"  R についての当てはめ指数: {np.polyfit(np.log(Rs), np.log(errs), 1)[0]:.3f}"
      f"   (予測値 4)")
print(f"  R = 4 um, n = 70 の誤差: {optimize(70, 4.0)[3]:.3e}")
print(f"  R = 4 um, n = 100 の誤差: {optimize(100, 4.0)[3]:.3e}"
      f"   改善 {optimize(70, 4.0)[3] / optimize(100, 4.0)[3]:.1f} 倍")

# --- どのハミルトニアンにも書かれていない誤り:原子の喪失 ----------------
print()
print("配列の生存確率:1サイクルあたり原子1個の喪失確率 p_loss が積み重なる。")
print(f"  {'p_loss':>9}" + "".join(f"{'N=' + str(N):>11}" for N in [10, 50, 100, 500, 1000]))
for p in [1e-4, 1e-3, 3e-3, 1e-2]:
    print(f"  {p:>9.0e}" + "".join(f"{(1 - p) ** N:>11.4f}"
                                   for N in [10, 50, 100, 500, 1000]))
print("  欠陥のない1000原子配列には、原子あたり1サイクルあたり 1e-3 を十分下回る")
print("  p_loss が必要である。さもなければ大半のショットが穴あきで始まる。")
print()
print("破壊的読み出し:|1> の蛍光イメージングは原子をトラップ外へ加熱するので、")
print("各ショットは再ロードで終わる。デューティ比を決めるのはMOTである。")
for t_load_ms, t_gate_us in [(100.0, 100.0), (300.0, 100.0), (100.0, 1000.0)]:
    rate = 1.0 / (t_load_ms * 1e-3 + t_gate_us * 1e-6)
    print(f"  再ロード {t_load_ms:5.0f} ms + 回路 {t_gate_us:6.0f} us"
          f" -> {rate:7.2f} shots/s, デューティ比 {t_gate_us * 1e-6 * rate:.2e}")
理想的な封鎖CZ:Jaksch の pi - 2pi - pi 系列、V -> 無限大、崩壊なし。
  得られた 4x4 ブロック(丸め済み):
   +1.0000+0.0000j  +0.0000+0.0000j  +0.0000+0.0000j  +0.0000+0.0000j
   +0.0000+0.0000j  -1.0000+0.0000j  +0.0000+0.0000j  +0.0000+0.0000j
   +0.0000+0.0000j  +0.0000+0.0000j  -1.0000+0.0000j  +0.0000+0.0000j
   +0.0000+0.0000j  +0.0000+0.0000j  +0.0000+0.0000j  -1.0000-0.0000j
  diag(1,-1,-1,-1) に対する誤差: 7.139e-11
  diag(1,-1,-1,-1) = (Z x Z) . CZ なので、1量子ビットZゲートを除けばCZ。

封鎖の漏れのみ(gamma = 0)、V/Omega に対する誤差:
     V/Omega    gate error   (Omega/V)^2
        10.0     3.699e-03     1.000e-02
        30.0     4.112e-04     1.111e-03
       100.0     3.701e-05     1.000e-04
       300.0     4.112e-06     1.111e-05
      1000.0     3.701e-07     1.000e-06

Rydberg崩壊のみ(V -> 無限大)、gamma/Omega に対する誤差:
    gamma/Omega    gate error   gamma/Omega
        1.0e-02     5.300e-02     1.000e-02
        3.0e-03     1.631e-02     3.000e-03
        1.0e-03     5.477e-03     1.000e-03
        3.0e-04     1.648e-03     3.000e-04
        1.0e-04     5.496e-04     1.000e-04
  崩壊誤差は gamma/Omega に比例する。ゲート時間が 4pi/Omega で、その一定
  割合だけRydberg準位に居るからである。したがって速いほうが良い。
  漏れ誤差は Omega/V の2乗。遅いほうが良い。ゆえに最適値が存在する。

ツイーザー配列中の Rb |nS> 原子:本質的なゲート誤り床。
    n  R (um)   V/h (MHz)  tau (us)  Om_opt/2pi (MHz)  T_gate (us)      error
-----------------------------------------------------------------------------
   70     3.0    1176.955     150.0           21.4234       0.0934  3.973e-04
   70     4.0     209.473     150.0            5.6900       0.3515  1.348e-03
   70     5.0      54.912     150.0            2.9068       0.6880  3.092e-03
   70     6.0      18.390     150.0            1.6601       1.2048  6.718e-03
   70     8.0       3.273     150.0            0.3376       5.9235  2.235e-02
   50     4.0       5.173      54.7            1.0399       1.9233  2.968e-02
  100     4.0   10593.730     437.3           66.3073       0.0302  4.898e-05
  100     8.0     165.527     437.3            3.9346       0.5083  7.255e-04

スケーリングの検証: 誤差 ~ (gamma/V)^(2/3) ~ R^4 / (tau C6)^(2/3)。
  R についての当てはめ指数: 4.086   (予測値 4)
  R = 4 um, n = 70 の誤差: 1.348e-03
  R = 4 um, n = 100 の誤差: 4.898e-05   改善 27.5 倍

配列の生存確率:1サイクルあたり原子1個の喪失確率 p_loss が積み重なる。
     p_loss       N=10       N=50      N=100      N=500     N=1000
      1e-04     0.9990     0.9950     0.9900     0.9512     0.9048
      1e-03     0.9900     0.9512     0.9048     0.6064     0.3677
      3e-03     0.9704     0.8605     0.7405     0.2226     0.0496
      1e-02     0.9044     0.6050     0.3660     0.0066     0.0000
  欠陥のない1000原子配列には、原子あたり1サイクルあたり 1e-3 を十分下回る
  p_loss が必要である。さもなければ大半のショットが穴あきで始まる。

破壊的読み出し:|1> の蛍光イメージングは原子をトラップ外へ加熱するので、
各ショットは再ロードで終わる。デューティ比を決めるのはMOTである。
  再ロード   100 ms + 回路    100 us ->    9.99 shots/s, デューティ比 9.99e-04
  再ロード   300 ms + 回路    100 us ->    3.33 shots/s, デューティ比 3.33e-04
  再ロード   100 ms + 回路   1000 us ->    9.90 shots/s, デューティ比 9.90e-03

着目点。 これが本章の中心的な定量結果です。

理想極限でゲートは厳密にCZ。 $4\times4$ ブロックは $7\times10^{-11}$ の精度で $\mathrm{diag}(1,-1,-1,-1)$ になり、9次元の構成全体が上の議論と整合していることを検証します。この系列に当てはめたパラメータは1つもありません。

傾きが逆の2つの誤差チャネル。 封鎖の漏れは $\propto (\Omega/V)^2$:$V/\Omega = 10$ で $3.7\times10^{-3}$、$V$ が10倍になるごとに100分の1になります。Rydberg崩壊は $\propto \gamma/\Omega$ で、当てはめ係数は5.5前後です。一方は $V/\Omega$ について2次で減少、他方は1次で増加 — したがって和は最小値をもち、それはモデルの人工物ではなく真の物理的最適点です。

床は $10^{-3}$ 前後にあり、$R^4$ で動く。 4 µm離れたルビジウム $|70S\rangle$ 原子では最適点が $\Omega/2\pi = 5.7$ MHzにあり、ゲート時間0.35 µs、誤差 $1.3\times10^{-3}$ です。間隔についての当てはめ指数は4.086、予測は4です。原子を8 µmに離すと誤差は $2.2\times10^{-2}$、3 µmに詰めると $4.0\times10^{-4}$。原子間隔が2倍になるとゲート誤差は16倍になります。 本コースの他のどの方式もこれほど急峻な幾何感度をもたず、これがツイーザー位置安定性を細部ではなく第一義の課題にしている理由です。

高い $n$ は助けになるが、細字も読むこと。 間隔4 µmを保ったまま $|70S\rangle$ から $|100S\rangle$ へ行くと床は27倍改善して $4.9\times10^{-5}$ になります。これは本物です。$C_6$ の増加が $\gamma$ の減少を上回りました。しかし $n = 100$ では封鎖半径が16.7 µmなので、4 µm間隔では4番目の隣接原子まで封鎖され、「2原子ゲート」はもはや2原子の操作ではありません。正直な言明は、$n$ はゲート忠実度と個別指定性を交換するつまみであり、最適値は欲しい配列の幾何に依存する、というものです。

そして、どのハミルトニアンにも書かれていない誤りがある。 生存確率の表は欠陥のない配列の算術です。原子あたり1サイクルあたり $10^{-3}$ の損失なら、100原子配列は90%の確率で生き残り、1000原子配列では37%です。原子損失はゲート誤差への小さな補正ではありません — それは計算空間からの完全な漏れであり、より良いパルスではなく検出と再ロードで扱わなければなりません。最後のブロックの再ロードデューティ比と合わせると、これがこの方式の構造的コストです。回路は速く(マイクロ秒)、ショットは遅い(よくても毎秒数十回)ので、アルゴリズム編で解析したサンプリング予算を律速するのはゲートではなくMOTです。

アナログ:ハミルトニアンそれ自体が目的のとき

ここでゲートから完全に離れましょう。格子上の $N$ 原子を同じレーザーで一斉に照射し、配列が何をしているかを書き下します:

$$ \frac{H}{\hbar} = \frac{\Omega}{2}\sum_i X_i - \Delta \sum_i n_i + \sum_{i<j}\frac{C_6}{R_{ij}^6}\, n_i n_j $$

$n_i = (I - Z_i)/2$ を代入すると(4.3節と同じ規約で、$|r\rangle = |1\rangle$ です)、後ろ2項は $ZZ$ 結合と縦磁場になり、最初の項は横磁場になります。結果を定数を除いて $H/\hbar = h_x\sum_i X_i + \sum_{i<j} J_{ij} Z_iZ_j - \sum_i h_z Z_i$ と書けば、これは長距離横磁場 Ising模型であり、

$$ J_{ij} = \frac{V_{ij}}{4}, \qquad h_z = \frac{1}{4}\sum_{j \neq i} V_{ij} - \frac{\Delta}{2}, \qquad h_x = \frac{\Omega}{2} $$

この $1/4$ は信じるより確かめる価値があります。対ごとの項 $V_{ij}n_in_j$ は $-(V_{ij}/4)Z_i$ $-(V_{ij}/4)Z_j$ の両方を寄与するので、サイト $i$ は各隣接から $V_{ij}$ の4分の1ずつを受け取ります。Code Example 6 の最近接環では各原子がちょうど2つの隣接を同じ距離にもつので $h_z = V/2 - \Delta/2$ となり、これがコードが印字する形です — 一般則ではなく、この幾何の偶然です。

そのパラメータは光学定盤上のつまみで決まります。$\Omega$ と $\Delta$ はレーザーで、$J_{ij}$ は原子をどこに置くかで決まります。Trotter分解もゲートのコンパイルもなく、回路の深さも積み上がりません。原子は Ising模型をシミュレートしているのではなく、述べた近似の範囲で Ising模型そのものです。

これはデジタルモデルとは本質的に異なる資源であり、その交換条件を正確に述べる価値があります。アナログ動作が得るもの:ゲートのコンパイル不要、Trotter誤差なし、深さの予算なし、そして系のサイズを律速するのは払えるゲート数ではなく並べられる原子数であること。失うもの:万能性、誤り訂正、そして — 最も重要なことに — 答えを保証する手段。デジタル回路は原理的に誤り訂正でき出力を検証できますが、アナログシミュレータが与えるのは自分自身のハミルトニアンの基底状態であり、そこに含まれる較正誤差や迷走電場も一緒です。

Code Example 6: Rydberg環は Ising模型である

"""アナログ動作:Rydberg鎖は Ising模型「である」。基底状態がそれを示す。

H/hbar = (Omega/2) sum_i X_i - Delta sum_i n_i + sum_{i<j} C6/R_ij^6 n_i n_j

周期境界の12原子鎖の基底状態を疎行列の厳密対角化で求めます。エネルギーは
すべて Omega 単位。ビット順はビッグエンディアンで、原子0が最上位ビット。
"""
import numpy as np
import scipy.sparse as sp
from scipy.sparse.linalg import eigsh

N = 12                      # 原子数。12なら周期2, 3, 4がちょうど収まる
DIM = 2 ** N
IDX = np.arange(DIM)
BITS = ((IDX[:, None] >> np.arange(N - 1, -1, -1)) & 1).astype(float)
DIST = np.array([[min(abs(i - j), N - abs(i - j)) for j in range(N)] for i in range(N)])


def build_H(Delta, Rb_over_a, kmax=N // 2):
    """Omega 単位の疎ハミルトニアン。Rb は C6/Rb^6 = hbar Omega で定義。"""
    diag = -Delta * BITS.sum(axis=1)
    for i in range(N):
        for j in range(i + 1, N):
            if 0 < DIST[i, j] <= kmax:
                diag += (Rb_over_a / DIST[i, j]) ** 6 * BITS[:, i] * BITS[:, j]
    H = sp.diags(diag, format="csr")
    for i in range(N):
        flip = IDX ^ (1 << (N - 1 - i))
        H = H + sp.csr_matrix((np.full(DIM, 0.5), (IDX, flip)), shape=(DIM, DIM))  # X_i
    return H


def ground_state(Delta, Rb_over_a, kmax=N // 2):
    w, v = eigsh(build_H(Delta, Rb_over_a, kmax), k=1, which="SA",
                 v0=np.ones(DIM) / np.sqrt(DIM), tol=0.0)
    return float(w[0]), v[:, 0]


def observables(psi):
    """密度、最近接相関、および結晶秩序 S(k) を返す。

    S(k) = (1/N) <|sum_i exp(i k i) n_i|^2>。N = 12 サイト上の完全な周期 p の
    結晶では S(2pi/2) = 3.0、S(2pi/3) = 4/3、S(2pi/4) = 0.75 となる。
    """
    p = np.abs(psi) ** 2
    dens = p @ BITS
    nn = float(np.mean([p @ (BITS[:, i] * BITS[:, (i + 1) % N]) for i in range(N)]))
    C = np.array([[p @ (BITS[:, i] * BITS[:, j]) for j in range(N)] for i in range(N)])
    Sk = {}
    for name, k in [("Z2", np.pi), ("Z3", 2 * np.pi / 3), ("Z4", np.pi / 2)]:
        ph = np.exp(1j * k * np.arange(N))
        Sk[name] = float((np.conj(ph)[:, None] * C * ph[None, :]).sum().real / N)
    return float(dens.mean()), nn, Sk, dens


print(f"Rydberg環、N = {N} 原子、周期境界、エネルギーは Omega 単位。")
print("Rb は封鎖半径:C6/Rb^6 = hbar Omega なので V(a) = (Rb/a)^6 Omega。")
print()
print("Rb/a = 1.5 における離調スキャン:")
hdr = (f"{'Delta/Omega':>13}{'E0/Omega':>12}{'<n>':>9}{'<n_i n_i+1>':>13}"
       f"{'S(Z2)':>9}")
print(hdr)
print("-" * len(hdr))
for D in [-2.0, 0.0, 1.0, 2.0, 4.0, 6.0, 10.0, 20.0]:
    E0, psi = ground_state(D, 1.5)
    dens, nn, Sk, _ = observables(psi)
    print(f"{D:>13.1f}{E0:>12.5f}{dens:>9.4f}{nn:>13.3e}{Sk['Z2']:>9.4f}")
print(f"  完全なZ2結晶なら <n> = 0.5、S(Z2) = {(N / 2) ** 2 / N:.1f} になる")

print()
print(f"Rb/a = 1.5 では最近接のシフトが {1.5 ** 6:.2f} Omega、次近接が")
print(f"{(1.5 / 2) ** 6:.4f} Omega です。間隔1つでは封鎖され、2つではほぼ自由。")
print("この非対称性が周期2を選び出します。")

print()
print("Delta/Omega = 6 での封鎖距離スキャン:環はどの周期を選ぶか。")
hdr = (f"{'Rb/a':>7}{'V(a)/Om':>11}{'V(2a)/Om':>11}{'<n>':>8}"
       f"{'S(Z2)':>8}{'S(Z3)':>8}{'S(Z4)':>8}{'ordering':>12}")
print(hdr)
print("-" * len(hdr))
for Rb in [0.5, 1.0, 1.3, 1.5, 1.8, 2.3, 2.8, 3.5]:
    E0, psi = ground_state(6.0, Rb)
    dens, nn, Sk, _ = observables(psi)
    best = max(Sk, key=Sk.get)
    ideal = {"Z2": 3.0, "Z3": 4 / 3, "Z4": 0.75}[best]
    label = best if Sk[best] > 0.5 * ideal else "uniform"   # 半分未満なら一様相
    print(f"{Rb:>7.1f}{Rb ** 6:>11.3f}{(Rb / 2) ** 6:>11.4f}{dens:>8.4f}"
          f"{Sk['Z2']:>8.3f}{Sk['Z3']:>8.3f}{Sk['Z4']:>8.3f}{label:>12}")
print("  理想値: S(Z2) = 3.000, S(Z3) = 1.333, S(Z4) = 0.750")

for Rb, name in [(1.5, "Z2"), (2.3, "Z3"), (3.5, "Z4")]:
    E0, psi = ground_state(6.0, Rb)
    dens, nn, Sk, prof = observables(psi)
    p = np.abs(psi) ** 2
    cfg = format(int(np.argmax(p)), f"0{N}b").replace("0", ".").replace("1", "r")
    print()
    print(f"Delta/Omega = 6, Rb/a = {Rb} -> {name}:  <n> = {dens:.4f}, "
          f"S({name}) = {Sk[name]:.3f}")
    print("  サイト密度 " + " ".join(f"{x:.3f}" for x in prof))
    print(f"  最確配置 {cfg}  (確率 {p.max():.4f})。基底状態は "
          f"{name} のすべての\n  並進の対称的な重ね合わせなので、どのサイトも同じに見える。")

# --- 同じ物理を Ising模型として書き直す -----------------------------------
print()
print("置き換え n_i = (1 + Z_i)/2 によって、封鎖された環は Ising模型になる:")
print("  V sum_i n_i n_i+1 - Delta sum_i n_i")
print("   = (V/4) sum_i Z_i Z_i+1 + (V/2 - Delta/2) sum_i Z_i + const,")
print("  (Omega/2) sum_i X_i が横磁場。すなわち J = V/4、h_z = V/2 - Delta/2、")
print("  h_x = Omega/2。V の裾を打ち切る以外、何も近似していない。")
print("  原子は模型を模擬する回路ではなく、模型そのものである。")

print()
print("裾はどれだけ効くか。Delta/Omega = 6、Rb/a = 1.5、距離 k まで残した場合:")
print(f"{'range k':>9}{'E0/Omega':>13}{'<n>':>9}{'S(Z2)':>9}{'|dE0| vs full':>15}")
E_full, _ = ground_state(6.0, 1.5)
for k in [1, 2, 3, N // 2]:
    E0, psi = ground_state(6.0, 1.5, k)
    dens, nn, Sk, _ = observables(psi)
    print(f"{k:>9}{E0:>13.6f}{dens:>9.4f}{Sk['Z2']:>9.4f}{abs(E0 - E_full):>15.2e}")
print()
print("最近接で打ち切るとエネルギーは目に見えるだけずれ、しかも片側にずれる。")
print("アナログRydberg装置が実装しているのは教科書の最近接 Ising模型ではなく、")
print("1/R^6 の Ising模型である。長距離 Ising が欲しいなら利点であり、そうで")
print("ないなら系統誤差である。")
Rydberg環、N = 12 原子、周期境界、エネルギーは Omega 単位。
Rb は封鎖半径:C6/Rb^6 = hbar Omega なので V(a) = (Rb/a)^6 Omega。

Rb/a = 1.5 における離調スキャン:
  Delta/Omega    E0/Omega      <n>  <n_i n_i+1>    S(Z2)
--------------------------------------------------------
         -2.0    -1.32015   0.0425    1.653e-04   0.0439
          0.0    -3.65004   0.1858    9.678e-04   0.2460
          1.0    -6.76151   0.3495    1.185e-03   1.2479
          2.0   -11.84326   0.4623    7.056e-04   2.5837
          4.0   -23.40264   0.4913    7.437e-04   2.8963
          6.0   -35.26971   0.4966    9.064e-04   2.9521
         10.0   -59.18794   0.4994    1.537e-03   2.9766
         20.0  -119.51342   0.5144    2.941e-02   2.8354
  完全なZ2結晶なら <n> = 0.5、S(Z2) = 3.0 になる

Rb/a = 1.5 では最近接のシフトが 11.39 Omega、次近接が
0.1780 Omega です。間隔1つでは封鎖され、2つではほぼ自由。
この非対称性が周期2を選び出します。

Delta/Omega = 6 での封鎖距離スキャン:環はどの周期を選ぶか。
   Rb/a    V(a)/Om   V(2a)/Om     <n>   S(Z2)   S(Z3)   S(Z4)    ordering
-------------------------------------------------------------------------
    0.5      0.016     0.0002  0.9931   0.007   0.007   0.007     uniform
    1.0      1.000     0.0156  0.9850   0.015   0.015   0.015     uniform
    1.3      4.827     0.0754  0.5055   2.849   0.014   0.014          Z2
    1.5     11.391     0.1780  0.4966   2.952   0.004   0.004          Z2
    1.8     34.012     0.5314  0.4950   2.945   0.005   0.005          Z2
    2.3    148.036     2.3131  0.3347   0.041   1.229   0.012          Z3
    2.8    481.890     7.5295  0.3295   0.004   1.306   0.004          Z3
    3.5   1838.266    28.7229  0.2474   0.733   0.004   0.735          Z4
  理想値: S(Z2) = 3.000, S(Z3) = 1.333, S(Z4) = 0.750

Delta/Omega = 6, Rb/a = 1.5 -> Z2:  <n> = 0.4966, S(Z2) = 2.952
  サイト密度 0.497 0.497 0.497 0.497 0.497 0.497 0.497 0.497 0.497 0.497 0.497 0.497
  最確配置 .r.r.r.r.r.r  (確率 0.4745)。基底状態は Z2 のすべての
  並進の対称的な重ね合わせなので、どのサイトも同じに見える。

Delta/Omega = 6, Rb/a = 2.3 -> Z3:  <n> = 0.3347, S(Z3) = 1.229
  サイト密度 0.335 0.335 0.335 0.335 0.335 0.335 0.335 0.335 0.335 0.335 0.335 0.335
  最確配置 ..r..r..r..r  (確率 0.2944)。基底状態は Z3 のすべての
  並進の対称的な重ね合わせなので、どのサイトも同じに見える。

Delta/Omega = 6, Rb/a = 3.5 -> Z4:  <n> = 0.2474, S(Z4) = 0.735
  サイト密度 0.247 0.247 0.247 0.247 0.247 0.247 0.247 0.247 0.247 0.247 0.247 0.247
  最確配置 .r...r...r..  (確率 0.2406)。基底状態は Z4 のすべての
  並進の対称的な重ね合わせなので、どのサイトも同じに見える。

置き換え n_i = (1 + Z_i)/2 によって、封鎖された環は Ising模型になる:
  V sum_i n_i n_i+1 - Delta sum_i n_i
   = (V/4) sum_i Z_i Z_i+1 + (V/2 - Delta/2) sum_i Z_i + const,
  (Omega/2) sum_i X_i が横磁場。すなわち J = V/4、h_z = V/2 - Delta/2、
  h_x = Omega/2。V の裾を打ち切る以外、何も近似していない。
  原子は模型を模擬する回路ではなく、模型そのものである。

裾はどれだけ効くか。Delta/Omega = 6、Rb/a = 1.5、距離 k まで残した場合:
  range k     E0/Omega      <n>    S(Z2)  |dE0| vs full
        1   -36.339291   0.4970   2.9571       1.07e+00
        2   -35.287036   0.4966   2.9522       1.73e-02
        3   -35.286862   0.4966   2.9522       1.72e-02
        6   -35.269706   0.4966   2.9521       0.00e+00

最近接で打ち切るとエネルギーは目に見えるだけずれ、しかも片側にずれる。
アナログRydberg装置が実装しているのは教科書の最近接 Ising模型ではなく、
1/R^6 の Ising模型である。長距離 Ising が欲しいなら利点であり、そうで
ないなら系統誤差である。

着目点。 このブロックは3つのことをします。秩序相を示し、それを選び出す機構を同定し、$1/R^6$ の裾の代償を定量します。

離調スキャンは相転移であり、12サイトで見える。 $\Delta/\Omega = -2$ では基底状態はほぼ空($\langle n\rangle = 0.04$)で、$\Delta/\Omega = 4$ では $\langle n\rangle = 0.49$、$S(Z_2) = 2.90$(完全結晶値3.0に対して)の周期2結晶になります。アルゴリズム編の第5章が Ising鎖について論じたとおり、12サイト系に真の相転移はありえません — 有限系の自由エネルギーは解析的です — ので、見えているのは $N$ とともに鋭くなるクロスオーバーです。それでもこれは物理であり、4096個の基底状態でノートPC上で見えます。

封鎖半径が周期を選び、その機構は比である。 $R_b/a = 1.5$ では最近接シフトが11.4 $\Omega$、次近接が0.18 $\Omega$ — 間隔1つで封鎖、2つで自由 — であり、基底状態は $\mathbb{Z}_2$ 結晶です。$R_b/a$ を2.3にすると次近接も2.3 $\Omega$ で封鎖され、基底状態は $\mathbb{Z}_3$ になります:$\langle n\rangle = 0.33$、$S(Z_3) = 1.23$(理想値1.333に対して)。$R_b/a = 3.5$ では $\mathbb{Z}_4$ です。格子定数と主量子数が一緒になって秩序相を選ぶのです。 高調波の微妙な点に注意してください。周期4は周期2と整合するので $\mathbb{Z}_4$ 状態も $k = \pi$ に秩序を示します。したがって両者の判別子は $S(k)$ だけでなく密度です。

どのサイトも同じに見え、そこが量子的な部分。 どの結晶相でもサイト分解した密度は完全に一様($\mathbb{Z}_2$ 相ではどこでも0.497)である一方、1回の測定で最も確率の高い結果は確率0.47の完全結晶です。環の基底状態は結晶のすべての並進の対称的な重ね合わせなので、局所観測量は秩序を見ず、相関関数だけが見ます。密度分布を報告して終わる実験は何も報告していません。秩序は2点関数の中にあります。

裾は細部ではない。 相互作用を最近接で打ち切ると基底状態エネルギーは35.3のうち1.07ずれます — 3%で、しかも片側です。次近接まで残すと誤差は0.017に減ります。したがってアナログRydberg装置は $1/R^6$ Ising模型のきわめて良いシミュレータであり、教科書的な最近接模型の平凡なシミュレータです。研究上の問いが長距離模型についてなら、これは利点です。短距離模型が欲しかったのなら、補正するか設計で回避するしかない系統誤差であり、それを消すつまみは存在しません。


4.5 何がスケールし、何がしないのか、そしてその理由

この方式の長所を正確に述べる

中性原子について構造的に良い3点があり、それを熱意から切り離して述べる価値があります。

量子ビットに製造工程がない。 宇宙のどのルビジウム87原子も、同じ $\Gamma$、同じ超微細分裂、そして与えられた $n$ で同じ $C_6$ をもちます。超伝導ハードウェア(第2章)を支配する量子ビット間のばらつきは、ここには単に存在しません。ばらつきが入るのはを通じてのみです。ツイーザーの深さが違えば光シフトが違い、したがって1量子ビットの周波数が違う — しかしそれはホログラムの較正であって、ウェハの問題ではありません。

制御配線のスケーリングが本コースのどの方式より良い。 超伝導プロセッサは希釈冷凍機に入る同軸線を少なくとも量子ビット1個あたり1本必要とします。原子配列に必要なのは全体照射のRydbergレーザー1本、トラップレーザー1本、そしてサイト数とともに画素数は増えるが配線は増えない空間光変調器です。数百サイトの配列は、コネクタ密度の問題ではなくレーザーパワーと視野の問題です。

幾何がプログラム可能。 レジスタは光がどこにあるかで定義されるので、相互作用グラフはソフトウェアです。アナログ量子シミュレーションにとってこれは便利さではなく中心的な能力です。三角格子上のフラストレート磁性とKagome格子上のそれを調べることが、同じ装置と違うホログラムなのです。

限界も同じく正確に

Rydbergの誤り床は原子物理。 Example 5は $\varepsilon \sim (\gamma/V)^{2/3}$、実用的な間隔と $n$ で $10^{-3}$ のオーダー、を与えました。$\gamma$ を変える製造上の改善はありません。それは放射寿命です。使えるつまみは $n$(分極率と封鎖クロストークで上限)、間隔(光学で下限)、$\Omega$(利用可能なパワーと非共鳴散乱で上限)です。パルス整形や多光子スキームは素朴な $\pi$-$2\pi$-$\pi$ 系列より良い性能を出しますが、同じ $(\gamma/V)^{2/3}$ の包絡線の内側で動きます。

原子損失は誤りではなく漏れ。 トラップを出た原子はPauli誤りを起こしたのではなく、Hilbert空間を出ました。これはアルゴリズム編がモデル化した脱分極ノイズより質的に難しい破綻様式です。量子ビットが留まると仮定するスタビライザー符号ではカバーされないからです。対処は損失を検出して再ロードすることであり、コヒーレンスの問題をデューティ比の問題に変えます。

読み出しは破壊的で、デューティ比はMOTが決める。 状態選択的検出は、一方の状態の原子をトラップから押し出し、残りの蛍光を撮像します。したがって測定は実験を終わらせ、すべてのショットは新しいロード — 数十から数百ミリ秒 — から始まります。Example 5はその結果のショット率を毎秒約10回、デューティ比を $10^{-3}$ と見積もりました。原子は自分の存在時間の0.1%だけ計算しています。アルゴリズム編のショット予算を思い出してください。$10^{10}$ 回の測定を要する変分計算はここでは何桁も届かず、律速するのはゲート忠実度ではなく磁気光学トラップです。回路中測定と原子貯蔵庫がこれに挑んでおり、それは量子ビットのレベルではなくアーキテクチャのレベルの取り組みです。

アナログ動作は誤り訂正されておらず、容易にもできない。 誤り訂正は離散的なシンドローム抽出を要し、それはゲートを要します。アナログシミュレータにその構造はないので、誤差 — $\Delta$ の較正ずれ、$\Omega$ の不均一、Rydberg準位をシフトさせる迷走電場、$V \propto R^{-6}$ に流れ込む原子位置のジッター — は答えに直接現れます。これはアナログの結果が無価値だという意味ではなく、独立に特性づけなければならないハミルトニアンについての結果だという意味です。

機構のレベルでの比較

中性原子 第2章・第3章との対比
量子ビットの再現性 完璧(原子は同一)。ばらつきは光シフト 超伝導:すべて異なる/イオン:同じく同一
ゲート速度 サブµs、$\Omega$ と封鎖で決まる 超伝導:数十ns/イオン:数十µs
本質的なゲート誤り床 $\sim(\gamma/V)^{2/3}$、Rydberg寿命が決める 超伝導:誘電損失/イオン:運動加熱
接続性 再構成可能なグラフ、範囲は $R_b$ 超伝導:固定平面/イオン:鎖内全結合
動作温度 室温の真空槽、原子はµK 超伝導:10 mK/イオン:小規模レジスタなら室温電極でも動くが、小さな $d$ で低い加熱率が要るなら 4〜10 K が必要(3.6節)
制御配線 全体照射レーザー1本+ホログラム — 本コース最良 超伝導:量子ビット1個あたり1本
支配的な破綻様式 原子損失と破壊的読み出し 超伝導:$T_1$/$T_2$/イオン:加熱と光学系
材料上のボトルネック 量子ビットには無い — つまみは装置側(真空表面、光学系)にあり、量子ビットには無い 超伝導:界面TLS/イオン:電極表面

考えるべきは最後の行です。量子ビットから材料問題を取り除いたことは真のアーキテクチャ的優位であり、それには真の代償が伴います。限界が放射寿命であるとき、洗浄すべき酸化膜も、改善すべき界面も、試すべき精製もないのです。この方式の材料科学は完全に装置の側 — 真空表面、光学コーティング、迷走電場を制御する電極形状、トラップ光学系の波面品質 — に存在し、第5章では中性原子が「規則を証明する例外」であることを論じます。


演習

本章のコードを手元に置いて取り組んでください。各問のあとに解答があります。

演習1: 減速器の長さと光子予算

ナトリウム原子源($m = 23\ \mathrm{u}$、$\lambda = 589$ nm、$\Gamma/2\pi = 9.79$ MHz)が600 Kで動作しています。(a) $v_{\text{rms}}$、反跳速度、原子1個を止めるのに必要な光子数を計算してください。(b) 最大減速度と、$\eta = 0.5$ の設計余裕での停止距離を計算してください。(c) ナトリウムはルビジウムより軽く、遷移も強いです。減速器はルビジウムより短くなりますか長くなりますか。そして答えがどちらの事実からも自明でないのはなぜですか。

解答

(a) \(v_{\rm rms} = \sqrt{3k_BT/m} = \sqrt{3(1.381\times10^{-23})(600)/(23\times1.661\times10^{-27})} = 806.7\) m/s。反跳速度は \(v_{\rm rec} = h/(m\lambda) = 6.626\times10^{-34}/(3.82\times10^{-26}\times5.89\times10^{-7}) = 2.95\times10^{-2}\) m/s = 29.5 mm/s。光子数は \(806.7/0.0295 = 2.74\times10^{4}\) 個で、速度が高いにもかかわらずルビジウムの \(5\times10^4\) より少ないです。軽い原子では光子1個が運ぶ速度が大きいからです。

(b) \(a_{\max} = \hbar k \Gamma/(2m) = v_{\rm rec}\Gamma/2 = 0.0295 \times 2\pi(9.79\times10^6)/2 = 9.07\times10^{5}\) m/s\(^2\) で、ルビジウムの約8倍です。\(\eta = 0.5\) での停止距離は \(v^2/(2\eta a_{\max}) = 806.7^2/(9.07\times10^{5}) = 0.718\) m。

(c) ルビジウムの0.77 mとほぼ同じで、これは理解する価値のある一致です。停止距離は \(v_{\rm th}^2/(2\eta a_{\max}) = 3k_BT/(m \cdot \eta v_{\rm rec}\Gamma) = 3k_BT\lambda/(\eta h \Gamma)\) であり、質量が完全に消えます。軽い原子は速いが減速も強く、2つの効果が厳密に打ち消し合うのです。残るのは \(T\lambda/\Gamma\) なので、減速器の長さを決めるのは源の温度・波長・線幅であって質量ではありません。ナトリウムの短い波長と大きい線幅が、より高温の源をおおよそ補償しています。

演習2: ツイーザーの設計

Code Example 2 の1064 nm係数($U/I = -2.1034\times10^{-36}$ J/(W/m²))を用いて、深さ1 mK以上、径方向トラップ振動数100 kHz以上のツイーザーを作りたいとします。(a) $w_0 = 1.0$ µmのとき、1 mKに必要なパワーはいくらですか。(b) そのパワーでの径方向振動数はいくらで、仕様を満たしますか。(c) そのパワーは用意できません。$w_0$ を小さくするほうが $P$ を上げるより両方の要求に対して有効であることを示し、それぞれのスケーリングを定量してください。(d) $w_0$ の下限を決めるのは何ですか。

解答

(a) 深さ \(= |U/I| \cdot 2P/(\pi w_0^2)/k_B\)。Code Example 2 は5 mWで484.9 µKを与え、深さは \(P\) に比例するので、1 mKには \(5 \times 1000/484.9 = 10.3\) mW が必要です。

(b) \(\nu_r \propto \sqrt{U_0}\) なので \(\nu_r = 68.56 \times \sqrt{1000/484.9} = 98.4\) kHz。100 kHzをわずかに下回ります — 深さと振動数が独立な仕様ではないことの有用な注意喚起です。

(c) \(P\) 固定なら \(U_0 \propto w_0^{-2}\) かつ \(\nu_r = \sqrt{4U_0/(m w_0^2)} \propto w_0^{-2}\)。\(w_0\) 固定なら \(U_0 \propto P\) かつ \(\nu_r \propto \sqrt{P}\)。したがってウエストを半分にすると深さは4倍、振動数も4倍になりますが、パワーを4倍にしても深さは4倍で振動数は2倍にしかなりません。振動数についてはウエストのほうが指数で2倍良いつまみであり、だからツイーザー実験はレーザーパワーよりも高開口数の光学系に労力を割きます。

(d) 回折です。\(w_0 \gtrsim \lambda/(\pi\,\mathrm{NA})\) なので、1064 nm、NA = 0.7 ではウエストは0.5 µmをあまり下回れません。さらに、ウエストを絞るとRayleigh長が \(w_0^2\) で短くなり軸方向の閉じ込めが相対的に悪化します(Code Example 2 のアスペクト比の表)。また同じ深さでの強度が上がるので光子散乱率も上がります。楽な方向はありません。

演習3: 主量子数を選ぶ

Code Example 3 のスケーリングと $n = 70$ のアンカー($C_6/h = 858$ GHz·µm⁶、$\tau = 150$ µs)を用いて、(a) 格子間隔4 µm、$\Omega/2\pi = 2$ MHzで最近接が封鎖される($R_b > a$)最小の $n$ はいくらですか。(b) その $n$ で $V(2a)/\hbar\Omega$ はいくらで、次近接も封鎖されますか。(c) $a = 4$ µmで $\mathbb{Z}_3$ 秩序相が欲しいとき、おおよそどの $n$ が必要ですか。(d) 単に $n = 150$ を使わない独立な理由を2つ述べてください。

解答

(a) \(R_b = [(C_6/h)/(\Omega/2\pi)]^{1/6}\)、\(C_6/h = 858(n/70)^{11}\) GHz·µm⁶。\(\Omega/2\pi = 2\) MHz で \(R_b = 4\) µm とするには \(C_6/h = 2\times10^{-3} \times 4^6 = 8.19\) GHz·µm⁶、すなわち \((n/70)^{11} = 8.19/858 = 9.54\times10^{-3}\)、\(n/70 = (9.54\times10^{-3})^{1/11} = 0.6520\)、\(n = 45.6\)。したがって閾値は \(n = 46\) で、表の \(n = 50\) の行(\(R_b = 4.69\) µm)が最初に余裕のある選択です。

(b) \(n = 50\) では \(C_6/h = 21.19\) GHz·µm⁶、\(V(8\,\mu\mathrm{m})/h = 21190/8^6 = 0.0808\) MHz なので \(V(2a)/\hbar\Omega = 0.040\)。完全に非封鎖で、\(R_b/a = 1.17\) の Code Example 6 の \(\mathbb{Z}_2\) 領域です。

(c) \(\mathbb{Z}_3\) には \(R_b/a \approx 2.3\) すなわち \(R_b = 9.2\) µm が必要で、\(C_6/h = 2\times10^{-3}\times9.2^6 = 1214\) GHz·µm⁶、\((n/70)^{11} = 1.415\)、\(n = 70 \times 1.415^{1/11} = 72.2\)。したがって \(n \approx 72\) です。\(n\) を44%上げるだけで系が \(\mathbb{Z}_2\) から \(\mathbb{Z}_3\) へ移るのは \(n^{11}\) が容赦ないからです。この極端な感度は、\(n\) が粗いつまみで格子間隔が細かいつまみである理由でもあります。

(d) 第1に、dc分極率が \(n^7\) で増えるので \(n = 150\) は \(n = 70\) より \((150/70)^7 = 210\) 倍だけ迷走電場に敏感です。どこかで槽内の電場ノイズがRydberg準位を \(\Omega\) 以上シフトさせ、駆動が共鳴でなくなります。第2に、\(R_b\) は \((150/70)^{11/6} \times 8.68 = 35\) µm となり、4 µm間隔では両方向に8サイトずつ封鎖してしまいます。配列は個別指定可能な量子ビットの集合であることをやめ、1つの大きな封鎖された塊になります。どちらの理由も製造品質とは無関係です。

演習4: ゲート誤差の予算

誤り床 $\varepsilon \simeq A(\gamma/V)^{2/3}$ を Code Example 5 の $n = 70$、$R = 4$ µm 点($\varepsilon = 1.348\times10^{-3}$、$V/h = 209.5$ MHz、$\tau = 150$ µs)で較正して、(a) $A$ を求めてください。(b) $n = 70$ で $\varepsilon = 10^{-4}$ を与える原子間隔はいくらですか。実現可能ですか。(c) $n = 100$ ではどの間隔で $\varepsilon = 10^{-4}$ に達しますか。(d) 回路に $10^4$ 個の2量子ビットゲートが必要です。4.5節の2つの破綻機構のどちらが先に効き、それは配列サイズいくらのときですか。

解答

(a) \(\gamma = 1/\tau = 6.667\times10^{3}\) s\(^{-1}\)、\(V = 2\pi \times 2.095\times10^{8} = 1.316\times10^{9}\) s\(^{-1}\) なので \(\gamma/V = 5.066\times10^{-6}\)、\((\gamma/V)^{2/3} = 2.963\times10^{-4}\)。ゆえに \(A = 1.348\times10^{-3}/2.963\times10^{-4} = 4.55\)。

(b) \(\varepsilon \propto R^4\) なので \(R = 4\,\mu\mathrm{m} \times (10^{-4}/1.348\times10^{-3})^{1/4} = 4 \times 0.5217 = 2.09\) µm。ウエスト1 µmのツイーザーで2.1 µm離れた2原子はほとんど2つのトラップになっておらず、\(n = 70\) ではRydberg軌道自体が約0.3 µmあります。これは van der Waals展開とRydberg対の2準位扱いの双方が破れ始める領域です。つまり間隔を詰める方法では実現できません。

(c) Code Example 5 は \(n = 100\)、\(R = 8\) µm で \(7.255\times10^{-4}\) を与えるので、\(R = 8 \times (10^{-4}/7.255\times10^{-4})^{1/4} = 8 \times 0.6096 = 4.88\) µm。光学的には楽であり、これが高い \(n\) に行く本当の理由です。代償は演習3の16.7 µmという封鎖半径で、配列は長距離封鎖を許容する方式(たとえば操作する対だけを励起する局所指定)を必要とします。

(d) \(\varepsilon = 10^{-3}\) では \(10^4\) ゲートで総ゲート誤差が10のオーダーになり、損失を考える前にゲート誤差だけで回路はすでに無意味です。2つの機構を同等の深刻さで比べると、ゲート誤差は1ゲートあたり \(10^{-3}\)、原子損失は1サイクルあたり同じオーダーなので、\(G\) ゲート・\(N\) 原子の回路では寄与は \(G\varepsilon\) と \(Np_{\rm loss}\) です。両者が同程度になるのは \(G \approx N\) で、誤り耐性が要求する深い回路(\(G \gg N\))ではゲート誤差が、大きな配列上の浅いアナログ的プロトコル(\(N \gg G\))では損失が律速します。どちらも同じ結論を指します。この方式の近未来の強みは「広く浅い」形であり、それはまさにアナログシミュレーションの形です。

演習5: アナログシミュレーションを正直に読む

200原子のRydberg配列を用いて2次元 Ising模型の量子相転移を観測し、測定した秩序変数が理論と5%で一致したと報告する論文があるとします。(a) 装置が実装したのは正確にはどの模型ですか。(b) 200スピンに対する古典ベースラインは何ですか。(c) 論文はサイト分解したRydberg密度と構造因子を報告しています。秩序相の証拠になるのはどちらで、それはなぜですか。(d) 秩序変数を系統的に誤らせる較正誤差を3つ挙げ、そのうち最近接 Ising理論曲線では露見しないものはどれか述べてください。(e) この種の実験が実証していることを、擁護できる一文で述べてください。

解答

(a) 最近接 Ising模型ではありません。装置が実装するのは \(\sum_{i<j} (C_6/R_{ij}^6) n_i n_j\) で、すべての対が結合しています。Code Example 6 はその差を測りました — 1次元、\(R_b/a = 1.5\) で基底状態エネルギーの3% — そして2次元では次近接・第3近接の数が増えるので、裾の効きは小さくならず大きくなります。

(b) 200スピンの Ising模型は \(2^{200}\) 状態なので厳密対角化は無理です。しかしそれがベースラインではありません。符号問題がなければ量子モンテカルロはこのハミルトニアンに対して本質的に厳密であり、テンソルネットワークは中程度のエンタングルメントの2次元をよく扱い、平均場+有限サイズスケーリングで転移点は出ます。正直なベースラインは「最良の古典手法が真剣な労力で与えるもの」であり、フラストレーションのない Ising模型ではそれは高い水準です。

(c) 構造因子だけです。Code Example 6 が示したとおり、どの結晶相でもサイト密度は完全に一様です。基底状態が結晶のすべての並進の対称的な重ね合わせだからです。密度分布は秩序と整合はしますが秩序を実証できません。結晶と一様な常磁性を区別する観測量は2点相関関数です。

(d) (i) \(\Delta\) の誤差。系を相境界に沿って動かし、見かけの転移点を直接ずらします。(ii) レーザー分布の非一様性による \(\Omega\) の不均一。実効 \(h_x\) をサイトごとにぼかします。(iii) 原子位置のジッター。\(V\) に \(R^{-6}\) で入るので2%の位置誤差は12%の結合誤差になり、しかもランダムなので \(J_{ij}\) の乱れとして働きます。最近接 Ising理論曲線ではこのどれも露見しません。比較の相手がすでに誤った模型だからです。\(1/R^6\) の裾を実効 \(J\) に吸収させる当てはめは、これらの誤差の一部も吸収してしまいます。

(e) 「200原子のRydberg配列が長距離横磁場 Ising ハミルトニアンを実現し、期待される秩序相を5%で再現した。これは、古典手法がなお正確であるサイズ領域において、プログラム可能な多体ハミルトニアンの制御を実証したものである。」これは真の、公表に値する結果です。「量子優位性」は同じ文ではありません。


まとめ

要点

1. 光は2つの力を与え、トラップになるのは一方だけ

2. ツイーザーは分極率から完全に計算できる調和トラップ

3. 主量子数1つが相互作用を買い、指数が設計空間を決める

4. 封鎖は厳密に解け、その厳密な答えに $\sqrt2$ が入る

5. ゲートの誤り床は原子物理であり、$R^4$ で動く

6. 同じ配列がデジタルでもアナログでも動き、アナログは別種の資源である

実務上の含意

次章へ

本章は、現在の努力の大半を占める3方式の3つ目を扱い、しかも材料問題を取り除いて何が残るかを見るという方法で扱いました。第5章はこの3つとは構造的に異なる3方式で調査を完成させます。待機中のデコヒーレンスがまったく存在せず、その代価を非決定性で払う光子。CMOSプロセス一式をそのまま借用できる唯一の方式であり、その代価を酸化膜由来の電荷ノイズで払う半導体スピン。そして保護が工学的成果ではなく定理であり、実証までの距離を正確に述べるに値するトポロジカル量子ビットです。そのうえで第5章は6方式を第1章の軸の上に並べ、勝者がいない理由は各方式が異なる材料問題に阻まれているからだと論じます。

← 第3章: イオントラップ 第5章: 光・半導体スピン・トポロジカル、そして総括 →

免責事項