
GHZ状態をQiskitで作る|3個以上の量子ビットを"運命共同体"にする
2026-08-27 ・ 実践
2量子ビットのもつれ(ベル状態)はすでに作りました。では3個以上をまとめてもつれさせると? それが GHZ状態です。全員が「00…0」か「11…1」しか取らない、極端な運命共同体。Qiskitで作って測定します。
GHZ状態とは
n個の量子ビットが (|00…0⟩ + |11…1⟩)/√2 になった状態。1個を測ると、残り全部の値が同時に確定します。多者もつれの代表例です。
準備
pip install qiskit qiskit-aer
① GHZ状態を作る
先頭をアダマールで重ね合わせ、CNOTを鎖のように繋いで全体へ広げます。
from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
def ghz(n):
qc = QuantumCircuit(n, n)
qc.h(0)
for i in range(n - 1):
qc.cx(i, i + 1) # 連鎖的にもつれを伝播
qc.measure(range(n), range(n))
return AerSimulator().run(qc, shots=1000).result().get_counts()
print(ghz(4)) # {'0000': ~500, '1111': ~500}
結果は {'0000': 約500, '1111': 約500}。4量子ビットが「全部0」か「全部1」しか出しません。0101 のような中間は決して現れない——これがGHZ状態です。
ベル状態の拡張
n=2ならこれはベル状態そのもの。GHZはそれを何個にでも伸ばした版です。CNOTを鎖状に繋ぐだけで、もつれが端から端へ伝播していきます。
② なぜ多者もつれが重要か
- 誤り訂正:論理量子ビットは多数の物理量子ビットをもつれさせて作る。多者もつれはその土台
- 量子通信ネットワーク:複数拠点を量子的に結ぶときの基本リソース
- 量子の"非古典性"の検証:GHZ状態は、古典では説明できない相関をベル不等式より鋭く示せる
多者もつれはこわれやすい
量子ビットが増えるほど、1個がノイズを受けただけで全体のもつれが壊れます。「大規模なGHZ状態を長く保つ」のは実機にとって難題で、ハードウェアの質を測る指標にもなります。
まとめ
- GHZ状態=3個以上が
|00…0⟩ + |11…1⟩になった多者もつれ - アダマール+CNOTの連鎖で作れる。中間状態は出ない
- 誤り訂正・量子通信・非古典性検証の土台
- 量子ビットが増えるほど壊れやすく、実機の実力が問われる
もう少し詳しく(背景と理論)
GHZ 状態は Greenberger, Horne, Zeilinger (1989) が導入した多者もつれで1、3体以上では不等式を使わずに局所実在論との矛盾を1回の測定で示せる点が画期的でした(GHZの定理)。多者もつれには型があり、GHZ 型は1粒子を測ると全体のもつれが壊れる一方、W 状態は1粒子を失っても残りにもつれが残る、という質的な違いがあります2。GHZ は量子誤り訂正のスタビライザー状態の基本要素であり3、量子計量学(ハイゼンベルク限界での高感度測定)や秘密分散にも使われます。大規模な GHZ 状態を長く保つことは実機の性能指標にもなっています。
次の一歩 🌸
2個版のもつれは量子ビット超入門、非局所性はCHSH、誤り訂正は誤り訂正入門へどうぞ。