Help us understand the problem. What is going on with this article?

Introduction:従来のコンピュータと量子コンピュータの相違点を数式を使わずに抽象的に説明します。

Introductionは誰でも簡単に量子コンピュータの事を何となく理解できるように書きました。数式は一切使用していないので、気軽に気楽に読めると思います。

その後の記事では、現在発見されている比較的簡単なアルゴリズムをまとめていこうかと考えています。
こちらは量子力学の初歩的な知識があればすんなりと理解できるかと思います。

間違え・質問等がありましたらコメントいただけると幸いです。
分かっている人からすると「むむむむ?」となる箇所があるかもしれません。

はじめに

従来のコンピュータとは、今日まで私達が使ってきているノイマン型コンピュータの事を指します。今現在、本記事を書く為に使用しているノートパソコンはもちろんのこと、時折話題になるスーパーコンピュータもノイマン型コンピュータの一種です(多分...)。人類史上最初のコンピュータが実現されてから約70 年の月日が経ちますが1、そこから現在に至るまで、さらにつけ加えると一般的なコンピュータからスーパーコンピュータに至るまで、計算の根本的な部分に変化は生じていません。

近年、量子コンピュータが注目され始めていますね。量子コンピュータも二進数を用いて計算を行うことまでは従来のコンピュータと共通しています。しかしそれより先、二進数を表現するためのビットと呼ばれる物の性質が異なっています。本記事ではその相違点を数式を用いずに抽象的に説明していきます。

以後、従来のコンピュータを「古典コンピュータ」、これに使われているビットを「古典ビット」を呼ぶことにします。また、量子コンピュータに使用するビットを「量子ビット」と呼称します。(qubitとも呼ばれます)

重ね合わせ

古典ビットと量子ビット、両者の違いは重ね合わせの性質の有無です。古典ビットは「重ね合わせの状態」を取り得ませんが、量子ビットは「重ね合わせの状態」を取り得ます。

量子ビットにおける「重ね合わせの状態」という言葉は「0でもあり1でもある状態」という言葉に言い換えることができます。古典ビットの場合は「0だけの状態」または「1だけの状態」のいずれか一つの状態を取ることが許されています。一方で量子ビットの場合はこの2つの状態に加えて、「0でもあり1でもある状態」を取ることが許されています。

では「0でもあり1でもある状態」とはどういう事でしょうか。コインに例えて説明してみます。古典的性質を持つコインを"古典コイン"、量子的性質を持つコインを"量子コイン"としましょう。
※あくまでも例え話です。

古典

古典コインは地面に置かれた状態のみを取ることが許されます。

0が上に向いて置かれている状態のコインを写真に撮ってみましょう。この場合、当然ですが写真には必ず0という数字が映ります。同様に1が上に向いて置かれている状態のコインを撮ってみると、写真に映る数字は必ず1です。

量子

一方で量子コインの場合は地面に置かれた状態に加え、地面から離れて宙に浮いている状態というのも取り得ます。

nc176298.gif

出典:http://commons.nicovideo.jp/material/nc176298
※上図のコインには1と2が書かれていますが、2→0と置き換えて考えてください。

くるくると回りながら宙に浮いている状態のコインを写真に撮ってみると、0と1どちらの数字が映るでしょうか。それは撮る時々によって異なります。ある瞬間に撮ると0が映りますが、次の瞬間には1が映ります。そして次の瞬間には0が映ります。また次の瞬間には...。※側面は映らないとします。

図のコインを撮ってみると、写真には0が映る可能性もありますし、1が映る可能性もあるわけです。このような状態の事は「0でもあり1でもある状態」、つまり「重ね合わせの状態」と呼べそうです。

※以上の話では0と1が出現する確率はどちらも1/2だと考えられますが、実際の重ね合わせの状態では確率の割合に制約はありません。合計が1となればそれで良いのです。コインのイメージを量子ビットに当てはめたまま議論を進めると混乱が生じます。なので以上の話はあくまでも量子的性質に馴染むための例え話であって、本質的な説明ではない、ということには注意して下さい。(もちろん、0と1の出現確率がどちらも1/2という状態も存在します。量子情報理論においてそのような状態は頻繁に使用されます。)

