Skip to content
Published on

開発者(かいはつしゃ)のための量子(りょうし)コンピューティング完全ガイド2025:Qiskit、Cirq、量子アルゴリズム、量子優位性(ゆういせい)

Authors

はじめに:なぜ量子コンピューティングか?

量子コンピューティングは古典(こてん)計算のパラダイムを根本的(こんぽんてき)に変(か)える技術(ぎじゅつ)です。2019年Google Sycamoreが量子優位性を初(はじ)めて実証(じっしょう)し、2024年IBM Condorが1121量子ビットを突破(とっぱ)、2025年現在IBM、Google、Quantinuum、IonQ、PsiQuantumが激(はげ)しく競争(きょうそう)しています。量子計算は万能(ばんのう)ではありませんが、特定(とくてい)問題(もんだい)(素因数分解(そいんすうぶんかい)、特定最適化(さいてきか)、量子シミュレーション)では古典計算で数千年(すうせんねん)かかる計算を数時間(すうじかん)で解(と)く潜在力(せんざいりょく)を持(も)ちます。

本(ほん)ガイドは物理学者(ぶつりがくしゃ)ではなくソフトウェア開発者を対象(たいしょう)とします。線形代数(せんけいだいすう)の基礎(きそ)さえあれば理解(りかい)できるよう直感的(ちょっかんてき)説明(せつめい)とQiskit/Cirqコードを提供(ていきょう)します。

1. 量子計算の重要性(じゅうようせい)

1.1 古典 vs 量子の計算量(けいさんりょう)

問題古典量子高速化(こうそくか)
素因数分解指数(しすう)O(n^3) Shor指数的
非構造(ひこうぞう)探索(たんさく)O(N)O(sqrt(N)) Grover二次的(にじてき)
量子シミュレーション指数O(poly(n))指数的
線形方程式(ほうていしき)O(n^3)HHL O(log n)条件付(じょうけんつ)き

1.2 量子計算が役立(やくだ)つ分野(ぶんや)

  • 暗号学(あんごうがく):RSA/ECC破(やぶ)り
  • 化学(かがく):分子(ぶんし)エネルギー計算
  • 材料(ざいりょう)科学:超伝導(ちょうでんどう)
  • 最適化:物流(ぶつりゅう)、金融(きんゆう)
  • 機械学習:量子カーネル

1.3 量子計算が役立たない分野

  • 一般並列(いっぱんへいれつ):測定(そくてい)で一(ひと)つしか得(え)られない
  • ほとんどの古典アルゴリズム:ソート、ハッシュ
  • NP完全全体(かんぜんぜんたい):Groverは二次のみ
  • 日常(にちじょう)アプリ

2. 古典ビット vs 量子ビット

2.1 違(ちが)い

古典ビット:0または1。量子ビット:ψ=α0+β1|\psi\rangle = \alpha|0\rangle + \beta|1\rangleの重ね合わせ状態、α2+β2=1|\alpha|^2 + |\beta|^2 = 1

測定時(そくていじ)にα2|\alpha|^2の確率(かくりつ)で0、β2|\beta|^2で1を得ます。

2.2 n個の量子ビット

  • 古典n:2n2^n状態の一つ
  • 量子n:2n2^n複素振幅(ふくそしんぷく)ベクトル(全部(ぜんぶ)同時)

300量子ビットの状態ベクトルは宇宙(うちゅう)の原子(げんし)数(すう)より多(おお)い23002^{300}複素数を持ちます。

3. 量子力学(りょうしりきがく)基礎

3.1 重ね合わせ(Superposition)

+=12(0+1)|+\rangle = \frac{1}{\sqrt{2}}(|0\rangle + |1\rangle)

3.2 量子もつれ(Entanglement)

Φ+=12(00+11)|\Phi^+\rangle = \frac{1}{\sqrt{2}}(|00\rangle + |11\rangle)

離(はな)れた量子ビットでも完全(かんぜん)な相関を保ちます。

