初めまして、アリス初投稿で何を書こうかと悩んだ末、量子コンピュータについて書いてみる事にしました。量子コンピュータとブロックチェーンなんてニッチな記事はアリスくらいでしか読まれないだろうと(笑)
今回は量子コンピュータがどのような原理に基づいているかを説明します。
幸せになれます。ですがもしかしたら知らないと損することがあるかもしれません。まず、量子コンピュータなんて言葉はなかなか聞かないと思います。聞いたことはあっても言葉だけが一人歩きしているのがほとんどかと思います。この拡散社会では、言葉だけが一人歩きするケースが多く、間違えた解釈や本質がわからないまま時間は過ぎていきます。
それの何がいけないのか?
例えば量子で言えば、量子エネルギーが何だとか、オカルト的なよく分からない事に結びつけられたり、IoTマンションとうたって、全然特別なことはしていないのにとりあえずIoTつけとけばいいや的なノリ。
皆さんよくご存知のブロックチェーンもその一つで、驚くべき事に、なんかよく分からないミートアップでとりあえずブロックチェーンとうたったトークン(仮想通貨)ならなんでも売れちゃう時代が存在しました。それはわずか2年前、2017年の出来事です。どのような時にコンセンサスが必要だとか、DBでいいのではないか、非中央集権だとかいうワードがよく分からないまま一人歩きしていきます。自分も偉そうなことは言えず、よくわかってません。正体を知るためには、エンジニアスキルや、経済的知識などかなり多様な知識を必要とするからです。
具体例を挙げましょう。まだ記憶に新しいGoogleの量子コンピュータが従来のスーパーコンピュータを大きく上回る量子超越性を発表したとかでビットコインのセキュリティが破られるとかいう誤った情報が拡散されてましたよね?
知識があればここでの判断が冷静にできるということです。
え、実際に暴落したから良かったって?そしたらビットコインの大口さんはここで学べばいい、とそういう事になります。
だいぶ話が逸れてしまいましたが、実際に量子コンピュータがどんなものなのか説明していきたいと思います。
まず量子コンピュータを説明するにあたり、今僕たちが使っているコンピュータを古典コンピュータと呼ぶ事にします。これは古いから古典と言うことではなく、計算の仕組みが異なるので区別しています。つまりスーパーコンピュータも古典コンピュータと言います。
量子コンピュータのの計算には何が使われているのでしょうか?
簡単に言うと量子が使われています。
量子ってそもそも何かわからないですよね。とりあえず小さい粒みたいなものな感じがします...
最初に量子を簡単に言うと、粒であり、波です。
波って意味がわからない。粒が波なんてそんなわけなかろうと。
名前は二重スリッドの実験と呼びます。
スリッドとは真ん中に2つの穴が空いているやつで、奥に縞が現れているのがスクリーンです。
手前の量子銃で量子を発射して波の性質を調べるのが目的です。
干渉縞は波の性質であるので、干渉縞ができていたら波、干渉縞はできず、粒子が直進して二本の模様が浮かび上がっていたらただの粒子ということになります。
結果は以下のようになりました。
つまり、量子は波の性質を持ち合わせていると。
この図だと粒子が6個あるんだからスクリーンにぶつかってベチャってなってたまたま等間隔に縞が6個できちゃったんじゃ無い?
なんと、ベチャって潰れたわけでもなく、粒子をそれぞれの穴から1つずつ発射しても同じように干渉縞ができてしまったのです。
よくある誤解として、量子が分裂してそれが波になるというように理解してしまう人もいますが、そういうことでは無いので注意しましょう。
波だと思って観測すると、どういうわけか波の性質は消えて粒子として存在しています。
実験は1960年頃になります。
基本的に大学以上で学ぶ物理は私たちが普段生活し感覚として捉えられるマクロな世界から、ミクロな世界にも議論を広めることで、時として直感に反したことも学ぶ事になります。そしてそれは実験により実証されていて、気持ち悪くても認めなくてはいけません。上の量子の例でもそうですが、『相対性理論』もそうです。時間が遅れるなんて、よく理解できないのは、このようなことを認められないことが主な理由だと思います。まず実験結果を認めると言うところから始まります。
ここまでで、量子は粒子と波の性質をもっており、粒子であるのはなんか普通っぽいので、おそらく波の性質が量子コンピュータに関わってくるのでは無いか?という予想が立っていたら、goodです。
粒って重ね合わさりませんよね。ですが波は重ね合わせることができると言うのは想像がつくでしょうか。
量子は波の性質を持ち合わせているため重ね合わせることができます。
量子は波であり重ね合わせることができる、うーん、これでもイマイチ何がアドバンテージかピンときません。
具体例を考えてみます。
4つのデータ、00,01,10,11を古典コンピュータと量子コンピュータで扱うとします。
古典コンピュータでこれらを扱い、計算しようとすると、それぞれのデータは別々に扱い計算します。
量子コンピュータではどう扱うかと言うと、この4つのデータを重ね合わせてまとめた状態を作り、計算に利用することができます。
シュレディンガーの猫が有名ですので紹介します。
フタ付きの箱の中に、猫と1時間後に50%の確率で毒ガスが放出される装置を入れるという状況を考えてみます。
1時間後、猫は生きているか死んでいるか、確率は50%でフタを開けてみないとわかりません。
これを量子の世界では、『猫は生きている状態と死んでいる状態は重ね合わさっている』と表現します。
ただし、フタを開けたら生きているか死んでいるかは確定し、その後何度その状態を確認しても生きているか死んでいるかはもちろん変わりません。
つまり、観測するまで状態が重ね合わさっており、観測後はその状態は重ね合ってはいないということになります。
この勢いで大学レベルの数式でその重ね合わせ状態を表現します(便宜上その重ね合わせ状態を|ψ〉とします)。
生きている状態を|生〉、死んでいる状態を|死〉として、フタを開ける前の重ね合わせ状態は次のように表現されます。
|ψ〉=|生〉+|死〉
両者の確率は50%(1/2)であるので、上式に反映させます(それぞれの状態の前に来る係数はその状態が観測される確率の平方根を取ります)。
|ψ〉=1/√2|生〉+1/√2|死〉
専門用語にはなりますが、変な記号 | 〉はケットベクトルと言います。左辺は波動関数とよび、その名前から察するに、量子の波の性質が反映されていることが分かると思います。
実際に4つのデータの重ね合わせ状態を数式で表してみましょう。
|ψ〉=|00〉+|01〉+|10〉+|11〉(係数略)
このような具合になります。
結局観測したら重ね合わさってないのなら、計算にどう活かすのかという話ですが、計算過程にはこの重ね合わせ状態を活用することができるのです(後ほど詳しく解説します)。
なんとなく、量子コンピュータは複数の状態を重ね合わせて計算に活用できるということで、なんか計算速そうという印象を覚えますね。
重ね合わせと同じように、量子の性質の中には『量子もつれ』というものがあります。
量子もつれは二つ以上の量子で起こる現象で、ある量子を測定したときに他の量子の状態に影響を及ぼすというものです。
例えば、2つの量子を考えます。
1つ目の量子は2つのデータ(0と1)の重ね合わせ状態
|ψ1〉=1/√2|0〉+1/√2|1〉
2つ目の量子は
|ψ2〉=|1〉
とします。この時点では、2つの量子はもつれてはいません。
1つ目の量子を測定した時に、2つ目の量子に影響を及ぼしていたらもつれを引き起こしているということにはなりますが、この影響が予想できないランダムなものであっては意味がありません。
ですので、
『1つ目の量子を計測した時に、0であれば2つ目の量子には何もしない、1であれば2つ目の量子を反転させる』や、
『1つ目の量子を計測した時に、0であれば2つ目の量子には何もしない、1であれば2つ目の量子にマイナスをつける(位相を反転させる)』
みたいに任意のアルゴリズムの量子もつれ作ることができます。(想像しにくければまだ理解しなくても大丈夫です。)
結果どうなるかというと、前者であれば|ψ1〉が|1〉で計測されれば|ψ2〉は
|1〉→|0〉
になるということです。
こちらも実験例を挙げるとすれば、現在の研究では、量子もつれを画像に記録するところまで成功しているようです。
ちょっと拒否反応が出そうな画像ではありますが、上の4枚に注目すれば大丈夫です。
量子の一つである光子がこの実験では使われています。
光子を2つ用意し、1つ目の光子はランダムに位相(角度)が決まる(0°,45°,90°,135°)フィルターを通し、2つ目の光子はフィルターを通らず進みます。
量子もつれを引き起こしていなければ、2つ目の光子はそのまま真っ直ぐ進むはずです。
光子ペアはフィルターを通る前に分割されており、1つ目の光子が位相フィルターを通ると、2つ目の光子も同じ位相変化をしていることが分かります。
しかも、量子もつれを引き起こしている複数の量子は、いくら距離が離れていても量子もつれのままです。
量子テレポーテーションという言葉を聞いたことがある方もいるかもしれませんが、量子もつれを利用しています。つまり、情報を遠距離に瞬時に送れるということです。
量子コンピュータは量子の性質を利用しており、複数のデータを重ね合わせたり、もつれを利用して、従来の古典コンピュータとは計算の原理が異なっている。
というわけで今回は量子コンピュータの原理となる二つの性質を紹介しました。
次回は量子コンピュータを動かすにあたり、必要な知識、そして実際に量子コンピュータを動かし、どのようなアルゴリズムがブロックチェーンにとって脅威だと考えれらているのかというところまで触れていけたらなと思います。
よろしければツイッターをフォローしてくださるととても喜びます!