古典ビットと量子ビット

繰り返しになりますが、古典コンピュータと量子コンピュータの根本的な違いは数値を表現するビットにあります。どちらのコンピュータも複数のビットを用いて二進数で数値を表現している点については共通しています。では何が根本的に違うかと言うと、それらのビットに重ね合わせの性質が備わっているかどうかという点が異なっています。

古典ビット

古典ビットには重ね合わせの性質が備わっていなく、「0 だけの状態」と「1 だけの状態」のうちのいずれか一方を取ることしか許されません。つまり1つの状態で表現される数値は"0"か"1"かのどちらかです。

二桁の二進数が表現できる数値は下図のように00,01,10,11 の4通りありますが、古典ビットの場合には1つの状態を取る事しか許されません。つまり一度に表現できる数値は4通りの内の1つのみです。

イラストはマインクラフトのレッドストーントーチをイメージしました(笑)

量子ビット

一方で量子ビットには重ね合わせの性質が備わっており、「0 でもあり1でもある状態」をとることが許されます。すなわち、1つの状態で"0" と"1"の両方の数値を表現する事ができるのです。

2bitの場合を考えます。古典ビットの場合は1つの状態につき4通りある数値の内の1つしか表現できませんでしたが、量子ビットは重ね合わせの性質により4通り全ての数値を一度に表現できます。

3bit の場合は$2^3$ 通りの数値を一度に表現可能だし、4bit の場合には$2^4$ 通りの数値が一度に表現可能、...というように、ビット数が増えるにつれて量子ビットが持つ重ね合わせの性質の威力は指数関数的に増えていきます。

終わりに

古典ビットと量子ビットの違いを説明しましたが、ここで注意しておきたい事があります。

重ね合わせの性質というのはつまるところ、ある1つの状態のビットを測定したときに現れる数値が不確定であり確率によって左右される、という事です。「0でもあり1でもある」という重ね合わせ状態の量子ビットを測定したときに現れる数値は"0"もしくは"1"のいずれか一方の値であり、「0"と"1"が同時に観測される」ということではありません。

重ね合わせの性質とは言っても結局は確率の話なのです。

上図のように2bit で4つの数値が均等に混ざり合っている(それぞれの数値の出現確率が同様に確からしい)状態を考えます。例えばこの状態から"00"という数値を取り出したいとして測定を行っても、観測確率は1/4 なので、"00"が出現しないという可能性のほうが高いです。"00"から"11"までの数値を取り出すには、「4つの数値が均等に混ざり合った状態を作り出して測定を行う」という操作を4回以上繰り返さなくてはなりません。

すなわち、ここまでの話だけでは古典コンピュータに比べて量子コンピュータに優位性があるとは言えません。

量子コンピュータに優位性がある事を示す一例としてBernstein-Vaziraniの問題というものが存在します。次回の記事(introductionその2)ではこれについて、やはり数式を用いずに抽象的に説明しようと思います。

もしここまで読んで下さった方がいましたらありがとうございました。

追記:測定による状態の収縮について

最後に一つ注意してほしいのですが、測定を行った際には状態の収縮が起こります。例えば、上の図のように4つの数値が混ざり合っている状態の量子ビットの測定をして"01"という値が現れると、そのあとの測定で"01"以外の数値が現れる可能性は0となってしまいます。つまり、「01~11が均等に混ざり合った状態」の量子ビットの測定を行うと「01だけの状態」へと収縮してしまうのです。

結構基本的な話なのかもしれませんが、恥ずかしながらつい最近まで知らなかったので追記しておきます。
本記事も別の記事も、色々と間違った考えをしている箇所があると思うので、批判的に読んでいただけると助かります。

参考文献

[1] 中山茂(2014) 『量子アルゴリズム』技報堂出版
[2] 宮野健次郎+ 古澤明(2016)『量子コンピュータ入門(第二版)』
[3]「量子コンピュータ授業 #1 量子ビットと量子ゲート」
  https://www.youtube.com/watch?v=R2fyLl7KZXM
[4]「Quantum Computers Explained – Limits of Human Technology」
  https://www.youtube.com/watch?v=JhHMJCUmq28

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした