「量子コンピュータ」とは、量子を使った『新型スーパーコンピュータ』程度と誤解されているかたが多いかもしれません。
じつは、従来と原理が根底的に違うものです。
仕組みを理解するためには、量子力学の知識(不思議な振る舞い)や特殊なアルゴリズムを知る必要があり、残念ながらWebに公開されている情報だけでは表面的にしか理解出来ません。
そこで難しそうな資料を、分かりやすく説明することにいたしました。一般・文系の方でも少しだけ深く理解出来るようにまとめてみました。
量子物理学の専門知識や、プログラミングの専門知識がなくても直感的に『量子コンピュータ』を理解した気分にさせることを目指します。
少しでも興味を持っていただくことが出来きれば幸いです。
(2018年6月時点での情報)
未来の夢の技術と考えられてきた量子コンピュータでしたが、D-Wave Systems社が「量子アニーリング」というユニークな方式で商用化に成功し一気に現実化が進みました。
あと数年で、当たり前となるかも知れません。
現在販売されているコンピュータは、信号を「ON」=1 か「OFF」=0 を電圧で伝えます。
信号線が1本(=1ビット)で、0か1を送ることが出来ます。
信号線が3本(=3ビット)の場合、データは0~7を送れます。
(量子効果なし)
人 : 1~2m程度
細胞 :0.0001m程度
(量子効果が表れる)
分子 : 0.000000001m程度
原子核:0.0000000000001m程度
電子 : 0.00000000000000001m程度
この微小な世界での物理法則は、通常私たちが認識している常識とは全く違う、非常に不思議な振る舞いを行っています。(=量子効果と言います。)
実は、モノを分解していくと、『物質』は「粒(つぶ)」などの物体ではなく、「波(なみ)」の姿が現れます。
一般的には「量子」は、『「粒子性」と「波動性」を併せ持っている』と説明されるとなんだか良くわからなくなり、この時点でギブアップしてしまう人もおられるかもしれません。
量子のもう少し詳細な説明は、このあと触れますが、現時点で理解しておきたい性質としては、「量子」とは「固いもの」ではなく、波のかたまりのようなもので「ぼんやり」した存在ということです。
量子の持つ「ぼんやり」した性質を利用して「ON」と「OFF」の重なった特殊な状態を維持します。
従来のビットは、1つの信号線で「0」か「1」かの、どちらかしか送ることが出来ません。
量子ビットは何故か「0」と「1」を重ね合わせすることが出来ると理解してください。
この「重ね合わせ」については、混乱するのであとで説明いたしますが、ここでの理解としては0と1が同時に存在出来ると一旦考えて下さい。
この重ね合わせで信号が送れると何が嬉しいかですが、例を挙げます。
たとえば、下記のように4つの箱に数字が格納されているとします。
箱の中に1が入っているものを探すとします。
箱の番号は、2進数で記載しています。
従来のコンピュータは、箱の中身を一つ目から順番に調べる必要があります。
調べる箱を、指定するためには、最初の箱は「00」番、2番目の箱は「01」番と「ビット」を0と1で変化させながらデータを呼び出します。
すぐに見つかるケースもありますが、ワーストケースで4回確認する必要があります。
ところが、もしビットが量子化されているとすると、量子ビットは0と1が「重ね合わせ」されているので、1回で全部のデータを指定できることが分かります。
たとえば、仮に「量子ビット」を「ψ」と表現すると、量子ビットは0と1の重ね合わせ(両方兼用)なので箱を呼び出す番号は、従来「00」、「01」、「10」,「11」と4回順番に呼び出す代わりに「ψψ」で全部同時に指定することができます。
でもそんなことをすると、一斉に全部の箱が呼び出されるため、どの箱から1が出てきたのか区別がつきませんよね。
そこで、もし1が出てきた場合は、指定した箱番号の0と1を入れ替える(ビット操作して反転する)ことが出来るとします。
すると、何も出ない場合は、箱の番号(2進数)を縦のビットごとに合計すると
00
01
10→これが正解の箱
11
-----------
22→1の数の縦合計
22→0の数の縦合計
となり、1と0の数が同じとなります。
一方、検出された場合の箱番号(2進数)が反転(0と1の入れ替え)したものを縦に合計すると
00
01
01→番号ビット反転
11
----------
13→1の数の縦合計
31→0の数の縦合計
となり、1と0の合計数が変化します。
変化した数から、反転された箱番号を推測出来ます。
実際は、量子ビットを合計するのではなく、出てきた値を干渉させて平均化させるようです。
量子コンピュータは、答えが見つかった場合は、干渉して答えが浮かび上がるようにプログラムを作る必要があります。
下記は箱が8個(3量子ビット)の場合のイメージ図です。
たとえば0と1はお互い干渉して消えるとします。
上段(何もビットが操作されていない場合)は、0と1の数が同じ数量となり干渉して消えます。
下段(見つかった箱のビットが反転)では、0と1の数のバランスが変わります。
反転された箱番号(101)が干渉では消えずに浮かび上がります。
あたかも、電灯で照らされた箱の中身が透けて答えが影となって映るようなイメージです。
(単なるイメージで実際とは異なります。)
箱が4個とか8個の場合は、簡単すぎますが、たとえば64ビットの箱だとすごい量(2の64剰=計算すると,1844京6744兆0737億…)指定するため、ものすごく時間が掛かるものが、回数を大幅に減らして計算を完了してしまうことになります。
量子コンピュータが速い理由は、一度に大量のデータを重ね合わせて処理できるため、計算回数を大幅に減らすことができるためです。(資料)
これが、量子コンピュータの画期的な所なのです。
量子コンピュータが注目され始めたのは、今までの暗号が解読されるとの懸念からです。
量子コンピュータの解説本では、因数分解のアルゴリズムを例に説明していますが、少々難解なので、省略します。
中学校で学んだ、素因数分解ですが、数を素数に分解することですね。
2, 3, 5, 7, 11, 13, 17, 19, 23… が素数ですが、大きなものは素因数分解するのに大変計算時間が掛かります。
スーパーコンピュータを使ったとしても、しらみつぶしに調べる必要があることと、途中に行き止まりがあり、適当に選ぶ数を変えてあげる必要があります。
「余り」に周期性があるため、フーリエ変換というものを使います。
実は、フーリエ変換が超高速にできる量子アルゴリズムが発見されたため量子コンピュータが脚光を浴びることになったのです。
上記図は、http://www.kecl.ntt.co.jp/openhouse/2008/quantum/doc/shor.pdf のものです。
”Shorの素因数分解アルゴリズム”と呼ばれるものです。
現在のインターネットバンクやショッピングなどに使われている暗号(SSL、TLS等)や無線LANなどの暗号(WPA2)などは、RSAという1978年に発明された技術がベースとなっています。(暗号の歴史)
RSAは、公開キーと秘密キーを使います。
送る側は、公開されたキーで暗号化し、受ける側は秘密キーで解読します。
(解読方法は、暗号と秘密キーを何度か掛け合わせ、公開キーで割った余りが元のメッセージとなります。)
公開キー:暗号化する際に利用
秘密キー:解読する際に利用
RSAを破るためには、公開キーを知っており、秘密キーを発見できれば良いのですが、キーは非常に大きな素数で出来ているため、暗号と公開キーを持っていても、200桁ぐらいの大きな数となると従来のコンピュータの従来のアルゴリズムでは、何十年もかかります。コストと時間を盾に、ハッカーに諦めてもらう仕組みとなっています。
もし量子コンピュータが実現された場合、従来の暗号システムは解かれてしまうのではと懸念されているのです。
(ビットコインなどの仮想通貨などの暗号は、DSAという技術が使われていますが、これもRSAと同様に量子コンピュータで破られる可能性があります。資料 )
でも、まだ危険性が指摘されている段階で、現時点で直ちに問題となる状況ではありません。また、対策としての技術も考案されています。たとえば、格子暗号や、多変数公開鍵暗号 などです。(資料)
しかし格子暗号も、まだ安全性が検証されている段階と見受けられます。(資料)
将来、RSAが破られるような事態になったとしても、インターネットや仮想通貨の暗号システムは、量子耐性(=量子コンピュータによるハッキング行為への耐性)のある暗号方式に置き換えることが可能なため、ネットバンクや仮想通貨全体が崩壊することは、おそらくありません。
(上記は回路設計の一部分のイメージ図です。)
ゲートが複雑に構成されることで、
①メモリーから命令を読み取る
②命令に従いデータを読み込む
③命令で指定された演算を行う
④演算結果をメモリーに書き出す
ということが実現されています。
量子コンピュータの「量子ゲート」例は下記の通りです。
上記は、「制御NOTゲート」と呼ばれる回路です。
入力Aと入力Bには量子ビット(つまり0と1の重ね合わせ)が入力されます。
入力Aの制御ビットが1の場合は、入力Bが反転され、それ以外はそのまま右にスルーします。
⇒従来の「XORゲート」と同じような働きをします。
この量子ゲートが実現出来れば、従来のコンピュータと同様な、汎用的なコンピューターが出来ます。
もちろん、一度に複数データが重ね合わせて入力できるため、アルゴリズムは大きく変える必要はあります。
プログラミング方法も従来のものとは異なります。
重ね合わせ状態を作り出す方法は、主な方法として4つ研究(下記、量子ビットの実現方法ご参照)されていますが、ノイズやエラーとの闘いでなかなかビット数を増やすことができていません。
現在(2018年5月)実現している「量子ゲート型」は、IBMがQシステムというもので17量子ビット(qubit)が公開されています。
プロトタイプで50量子ビットまで出来ているそうです。
17量子ビットは量子コンピュータ実現としては画期的ですが、残念ながら性能はスマホに搭載しているCPUに及びません。
量子ゲートの開発がもたついている間に、カナダの、D-Wave Systems社という会社が2017年1月に量子アニーリング方式で2000量子ビットを実現した製品を発表しました。
採用されている方式は、(量子イジングモデル方式)と呼ばれます。
量子アニーリング方式は、組合せ最適化問題に特化した計算機で、汎用性はありません。
しかしながら従来のコンピュータが苦手であった「最適化問題」を超高速求めることは画期的です。資料
当初は、D-Wave System社の製品が本当の量子コンピュータかどうかの議論がありました。
創設者社長ジョルディ・ローズ(Geordie Rose)氏は、量子効果に特化したブリティッシュ・コロンビア大学の理論物理学の博士号を取得されてるようです。またマクマスター大学で、半導体工学を専攻。(あまり関係ないですが、カナダの2度のレスリングチャンピオンです。)
その後、納入実績が次々に出されました。
●NASAエイムズ研究所
(Google共同:量子人工知能研究用)
●ロッキード・マーティン
(F-35戦闘機 操縦プログラムバグ発見用)
●米国ロスアラモス国立研究所
(先端科学技術について広範な研究用)
●Temporal Defense System
(米国セキュリティ会社:通信に関する研究用)
●Volkswagen
(新型バッテリー開発:化学シミュレーション)
●リクルートコミュニケーションズ
(マーケティング・テクノロジー共同研究)
●株式会社デンソー
(渋滞解消などサービス実現に向けた研究)
今では真偽を疑う議論もほぼない状況です。
量子アニーリング方式については後程解説いたします。
内閣府 総合科学技術・イノベーション会議が主導する革新的研究開発推進プログラム(ImPACT)で開発された量子ニューラルネットワーク(QNN)というものがあります。(資料)
NTT厚木研究開発センタで開発が行われているようです。
コヒーレント・イジングマシンと呼ばれる種類で、NP困難問題「組合せ最適化問題」に特化していますが、量子コンピュータと呼べるかは疑問を持たれています。(資料)
日本では、日立や富士通が「デジタルアニーラ方式」を発表しました。得意とするのは、D-Wave Systemと同様に「組み合わせ最適化問題」です。
しかし量子コンピュータではありません。
実現方法は、FPGAという従来からある集積回路を使って、アニーリング方式を実現しています。量子ビットではありませんので0と1の重ね合わせは実現できません。おそらく量子の振る舞い部分は、0と1を乱数で発生させて計算していると推測されます。
性能が公表されていませんが、D-WAVEが定価で15億円?することに比べると、格安に出来るはずです。
もしこの方式でも性能が十分出る場合は、アニーリング方式の「量子コンピュータ」を開発する必要性が無くなるかもしれませんね。
量子コンピュータは下記①と②の2タイプあります。
①量子ゲート方式
→汎用量子コンピュータ
②量子イジングモデル方式
→NP 完全・困難問題など「組み合わせ最適化問題」用
③QNN方式
→日本が推進しているが、量子コンピュータとしてはみとめられていない。
④デジタルアニーラ方式
→量子コンピュータでは無いが「組み合わせ最適化問題」が解ける
上記は、IBMからの資料です。
長期的には、①量子ゲート方式が万能量子コンピュータとなります。
量子ビットを実現する方式は、おもに4つ研究されています。
①光子の偏光
光子の偏光の向きで、0と1を作る方法。資料1、資料2、資料3
②超電導回路
右回り電流、左回り電流で0と1を作る方法。資料1、資料2、資料3
③イオンのエネルギー
イオンにレーザー光を当てエネルギー状態(高、低)を作る方法。資料1、資料2、資料3
④電子のスピン
シリコンから出来た量子ドットに電子を閉じ込めて電磁波を当てスピン(上、下)を作る方法。資料1、資料2、資料3
詳細には触れませんが、どの方式も優劣が難しい状況です。
量子コンピュータの概要をお伝えしたところで、量子コンピュータの基本技術である「重ね合わせ」とは何かを説明してみます。
量子の世界では、物質というものが全て波の性質である(つまり波から出来ている)という不思議な構造となっています。
1924年 ド・ブロイが物質は全て波と説明(1929年ノーベル賞)
1926年 シュレーディンガーが波動方程式を発表(1933年ノーベル賞)
1927年 ハイゼンベルグが不確定性理論を発表(1932年ノーベル賞)
たとえば、水素原子は、陽子の周りに電子が1つ回っています。でも地球の周りに月が回つているような円運動ではなく、波打ちながら雲のように存在しています。(中学校で学んだような線の軌道を持っていません。)
電子軌道の雲イメージ図(実際とは異なります)
ところが、シュレーディンガーが導き出した波動方程式は、量子の位置や運動量が確率分布的なものとなるため、思わぬ論争を引き起こしました。
ものを細かく分解していくと、粒子がもやもやしたものになり、位置を確認すると運動量が曖昧になるため、不確定性原理と呼ばれました。
シュレディンガー自身が、猫を例に不思議な世界を説明しています。
(シュレディンガーの猫と呼ばれています。)
猫が箱の中に閉じ込められているとします。
箱の中に、放射能物質があり、1時間内に50%の確率で放射線が出る仕組みが組み込まれているとします。
放射線が出た場合、検出装置が働き、毒が放出され、猫が死ぬと仮定します。放射性物質は、出たか出ていないのかは箱を箱を開けないと観測できません。
放射線が出たか、出ていないか重ね合わせの状態となっていますが、それと連動して猫も生きている状態と死んでいる状態が重ね合わされていると主張したものです。(つまり非常に不自然で理解し難いものだと主張したものです。)
「不確定」とは「実際は決まっているが、人間が知ることが出来ない」という意味ではありません。
「多くの状態が同時に共存していて、その後、実際にどの状態が姿を現すのか決まっていない」
ということです。(量子論:Newton別冊より引用)
しかし、この議論に煙に巻かれる必要はありません。
当時は、量子を観測すること自体が量子の状態に影響や変化を与えてしまうために、「猫」を引き合いに出し、ミクロな現象をマクロな現象に無理やり結び付ける量子の摩訶不思議な現象に関する論争となりました。
現在では観測行為により量子の状態を壊してしまうことと、本当の量子の揺らぎによる不確定さとを区別する必要があることが整理されています。(日本人の小澤正直さんが2003年に証明)
解釈が色々あるのですが、一般的には量子は「ぼんやり、確率的に存在している」と理解するのが一番です。
量子が、粒子であると仮定すると、説明がつかない不思議な現象となりますが、波であると理解すると、”そもそも確定が難しいもの” であることが直感的に理解できます。
では、『なぜ量子は波なのに粒子に見えるか』ですが、たとえば光については、1905年にアンシュタインが『光電効果』でノーベル賞を受賞していますが、光は波だが、最低限の量が決まっており光子と呼ばれます。
量子の世界では、エネルギーは連続の値を取れずに、飛び飛びの値しか持てません。
量子は振舞い的には波のはずなのに、観測された時点で粒子の状態が現れ、かつ、重ね合わせの片側しか見えないため、皆が理解出来ない奇妙な現象となっています。(明確な答えは得られていません。)
原子や、それを構成するを陽子、クオークなどの素粒子も全て波として存在していると考えられています。(ひとつの説です。)
実は、我々人間も歩くだけで波動を起こしていますが、余りにも小さい振動のため、だれも気が付きません。
(ド・ブロイ波と言います。)
ここでのポイントは、量子は、熱などの外部要因は別として、測定(観測)しない限りは、「重ね合わせ」(複数の状態)を保持していると考えられています。
量子ビットも、この原理を利用し「ON」と「OFF」の重ね合わせ状態を利用します。
もう少しだけ不可思議な量子の世界を説明します。
初めての言葉が続きますが覚える必要ありませんので、雰囲気だけ理解してください。
量子力学の初期で、シュレーディンガーが言い出した「猫」論争の際に、著名な3名の科学者が量子論の不完全さを指摘しました。
指摘の内容は、不確定性の原理についてです。(資料)
例えば一つの素粒子が崩壊して、二つの電子になる場合、2つの電子はバラバラな方向に飛び散ります。
2つの電子は、角運動量保存則より、電子のスピンの方向は正反対でなくてはなりません。不確定性の原理では、スピン方向は重ね合わせ状態でどちらにも向いている可能性があります。
もし、片側の電子のスピンの方向を観測して確認した場合、50%の確率で値がどちらかの方向に確定します。しかしその場合、もう片方の電子のスピンの方向を確認すると、必ず逆の方向に観測されないと角運動保存則として矛盾が生じます。
もともと方向が決まっていれば驚かない当たり前の話なのですが、厄介なのは量子の世界では観測するまでは両方のスピンの可能性を同時に持っていることです。(つまり方向が決まっていない→両方の方向の重ね合わせ状態である。)
しかし、もし片側を観測してしまうと方向が確定してしまい、瞬間に相手側の方向も同時に確定してしまいます。片側が観測された瞬間でお互いの方向を逆に調整すると言うような「きもちわるい」現象が発生するとアインシュタインは言われていました。
しかしながら、後々そのような現象が実際に確認されました。(資料)
「EPR」とはアインシュタインとポドルスキーとローゼンの3名が提唱した問題で名前の頭文字から出来た用語です。皮肉にも、この2つの量子ペアーは、EPRペアーと名づけられました。
このような2つの量子が空間を超えて紐づけられていることをエンタングル(からみあった)状態になっていると言います。
「量子のもつれ」とも表現されます。(男女関係のもつれではありません。)
2つの量子は、どれだけ離れていても一つの繋がった量子のような不思議な現象が実現出来ます。
重ね合わせでどちらにも向いているが、紐づいている状態です。
《このような複数の量子間で、「不確定な状態」が連携できる現象は理解を超えます。
この現象については、『片側の量子が観測されたことを、もう片側のペアーの粒子に一瞬で伝わる』という解釈や、『可能性の数だけ世界が分かれる』との解釈もありますが、アインシュタインも嫌ったように、いかにも不自然で真偽を確かめようもありません。
ここではあくまでも量子は波であり同時に複数状態を持つが、仮に粒子として姿を見た場合は、ペアー相手との整合が取れているとだけ理解して進むことにいたします。》
繰り返しとなりますが、EPRペアーとなった量子は、もし片方を観測して状態を確認した場合、もう片方を観測した状態と必ず整合性が取れています。このEPRペアーという考え方は、量子コンピュータには必須な要素なのです。
ちなみに、この量子状態の連携は、ペアーとなる量子が遠隔での連動現象のため「量子テレポーテーション」とも言われますが、光速を超えた瞬間移動という意味ではありません。これも言葉に惑わされないようにしてください。
(相対性理論では、この世の中では光速を超えるものは、存在しません。「もつれ」現象を使っても光速を超えて情報を送ることが出来ません。)(資料)
従来のコンピュータの場合、「論理ゲート」は入力が0と1で、出力結果が変わることで成り立っています。
量子コンピュータの場合でも「量子ゲート」は「不確定」ながら0と1で結果が変わる必要があります。
もしも「あいまいで不確定」な情報が入力され「あいまいで不確定」な情報しか出力されないものは、コンピュータとは呼べず、単なるノイズ発生機となってしまいます。
1つの結果が複数の結果に影響をあたえる場合に「もつれ」が必要となります。
上記例は、たとえばボーリングは、結果により次の処理が変わります。
つまりボールが外れた場合と当たった場合で、点数の操作とピンの操作が一致する必要があります。
これが重ね合わせで、両方発生しているので、それぞれ結果と「もつれている」=結果による次の2つのアクションが一致している必要があります。
量子ゲートは、「もつれ」が利用されています。
「重ね合わせ」や「もつれ」が壊れてしまうことを、量子デコヒーレンスと呼び、量子コンピュータ商用化の最大の課題となっています。
また、量子ノイズによるエラーも発生します。
量子ビットのエラーには主に2つあります。
Bit flip error :0と1の状態が意図せず入れ替わるエラー
Phase flip error :位相が反転するエラー
これらのエラーを訂正するためにも、「もつれ」が使われます。
レーザー光線を使った量子の「もつれ」作成方法は以下です。
ある原子に、強くて高い光を当てます。(ポンプ光と呼びます。)すると光が当たった原子の電子がエネルギーを吸収して高い軌道に移動しますが、その後エネルギーを放出して低い位置に移動します。
その際、光を放出しますが、ポンプ光の1/2の波長の光が2つ放出されます。
理屈は大変複雑なので省略しますが、精製された2つの光は、スクイーズド光(絞りだされた光)と呼ばれます。
その光をうまく2つに分離できれば、「EPRペアー」つまり同じ状態を維持した双子の光となります。
すこしわかりにくいのですが、たとえば、ピッチャーが右と左にボールをもって投げたものは、EPRペアーではありませんが、右手に2つのボールを持って投げるとEPRペアーとなります。
EPRペアーでない光は、量子コンピュータでは使えません。
ゲートは、上記図のように、ハーフミラーをつかって、光を干渉させて実現します。
これも理論は難しいので割愛しますが、「制御NOTゲート」が実現出来ます。
もし詳細にご興味ある方は、古澤明教授の本が参考になります。
量子コンピュータ実現に向けて最大の問題は、「ディコヒーレンス」とお伝えしましたが、
量子ビットの誤り訂正機能は論理的には考案されています。
データ(量子ビット)は、ゼロデータ2個と「もつれ」を作成し、作成されたデータをゼロデータ6個と「もつれ」を作成します。
このように9つの「もつれ」があれば、もしどれかの量子ビットの1個が壊れた場合でも、エラーを修正することが可能となるため、安定した計算が行えるようになります。
「量子ゲート方式」を目指している、IBMや世界の研究所が基礎研究に時間をかけている間に、ベンチャー企業のD-Wave Systems社が日本の東京工業大学 西森教授の論文をベースに2000量子ビットの製品を世の中に送り出してきました。
アニーリングとは、直訳すると、「焼きなまし」という意味です。
まずハードウェアの構造ですが、
演算部分は、絶対零度近く(0.015度)で、超高真空(地上と比較して10億分の1)のところにコイル(リング状の回路)を作ります。
通常のコンピュータは、CMOSという半導体で論理ゲートが作られています。
D-WAVEの場合は、ニオブと呼ばれる金属でループ状の回路が作られています。
この金属を極低温まで冷やすと超電導(つまり抵抗がゼロでいつまでも電流が流れ続ける)となります。
資料:http://www.kurzweilai.net/lockheed-martin-buys-first-d-wave-quantum-computing-system
このループに右回りと左回りの電流を、ちょうど量子の重ね合わせ状態を作り出します。
ループひとつが、量子ビット1つ分となります。
量子ビットの0と1は、電流の回転する方向(スピン)で表現されます。
(図は、https://www.dwavesys.com/tutorials/background-reading-series/introduction-d-wave-quantum-hardware からのものです。)
上記の例は、縦に4つ、横に4つ、合計8つのキュビットループ(金色)の略図です。
(下記は、D-WAVE社資料です。)
このキュービットループが絨毯のように敷き詰められています。
現行製品は、各1量子ビットで最大6量子ビットと接続させることが可能です。
「量子アニーリング方式」は「量子ゲート」を持ちません。
最初に解きたい問題をパラメータとして、セットします。
このパラメータとは、
①バイアスとして初期条件を方向(スピン)としてセットします。
②量子ビットの隣同士の影響度をセットします。
量子ビットは、量子ビットの間に配置された結合用のSingle Flux Quantum(SFQ)回路というもので相互結合されています。
接続は、本来は全ての量子ビットどうしが接続された方が良いのですが、回路が複雑になるためマイナーエンベディングという手法で接続数を減らしています。
相互結合はインダクタンスというもので制御(影響度合いを調整)することが出来ます。
接続された量子ビットが、お互い影響をうけながら、方向(スピン)を変えます。
量子ビットはエネルギー的に安定する位置に(例えばオセロの白と黒のようにくるくる状態を変化させながら居心地の良い状態に)自然に遷移します。→量子に任(まか)せます。
ソフト的な構造は繰り返しますが、基本解きたい課題を数値モデルに置き換え、パラメータをセットすることが中心となります。
たとえば組み合わせ問題だと、クラスカル法などがありますが、とても難解なので説明は断念します。
アニーリング「焼きなまし」の名前からは、高い温度を徐々に冷やしていくイメージですが、実際は磁場強度を変化させます。
簡単にイメージ説明すると、水を張った水槽の水を少しづつ抜いていく感じです。そうすることで最適解でないくぼみにはまらないようにします。
壁を乗り越える(すり抜ける)のは「トンネル効果」と呼ばれているもので、量子のぼんやりとした性質を利用します。
徐々に冷やす(水位を下げる)と言っても、量子どうしの整合性が取れる時間は非常に短く、すぐに壊れてしまうので極短時間に行わます。
各量子ビットが最終安定状態に収まると、計算が終了したことになります。
各量子ビットに保持されている計算の答え(0か1か)を初めて照会することが出来ます。
D-WAVEの用途としては、向き・不向きがはっきりしています。
従来のコンピュータが不得意な「組み合わせ問題」しか解けません。
それでも、実用性は高く、この世の中で色々ある「組み合わせ問題」に応用が出来ます。
量子ビットの接続数を減らしているため、2000量子ビットで約40の組み合わせ問題までを計算することができます。
✓最適化
✓機械学習
✓サンプリング/モンテカルロ
✓パターン認識と異常検出
✓サイバーセキュリティ
✓イメージ分析
✓財務分析
✓ソフトウェア/ハードウェアの検証
✓バイオインフォマティクス/癌研究
「量子アニーリング方式」代表のD-WAVE社は、着々と次の製品リリース準備中です。
現在のモデルが2048量子ビットで各1ビットが最大6量子ビットと接続可能ですが、
次の新モデルは680量子ビットで各1ビットが15量子ビットと接続可能とのことです。
その後には、3080量子ビットで各1ビットが15量子ビットと接続可能なモデルが計画されています。
日本では、NECも同様の仕組みの量子コンピュータへ投資することを発表しています。(資料)
量子効果を使わずに、「組み合わせ問題」を高速に解く技術です。(量子コンピュータではありません。)
日本では、日立製作所(資料)や富士通が熱心に研究しています。
富士通が2017年9月にプレスリリースした製品では、素子は、従来の半導体で、FPGAと言われるLSI回路を使って実現されています。
素子を絶対零度付近まで冷やす必要がないため、製造は本物の量子コンピュータと比較すると簡単です。
性能数値がD-WAVEとの比較で提示されていませんが、もし同等性能だとすると画期的な製品です。
三菱UFJ信託銀行が富士通デジタルアニーラの実証実験を開始とのニュースがありますので、結果は注目されると考えます。
www.fin-itnews.com/entry/2018/01/23/085414
FPGAのアレイ上に、ビット(量子ビットではない)が碁盤のように配置されており、全ビット(1024bit)同士が16ビットのパラメータを介して接続されています。資料
各ビットは合計エネルギーが最低になるように、山登り法(山からの下山法)で安定した低エネルギーに向かうように変化させていきます。
推測ですが、量子効果が無いため、1ビットづつ?変化させ、エネルギー量を評価しながら最適な解に向かっていく必要がります。
そのため本物の量子コンピュータと比較すると時間が掛かるはずです。
途中で、小高い山(もしくは窪地)にはまり込んでしまった場合(つまりどのビットを変更してもエネルギー量が下がらない場合)は、量子効果で抜けることが出来ません。
その際は、すでに確定したビットに対して乱数や、わざと電圧を降下させ不安定にするなどの方法(量子の振る舞いを疑似的に再現)で揺さぶりをかけ、より最適な解があるかを探ります。
本物の量子ビットとデジタル化した疑似的な量子ビットシミュレーション?との違いは、「重ね合わせ」が出来るかできないかかと思われます。
量子コンピュータの「重ね合わせ」とは1と0が観測するまでは同時に存在することを原理としていますが、観測すると1か0がランダムに現れます。
量子の重ね合わせと、単なる乱数発生との違いは何でしょうか?
たとえば下記の図は、楕円(だえん)の面積を求める方法として乱数を使うと言った方法があります。
でたらめに矢を投げて、外れた数と当たった数の比率から面積を求める方法です。
考え方によっては、量子コンピュータも同様なイメージを持つことが出来ます。
ただし、量子ビットの場合は、デジタル疑似量子化ビット?と違い、投げる矢の数は「同時に全ての組み合わせで行うことが可能」とイメージしています。
でも、疑似的なものであっても、ある程度の速度効果があるのであれば、コストの面で非常に有用な技術となりえます。
あらためて「重ね合わせ」の不思議な力を考えます。
「重ね合わせ」とは本当は、既にどちらかに決まっているだけなのではないかとの疑問が生じます。その場合は、人が事前に知りえないだけの単なる乱数と同じになります。(隠れた変数論と呼ばれています。)
もし不確定というものが無いとすると、未来の先の先まで既に決定されていると言う考えも生じてしまいます。(ラプラスの悪魔と呼ばれているようです。個人的には未来が決まっているとは信じませんし、古典物理でもカオス理論という予測不能な現象が存在しています。)
量子状態が不確定状態であるということは、『ベルの不等式の破れ』が検証され、ほぼ疑いようがない状況になっています。
仮に、量子が人が事前に知りえない単なる乱数だとすると、膨大な数の箱から1つだけを見つけたい場合は、その箱が乱数では引き当らない可能性が非常に高く、短時間で見つけることが出来ません。
ところが、量子コンピュータでは見つけることが出来ます。ここが量子コンピュータのすごいところです。
量子状態は、確率的にしか存在しないものがその確率を維持したまま〈サイコロを振らずに/もしくは全ての目を出したように〉計算することが出来るのです。
観測することで、「重ね合わせ」が乱数的にどちらかに決まることを、「波束の収縮」と呼ばれています。
「波束の収縮」とは、量子のぼんやりした状態が消え、明確な粒子として観測され、重ね合わせ状態も消えてしまうことです。
「波束の収縮」とはひとつの解釈であり、まだ明確な説明が出来ていないようです。素人的には、粒子が速く動いてるだけなのでは?と思ったりもしますが、それでは説明が付かない実験結果が沢山あります。
正直なところ、人が観測しようが、機械が観測しようが本質的には関係なく、他の素粒子との相互影響が一番重要だとおもうのですが、どうも観測すると粒子に見えてしまうため、粒子性が幻覚なのか本物なのか、波という考えが幻(まぼろし)なのか量子物理学者も理屈が良く分かっていない様に推察されます。資料
この部分は、解明されていないため、解釈が複数存在していますが、その部分はとりあえず横に置いて、量子コンピュータの開発が進められています。
実際に量子効果が実感できるのかどうか、100量子ビット以上のマシンが出た以降で検証されるものと思われますので、あともう数年で答えが出るはずです。資料1 資料2
子供たちを、満足度が最大限得られるように、2台のバスに振り分けるという単純な遊びです。
5人の場合は何とか解けますが、16人となると2台に分ける組み合わせは6万5千を超えます。
このようなグループ分けは「カット問題」と呼ばれています。
下記は、アニメーションで解いている様子が見えます。
話を「量子ゲート型」の量子コンピュータに戻します。
実際の開発言語とはどのようなものでしょうか。
ウィキペディアによると
命令型プログラミング言語
Quantum computing language=QCL
Q言語
関数型プログラミング言語
Quantum lambda calculi
などが開発されています。
量子コンピュータは一度に複数のデータを同時に指定できるため、プログラム手法やアルゴリズムが従来のものとはまったく異なります。
それにしても、まだ商用の量子ゲート型の量子コンピュータが世の中に出ていない状態(現在は研究用のみ)なのですが、勢いを感じます。
「位相」に関する説明は難しいので省略しますが、量子コンピュータは、量子ビットの「位相」を操作するゲートも用意されており、アルゴリズム開発には重要な要素となります。
量子コンピュータのプログラミングは、だいぶ特殊です。
まず最初に「量子ゲート」の種類を整理します。
上記は、一部ですが、このゲートを組み合わせてプログラムを作成します。
アマダールゲートは、0と1の重ね合わせを発生させたり戻したりするゲートです。
量子アルゴリズムの概念は、希望する答えが量子ビットどうしを干渉させることで検出される(望まない答えが消去しあう)ようにプログラムする必要があります。
方法は、上記の箱をつないでプログラムするのですが、少し込み入った内容となるので、別の機会といたします。
量子コンピュータは、暗号を解くためではなく、従来のコンピュータでは解けなかつた問題を解くために開発が進められています。
将来も、従来コンピュータとは共存できる可能性があります。
まだ商用化されていないにも関わらず、色々な量子アルゴリズムが既に考案されています。
高速フーリエ変換以外にも、考案されたアルゴリズムとしては、
などまだまだ色々ありそうです。
高速フーリエ変換だけの応用例を見ても
⓪音響・振動分析
①画像解析
②画像処理
③デジタル通信の変調、復調
④天体スペクトル分析
⑤偏微分
⑥流体解析
また詳細には触れませんが、フーリエ変換以外のアルゴリズム応用案としては
Web検索高速化と精度アップ
知識データベース
膨大な事務処理の高速化
新素材の開発
画像解析・認識能力向上
経済シミュレーション
社会インフラの設計シミュレーション
経営課題と利益最大化シミュレーション
医薬品開発
生産販売計画の最適化
製品企画・研究開発の効率化
マーケティング分析
需要予測
性能評価・検査
設備保全
人員配置・管理・人事計画
政策・行政計画
医療・福祉の最適化計画
交通インフラ
土地活用
トレーニング&戦略、スポーツ強化
大規模構造解析
など、今までは処理するデータが大きすぎて利用できなかった課題を解決することが期待できます。
割と古くからある難題で、セールスマンの巡回問題というものがあります。
資料にもありますが、営業が顧客を訪問するためにどのような順番で回ると一番効率が良いのか研究されてきました。
6か所のお客様を回るのに、実に60通りもの行き方があります。
もっと訪問箇所が多い場合は組み合わせ数が指数的に増え、全ての組み合わせを評価することは、スーパーコンピューターを使ったとしても大変難しくなります。
このような組み合わせ問題はNP完全問題とも呼ばれ、営業だけでなく、トラックの運送順序の決定や、LSI回路設計、投資ポートフォリオ、マーケティング分析など色々な組み合わせに関する問題があり、従来のコンピュータでは解けないものばかりです。
「量子アニーリング方式」が得意な問題です。
グーグルでは、自動運転の『目』として動体認識や走行位置の確認として、『QBoostアルゴリズム』を開発して利用しています。また操作用でまばたき判定や顔認識に利用しています。
ロッキードマーチンはソフトウェアのバグ発見として『ボルツマン機械学習』のサンプラーとして利用しているようです。資料
具体的な利用方法ですが、解きたい『組み合わせ問題』を量子ビットで計算できる形に変換させる必要があります。
Quadratic unconstrained binary optimization ( QUBO )と呼ばれる一般的なパターンマッチングテクニックを使ってD-WAVEに初期パラメータをセットさせます。(参考1)(資料2)
下記は、D-WAVE社の資料です。
人工知能への応用も期待されています。資料
脳神経回路や脳内物質の作用をうまく活用したスマートなコンピュータを作るためには一度に大量のデータを処理する必要があり、量子コンピュータが向いている分野となります。
また人間との接点となるコミュニケーション能力が向上します。
・視覚能力(画像分析能力、認識能力の向上)
・聴覚能力(音声理解能力、ノイズ消去能力、選択聴力)
・味覚能力(膨大な組み合わせ味覚の識別能力)
・感情識別(音声の抑揚や、表情、体温、言葉使いから相手の状態を読み取る)
実現出来れば、数年で良くも悪くも社会が大きく変化する可能性を秘めています。
量子アニーリング方式は2000量子ビットを実現し、販売開始していますが、肝心の「量子ゲート型」の進捗状況はどうでしょうか。
上記写真は、https://web.physics.ucsb.edu/~martinisgroup/photos.shtmlのものです。
ジョン・マルティニス・カリフォルニア大学サンタバーバラ校教授の研究です。
量子ビットがチップ化されたものかと思われます。(だいぶ小型化しています。)
下記は、量子コンピュータのロードマップです。(資料)
2020年~2024年ぐらいから商用の製品が出てくる可能性がありそうです。
量子ゲート型の製品が販売されるためには、まだ乗り越えるべき課題が多くあるようです。
否定的な意見もありますが、複数の優良企業や多くの大学や研究機関、色々な国の政府機関が取り組んでいます。
2018年1月 「CES 2018」の基調講演で、49量子ビットの量子コンピューティングテストチップの設計、製造、出荷に成功したと発表。テストチップの開発コード名は「Tangle Lake」。(資料)
2017年11月 世界で初めて50量子ビットを搭載した量子コンピューターの試作機を発表。(資料)
2020~21年 商用化計画。(資料)
2017年12月 量子コンピューター向けプログラムの開発キット「Quantum Development Kit」のプレビュー版を公開。(資料)
2018年3月 72量子ビットの量子プロセッサ「Bristlecone」を発表。(資料)
量子コンピュータ実現を阻害しているエラー問題の一つに、「量子もつれ」が突然解消されるという現象が報告されているようです。外部要因ではなく、素粒子の崩壊現象のように「量子もつれ突然死」とも呼ばれているようですが、ただしネット上での話題であり真偽は不明です。
「もつれ」自体が不可思議な現象なので何があっても不思議ではないのですが、個人的には時空の成り立ちに関係するように感じられ、もう少し解明がすすめばと期待しています。
まったくの余談ですが、URLの記事の情報から驚くべき発表がありました。
UCSB物理学の研究者Charles Neill氏の研究によりますと、
古典的カオス(つまり天気予報とか、空気の乱れ、バタフライ効果など予測できない不規則な動き)と「量子のもつれ」と深い関係にあることが発見されたそうです。
この発見は、『自然の特定の基本的側面を調査するために制御可能な量子システムを使用することが可能である』→つまり天気予報などのカオス的な予測に量子コンピュータが活用できる可能?があるかもしれません。
古典的なカオスの現象にエンタングルメント(量子のもつれ)という概念はありません。
それでも、「カオス」と「エンタングルメント」が強く明確に関連していることはびっくりします。
今後なにが飛び出してくるのか期待できそうですね。
量子アルゴリズムを研究されている教授と会話しましたが、量子コンピュータは、不可解な量子の振る舞いを研究する用途としても活用されているとのことです。
今後発展するためには、より有用なアルゴリズムの発見と開発が必須となります。
少し長いページとなりましたが、何らかのご参考になれば幸いです。
もし疑問が湧きだすとなると、このページも成功かと考えています。
その際は、ご自身でも調べてみてください。
量子科学や量子コンピュータの専門家でないため、誤解や不備があればお詫びいたします。
今後時間があれば、少しづつ修正していきたく考えます。
参考資料: