2026年11月12日木曜日

量子コンピューティングExpo2026 ミニレポート

⭕️参加のねらい
 今年も幕張で、量子コンピューティングExpoが開催された。(2026年11月11日から13日) 例年通り、AI人工知能Expoなどとの共催となった。 今年は特に「フィジカルAI」が新たに加わり、AI関係の方が圧倒的な人気だった。だが、私は違う。 私は見学先を量子コンピューティングに絞った。その中でも狙ったのは、東大の古澤明教授の25年間の研究成果に基づく光量子コンピュータ、その開発製造を担うスタートアップ企業OptQCによる講演であった。


⭕️光量子コンピュータの進捗と展望に関する講演の概要
 この講演は、事前報道もあって注目度が高く、会場内に設けられた50席ほどの小ブースは開始前から大勢が詰めかけ、立ち見状態となった。 私は早くから、前方の席に座って待ち構えていた。講演は30分ほどだが、要点は 次のようだった。(ただし、正確性についてはあまり自信はない。不適切な叙述があれば、御容赦願う。) 

  1. 従来型の量子コンピュータの多くは、極低温冷却を要するので、将来、電力枯渇に陥る恐れがある。
  2. これに対して光量子コンピュータは常温常圧稼働なので、消費電力が非常に少ない。
  3. 電子コンピュータはギガヘルツレベルなのに対して、光量子コンピュータはテラヘルツのクロックが使える。電気抵抗による発熱がない。
  4. 光通信は非常に長い歴史があり その蓄積されたノウハウを活用できることも大きい。
  5. 東大古澤明研究室の世界初の光量子テレポーテーションの実現などがベースにある。
  6. 時間、波長多重(従来は空間多重、つまり空間並列GPU配置など)なので小スペースになる。
  7. 2026年、産総研に129入力(量子ビット)、100メガヘルツクロックの実機を納入した。 利用のためのソフトウェアClavelesも開発した。
  8. NTTとの共同開発もスタートした。2027年、1万量子ビット 2030年、100万量子ビットを目指す。
  9. 世界的にはどうなのか。 光量子コンピュータ方式は他にも数社で行っている。PsiQuantum(米国)、Xanadu(Canada)などだが、当社OptQCが先頭を切っていると考えている。ただし、資金調達面では彼らに遅れをとっている。
  10. 光量子方式でも、誤り耐性(誤り訂正)を目指すのが世界的潮流である。 現在アナウンスされている量子ビット数は通常、物理量子ビット数である。だが、誤り耐性の論理ビットを構築するには 大量の物理量子ビットを要する。なので、量子ビット数は、今後、論理量子ビット数で議論をする方向になるだろう。

⭕️講演者との交流
 講演終了後、質問受け付け/名刺交換となった。真っ先に、私が講演者の平岡卓爾OptQC取締役へ向かった。質問が終わって振り向くと、十数名が列をなしていた。私の質問「光量子コンピュータの誤り訂正はStabilizerベースのSurface codeを使っているか」に対して、彼の回答は、「Surface codeそのものは使っていない。その測定において古典計算が含まれてしまうので支障があるので。しかし、確かにStabilizerベースの方法ではある」とのことであった。

⭕️全般的な感想
 実は偶然と言えるのだが、私はごく最近、下記に示す通り、量子誤り訂正(特に、Stabilizer,  Surface code)に関する記事を5件書いていた。そのため、上記の質問が自然に湧いた次第である。今回の平岡氏の講演と質疑応答は、私自身の取り組みに自信を与えてくれたような気がした。また、同時に今回の参加で、量子コンピューティングの未来に向けた革新と挑戦を感じ取ることができた。とても良い一日であった!
 なお、本講演では触れられなかったが、産総研にはすでに、超電導方式(富士通)と中性原子方式(QuEra社)のものが納入されており、研究開発がさらに促進される見られている。いずれの方式においても、上記に述べた通り、量子誤り訂正は最大の難関の一つのようである。

(以下の図はこの講演のものではなく、私の自作。量子誤り訂正の基本イメージとして。これ全体で1個の(誤り耐性の)論理量子ビットが構成される。しかし、これは、かなり控えめな構成であり、実用的には、エラー発生確率に依存するが、さらに多くの物理量子ビット、つまり長い符号距離を要する。)

【参考資料】

🟢光量子コンピュータのOptQC社とNTTとの共同開発を報じた新聞記事:
 "光方式で量子コンピュータのゲームチェンジャーなるか"
 産経新聞、2026年10月19日朝刊

🟢量子誤り訂正に関する私のブログ記事5件:
 2026年11月11日水曜日
🔹量子誤りの離散化(Discretization of Errors)を簡単な例で確認する
 2026年11月8日日曜日
🔹量子誤り訂正符号Surface codeの量子回路
 2026年11月5日木曜日
🔹Surface codeによって2つの量子ビットの誤りを訂正する
 2026年10月31日土曜日
🔹Stabilizerによる量子誤り訂正法を理解するためのアプリ
 2026年10月24日土曜日
🔹量子誤り訂正(9-qubit Shor Code)を自作シミュレータで動かす

2026年11月11日水曜日

量子誤りの離散化(Discretization of Errors)を簡単な例で確認する

【要旨】量子誤り(エラー)は、ビット反転(bit-flip)と位相反転(phase-flip)、およびその両方、だと言われる。例えば、bit-flipとは、量子状態(α|0>+β|1>)が、α|1>+β|0>に変化してしまうことである。つまり、確率振幅α、βが入れ替わる。しかし、α→α'、β→β'のように変わってしまうエラーはないのだろうか。別の言い方をすると、極角θや方位角φの意図しない任意の変化もあるだろう。もしも、そうだとすれば、その検出と訂正はどのように行われるのか?その答えは、誤りの離散化(Discretization of Errors)にあるようだ。これを、簡単な例で確認しよう。


🟢誤りの離散化(Discretization of Errors)の概要
 
量子誤り訂正では、「誤りの離散化」により、一般的な1量子ビットの誤りを、誤り無し(I)、ビット反転(パウリX)、位相反転(パウリZ)、ビット反転と位相反転の両方(パウリY)に対応する成分として扱うことができる。ここでの「扱う」とは、これらの成分に対応する訂正で、元の論理状態を回復できるという意味である。

 符号化された状態(ここでは、q1,q2,q3の3-qubit構成とする)の q1にだけ Rx(θ) による誤りが生じると、"元の状態の成分"と"q1がビット反転した成分"とが重ね合わさる。(→以下の具体例参照)この2つの成分が、異なるシンドロームを持つ場合、シンドローム測定によって、どちらの成分が残ったかが分かる。ビット反転した成分が残れば、q1に X をかけて元の状態に戻せる。

 また、q1に Rz(θ) による誤りが生じた場合も、元の成分と位相反転した成分が、異なるシンドロームを持てば、同じように区別できる。位相反転した成分が残れば、q1に パウリZ演算をかければ元の状態に戻せる。より一般に、1量子ビットの誤りを記述する各演算は、I、X、Y、Z の線形結合で表せる。Y は、全体位相を除けば、ビット反転と位相反転を組み合わせた作用に相当する。

🟢誤りの離散化の具体例
 繰り返しになるが、誤りの離散化は、簡単に述べると、量子ビットの意図しない状態変化、すなわち、極角θや方位角φの任意の変化による誤りを、シンドローム測定によって、いくつかの決まった訂正演算で扱えるようにする。以下の具体例でそれを確認しよう。

1量子ビットの保存したい状態|ψ>を、3個の物理量子ビットq1,q2,q3に符号化する。
    |ψ>=α|0>+β|1> → |ψL>=α|000>+β|111>

