表示にもある通り、PC1台とPythonの動く環境があれば、例題の全てを動かすことができる。NumPyで量子ビットを作ることから始まり、機械学習関係にはsklearn、量子ゲートを利用するためにPennyLaneといったライブラリを利用している。PCでのシミュレーションに徹しているのだが、量子コンピュータ実機で動かす場合の考察も忘れていないので、次のステップへ行く際の参考なる点も多い。量子の規模を拡大した場合の課題やノイズによる誤り訂正にも簡潔だが明快に触れている。学生、技術者、量子コンピューティング経験者にも有用と思われる。
I am a professor emeritus of CS at Kanagawa Institute of Technology, Japan. Originally my specialty was parallel and distributed systems. My current interests include machine learning, natural language processing, creating mobile apps with MIT App Inventor, and quantum computing. In the web version of this blog, clicking the icon on the right (a plastic sphere) will take you to the "List of Quantum Computing Articles". - Fujio Yamamoto (for e-mail, add "@ieee.org" after "yamamotof")
2026年11月6日金曜日
異色の量子コンピューティング書籍2冊
表示にもある通り、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.
とにかく何処かに誤りが生じたことを検知できるのは、誤りの重みwが4以下の場合である。また、誤りの訂正を保証できる誤りの重みは2以下であることが示されている。
しかし、実は、それはどちらでも良いのである。つまり、どちらかのCaseを想定して誤り訂正を行えば、論理量子ビットの正常な量子状態|ψ>を回復できるのである。その計算を簡単に以下に示す。
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に変わります。すなわち、以下のようになります。
一方、誤り訂正符号を用いず、物理量子ビット上で直接計算する方式では、物理的な誤りの抑制や、計算結果に対する誤りの影響を軽減する手法が用いられます。これと並行して、誤り訂正された論理量子ビットの保持や演算の実験も進んでいます。
A5 = Z11 Z12 Z16 Z17
B3 = X6 X7 X11 X12
B5 = X12 X13 X17 X18
🟢次にやるべきこと
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)元の量子状態と処理結果の量子状態において、それぞれ測定を行い(あるいは理論計算から)、確率振幅の一致を直接調べる。
なお、エラー発生後に誤り訂正を行わなかった場合は、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を訂正してもエラーは訂正できるので問題はない。
🟢感 想
現在は、この「9-qubit Shor Code」は、さらに洗練されたStabilizer Codeというものの一種であることが分かっている。Stabilizer Codeはアーベル群の構造に基づいて構築される。Shor Codeの美しさは、アーベル群に起因するのであろう。Stabilizer Codeには、実用的観点が強化されたSurface Codeと呼ばれるものもある。現在、それらにも取り組んでいる。
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.
2026年9月18日金曜日
アナログ時計(長針+短針)を純粋量子状態で表現
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ショット)した結果を示しており、意図した相関関係を確認することができます。
2026年9月12日土曜日
世界の数学者25人が緊急声明:AIで企業が数学の難問を解く行為を非難
本日、2026-09-12、この声明が出されたとのニュースがあった。こちらにも、こちらにも。
AIはここまで来てしまったか、との思いが真っ先に来ました。現代の数学の巨人たちが出した声明なので、それだけ重みはある。彼らは、AI企業を非難している。数学の理解や独創、人材育成などの面から、科学や数学界に有害だと断言しているようでもある。
だが、多くの人たちは、「それは止められない。数学に限らず、日常生活から学問や教育にまで、すでに深く浸透しているAIを止めることはできないのではないか」と。私も同感である。だが、従来の数学を含めた教育全般に大きな影響を与えることは確かであろう。すでにそうなっている部分もある。それに備えた改革が必要になることは、もっと強調されてもいいだろう。
これに関して思い出したことがある。仁科記念賞を受賞した故佐藤文隆博士の量子論に関する啓蒙書に次の一節があった。
「アインシュタインのような巨匠たちに思考の深さにおいては及ばない我々凡人でも、手にした技術のおかげて彼らよりもはるかに高い境地にいるのである。」
この"手にした技術のおかげ"とは、現時点では、"AIのおかげ"ではないだろうか。AIを肯定的に捉える立場もある...
さらに浮かんでくることがある。望月新一教授の「ABC問題の証明」を検証するために、定理証明ツールが使われ始めたこと。これは許されるが、AI自体が証明を試みることは禁止するのか、その境界は明確ではない。レベルは違うかもしれないが、電卓が出現し始めた頃、米国などでは、その利用は、算数数学教育に有害だとの反対運動も起こった。
今回の緊急声明から、数学者たちが抱く、人類の根源的な思考を阻害するという危機感は伝わってくる。だが、数学の研究や教育は、著名な数学者たちの集団によって決められるものであり、その方針に合わないやり方は許されないと宣言しているようにも見える。この緊急声明の真意を素直に理解することは、我々庶民にはできそうにない。
実際の戦場へ[AI兵士]が送り込まれるのと同様に、数学界に[AI数学者]が出現することは人類にとって脅威であり有害なのか。

























