「量子計算(量子コンピュータ)」を学び、Javaで実装できる
複数の状態が共存する重ね合わせの状態や、どんなに離れていても瞬時に相互作用し合うもつれ状態など、これまでの物理学が前提としていた局所実在論すら危うくする量子の世界はとても深遠で掴み所が有りません。常識に反する挙動を見せる量子の世界はどのように理解すればよいでしょうか。
一見複雑怪奇に思われる量子の世界の挙動も、量子計算に関しては数値的に明確かつ厳密に把握することが可能で、この演算過程はプログラミングにより可視化することができます。本書では、量子計算をJavaのプログラムにより表現し、実行して、何が行われているかを顕在化させます。もちろんこれは、量子は粒子なのか波なのか、あるいはもつれた粒子同士がどのように情報共有するのかなどの物理的な仕組みや原理について答えるものではありません。しかし、量子回路の挙動を把握し、結果を導くことは可能になります。
本書の目的は量子計算をJavaのプログラムで体験することにより、量子回路の仕組みを理解することです。
既にいくつかの量子回路のシミュレータが作られ、容易に使用することができます。シミュレータを使えば、量子回路を組み、実行し、実際の物理的な量子回路をシミュレーションすることができます。しかし、シミュレータは実際の量子コンピュータを模倣し、演算結果を得ることを目的としていますので計算過程を見ることや、演算手段を理解するには適していません。デバッガー機能を使えば、計算過程を追うことはできますがpythonなどの動的型付け言語では簡単とはいえません。実行時に自動的型付けされることが災いししばしば誤った判断を引き起こします。
他書を読んですっきりしなかった方は是非本書を試してみてください。本書はJavaで書かれていますが平易なプログラミングですので、量子計算の理解が目的であれば容易に理解できるプログラムです。量子計算自体のプログラムはとても単純なプログラムで表現されていますので、他の言語を使っているなどのコンピュータ言語への基本的な知識があれば十分です。
ソフト名: | 量子計算用Javaデジタル学習構築環境DaiJa |
---|---|
動作OS: | 汎用 |
機種: | 汎用 |
種類: | フリーソフト |
作者: | Digital Servo |