今、q1にだけ、意図せずに極角に回転Rx(θ)が加わったとすると、以下のようになる。

    Rx(θ)|000> = (cos(θ/2)|0> -i sin(θ/2)|1>|00>
    Rx(θ)|111> = (cos(θ/2)|1> -i sin(θ/2)|0>|00>

したがって、

    Rx(θ)|ψL> =
      cos(θ/2)(α|000> + β|111>)   -----  (a)
    -i sin(θ/2)(α|100> + β|011>)   -----  (b)

 ここで、(a)は元の符号状態の成分であり、(b)はq1がビット反転した成分である。つまり、2つの成分が、一つの量子状態の中で重ね合わせになっている。この状態で、2つのstabilizers (Z1Z2とZ2Z3)を測定すると、その結果として得られるシンドロームの組によって、以下のように、どちらの成分が残るかが分かる。もしも(b)の方であれば、q1にパウリXを施せば元の状態に戻る。

(a) α|000> + β|111> ⇔  シンドローム(Z1Z2, Z2Z3)= (+1, +1)
(b) α|100> + β|011> ⇔  シンドローム(Z1Z2, Z2Z3)= (-1, +1)

すなわち、
・シンドローム測定により、どちらの成分が残ったかが分かる。これが、誤りの離散化。
・ビット反転した成分(b)が残れば、パウリXで訂正できる。
・αとβの重ね合わせのまま、シンドロームにより訂正に必要な情報が得られる。また、回転角θの値を見る必要がない。


2026年11月8日日曜日

量子誤り訂正符号Surface codeの量子回路

【要旨】これまでに、Surface codeに関して2つの記事を書き(こちらとこちら)、本方式の概要を把握した。今回は、そのための量子回路がどんなものかを調べた。一つの論理量子ビットを構成する最小のSurface code (3x3レイアウト)の場合であっても、必要な物理量子ビット(今後は単に量子ビットと呼ぶ)の個数は意外に多く、符号空間へのエンコード、誤り検出(シンドローム測定)、デコード・誤り訂正から成る量子回路全体は深いものになる。誤りを訂正できる論理ビットのハードウェア実装の難しさが見えてくる。(最後の節「ここで湧く疑問...」は重要と思います!)

🟢シンドロームを算出するための量子回路
 最初に、stabilizerの測定回路を見てみよう。Surface code 3x3において、量子ビットq5にX誤り(bit-flip)が起こった場合を示す。Fig.1の右側に、使われるstabilizer 8個を示した。左側の図の通り、これのうち、A1とA4の測定値(固有値)はマイナス(-)であり、他のstabilizerは全てプラス(+)を与える。

 これらのstabilizers を測定するための量子回路をFig.2に示す。例えば、左端の区画にあるA1は、一つのancillaビットa0を利用している。4つのCNOTを経た後に、a0の測定値がmであるならば、A1の固有値は(-1)mであることから、この値がFig.1に示すシンドロームを対応する。他のstabilizerも同様である。Fig.2はZ型stabilizer、Fig.3はX型のstabilizerの測定回路である。各stabilizer毎にancillaビットが必要なので、合計8個となる。




🟢エンコードのための量子回路
 上に述べたstabilizersを稼働させるためには、適切な符号空間を設定する必要がある。そのための論理基底の選択には自由度があるが、標準的に使われるのは以下のものである。

4|0L⟩ =
|000000000⟩+ |110000000⟩+ |101011000⟩+ |011011000⟩+
|000110110⟩+ |110110110⟩+ |101101110⟩+ |011101110⟩+
|000110101⟩+ |110110101⟩+ |101101101⟩+ |011101101⟩+
|000000011⟩+ |110000011⟩+ |101011011⟩+ |011011011⟩   

4|1L⟩ =
|100100100⟩+ |010100100⟩+ |001111100⟩+ |111111100⟩+
|100010010⟩+ |010010010⟩+ |001001010⟩+ |111001010⟩+
|100010001⟩+ |010010001⟩+ |001001001⟩+ |111001001⟩+
|100100111⟩+ |010100111⟩+ |001111111⟩+ |111111111⟩ 
 

 すなわち、(エラーが無いように保護したい)量子ビットq1の状態を|ψ⟩とすると、これをこの符号空間へエンコードして得られる状態|ψL⟩に対して、Fig.2とFig.3に示したstabilizerが働くのである。

|ψ⟩ = α|0⟩+β|1⟩ → |ψL⟩ = α|0L⟩+β|1L⟩

このためのエンコード量子回路は、Fig.4に示すものである。 


🟢Surface code全体の量子回路
 Fig.4のencode回路の後に、Fig.2、Fig.3に述べたstabilizers測定が来る。その結果がシンドロームを与える。これらを含めた、Surface code全体の量子回路はFig.5 (a) (b) (c)である。

 Fig.5(a)の先頭(左端)で、先頭の量子ビットq1の初期状態|0⟩に対して、2つの回転ゲートRy(1.98)とRz(0.7)を施して状態を変えている。これが、保護したいq1の状態である。これを上記に述べたencodeを施し、その後に、デモとして、Xエラーをq5に起こしている。

 このエラーは、stabilizersの測定に基づき、Fig.5(b)の後半のrecoveringで誤り訂正が行われる。Qiskitの動的回路機能(if制御)によって、古典ビットの値に基づいた量子ゲートの設定が動的に行われている。

 これで誤り訂正は完了なのであるが、Fig.5(c)で、この誤り訂正が正しく行われたことを確認している。すなわち、q1に逆回転ゲートRz(-0.7)とRy(-1.98)を施して、初期状態|0⟩に戻ることを確認している。q1を測定している。




 

🟢ここで湧く疑問 ... 訂正回路自体にも誤りが生ずるだろう...
 
これまで検討してきたSurface codeによるエラー訂正技術は、理論的にも美しく、実用面でも期待が高いと思います。しかし、これは、「エンコード、スタビライザーの測定、error訂正などの量子回路にはエラーがなく、正常に作動するという前提」で、誤りのない論理量子ビットを構成しようする、と思っていました。

 しかし、これは実は正しくないことが分かってきました。つまり、Surface codeは、「誤り訂正のための回路も信頼できない」という現実から出発した符号であるということです。そして、その考え方を数学的に保証するのが Threshold theorem(閾値定理)、その工学的実装が フォールトトレラント量子計算 です。閾値定理は、一言でいうと、「各物理ゲートのエラー率がある閾値以下なら、論理エラー率を任意に小さくできる」というものです。詳細は、次の記事で検討したいと思います。

2026年11月6日金曜日

異色の量子コンピューティング書籍2冊

 最近は、量子コンピューティング分野でも、生成AIに全部書かせたか、生成AIで調べた内容を単に羅列したような粗雑な書籍も自費出版されている。買ってみてがっかり、という経験もした。そこで、なるべく名の通った大手出版社/大学出版局や、信頼できそうな著者の書籍を買うようにしている。

 しかし、以下に示す2冊は、自費出版のような書籍で、著者もはっきりしないが(ただし、左側の書籍は、著者"あさひ"とだけ記載されている)、内容はしっかりしていて安心した。一見、一般向けの啓蒙書のように見える。確かに、数式はほとんど使っていないが、幅広い観点で、かなり深い考察や精緻な叙述で貫かれている。大いに参考になると思われるので、ここに簡単に紹介したい。いずれもAmazon等で、2,000円前後で購入できる。紙版とKindle版がある。

 2つとも、AIを活用して書かれているようにも見えるが(本当かどうかは分からないが)、著者によって十分にコントロールされているので、私にとっては問題なく読める。

🟢量子コンピューティング 実践ロードマップ(上図左側)
 技術専門書ではないが、量子コンピューティングの現状と今後の見通しを、かなり深い洞察を持って叙述している。過度な期待を持たせずに、しかし、今後の可能性について丁寧に導く。そして、古典コンピュータとの決定的な違いは、「量子ビット、量子重ね合わせ、量子もつれ、そして干渉」にあることを、具体的に説いている。

 私が特に感心したのは、「測定とノイズ」「誤り訂正とスケーリング」についても、かなりのページ数を割いて議論している。ハードウェア製造の難しさも良く伝わってくる。誤り訂正では、Surface code(表面符号)関係についても、短いが的確に要点を示していることは素晴らしいと感じる。

 安直な啓蒙書ではなく、かと言って、数式は全く出てこないが、技術色が美しく漂う本書は一般の技術者にとっても、あるいは、量子コンピューティングの専門家にとっても有用だと感じる。読みやすい。

🟢Pythonで動かし古典と比べる 量子AI(上図右側)
 こちらには、著者名が明記されていないが、上記の書籍と非常に似た語り口なので、おそらく同じ著者ではないかと思われる。表紙だけ見ると、一般向啓蒙書、あるいは、量子と名をうったハウツー書に見えるが、全く違う!確かに、たくさんの短いPythonプログラムが打ち込んで、なんとか動かすように見えたが、そうではなく、それよりも「考え方」に何倍も多く説明を費やしている。

 特徴は、変分量子回路、量子カーネルという、先端的事項を扱うのだが、古典との比較や、なぜこの範囲では性能面で量子的手法が古典手法に勝てないのかも説明していることだ。だが、それでも量子技術を学ぶ必要性も忘れていない。また、要所要所に「ここで詰まる」という節があり、進めなく困った時に、それをどう捉えて、どのように進めるかを重視している点も新鮮だ。

 表示にもある通り、PC1台とPythonの動く環境があれば、例題の全てを動かすことができる。NumPyで量子ビットを作ることから始まり、機械学習関係にはsklearn、量子ゲートを利用するためにPennyLaneといったライブラリを利用している。PCでのシミュレーションに徹しているのだが、量子コンピュータ実機で動かす場合の考察も忘れていないので、次のステップへ行く際の参考なる点も多い。量子の規模を拡大した場合の課題やノイズによる誤り訂正にも簡潔だが明快に触れている。学生、技術者、量子コンピューティング経験者にも有用と思われる。

2026年11月5日木曜日

Surface codeによって2つの量子ビットの誤りを訂正する

Correcting Errors on Two Qubits with the Surface Code

This article builds on my previous discussion of the surface code for quantum error correction. Using my revised app, I explore the relationship between the number of physical qubits (hereafter simply called “qubits”) used to encode one logical qubit and the error weight—the number of qubits affected by errors—for which correction is guaranteed. For example, under ideal conditions, a 25-qubit (5 × 5) surface code can correct errors affecting any two qubits and restore the original logical state. I also confirm that when two different two-qubit error patterns produce the same syndrome, the same correction can restore the original logical state in either case.

【要旨】量子誤り訂正符号Surface codeに関する前回の記事を少し深めた。今回は、1論理量子ビットを構成する物理量子ビット(以後、単に量子ビットと呼ぶ)の個数と、誤り訂正が保証できる誤りの重み(個数)の関係を調べた。すでに開発したアプリを改訂し、それが可能になった。理想的な条件のもとでは、例えば、25(=5x5)量子ビットの場合は、「2ヶ所の量子ビットに誤り」が生じても、それを訂正して正常な論理量子ビットの状態を回復できる。その際、シンドロームが同一となる別の「2ヶ所の量子ビットに誤り」が生じた場合でも、どちらかの「2ヶ所の量子ビットに誤り」を訂正すれば良いことも確認した。

(→こちらに続編があります。)

🟢符号距離と誤りの重み
 符号距離と、誤り訂正を保証できる「誤りの重み」との関係をTable 1に示した。(簡単に言えば)符号距離dは、量子ビットを正方形に並べた場合の縦に置かれた個数である。誤りの重みは、誤りを起こす量子ビットの個数である。ここでは、d=5の場合を考える。


 とにかく何処かに誤りが生じたことを検知できるのは、誤りの重みwが4以下の場合である。また、誤りの訂正を保証できる誤りの重みは2以下であることが示されている。

🟢2つの量子ビットが誤りを起こす場合のシンドローム
 具体例として、2つの量子ビットが誤りを起こす、Fig.1に示す3つのケースを調べた。
Case-1: q7にX誤り、q19にY誤り
Case-2: q9にZ誤り、q10にZ誤り
Case-3: q14にZ誤り、q15にZ誤り


 Case-1では、16個のstabilizerのうち、A1, A3, A6, A8, B6, B8の6個の測定結果がマイナス(-)であり、それ以外のstabilizerはプラス(+)を与えている。このパタンは、上に示した誤りの位置と種類を一意に示すものである。従って、これらの誤りは訂正できる。

 Case-2とCase-3では、両方とも、stabilizer B4の測定結果のみがマイナス(-)であり、他の測定結果はプラス(+)である。従って、シンドロームを観察しても、どちらのCaseの誤りなのか判断できない。そのため、誤り訂正を施すことはできないように思われる。
 しかし、実は、それはどちらでも良いのである。つまり、どちらかのCaseを想定して誤り訂正を行えば、論理量子ビットの正常な量子状態|ψ>を回復できるのである。その計算を簡単に以下に示す。

Case-3の方を選び、その誤りをEaとすると、
    Ea  = Z14Z15
その誤りを訂正する演算をRとすると、以下のように訂正できる:
 R = Z14Z15 = Ea,  REa|ψ⟩ = I|ψ⟩ = |ψ⟩

一方、Case-2の誤りをEbとすると、
 Eb = Z9Z10
 REb = Z14Z15Z9Z10 = Z9Z10Z14Z15
となるが、実はこれは、stabilizer A4であるので、
 REb|ψ⟩ = A4|ψ⟩ = |ψ⟩

 つまり、選んだ誤り訂正Rによって、Case-2とCase-3のどちらの場合であっても論理量子ビットの状態が回復されるのである。これは、繰り返しになるが、誤り訂正の演算がstabilizerになったことが効いている。

🟢感 想
 すでに知られていることだが、以下のことを改めて確認できた。すなわち、量子誤り訂正が目指しているのは、「どの量子ビットにどのようなエラーが生じたか」を完全に知ることなく、元の正常な量子状態|ψL⟩を取り戻すことである。それが、(理想的な条件下での)Stabilizerに基づく誤り訂正の真髄なのであろう。

2026年10月31日土曜日

Stabilizerによる量子誤り訂正法を理解するためのアプリ

【要旨】量子誤り訂正の一例として、先の記事で9-qubit Shor codeについて述べました。このShor符号を含む多くの量子誤り訂正符号を、統一的に記述する枠組みがStabilizer(スタビライザー)形式です。Rotated Surface符号も、この枠組みに基づいています。今回、エラーと、それによって生じるシンドロームの関係を操作しながら確認し、Stabilizerによる量子誤り訂正への理解を深めるためのモバイルアプリを開発しました。

(注)本論の後半に「誤解しやすいのですが... 論理/物理量子ビット」を追加しましたので、できればそれを先にご覧ください。

🟢Stabilizerに基づくRotated Surface Codeの概要
 アーベル群(可換群)の構造に基づく、Stabilizer群と呼ばれるものを導入します。その生成元であるstabilizerは、いくつかのパウリ演算子XおよびZの積です。そのいずれのstabilizer Sも、ある正常な(誤りの無い)符号空間(複数の量子ビットのテンソル積で作られるある空間)のどの量子状態|ψ⟩に対しても、その測定値(固有値)が+1になるように作られているのです。すなわち、以下を満たします。

S|ψ⟩ = |ψ⟩

 そして、一般の量子誤りは、パウリ演算子X、Z、Y(=XとZの積)、およびそれらの線型結合が、意図せずに作動した結果と同等とみなされます。どの2つのstabilizerも互いに可換ですが、量子誤りを起こす演算Eは、いずれかのstabilizerと非可換となるように、stabilizer群が設計されています。それゆえ、エラーが起こった量子状態に、Eと非可換となったstabilizer Seを作用させると、(詳細は略しますが)その測定値(固有値)は-1に変わります。すなわち、以下のようになります。

E|ψ⟩ = |ψerror⟩
Se|ψerror⟩ = - |ψerror⟩

🟢エラー シンドローム(Error Syndromes)
 上記に述べたように、いくつかのstabilizerが、エラー状態に作用した際に、その測定値(固有値)の符号がマイナス(-)に変化することを利用して、エラーの種類とエラー発生元を特定するのです。そのような符号の変化を計算したもの(Table 1参照)をError Sydromeと呼びます。

Table 1 Error Syndrome measurements
 量子ビット数25のこの例では、表の横軸に、エラー検出のために、2種の合計24個のstabilizerが置かれており、行単位で見て、その行のいくつかが、本来の+(+1)から-(-1)に変化していることで、エラーの発生を知ります。そのエラーの種類と位置の特定については、以下に述べます。

🟢Rotated Surface Codeに親しむためのモバイルアプリ
 この仕組みを理解するには、いくつかの例について、手計算で確認するのが良いでしょう。その計算が正しいかどうかを見るために、また、これに親しむためにも、Fig.1に示すアプリを開発したことは意味があります。スマホを片手に、理解を深めることができるのです。その動作例は次の節で示します。
Fig.1 Mobile app demonstrating rotated surface code

 このアプリでは、左側の図では、3x3=9量子ビット、または5x5=25量子ビットを選び、エラーを起こす量子ビットとエラータイプを指定します。測定結果から得られるシンドロームがその下に図示されます。右側の図には、そのシンドローム関する補足情報が表示されます。

🟢Rotated Surface Codeの動作例
 このスマホアプリを使って、エラー検出の一例を見てみます。Fig.2は、25個の量子ビットを平面に5x5の形に配置しています。丸印が量子ビット(データ)であり、その間に、エラーを検出するためのstabilizerが合計24個配置されます。A1〜A12はZ型エラー、B1〜B12はX型エラー検出のためです。
 ここで特筆すべきは、どのstabilizerも近接の2個、または4個量子ビットだけにアクセスしていることです!対象データとしての量子ビット数がこれ以上増えてそれは変わ利ません。これは、大規模量子ビットシステムの検査に非常に有利に働くことは明らかでしょう。

Fig.2 Deployment of qubits and the stabilizers

 さて、この回路を動かして、stabilazerを測定した結果、Fig.3のようになったとします。すなわち、4つのstabilizer A3, A5, B3, B5が符号"-"を与えます。この結果を、Table 1のError Sydromeで調べると、そのエラーはY型で(すなわち、ビット反転と位相反転が同時におこり)、それは量子ビットq12で発生したことが分かります!それが分かれば(ここでは略しますが)q12を訂正することができます。
Fig.3 Detecting errors (both bit-flip & phase-flip) on a qubit

🟢誤解しやすいのですが ... 物理/論理量子ビット
 ここまでに示した3×3=9量子ビットや5×5=25量子ビットは、量子計算アルゴリズムで使う論理量子ビットの個数ではありません。誤り訂正付きの1個の論理量子ビットを構成するのに必要な(Rotated surface codeにおける)物理量子ビット数です。各スタビライザー生成元に測定用補助量子ビットを1個ずつ割り当てる標準的な構成では、補助量子ビットも含めて、それぞれ17個、49個の物理量子ビットを使用します。
 この論理量子ビットでも、完全に誤りがなくなるわけではありません。物理誤り率がしきい値を下回り、適切な測定回路と復号処理を用いる条件では、n×nの格子のnを大きくするほど、より多くの誤りに対応でき、論理誤り率を低く抑えられます。長い量子計算に必要な信頼性を達成するには、物理誤り率や要求精度によってはnが数十以上となり、1個の論理量子ビットに数千〜1万個程度、あるいはそれ以上の物理量子ビットを使う可能性があります。
 また、このSurface codeを使うための量子状態のエンコード、エラー検出(シンドローム測定)、エラー訂正などの量子回路自体は理想的に実行され、それらには誤りは起こらないとの前提で議論しています。
 一方、誤り訂正符号を用いず、物理量子ビット上で直接計算する方式では、物理的な誤りの抑制や、計算結果に対する誤りの影響を軽減する手法が用いられます。これと並行して、誤り訂正された論理量子ビットの保持や演算の実験も進んでいます。

🟢シンドローム計算の詳細
 上記で、測定結果"-"を与えたstabilizerの具体的な演算構成は以下の通りであす。演算子X, Zの添え字は、それが作用する量子ビット番号を示します。なお、念の為ですが、A3は次のようなテンソル積ですが、以後、省略形を使います。"I" は、恒等演算子です。
A3 = I⊗I⊗I⊗I⊗I⊗I⊗Z⊗Z⊗I⊗I⊗I⊗Z⊗Z⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I⊗I

    A3 = Z7 Z8 Z12 Z13
    A5 = Z11 Z12 Z16 Z17
    B3 = X6 X7 X11 X12
    B5 = X12 X13 X17 X18

 このうち、A3をq12へのパウリYによるエラー発生状態に作用させる計算を詳しく見てみましょう。ポイントは、以下の2項です。

(a)同一の量子ビットに対しては、 ZY = -YZ, XY = -YX
(b)異なる量子ビットに作用する演算同士は可換。

 正常状態を|ψ⟩とします。q12へのパウリY(=Y12)による誤り状態を|ψerror⟩とすると、|ψerror⟩ = Y12|ψ⟩です。
 
A3 Y12 
= Z7 Z8 Z12 Z13Y12
= Z7 Z8 Z12 Y12Z13     ---------- (b)による
= - Z7 Z8Y12 Z12 Z13    ---------- (a)による
= - Y12Z7 Z8 Z12 Z13    ---------- (b)による
= - Y12 A3 
 ここで、エラー状態|ψerror⟩にA3を作用させると、
A3 |ψerror⟩ 
= A3 Y12|ψ⟩ 
= - Y12 A3|ψ⟩
= - Y12|ψ⟩   ---------- A3はstabilizer生成元のため
= - |ψerror⟩  ---------- A3の測定値 "-1"が得られた!

🟢次にやるべきこと
 理論はこれで大体理解できた(つもり)なので、次の記事では、やはり、このSurface codeを実現する具体的な量子回路を作って動作を確認したいと思います。ここで述べたエラーの検出以外に、初期状態をどのようにエンコードして符号空間を作るのか、そして、デコード、訂正回路はどうなのかです。それらを検討することで、実用上の課題も段々見えてくるはずです。

2026年10月24日土曜日

量子誤り訂正(9-qubit Shor Code)を自作シミュレータで動かす

Running the Nine-Qubit Shor Code on My Own Quantum Circuit Simulator:
By implementing the nine-qubit Shor code—a foundational quantum error correction code—in a quantum circuit simulator I built for mobile-phones, I deepened my understanding of quantum error correction and gained an appreciation for the elegance of its design. I also learned about the more general framework of stabilizer codes, which is underpinned by the mathematical structure of Abelian groups, and discovered that the nine-qubit Shor code is itself a stabilizer code.

[注]その後、Error Syndromesの項を追加しました。(2026-10-26)

【要旨】量子誤り訂正の基本技術である9-qubit Shor Codeを、自作のスマホ版量子回路シミュレータで稼働させて理解を深め、その美しい仕組みを噛みしめることができた。さらに進んだ誤り訂正としてStabilizer Codeがあるが、それはアーベル群の構造に支えられている。そして、この9-qubit Shor Codeは、Stabilizer Codeの一種と見なせることも知った。

🟢9-qubit Shor Code
 Prof. Peter Shorは、RSA暗号を破る可能性を秘めた、素因数分解の量子アルゴリズムを発表したことで有名である。彼はこれとは別に、量子コンピュータ最大の課題の一つである誤り訂正に、世界で初めて道を拓いたとも言われる。それが、9-qubit Shor Codeである。これに関する解説は非常に多いので、ここでは、これで何ができるかだけを示す。

 Fig.1に示すように、一つの量子ビット(q0)を適当な量子状態①に設定する。続けて、準備として他の8個の量子ビットを使って、ある状態にエンコードする。その状態になって以降、これら9個のどの量子ビット(ただし、いずれか1個に限る)にエラー②(ビット反転、位相反転、その両方)が発生しても、その後に置かれた誤り訂正・デコード回路③によって、量子ビット(q0)は元の量子状態になる。①の量子状態を明示的に調べることもなく、これが自動的にできてしまうのであるから、誰もが驚く。

🟢自作のスマホ版シミュレータで9-qubit Shor Codeを動かす
 本記事の主な目的は、このShorコードを自作シミュレータで動かせることの確認にある。これまでは、最大で6量子ビットを扱ったが、今回、9量子ビットではうまく稼働するか心配したが、Fig.2に示すとおり難なく完全に動かすことができた。

 発生したエラーが完全に訂正できたかどうかを確かめる方法はいくつかある。
(1)元の量子状態と処理結果の量子状態のfidelityが1となることを確認。
(2)今回の例のように、|0>に2つの回転ゲートで量子状態を設定した場合は、処理結果に逆向きの回転ゲートを連続して作用させ、|0>の状態に戻ることを確認。
(3)元の量子状態と処理結果の量子状態において、それぞれ測定を行い(あるいは理論計算から)、確率振幅の一致を直接調べる。

 今回は(3)の方法をとった。Fig.2に説明しているとおり、両者の確率振幅が一致することを確認した。一見すると、両者は異なるように見えるが、「-i」というグローバル位相が掛かっているか否かの違いである、これはよく知られているように同一の量子状態である。

 なお、エラー発生後に誤り訂正を行わなかった場合は、Fig.3に示すとおり、エラーの影響により、初期に設定した量子状態と全く異なるデタラメな状態となった。



 以上のテスト結果に基づき、このモバイル量子回路シミュレータに、「9-qubit Shor Code」を追加して提供することにした。

🟢エラー シンドローム(Error Syndromes)
 上記のように、9個のqubitのいずれか1つにエラーが起こっても、それは自動的に訂正される。この場合のエラーとは、bit-flip (Pauli X)、phase-flip(Pauli Z)、bit-flip&phase-flip(Pauli Y)のいずれかである。エラー訂正後に、量子ビットq1, q2, ... q8を測定すれば、そのエラーの発生源を特定できる情報(error syndromes)が得られる。ここが素晴らしいところである。Fig.4がそれを示している。

 ここで、Block0、Block1、Block2は、Fig.1の量子回路の構造を反映しており、各Block内のbit-flipの位置を特定できる。また、q6q3のペアは、phase-flipがどのBlockで発生したかを特定する。なお、phase-flip(pauli Z)だけが発生した場合は、Z演算の性質上、Block内のどのqubitで発生したかは特定できない。しかし、その場合、そのBlock内のどのqubitを訂正してもエラーは訂正できるので問題はない。

 具体例を一つ見てみよう。Fig.2での結果は以下の通りであった:
q8 q7 q6 q5 q4 q3 q2 q1 = 00001100
これは、Fig.3のテーブルから、確かに、q4でbit-flip & Phase-flip (Pauli Y)が発生したことを示している。
 さらに別の例で、測定結果が以下の通りであったする:
q8 q7 q6 q5 q4 q3 q2 q1 = 00000011
この場合、q2q1=11なので、q0にbit-flipが発生した。しかし、q6q3のパタンには該当しないので、phase-flipは起こっていない。なので、q0にPauli Xエラーが発生したと判断できる。一方、測定結果が以下のようであれば:
q8 q7 q6 q5 q4 q3 q2 q1 = 00100111
q2q1=11かつ、q6q3=11なので、q0にPauli Yエラーが発生したと言える。

🟢感 想
 現在は、この「9-qubit Shor Code」は、さらに洗練されたStabilizer Codeというものの一種であることが分かっている。Stabilizer Codeはアーベル群の構造に基づいて構築される。Shor Codeの美しさは、アーベル群に起因するのであろう。Stabilizer Codeには、実用的観点が強化されたSurface Codeと呼ばれるものもある。現在、それらにも取り組んでいる。

 私がかって、アーベル群やガロア群を多少なりとも学んでいたことは大きいと思う。それがなければ、Stabilizerをさらに追求して行こうという気が起こらないと思う。それらに、少しでも馴染んでいたことが、今になって効いているように思う。

2026年9月21日月曜日

Representing an Analog Clock with a Pure Quantum State

This article is meant to be relaxing—just for fun! The Bloch sphere is one of the first concepts we encounter when learning quantum computing. Each point on its surface corresponds to a pure state of a qubit and can be described by two angles, θ and φ, as shown below.

These two angles can also be mapped onto the hour and minute hands of an ordinary analog clock. If θ represents the hour hand and φ the minute hand, we get something like the illustration below.

Wouldn’t it be wonderful if someone made and sold a spherical clock like this? I doubt one exists, though.


So I created an Android mobile phone app—a “spherical clock” that displays the time on a Bloch sphere. Tap “Current Time,” and the display automatically updates every 30 or 10 seconds. Each time it updates, the yellow dot representing the quantum state briefly contracts. It is quite soothing just to sit and watch! You can also rotate the Bloch sphere and view it freely from any angle.


The current time is 4:54 p.m. Four white dots are visible in the upper-right part of the sphere. Since the clock uses a 12-hour format, they indicate four o’clock. The minute hand is moving along the path from four to five. Naturally, its apparent motion slows dramatically as it approaches the north or south pole. Depending on how you visualize it, reversing the north and south poles might feel more intuitive.

## Additional Note
Some readers may want to add a second hand. One possible approach would be to introduce another variable for the qubit: the length (r) of the line extending from the center of the sphere, where (0 < r < 1). However, points inside the Bloch sphere—rather than on its surface, where (r = 1)—represent mixed states rather than ordinary pure quantum states. This would require a different treatment, and I also find it less appealing aesthetically. So, for now, I have decided not to add this hand.

2026年9月18日金曜日

アナログ時計(長針+短針)を純粋量子状態で表現

 この記事は、癒し系、just fun!です。量子コンピューティングに取り組む最初の段階で、ブロッホ球が出てきます。その球面上の点は、量子ビットの純粋量子状態に対応します。それは、下図の(θ, φ)という2組の角度で表現できます。ですから、それを長針と短針を持つ通常のアナログ時計に対応させることができます。θを短針、φを長針に対応させると以下のような図になるでしょう。

 こんな球体時計、どこかで発売されていないのかなあ!ないですよね。

 そこで、時間をブロッホ球で表示する「球体時計」スマホアプリ(Android版)を作りました。「現在時刻」を押すと、30秒または10秒間隔で自動更新されます。更新時には、量子状態を表す黄色の丸が収縮します。ぼーっと眺めているのに良いです! ブロッホ球を回転させて自由な角度から見られます。


 現在16:54です。右上側に白丸が4個見えます。12時間制ですので、これは短針の4時を示しており、4時から5時に至る軌道を長針が動いてます。当然ですが、北極または南極に近づくほど、動きは急速に遅くなります。
 場合によっては、北極と南極を逆転させた方がイメージに合うかもしれません。

【補足】
 これにさらに秒針を加えたいと考える人もいるでしょう。その場合は、量子ビットを表すもう一つの変数として、球の中心から伸びる直線の長さr (0<r<1)を採用することになるでしょう。しかし、このようなブロッホ球の(r=1の表面ではない)内部の点は、通常の純粋な量子状態ではなく、「混合状態」に対応します。そのため、取り扱いが変わる上、美しさの観点からも好ましいとは思えませんので止めておきます。

2026年9月16日水曜日

量子ビット間の相関関係を設定してみる

 多数の人間の何らかの判断に関する相関関係を量子的に表せないか?以前、「社会的ジレンマ」問題の支援ツールを作ったことがあります。今回の話題は、それに少し関係します。というよりも、その問題を量子コンピューティングで扱うための部品かも知れません。(ただし、現時点では、適切な量子コンピューティングの問題にできる見通しはないのですが...)

 ここに、四人の学生(q0, q1, q2, q3)がいるとします。各学生は、次々と流れてくる動物のイラストに、好き(符号1)か、嫌い(符号0)かを与えます。ここで、学生の判定には以下のような相関関係があります。

Case1:
q0とq1:強い負の相関(好き嫌いが逆転する傾向が非常に強い)
q1とq2:弱い負の相関(好き嫌いが逆転する傾向がある程度ある)
q2とq3:弱い正の相関(好き嫌いが一致する傾向がある程度ある)

Case2:
q0とq1:強い正の相関(好き嫌いが一致する傾向が非常に強い)
q0とq3:弱い正の相関(好き嫌いが一致する傾向がある程度ある)
q1とq2:強い負の相関(好き嫌いが逆転する傾向が非常に強い)
q2とq3:弱い負の相関(好き嫌いが逆転する傾向がある程度ある)

 このような相関関係は、量子ビットと量子もつれを利用すると、Fig.1やFig.2の左下図のような量子回路で簡潔に表現できるでしょう。"傾向"の強さは、RYゲートの回転角rπで調整できます。右側にあるヒートマップは、この量子回路を1,000回測定(1,000ショット)した結果を示しており、意図した相関関係を確認することができます。



 
 なお、多数回のshotsによるヒートマップの他に、basisベクタの出現確率からも確認できます。下図は、私のモバイル回路シミュレータによる結果です。例えば、q0とq1の測定結果が同じになるのは、|0011>, |0100>, |0111>, |1011>, |1111>の5ケースであり、その確率の合計は0.955であり、ヒートマップのstrong positiveと合致します。


【詳細説明】
🔹Case1
・q0とq1(強い負の相関): 制御RY回転ゲート(CRY)を適用し、一方のビットが 1 のときにもう一方を高確率で 0 に反転させて強い負の相関を作る。
・q1とq2(弱い負の相関): 小さな回転角度を設定したCRYゲートで緩やかな反転関係を作る。
・q2とq3(弱い正の相関): 小さな回転角度のCRYゲート+Xゲートで、緩やかな同調関係(1になりやすくする)を作る。
・q0とq3(ほぼ無相関): 間接的な干渉を抑えることで無相関を維持する。

🔹Case2
・q0: 重ね合わせ状態(H)を生成する基点とする。
・q0→q1(強い正相関): q0から q1 に大きな角度(例: 0.85π)のCRYゲートを作用させる。q0=1のときに q1も1になりやすいため、強い正の相関が生まれる。
・q0→q3(弱い正相関): q0から q3に小さな角度(例: 0.35π)のCRYゲートを作用させ、弱い正の相関を作る。
・q1→q2(強い負相関): q2をあらかじめ Xゲートで |1> に初期化し、q1 から q2へ大きめのCRYゲートを作用させる。これにより ・q1=1 のときにq2 が 0へ倒れ、強い負の相関になる。
・q2→q3(弱い負相関): q1→q2 の負の相関と、q0→q3 の正の相関の副産物として自然に q2とq3の間にも弱い負の相関が形成される。
・q0とq2: 直接の結合を作らず、かつ q1を介した間接影響により相関が相殺される設計にすることで無相関(ほぼ0)を維持する。

2026年9月12日土曜日

世界の数学者25人が緊急声明:AIで企業が数学の難問を解く行為を非難

 本日、2026-09-12、この声明が出されたとのニュースがあった。こちらにも、こちらにも。

 AIはここまで来てしまったか、との思いが真っ先に来ました。現代の数学の巨人たちが出した声明なので、それだけ重みはある。彼らは、AI企業を非難している。数学の理解や独創、人材育成などの面から、科学や数学界に有害だと断言しているようでもある。

 だが、多くの人たちは、「それは止められない。数学に限らず、日常生活から学問や教育にまで、すでに深く浸透しているAIを止めることはできないのではないか」と。私も同感である。だが、従来の数学を含めた教育全般に大きな影響を与えることは確かであろう。すでにそうなっている部分もある。それに備えた改革が必要になることは、もっと強調されてもいいだろう。

 これに関して思い出したことがある。仁科記念賞を受賞した故佐藤文隆博士の量子論に関する啓蒙書に次の一節があった。

「アインシュタインのような巨匠たちに思考の深さにおいては及ばない我々凡人でも、手にした技術のおかげて彼らよりもはるかに高い境地にいるのである。」

この"手にした技術のおかげ"とは、現時点では、"AIのおかげ"ではないだろうか。AIを肯定的に捉える立場もある...

 さらに浮かんでくることがある。望月新一教授の「ABC問題の証明」を検証するために、定理証明ツールが使われ始めたこと。これは許されるが、AI自体が証明を試みることは禁止するのか、その境界は明確ではない。レベルは違うかもしれないが、電卓が出現し始めた頃、米国などでは、その利用は、算数数学教育に有害だとの反対運動も起こった。

 今回の緊急声明から、数学者たちが抱く、人類の根源的な思考を阻害するという危機感は伝わってくる。だが、数学の研究や教育は、著名な数学者たちの集団によって決められるものであり、その方針に合わないやり方は許されないと宣言しているようにも見える。この緊急声明の真意を素直に理解することは、我々庶民にはできそうにない。

 実際の戦場へ[AI兵士]が送り込まれるのと同様に、数学界に[AI数学者]が出現することは人類にとって脅威であり有害なのか。


2026年9月9日水曜日

Quantum Teleportation Using a Mobile Quantum Circuit Simulator

This article provides additional information about “Lab 16: Quantum Teleportation,” one of the examples introduced in the previous article.

IBM’s Qiskit supports dynamic circuits, allowing a quantum teleportation demonstration to be performed without any manual intervention during execution. Mobile quantum circuit simulators, on the other hand, do not support this feature. Therefore, the required quantum gates must be manually added to Bob’s circuit according to Alice’s measurement results. The procedure is straightforward, however, and produces the same results as Qiskit.

The procedures for both methods are described below. In this example, Alice transfers to Bob the state obtained by applying RY(π/3) followed by RZ(π/6) to the initial state |0>.

🔵 Quantum Teleportation in Qiskit Using Dynamic Circuits
See Fig. 1. Once the dynamic circuit has applied a Z gate, an X gate, or both to Bob’s qubit q2, depending on Alice’s measurement results, q2 is in the state teleported from Alice’s qubit q0.

To verify that the teleportation was successful, the inverse rotations RZ(-π/6)  and RY(-π/3) are then applied to the teleported state, returning it to |0>.


🔵 Quantum Teleportation Using a Mobile Quantum Circuit Simulator
Fig. 2(a) shows the operations performed on Alice’s side using the mobile simulator. These operations produce the measurement result for q1q0.


Fig. 2(b) shows how the appropriate quantum gates are manually added on Bob’s side according to Alice’s measurement result. Further details are provided in the figure.

2026年9月2日水曜日

Learning Quantum Computing with a Mobile Simulator


🟢Prof. Aleksandar Radovanovic has also featured this app here.
🟢This article is also featured on RIKEN's Q-Portal.

[Note] Regarding Lab 16: Quantum Teleportation
In Example Lab16, we use "GoAfterMeas," a special measurement button. Please refer to the detailed explanation for this.

🔴 Using a Mobile Simulator to Learn Quantum Computing

Professor Aleksandar Radovanovic of the University of the Western Cape has published the following book as a resource for learning the fundamentals of quantum computing:

Quantum Computing: Problems and Solutions—Exercises with Detailed Solutions for Students and Educators (October 2025)

Qiskit code is available for 23 of the book’s key exercises and can be run using IBM’s Qiskit simulator. I have confirmed that many of these exercises can also be run on the mobile quantum circuit simulator I developed with MIT App Inventor. Although support for some of them is still a work in progress, I would like to introduce one example here. The images below show the book and the mobile simulator.


🔴 Running an Exercise on the Mobile Quantum Circuit Simulator

Let us take a look at an example. The image on the left below shows some brief documentation. From the list of exercises on the right, I selected “Lab 13—Grover Search Algorithm.”


The image on the left below shows the quantum circuit description for Grover’s search algorithm, the corresponding circuit diagram, and an example run. The circuit description can, of course, be edited.

The image on the right shows the result after running only the first Oracle–Diffusion iteration. Even at this stage, the result suggests that the target state, “1101,” can already be found with high probability.


🔴 Why Use a Mobile Simulator?

As noted above, all these exercises can be run successfully using IBM’s Qiskit simulator. My simulator, however, offers a different kind of value: you can take your mobile device out of your pocket and start using it anytime and anywhere, without an internet connection or any environment setup.

I believe that being able to read the textbook and immediately test its concepts on a mobile device makes quantum computing more approachable and helps deepen the reader’s understanding.

At the same time, a mobile simulator of this kind has its limitations. My simulator performs one shot per button press, so it is not well suited to collecting statistics from a large number of measurement shots. However, because it theoretically calculates the probabilities of all computational basis states, this is unlikely to be a serious limitation in most cases.

The simulator also cannot integrate with classical optimization modules, which are required for applications such as quantum machine learning. For those tasks, platforms such as IBM Qiskit are the better choice.

量子計算のテキストとモバイル量子回路シミュレータ

【注】Lab16-Quantum Teleportationについて
 例題Lab16では、特殊な測定用ボタンである"GoAfterMeas"を使います。こちらの詳細説明をご覧ください。

🔴モバイルシミュレータを量子コンピューティングの学びに活用
 量子コンピューティングの基礎を学ぶためのテキストとして、Prof. Aleksandar Radovanovic (University of the Western Cape)は以下の書籍を出版しています。

QUantum Computing: Problems and Solutions - Exercises with Detailed Solutions for Students and Educators, October 2025.

 この中にある主要な23個の例題に対しては、IBM Qiskitシミュレータで動くコードが公開されています。その多くは、私の開発したモバイル量子回路シミュレータで動かせることを確認できました。一部はまだ未完成ですが、そのうちの一例をご紹介します。以下の図はその本とモバイルシミュレータです。

🔴モバイル量子回路シミュレータでの実行
 ではさっそく、一例をご紹介します。下図の左側は簡単なドキュメンテーションです。右側の例題一覧から、ここでは、"Lab13- Grover Search Algorithm"を選択しました。

 以下の左側の図に、このGrover Searchの量子回路記述と回路図、および、実行例が示されています。もちろん、回路記述を編集することもできます。右側の図は、"Oracle & Diffusion"の繰り返しのうち、最初の1回だけを実行した結果です。この時点で、ターゲットである"1101"が、すでに高い確率で見つかることを示唆しています。

🔴なぜモバイルシミュレータを使うのか?
 これらの例題は、上記のとおり、IBM Qiskitシミュレータで完全に実行できます。しかし、私のシミュレータは、いつでも、どこでも、ポケットからモバイル端末を取り出し、インテーネット接続も環境設定も不要で、すぐに使えます。そこに存在価値があります。テキストを読んで、モバイル端末ですぐに内容を確認することで、親しみやすく、理解が深まると信じます。

 一方、このようなモバイルシミュレータの限界もあります。このミュレータは、"1ショット/1ボタンプッシュ"ですので、多数回の測定(ショット)によって統計値を得ることは苦手です。でも、全ての基底状態の出現確率は理論的に算出されるので、多くの場合あまり困らない筈です。さらに、量子機械学習などで必要な、古典最適化モジュールとの連携もできません。それらは、IBM Qiskitなどでやれば良いのです。

[参考情報]
 アフリカのAfrica Quantum Consortiumのロゴが美しいので掲載させていただきます。

2026年8月26日水曜日

ペリガルの分解(ピタゴラスの定理)のアニメアプリ

 先の記事で、ピタゴラスの定理に関して書きました。その美しい証明であるペリガルの分割が頭に残っていて、そのアニメをMIT App Inventorでも作ってしまいました。

 スマホで、ビジュアルを楽しめます。

 オブジェクトを任意の位置へ移動させることはImage Spriteで簡単にできますが、問題は部品オブジェクトの形状やその中心位置の設定です。それを精密にしないと当然、ズレが生じます。

If you are interested in this app and would like to try it out, please contact me. I will provide the Android version (APK file).

2026年8月22日土曜日

これまでの量子関係ブログ記事170件をAIに纏めてもらう

 2022年春頃から、これまでに、約170件の量子コンピューティング関連記事を、「Sparse-Dense Blog」に書いてきました。ここにその記事のタイトル一覧(記事へのリンク付き)があります。それをAIに渡して、それらの内容を1枚の紙にイラスト風に纏めてもらいました。3者(ChatGPT、Google Gemini、365Copilot)にお願いしてみました。一番良かったのが以下のイラストです。誰がベストかは伏せておきます。


 結論として、かなり優秀な出来栄えだと思います。ただし、一部正確さに欠けたり、書いて欲しい点が抜けていたり、私が言っていないことまで追加されていたり、と減点せざるを得ないところもありました。しかし、全体としては85点の合格点をつけたいと思います。(文字が小さいので拡大してご覧ください。)

2026年8月17日月曜日

A Needle-Dropping Game to Approximate π as 3.14

I created a game app based on the “Buffon’s Needle” experiment from my previous post. What makes it interesting is the seemingly mysterious fact that you can approximate π simply by dropping needles onto parallel lines—without drawing a circle anywhere! This could also make a fun app-development exercise for junior high and high school students. So, let’s take a look at the app I created. For this kind of project, I usually use MIT App Inventor. In this case, the ImageSprite feature was especially useful, allowing me to implement the needle-dropping action quite nicely.

πの近似値3.14が得られるまで針を投げるゲームアプリ
 これはゲームアプリの作成です。前報の「ビュフォンの針」に基づいていますが、少し仕様は異なります。でも、円周も描かないのに、平行線に針を投げるだけで、πの近似値が求められる不思議さを味わえます。中高生向けのアプリ開発例題にできるかもしれません。早速、作成したアプリを以下に示します。この種のアプリを作る場合、私はMIT App Inventorを使います。今回は、特にImageSpriteの機能を使って、針の投入をうまく書くことができました。

A quick note before going any further. Buffon’s needle experiment was originally designed to estimate π by tossing a large number of needles. This app, however, keeps tossing needles until it obtains 3.14—that is, π correct to two decimal places. Still, there may be some educational value in building the app yourself and experiencing the curious fact described above: π emerges simply by tossing needles onto parallel lines.

I have also added a small trick. Since the result depends on the sequence of random numbers, it is possible that the estimate may take quite a while to reach 3.14. So, somewhat secretly, I set the initial state as if 100 needles had already been tossed, with 64 of them crossing one of the red parallel lines. This gives a crossing probability of 0.64, corresponding to π = 3.125, which is already a fairly good estimate. So, in most cases, tossing just a few dozen more needles should be enough. In the example shown above, the estimate reached 3.14 after a total of 110 needle tosses.

For reference, let the distance between the parallel lines be D and the needle length be L. When D=L=1, as explained in the Doc above, π can be estimated as follows:

m=total number of needles tossed
n=number of needles crossing a parallel line
π≈2m/n ​

The best (m,n) pair I have found so far using this app is (m,n)=(8900,5666),which gives π≈2×8900/5666=3.1415, correct to four decimal places. With the help of AI, it would probably be easy to find many more such pairs—but that might take some of the fun out of it.

If you are interested in this app and would like to try it out, please contact me. I will provide the Android version (APK file).


2026年8月15日土曜日

円周率近似法「ビュフォンの針」を量子計算の教育的なデモにできるか?

要旨:タイトルに対する回答:大きくYESとは言えないが、ある程度可能、である。教育的観点から、量子コンピューティングを身近な問題に適用してみたいと考えていた。その一例として、1777年に発表された「ビュフォンの針(πの近似計算)」に着目した。たくさん平行線が引かれた紙の上に、多数の針をばらまき、それらが平行線と交わる確率pを求める。すると(平行線の間隔と針の長さが共に1の場合)、π=2/Pとなる!とても不思議に思えるが、それは高校数学で証明できる。そのシミュレーションは、通常モンテカルロ法による。だが、ここでは量子的方法で実行を試みた。結論としては、完全な量子計算にすることは困難だが、量子コンピューティングの重要な側面に触れるという教育的意義はあった。

🟢「ビュフォンの針」の古典版と量子版の概要
 円周率πの近似値を「ビュフォンの針」によって求める。従来のモンテカルロ法と、量子振幅推定(QAE: Quantum Amplitude Estimation)を用いる方法の両方で試した。どちらの方法でも、多数の針に対して、針が平行線と交差するかどうかを、針の中心位置と角度から判定することが必要である。
 モンテカルロ法では、各針について交差の有無を調べ、交差した針の本数を数えて合計し、それを全体の本数で割ることで、交差確率の近似値が得られる。
 一方QAEでは、状態準備回路によって、針の中心位置と角度に対応する量子状態の全てを、量子重ね合わせ状態として準備する。その後、オラクルと呼ばれる量子回路によって交差状態のみに位相反転を与え、量子干渉を利用して交差状態に対応する振幅を増幅させる。さらに、その振幅に対応する回転角(固有位相)を推定することで、交差確率pを直接推定することができる。
 どちらの方法でも交差確率pが求まれば、平行線の間隔と針の長さがともに1の場合、(ビュフォンの針の肝である)p=2/πが成立するので、πを推定することができる。

🟢古典版「ビュフォンの針」の実行
 まず、モンテカルロ法によるシミュレーションのアニメをご覧頂きたい。
 乱数系列に強く依存するので、何とも言えないが、図1の通り、8,900本の針を投入した場合、πの近似値として5桁正解の3.1415まで得られたことに驚いた。


🟢量子版「ビュフォンの針」の実行
 上で述べた本来のオラクルは、sinθの計算と比較演算による交差判定を行い、交差状態にある針を意味する量子状態の位相を反転させる。だが、それを完全な量子回路として実現するには多くの困難を伴う。そのため、ここでは、交差判定は、あらかじめ古典計算で済ませることにした。それに基づく位相反転機能だけをオラクル量子回路に持たせた。
 そのようなオラクルを図2に示した。針の中心位置yと角度θをそれぞれ、分解性能を3量子ビットで表現しているので、それらで決まる8×8=64個の針の量子状態を全て重ねた状態を一度に持つことができる。このオラクルは、そのうちの交差状態に対して最終段の標識量子ビットq6を反転させている。
 例えば、最初のMCX(多制御付きNOT)では、針の量子状態|000000〉が交差と判定された後、標識ビットq6が反転するようになっているので、|000000〉⊗|1〉という状態となる。その後、標識ビットが|1〉の場合は、|000000〉の位相が反転される。
 
 次に、このオラクルを、量子振幅推定器QAEに渡す。QAEは、重要な量子回路ライブラリとして使えるようになっている。QAEは、量子干渉を利用して交差状態に対応する振幅をGrover演算で増幅させ、その振幅に対応する回転角(固有位相)を推定することで、交差確率pを直接推定することができる。
 ともかく、このようにして、量子的ビュフォンをシミュレーションで実行させた。その結果を以下に示す。yとθの解像度と、QAEで使う評価用量子ビット数に強く依存するが、今回はπ=3.12というある程度の精度を得た。上記の6量子ビットと標識用1量子ビットに加えて、AQEで必要な評価用9量子ビットの合計16量子ビットを使っている。

==簡易OracleとQAEによる、量子的「ビュフォンの針」の実行結果==
使用した全量子ビット数           : 16
QAE推定確率 P (交差確率)       : 0.639260
計算された円周率 π (推定値)    : 3.128618
実際の円周率 (理論値)              : 3.141593
誤差                                      : 0.012974
================================================

🟢補 足
 精度の面では、モンテカルロ法では試行回数Nを増やすと推定誤差はO(1/√N)で減少する。したがって精度を10倍向上させるためには、理論上100倍の試行が必要となる。一方、QAEではオラクルの呼び出し回数Nに対して推定誤差がO(1/N)で減少するため、精度を10倍向上させるためには理論上10倍のオラクル呼び出しで済む。この結果、QAEは古典モンテカルロ法に対して二次加速(quadratic speedup)を実現できることが理論的に示されている。
 ただし、ここで用いた回数N意味は両者で異なることに注意が必要である。モンテカルロ法におけるNは試行した針の本数を表すのに対し、QAEにおける回数Nはオラクル(交差判定回路)の呼び出し回数を表す。したがって、この二次加速は実行時間そのものではなく、交差判定へのアクセス回数(クエリ複雑度)の観点での理論的な優位性を意味している。

🟢感 想
 「ビュフォンの針」による円周率近似において、簡易的、部分的にではあるが、オラクルという量子回路を設定し、それをQAE(量子振幅推定)に繋げて結果を出すことができた。古典的にはモンテカルロ法で求める交差確率を、個々の試行での加算を行わずに、振幅増幅によって直接読み出すという、量子コンピューティングの重要な側面に触れることはできた。ただし、本来の(本物の)オラクル回路にはなっていない点は明確にしておきたい。
 この問題は、従来のモンテカルロの方が圧倒的に容易に計算できるので、(こんなに複雑な)量子の出番はないとも言える。量子の得意分野は他にある。それでもなお、今後、教育的により適切な量子計算の例題を探求していきたい。

🟢