薬の候補を、分子の計算で絞る

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

分子の構造・結合・反応を予測。

分子計算で実験する候補を絞る。効果と安全性は実験で確認。

求めたいのは、最も低いエネルギー

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
同じ原子核の位置と電子数でのエネルギー準位。最低の準位が基底エネルギー。

原子核の位置・電子数を固定。
電子がとれる最小のエネルギー=基底エネルギー。

位置を変え、エネルギーを比べる

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
原子核の間隔ごとに電子の基底エネルギーと核間反発を合計。曲線の最低点が安定な間隔。

最低点 → 安定な結合長の手がかり。

水素分子を題材とした模型曲線。

分子のエネルギー問題を、Hで表す

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
  1. 01電子の運動
  2. 02原子核との引力
  3. 03電子どうしの反発

これらをまとめる演算子=ハミルトニアン。

原子核の位置を固定し、選んだ軌道の基準で行列にする。

関数は数を、行列はベクトルを変える

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

数を入力

f(x)=2x,f(3)=6f(x)=2x,\qquad f(3)=6

入力:3 → 出力:6

行列Aにベクトルを入力

(2112)(10)=(2×1+1×01×1+2×0)=(21)\begin{pmatrix}2&1\\1&2\end{pmatrix}\begin{pmatrix}1\\0\end{pmatrix}=\begin{pmatrix}2\times1+1\times0\\1\times1+2\times0\end{pmatrix}=\begin{pmatrix}2\\1\end{pmatrix}

行ごとに「掛けて、足す」。

一般には、方向や長さが変わる

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

青:入力 紫:出力

説明用の行列Aを使用。矢印は成分の図で、電子の位置ではない。

特別なベクトルでは、「定数倍」になる

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

行列を掛けても、元のベクトルの定数倍になる。
そのベクトル=固有ベクトル。倍率=固有値。

Av=λv,v≠0A\boldsymbol v=\lambda\boldsymbol v,\qquad\boldsymbol v\ne\boldsymbol0
AA
行列
v\boldsymbol v
固有ベクトル
λ\lambda
固有値:スカラー

負の倍率なら向きが反転。ゼロの倍率なら出力はゼロ。

両方の成分が、同じ倍率か確認

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
(2112)(11)=(2×1+1×11×1+2×1)=3(11)\begin{pmatrix}2&1\\1&2\end{pmatrix}\begin{pmatrix}1\\1\end{pmatrix}=\begin{pmatrix}2\times1+1\times1\\1\times1+2\times1\end{pmatrix}=3\begin{pmatrix}1\\1\end{pmatrix}

固有ベクトル:(1, 1)。固有値:3。

(2112)(1−1)=(1−1)\begin{pmatrix}2&1\\1&2\end{pmatrix}\begin{pmatrix}1\\-1\end{pmatrix}=\begin{pmatrix}1\\-1\end{pmatrix}

もう1つは倍率1。小さい固有値は1。

電子の基底エネルギーは、最小固有値

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
He⏟行列∣ψ⟩⏟ベクトル=Ee⏟スカラー∣ψ⟩\underbrace{H_{\mathrm e}}_{\text{行列}}\underbrace{\lvert\psi\rangle}_{\text{ベクトル}}=\underbrace{E_{\mathrm e}}_{\text{スカラー}}\lvert\psi\rangle

解くもの:電子の状態と、そのエネルギー。

Ee,0=min⁡iEe,iE_{\mathrm e,0}=\min_i E_{\mathrm e,i}

対象の電子数を固定した空間で、最小の固有値を選ぶ。水素分子の具体的な行列は、この後。

対角化=固有値と固有ベクトルを求める

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

先ほどの説明用行列Aなら、2つの固有ベクトルが基準になる。

(11)⟶3倍,(1−1)⟶1倍\begin{pmatrix}1\\1\end{pmatrix}\longrightarrow3\text{倍},\qquad\begin{pmatrix}1\\-1\end{pmatrix}\longrightarrow1\text{倍}
この基準での行列:(3001)\text{この基準での行列:}\begin{pmatrix}3&0\\0&1\end{pmatrix}