3.3 測定

測定すると状態は崩壊(ほうかい)します。量子アルゴリズム設計(せっけい)の鍵(かぎ)は、測定結果が有意義(ゆういぎ)な情報を含(ふく)むよう干渉(かんしょう)パターンを設計することです。

3.4 複製(ふくせい)不可(ふか)定理(ていり)

任意(にんい)の未知(みち)の量子状態を完全にコピーすることは不可能(ふかのう)です。

4. Bloch球(きゅう)視覚化(しかくか)

単一量子ビットの純粋(じゅんすい)状態は3次元球面(きゅうめん)の点(てん)で表現可能。

ψ=cos(θ/2)0+eiϕsin(θ/2)1|\psi\rangle = \cos(\theta/2)|0\rangle + e^{i\phi}\sin(\theta/2)|1\rangle

5. 量子ゲート

5.1 単一量子ビットゲート

Pauli:X(NOT)、Y、Z

Hadamard (H):重ね合わせ生成(せいせい)

H0=+H|0\rangle = |+\rangle

位相(いそう)ゲート:S、T

回転(かいてん)ゲート:Rx、Ry、Rz

5.2 多(た)量子ビットゲート

CNOT:制御(せいぎょ)が1ならターゲット反転(はんてん)

Toffoli:3量子ビット、古典汎用(はんよう)計算可能

SWAPControlled-Z

5.3 汎用ゲートセット

{H, T, CNOT}で任意の量子演算(えんざん)を近似(きんじ)可能です。

6. 量子回路と測定

6.1 回路図(ず)

左(ひだり)から右(みぎ)へ時間が流(なが)れます。

6.2 可逆性(かぎゃくせい)

測定以外(いがい)のすべての量子ゲートはユニタリで可逆です。

7. Qiskit 深(ふか)掘(ぼ)り

7.1 インストール

pip install qiskit qiskit-aer qiskit-ibm-runtime

7.2 基本回路

from qiskit import QuantumCircuit, transpile
from qiskit_aer import AerSimulator

qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])

print(qc)

simulator = AerSimulator()
compiled = transpile(qc, simulator)
result = simulator.run(compiled, shots=1024).result()
counts = result.get_counts()
print(counts)

Bell stateを生成し、00または11のみが観測(かんそく)されます。

7.3 トランスパイラー

from qiskit import transpile

compiled = transpile(qc, backend, optimization_level=3)
print(f"Depth: {compiled.depth()}")

7.4 IBM Quantum ハードウェア

from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler

service = QiskitRuntimeService(channel="ibm_quantum", token="YOUR_TOKEN")
backend = service.least_busy(operational=True, simulator=False)
sampler = Sampler(backend)
job = sampler.run([compiled])
result = job.result()

7.5 シミュレーター種類(しゅるい)

  • AerSimulator:状態ベクトル
  • qasm_simulator:測定サンプリング
  • ノイズモデル:ハードウェアノイズ模擬(もぎ)
from qiskit_aer.noise import NoiseModel, depolarizing_error

noise_model = NoiseModel()
error = depolarizing_error(0.01, 1)
noise_model.add_all_qubit_quantum_error(error, ['h', 'x'])
sim = AerSimulator(noise_model=noise_model)

8. Cirq 深掘り

8.1 基本例

import cirq

q0, q1 = cirq.LineQubit.range(2)

circuit = cirq.Circuit()
circuit.append([
    cirq.H(q0),
    cirq.CNOT(q0, q1),
    cirq.measure(q0, q1, key='result'),
])

simulator = cirq.Simulator()
result = simulator.run(circuit, repetitions=1024)
print(result.histogram(key='result'))

8.2 Cirq vs Qiskit

  • Qiskit:IBM生態系(せいたいけい)、文書(ぶんしょ)充実(じゅうじつ)
  • Cirq:Google、NISQ向(む)け、実験的(じっけんてき)