斜めの数字=固有値。最小の数字を選ぶ。

非対角成分を削除する操作ではない。大きな問題では、全固有値を求めず最小の固有対を探す。

水素分子:4スピン軌道 → 4量子ビット

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

空間軌道=1電子の空間的な状態を表す基準。↑・↓はスピンの2種類。

空間軌道 gg↑ g↓
空間軌道 uu↑ u↓
2空間軌道×2スピン=4スピン軌道2\text{空間軌道}\times2\text{スピン}=4\text{スピン軌道}

1スピン軌道の占有を、1量子ビットで表す。
0=電子なし、1=電子あり。

H₂・STO-3Gの有限モデル。占有数を直接符号化する場合。対称性を利用すると量子ビットを削減できる。

全体は16×16。条件に合う4配置を使う

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

4ビットは0000〜1111の16通り。1つの配置に、行と列が1つずつ対応。

16配置を行と列に並べた16×16行列の模式図0000から1111の全配置。0101、0110、1001、1010の同じ行と列の交点16個を紫で強調。この部分が↑・↓各1電子の4×4行列。色は選択範囲を示し、行列の値ではない。列:電子配置行00000000000100010010001000110011010001000101010101100110011101111000100010011001101010101011101111001100110111011110111011111111
紫=残す行・列の交点。数値は省略。

対象:↑1電子・↓1電子

0101011010011010

0101:g↑とg↓を占有。
ビットの順:u↓・g↓・u↑・g↑。

16×16 → 4×4電子数の条件で対象の空間を制限

2電子のみ:6配置。↑・↓各1電子:4配置。

以降の計算は4×4。状態準備・測定は4量子ビットのまま。SQDによる候補選択は、この後。

↑・↓各1電子に限定した4×4行列

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

前の図で紫にした4配置を、同じ順で行・列に並べる。

He≈(−1.8370000.18090−1.06370.1809000.1809−1.063700.180900−0.2452)H_{\mathrm e}\approx\begin{pmatrix}-1.8370&0&0&0.1809\\0&-1.0637&0.1809&0\\0&0.1809&-1.0637&0\\0.1809&0&0&-0.2452\end{pmatrix}

行・列の順:0101、0110、1001、1010。右から g↑、u↑、g↓、u↓。

H₂・STO-3G・核間距離0.735 Å。電子の最小値:Ee,0≈−1.8573 HaE_{\mathrm e,0}\approx-1.8573\ \mathrm{Ha}。
核間反発約0.7200 Haを加算 → 合計約−1.1373 Ha。

ここでの HeH_{\mathrm e} は4配置に制限した行列。↑・↓の電子数を保存するため、この空間だけで対象の問題を解ける。

対角成分
その配置だけを使ったときの平均エネルギー。
非対角成分
異なる配置を結びつける作用。

電子数を固定しても、配置は膨大

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
M量子ビットの全空間:2M配置M\text{量子ビットの全空間:}2^M\text{配置}

↑・↓の電子数を固定した後でも:

4量子ビット・2電子4配置↑1・↓1
20量子ビット・10電子63,504配置↑5・↓5
40量子ビット・20電子約341億配置↑10・↓10

この例は↑・↓の軌道数が半分ずつ。大きな分子では、条件を固定した空間からも候補を絞りたい。

VQE → QSCI → SQD

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

この最小固有値の問題に、量子と古典の協力で取り組む。

  1. 2014

    VQE

    試す状態の
    平均エネルギーを下げる。

  2. 2023

    QSCI

    QunaSysなど。
    測った候補で対角化。

  3. 2024

    SQD

    IBM・理研など。
    配置回復と反復を活用。

論文の出版・初公開年。SQDの論文出版は2025年。3つを順に実行する手順ではない。

ここからVQE

VQE

角度を変えて、エネルギーを下げる

θ\theta

複数の状態を混ぜる割合を、「角度 θ\theta」で表す

エネルギーを下げる
∣0101⟩|0101\rangle−1.8370 Ha-1.8370\ \mathrm{Ha}
∣1010⟩|1010\rangle−0.2452 Ha-0.2452\ \mathrm{Ha}
適切に重ね合わせる−1.8573 Ha-1.8573\ \mathrm{Ha}
角度 → 測定確率(例)
θ=60∘\theta=60^\circ
∣0101⟩|0101\rangle∣1010⟩|1010\rangle
∣ψθ⟩=cos⁡θ2∣0101⟩+sin⁡θ2∣1010⟩|\psi_\theta\rangle=\cos\frac{\theta}{2}|0101\rangle+\sin\frac{\theta}{2}|1010\rangle

量子回路の操作 = 矢印を回す「行列」を掛ける

初期状態∣0101⟩|0101\rangle
U(θ)U(\theta)角度θ\thetaの操作
混ぜた状態∣ψθ⟩|\psi_\theta\rangle
(10)\begin{pmatrix}1\\0\end{pmatrix}
ゲート = 行列
(cos⁡θ2−sin⁡θ2sin⁡θ2cos⁡θ2)\begin{pmatrix}\cos\frac{\theta}{2}&-\sin\frac{\theta}{2}\\\sin\frac{\theta}{2}&\cos\frac{\theta}{2}\end{pmatrix}
この2配置の部分空間
θ/2\theta/2
(cos⁡θ2sin⁡θ2)\begin{pmatrix}\cos\frac{\theta}{2}\\\sin\frac{\theta}{2}\end{pmatrix}

行列を掛ける → 矢印が回る → 混ざり具合が変わる

VQE:角度を変え、平均エネルギーを下げる

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

水素分子の2配置を使う試行状態を、角度θで調整。平均=エネルギー測定値の確率付き平均。

理想シミュレーション。平均は行列から計算。実機では複数の測定設定で推定し、古典計算で角度を更新。この試行状態群は厳密解を含むが、一般には保証されない。

ここからSQD

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
SQD

角度を固定し、候補から解く

VQEθ\thetaを更新↻量子で状態を調整
SQDθ\thetaを固定→候補を測定 → 古典で係数を決定
この体験は固定角度。SQDに角度最適化は必須ではない。

量子測定で「候補」、古典計算で「ベストな係数」

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
01試行状態を準備

θは固定\theta\text{は固定}

02計算基底で測定

電子配置を集める

03部分空間を対角化

係数と最小エネルギーを求める

例:θ=60∘\theta=60^\circ
0.8660∣0101⟩+0.5000∣1010⟩0.8660|0101\rangle+0.5000|1010\rangle
−1.2823 Ha
必要な配置を拾う
01011010
→
古典計算で係数を求め直す
0.9938∣0101⟩−0.1115∣1010⟩0.9938|0101\rangle-0.1115|1010\rangle
−1.8573 Ha

試行状態の係数が違っても、必要な配置があれば解ける。

サンプリング = 角度を固定して「電子配置のくじ」を引く

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
∣ψθ⟩|\psi_\theta\rangle
同じ試行状態
→
1 shot状態準備 + 全量子ビット測定
→
0101101001011回につき1個 → N個の記録
x(r)∼i.i.d.Pψ(r=1,…,N)x^{(r)}\overset{\mathrm{i.i.d.}}{\sim}P_\psi\qquad(r=1,\ldots,N)
毎回独立・同じ測定確率分布結果=占有ビット列。エネルギー測定ではない。

Born則 = 振幅の絶対値の2乗が、測定確率

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
例:θ=60∘\theta=60^\circ
∣ψ⟩=∑xcx∣x⟩|\psi\rangle=\sum_x c_x|x\rangle
01013/2\sqrt3/2→75%
1010+0.5+0.5→25%
符号を区別できない
+0.5+0.5−0.5-0.5
↓同じ25%
Pψ(x)=∣cx∣2P_\psi(x)=|c_x|^2
体験中の試行状態:

測定確率だけでは符号・位相は分からない。最適な係数はHから求め直す。