9. 有名(ゆうめい)量子アルゴリズム

9.1 Deutsch-Jozsa

定数(ていすう)か均衡(きんこう)か判別(はんべつ)。古典:指数、量子:1回。

9.2 Grover探索(たんさく)

O(N)O(\sqrt{N})探索。

from qiskit.algorithms import Grover, AmplificationProblem

oracle = QuantumCircuit(3)
oracle.cz(0, 2)
problem = AmplificationProblem(oracle, is_good_state=['101'])
grover = Grover(quantum_instance=simulator)
result = grover.amplify(problem)

9.3 Shor素因数分解

RSA暗号(あんごう)の基盤(きばん)を脅(おびや)かす多項式(たこうしき)時間アルゴリズム。

Shorアルゴリズム概要(がいよう):
1. ランダム数(すう)a選択(せんたく)(1 < a < N)
2. gcd(a, N)計算。1でなければ因数(いんすう)発見
3. 量子段階(だんかい):a^x mod Nの周期(しゅうき)r探索
4. rが偶数(ぐうすう)ならgcd(a^(r/2) +/- 1, N)で因数取得(しゅとく)

9.4 Quantum Fourier Transform (QFT)

def qft(n):
    qc = QuantumCircuit(n)
    for j in range(n):
        qc.h(j)
        for k in range(j+1, n):
            qc.cp(np.pi / (2 ** (k-j)), k, j)
    return qc

9.5 Bernstein-Vazirani

隠(かく)されたビット列(れつ)を1回の問(と)い合(あ)わせで発見。

10. 変分(へんぶん)量子アルゴリズム

10.1 VQE

分子基底(きてい)状態エネルギー計算。ハイブリッド量子古典。

from qiskit.algorithms.minimum_eigensolvers import VQE
from qiskit.algorithms.optimizers import COBYLA
from qiskit.circuit.library import EfficientSU2

ansatz = EfficientSU2(num_qubits=2, reps=2)
optimizer = COBYLA(maxiter=100)
vqe = VQE(estimator, ansatz, optimizer)
result = vqe.compute_minimum_eigenvalue(hamiltonian)

10.2 QAOA

組合(くみあ)わせ最適化(Max-Cut、TSP)。

from qiskit.algorithms.minimum_eigensolvers import QAOA
qaoa = QAOA(sampler, optimizer, reps=2)
result = qaoa.compute_minimum_eigenvalue(operator=cost_operator)

11. 量子機械学習(きかいがくしゅう)(QML)

11.1 量子ニューラルネットワーク

from qiskit_machine_learning.neural_networks import EstimatorQNN
from qiskit.circuit.library import RealAmplitudes, ZZFeatureMap

feature_map = ZZFeatureMap(feature_dimension=2, reps=1)
ansatz = RealAmplitudes(num_qubits=2, reps=1)
qc = QuantumCircuit(2)
qc.compose(feature_map, inplace=True)
qc.compose(ansatz, inplace=True)

qnn = EstimatorQNN(
    circuit=qc,
    input_params=feature_map.parameters,
    weight_params=ansatz.parameters,
)

11.2 量子カーネル法(ほう)

from qiskit_machine_learning.kernels import FidelityQuantumKernel
from sklearn.svm import SVC

kernel = FidelityQuantumKernel(feature_map=feature_map)
svc = SVC(kernel=kernel.evaluate)
svc.fit(X_train, y_train)

12. 量子優位性(ゆういせい)

12.1 Google Sycamore (2019)

53量子ビットで200秒(びょう)、古典では1万年(まんねん)推定(すいてい)。IBMが後(あと)に反論(はんろん)しましたが最初(さいしょ)の実証例(じっしょうれい)。

12.2 USTC Jiuzhang (2020)

光学(こうがく)ベースのGaussian Boson Samplingで200秒、古典25億年(おくねん)推定。

12.3 IBMロードマップ

  • 2019 Falcon:27量子ビット
  • 2021 Eagle:127
  • 2022 Osprey:433
  • 2023 Condor:1121
  • 2024 Flamingo:1386(マルチチップ)
  • 2025 Kookaburra:4158目標(もくひょう)

12.4 有用(ゆうよう)な量子優位性

優位性は「役立(やくだ)たない問題」への証明(しょうめい)です。有用な問題での量子優位性は未達成(みたっせい)で、これがNISQ時代の目標です。

13. 量子ハードウェアプラットフォーム

プラットフォーム代表会社量子ビットゲート速度(そくど)温度(おんど)
超伝導IBM、Google1000+ns10-20 mK
イオントラップIonQ30-100μs常温(じょうおん)
光学(こうがく)Xanadu数百ps常温
中性原子(ちゅうせいげんし)QuEra数百μsmK
トポロジカルMicrosoftTBD--

14. NISQ時代と誤(あやま)り訂正(ていせい)

14.1 NISQ

John Preskill提唱(ていしょう)。50-1000量子ビット規模のノイズ有(あ)り機(き)。完全な誤り訂正なし、回路深度(しんど)制限(せいげん)、ハイブリッドアルゴリズム流行(りゅうこう)。

14.2 量子誤り訂正(QEC)

複製不可定理のため複雑(ふくざつ)なコード必要。

  • Surface Code:2D格子(こうし)、閾値(しきいち)約1%
  • Color Code
  • LDPC

論理(ろんり)量子ビット1個に数千(すうせん)物理(ぶつり)量子ビット必要。

14.3 Fault-Tolerant Quantum Computing

完全な誤り訂正と耐障害(たいしょうがい)計算。有用なShor(RSA-2048)には数百万(すうひゃくまん)物理量子ビット推定。

15. 量子優位性応用(おうよう)分野

15.1 化学と新薬(しんやく)

  • 分子エネルギー計算
  • 反応(はんのう)機構(きこう)シミュレーション
  • 新薬スクリーニング

15.2 最適化

  • 物流経路(けいろ)最適化
  • ポートフォリオ最適化
  • Max-Cut

15.3 金融(きんゆう)

  • Monte Carlo高速化
  • オプション価格(かかく)
  • リスク分析(ぶんせき)

15.4 材料科学

  • 超伝導体(ちょうでんどうたい)設計(せっけい)
  • 電池(でんち)化学

16. 耐量子暗号(たいりょうしあんごう)(PQC)

16.1 必要性

Shorアルゴリズムが多項式時間でRSA、ECCを破れるため。"Harvest Now, Decrypt Later"攻撃(こうげき):現在(げんざい)暗号化(あんごうか)トラフィックを保存(ほぞん)し将来(しょうらい)解読(かいどく)。

16.2 NIST PQC標準(ひょうじゅん)

2024年発表(はっぴょう):

  • FIPS 203(ML-KEM):CRYSTALS-Kyber鍵(かぎ)カプセル化
  • FIPS 204(ML-DSA):CRYSTALS-Dilithium署名(しょめい)
  • FIPS 205(SLH-DSA):SPHINCS+ハッシュ署名

16.3 アルゴリズム分類(ぶんるい)

  • 格子(こうし)ベース:Kyber、Dilithium、Falcon
  • ハッシュベース:SPHINCS+
  • コードベース:Classic McEliece
  • 多変数(たへんすう):Rainbow(破られた)
  • 同型(どうけい):SIDH(2022年破られた)

16.4 移行(いこう)戦略(せんりゃく)

  • Crypto Agility:アルゴリズム交換(こうかん)容易(ようい)な設計
  • ハイブリッドモード:従来(じゅうらい)+PQC
  • 棚卸(たなおろ)し:現在暗号利用(りよう)箇所(かしょ)把握(はあく)
  • タイムライン:2030-2035目標

17. 実習:Bell状態と量子テレポーテーション

17.1 Bell状態

from qiskit import QuantumCircuit