同じ角度で、状態準備からN回繰り返す

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
∣ψθ⟩|\psi_\theta\rangle
測定→例:0101が出た
∣0101⟩|0101\rangleそのまま再測定 → 0101
01状態準備

θを固定\theta\text{を固定}

02Z基底測定

全量子ビットを0・1で測る

03記録

ビット列xを1個保存

↶ 状態準備に戻る × N回

独立な標本を得るため、毎回同じ重ね合わせを準備する。

同じ測定確率から、N個の記録を集める

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

理論:測定確率 Pψ(x)P_\psi(x)

標本:出現回数 NxN_x

1回以上出た配置 → 候補

ノイズなし。1000 shotsでは約10回を1点で表示。

相対頻度は確率の推定値。SQDでは「候補選び」に使う

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
今回の1010

×頻度を、そのまま答えの振幅にする
P^N(x)≢dx\widehat P_N(x)\not\equiv d_x
○出現した配置を、基底に選ぶ
Nx>0⟹x∈BN_x>0\quad\Longrightarrow\quad x\in B

この体験では、出現した有効配置を全て採用。振幅は古典計算で決める。

観測した配置で「選抜チーム(部分空間)」を作る

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
N個の記録

重複を除く→Nx>0N_x>0
配置集合B

∣0101⟩|0101\rangle
∣1010⟩|1010\rangle
S\mathcal S
2配置なら α∣0101⟩+β∣1010⟩\alpha|0101\rangle+\beta|1010\rangle

77回でも1回でも、同じ配置は基底1個。

ハミルトニアンの射影 = 選んだ配置のミニ行列

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

電子数固定のH(4×4)

→

射影ハミルトニアン HSH_{\mathcal S}

(HS)ij=⟨xi∣H∣xj⟩(H_{\mathcal S})_{ij}=\langle x_i|H|x_j\rangle
測定 → 選ぶ行・列電子積分 → 中の数値(測定頻度を使わない)

部分空間の固有値問題を、古典計算で解く

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
入力
→
古典計算で対角化
HSd=ESdH_{\mathcal S}\boldsymbol d=E_{\mathcal S}\boldsymbol d
出力:最小エネルギーと、長さ1の最適振幅

cxc_xをコピーせず、Hからdxd_xを求め直す。相対符号もここで決まる。

なぜSQDでは、量子回路の角度を最適化しなくてよい?

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
∣1010⟩|1010\rangle
∣0101⟩|0101\rangle
∣ψθ⟩|\psi_\theta\rangle
∣ψS⟩|\psi_{\mathcal S}\rangle
成分の図:電子の位置ではない
量子で準備:θ=60∘\theta=60^\circ
c=(0.8660+0.5000)\boldsymbol c=\begin{pmatrix}0.8660\\+0.5000\end{pmatrix}
−1.2823 Ha
古典で求める:最小固有値の状態
d≈(0.9938−0.1115)\boldsymbol d\approx\begin{pmatrix}0.9938\\-0.1115\end{pmatrix}
−1.8573 Ha
VQE量子回路のθ\thetaを更新して、向きを探す
SQD必要な配置を集め、古典計算で向きを求める

この例では2配置が厳密解を張る。一般の精度は、選んだ部分空間に依存。

精度は、状態・候補・古典計算に依存する

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
  1. 01重要な配置を測れるか
  2. 02十分な部分空間を扱えるか
  3. 03対角化が間に合うか

収束=厳密解への到達証明ではない。電子数の条件だけでは、狙った全スピンは保証されない。

最良の古典手法に常に勝つとは限らない。この小さな水素分子の体験は、量子優位性の実証ではない。

角度 → 記録 → 候補 → 行列 → エネルギー

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
  1. 01VQEの角度を動かす
  2. 02回数を変えて候補を集める
  3. 03行・列を選び、最小値を比較
block = H_matrix[np.ix_(selected, selected)]
energies, states = np.linalg.eigh(block)

最小固有値:energies[0]。係数:states[:, 0]。

SQD実習Notebook(別の模型で検算)(実習NotebookはこのZIPに含みません)