bell = QuantumCircuit(2, 2)
bell.h(0)
bell.cx(0, 1)
bell.measure([0, 1], [0, 1])

17.2 量子テレポーテーション

def teleportation():
    qc = QuantumCircuit(3, 3)
    qc.h(0)
    qc.rz(0.7, 0)
    qc.barrier()
    qc.h(1)
    qc.cx(1, 2)
    qc.barrier()
    qc.cx(0, 1)
    qc.h(0)
    qc.measure([0, 1], [0, 1])
    qc.barrier()
    qc.cx(1, 2)
    qc.cz(0, 2)
    qc.measure(2, 2)
    return qc

18. クイズ

Q1. 複製不可定理(ふくせいふかていり)が量子誤り訂正に与(あた)える影響(えいきょう)?

A:古典コンピューターのように「ビットを3回コピーして多数決(たすうけつ)」のような単純な冗長化(じょうちょうか)が不可能です。そこで量子誤り訂正はエンタングルメントで情報を分散(ぶんさん)する複雑なコード(Shor、Surface、LDPC)を使います。これが論理量子ビット1個に数千の物理量子ビットが必要な理由です。

Q2. ShorアルゴリズムがRSAを脅(おびや)かす原理(げんり)?

A:Shorは整数(せいすう)の素因数分解を多項式時間で解きます。RSAの安全性(あんぜんせい)は大(おお)きな数の素因数分解の困難(こんなん)さに基(もと)づくので、十分(じゅうぶん)大きな耐障害(たいしょうがい)量子計算機ができればRSA-2048を破れます。

Q3. Groverアルゴリズムの高速化は指数的か二次的(にじてき)か?

A:二次的(quadratic)です。NN個のアイテムからの探索を古典はO(N)O(N)、GroverはO(N)O(\sqrt{N})で解きます。指数的でないためNP完全全体を多項式時間で解くことはできません。

Q4. VQEとQAOAがNISQ時代に有用な理由?

A:両方(りょうほう)ともハイブリッド量子古典アルゴリズムで、浅(あさ)い回路のみ使うためノイズの影響が限定的(げんていてき)です。量子部分(ぶぶん)は期待値(きたいち)計算のみし、パラメータ最適化は古典オプティマイザが行(おこな)います。

Q5. PQCにおける"Harvest Now, Decrypt Later"攻撃とは?

A:攻撃者が現在の暗号化トラフィックを保存しておき、将来十分に大きな量子計算機ができたら解読する攻撃です。長期機密性(ちょうききみつせい)が必要なデータ(国家機密、医療記録(いりょうきろく))はPQCに既(すで)に移行する必要があります。

19. 参考資料(さんこうしりょう)

  1. Qiskit Documentation - qiskit.org
  2. Cirq Documentation - quantumai.google/cirq
  3. IBM Quantum Learning
  4. Nielsen and Chuang, Quantum Computation and Quantum Information
  5. Preskill, Quantum Computing in the NISQ era and beyond
  6. Arute et al., Quantum Supremacy, Nature 2019
  7. NIST PQC Project
  8. Google Quantum AI
  9. Shor, Algorithms for quantum computation
  10. Grover, A fast quantum mechanical algorithm
  11. Microsoft Quantum Development Kit
  12. QuTiP Library
  13. Quantum Algorithm Zoo

結論(けつろん)

量子コンピューティングはもはや物理学者だけの領域(りょういき)ではありません。Qiskit、Cirqといったオープンソースのおかげで、ソフトウェア開発者もJupyterノートブックで量子回路を実行(じっこう)し、IBM Quantumクラウドで実際(じっさい)の量子ハードウェアにアクセスできます。NISQ時代は完全ではありませんが、VQE、QAOA、量子機械学習といったハイブリッドアプローチで最初(さいしょ)の有用な量子優位性を追(お)い求(もと)めています。同時(どうじ)にPQCへの移行はすべてのセキュリティインフラの必須(ひっす)課題(かだい)です。