N shotsで配置1010を1回以上検出する確率

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復

p=Pψ(1010)p=P_{\psi}(1010):1 shotで1010を測定する確率。N1010N_{1010}:N shotsでの出現回数。

Pr⁡(N1010≥1)=1−(1−p)N\Pr(N_{1010}\ge1)=1-(1-p)^N

(1−p)N(1-p)^Nは全N回で1010が出ない確率。その補数が「1回以上出る」確率。独立試行を仮定。

目的 重要な配置の取りこぼしを減らすためにshot数を決める。p=0の配置は、何回測っても得られない。

変分原理:部分空間の最小固有値は上界

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
0101だけ−1.8370 Ha
0101 + 1010−1.8573 Ha
ES=min⁡∣ϕ⟩∈S∥ϕ∥=1⟨ϕ∣H∣ϕ⟩≥E0E_{\mathcal S}=\min_{\substack{|\phi\rangle\in\mathcal S\\\|\phi\|=1}}\langle\phi|H|\phi\rangle\ge E_0

同じHを正確に解く場合の上界。候補を残して追加すれば最小値は上がらない。入替えでは保証されない。

バッチ抽出:扱える次元の部分空間を複数作る

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
  1. 01配置集合からバッチを抽出
  2. 02各部分空間で射影・対角化
  3. 03最小エネルギーを採用
Ebest=min⁡(E1,…,EK)E_{\mathrm{best}}=\min(E_1,\ldots,E_K)

バッチ=一度に処理する配置の集まり。重複を除いて基底を作る。実装によっては↑・↓配置の組合せで基底を拡張する。重要な組合せを逃すこともある。

巨大な全行列も、全固有値も不要

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
  1. 01選んだ配置で作用を計算
  2. 02必要な固有対だけ求める

行列とベクトルの積を繰り返す反復法。

w=HSv\boldsymbol w=H_S\boldsymbol v

例:Davidson法。非対角成分の影響も含める。

ノイズは、測定分布や粒子数条件に影響する

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
P~ψ(x)≠Pψ(x)\widetilde P_{\psi}(x)\ne P_{\psi}(x)
0101
↑1個・↓1個:条件を満たす
0100
↑0個・↓1個:条件を外れる

総数だけでなく、↑・↓を別々に確認。

前の体験はノイズなし。条件を保ったまま別の配置に変わるノイズは、この検査だけでは分からない。

軌道占有数は、対角化後の状態から計算する

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
nj=⟨ψS∣n^j∣ψS⟩=∑x∈B∣dx∣2xjn_j=\langle\psi_{\mathcal S}|\hat n_j|\psi_{\mathcal S}\rangle=\sum_{x\in B}|d_x|^2x_j

j:スピン軌道の番号。xjx_j:配置xの占有ビット(0か1)。n^j\hat n_j:その軌道の電子数演算子。

ng↑=∣d0101∣2+∣d1001∣2n_{g\uparrow}=|d_{0101}|^2+|d_{1001}|^2。g↑を占有する全配置の確率を足す。

用途 配置回復で、反転するビットを選ぶ手がかり。表示は今の部分空間の100nj%100n_j\%。試行状態の測定確率Pψ(x)P_{\psi}(x)とは別。

占有数と配置回復を、自己無撞着に更新する

  1. 問題
  2. 試行状態
  3. 計算基底測定
  4. 部分空間
  5. 対角化
  6. 配置回復
  1. 01事後選択で占有数を初期化
  2. 02占有数を使って配置回復
  3. 03各バッチを射影・対角化
  4. 04占有数を更新して反復

事後選択=↑・↓の電子数が正しい記録だけ選ぶ。配置回復=条件を外れたビット列を、占有数を使って確率的に修正する。

目的 ノイズで条件を外れた標本も、部分空間の構築に活用する。正しい配置への復元を保証する処理ではない。

原論文では占有数をバッチ間で平均し、元の測定記録を再利用。VQEのθ更新とは別の古典処理で、再サンプリングは毎回必須ではない。