コンピューターのビット、スイッチ
一般的にコンピューターは、2進数を基盤として、様々な計算を行うことができる計算機の事。
「コンピューターの構成の基礎知識」1と0の極限を目指す機械
『量子コンピューター(Quantum computer)』と言われているコンピューターもそうである。
2進数を使った計算機である。
2進数は、スイッチのオン、オフの切り替えの組み合わせと考える事が出来る。
通常のコンピューターと、量子コンピューターとの違いは、そのスイッチに何を使っているかである。
そして、その用いるスイッチの違いが、通常のコンピュータと量子コンピュータとの間に、莫大な性能差を生むのである。
通常のコンピューターは、 素子と呼ばれる小さなパーツに、電圧がかかっているかどうかを、スイッチのオン、オフとしている。
「電気回路、電子回路、半導体の基礎知識」電子機器の脈
一方で量子コンピューターは、量子の状態そのものを、スイッチのオン、オフとして使う。
いずれにしても、そういうコンピューター を構成しているいくつものスイッチの単体のオン、オフ状態は、ビットと呼ばれる。
「ビットとは何か」情報量の原子は本質的にも原子であるのか
量子スイッチ
量子コンピューターは、ミクロスケールの領域において適用できる、量子力学的な法則を用いる。
「量子論」波動で揺らぐ現実。プランクからシュレーディンガーへ
原子以下の微小な空間において、一個の粒子は、同時に2箇所に存在することができる。
これを利用すれば、従来のコンピューターでは決してできない、スイッチのオンとオフ状態を、重ね合わせる事が出来るのである。
従来のスイッチが2つあるとする。
この場合、11、00、10、01の4つの状態のいずれかを記録しておく事が出来る。
しかし、スイッチのオンオフを同時に取れる量子コンピューターなら、4つの状態全てを2つのスイッチだけで記録しておける。
これはそのまま、並列処理が可能な数が、通常のコンピューターより優れている事を表す。
そして、スイッチのオンオフの組み合わせが増えれば、その並列処理可能な数は倍々になっていく。
例えば『量子スイッチ』の数が10個だけの量子コンピューターなら、1024の並列処理が出来る。
1から1000までの平方根を知りたいのだとして、一度の計算で処理出来る。
キュビット。クラシカルビット
通常のコンピューターに関して、電圧の有無をオンオフ素子に拘る必要はない。(ただ、それが便利で、小型化しやすいから使われているのである)
2進数を使うコンピューターに必要なのは0と1を表現する方法と、その結果を出力するための、システム(仕組み)である。
量子コンピューターの場合でも、利用法や、利用される量子の状態というのに、あまり拘る必要はない。
しかし、例えばこのように考えてみよう。
とても小さな箱の内部に粒子1個だけを入れる。
その小さな箱に仕切りを入れて、二つの空間に区切る。
その箱の中の二つの空間のどちらに粒子があるかで1か0、あるいはオン、オフを設定出来るだろう。
しかしながら、実は量子論的には、我々が箱の二つの空間のどちらに粒子があるのかを知る事は出来ない。
一般的にはこれは、我々が確認するまで「重ね合わせの状態」にあるとされている。
つまり、粒子は2つの空間に同時に存在している訳である。
スイッチとして考えるなら、オンとオフの両方の状態を同時にとっている。(注釈1)
そういう訳で、 我々がそれから目を離している時は、量子のビット、『キュビット(qubit)』は複数の値の重ね合わせで、確認したら、数値は決まる。
『クラシカルビット』、『古典ビット』などと呼ばれる従来のビットでは、見てようが見てまいが、ビットの状態は1つに決まっている。
つまり量子コンピューターは、キュビットの、場合によって状態が重なる、という性質を利用する訳である。
(注釈1)シュレーディンガーの猫スイッチ
この例は、有名なパラドックスである「シュレーディンガーの猫」を参考にしている。
シュレーディンガーは量子論の分野の発展に大きく貢献した人だが、不確定性原理と呼ばれる量子論の、そういう話を嫌っていたとされる。
AND、OR、NOTゲート
コンピューターの構成要素、あるいは理論の基礎として、『ゲート』がある。
これは1と0を用いた以下のようなスイッチである。
1をyes、0をnoとする。
二つの入力が、1と1なら、yes(1)を出力、それ以外ならno (0)を出力する『ANDゲート』。
二つの入力の、一方でも1ならyes、両方0ならnoを出力する『ORゲート』。
それに1が入力されたら0を、0が入力されたら1を出力、ようするに入力を反転させる『NOTゲート』
上記の3つのゲートをいくつも組み合わせて、コンピューターは、自らの機能を実現している。
スピン量子ゲート
キュビットを用いたゲートは、『量子ゲート』と呼ばれる。
おそらくは量子の性質をどこかで利用していれば、それは量子コンピューターと言える。
しかし、普通、単に量子コンピューターと言えば、量子ゲートを利用したコンピューターの事である。
また、普通は、キュビットのスイッチのオン、オフは、その存在空間でなく、状態を使う。
量子の状態として、もっとも考えやすいのが『スピン』である。(注釈2)
量子は、回転するコマのように考えることができる。
そしてその回転が、時計回りか反時計回りかを、スイッチのオンオフとする。
というような説明もある。
それより磁気というものを知っているだろう。
SかNかの状態を取る性質である。
その磁気とスピンは密接な関係にあるとされる。
スピンは、量子の自転のようなものとも言われるが、実際のところ、量子が自転をしているかどうかなんて誰も知らない。
ただし計算上、量子は『角運動量(angular momentum)』と言う、回転運動により生じる力の値を持つと、考える事が出来るのである。
重要なのは、スピンに向きを想定出来る事である。
ようするに、量子は、 上を向いているか、下を向いているか、という状態をとることが出来る(そういうふうに想定して、今のところは、論理的に矛盾がない)。
そして、上向き状態、下向き状態を、スイッチのオンオフとして考えるのが、量子スピンによる、キュビットである。
(注釈2)他の方法。エネルギー。電荷
スピン以外には、原子(イオン)内の電子の軌道、ようするにエネルギーの状態を、キュビットとして使う方法なども考えられている。
あるいは電荷などを使う事も考えられる。
「電磁気学」最初の場の理論。電気と磁気の関係
並列計算可能数
実際に量子コンピューターで、どれくらいの並列計算が出来るのか。
キュビットの数をnとして、
だけ可能とされている。
例えば1000キュビット使った量子コンピューターなら、300桁くらいの数になる。
一般的に無料対数が68桁という事を考えれば、これの凄さがよくわかると思う。
量子コンピューターは万能か
実はそうでない可能性もある。
量子のどのような状態も、常に重ね合わさっている、という訳ではない。
スピンが上向き下向きのどちらか、それが重なり合っている場合であっても、確認した時に、何かが結果として出てくる。
並列計算が出来ると言っても、並列計算を有効的に活用出来る場合でないと、あまり意味はない。
ようするに、量子コンピューターは、キュビットを使うかゆえに、独特のアルゴリズムが必要となる場合が多いはず。
ただし、量子コンピューターで、いかなる事が出来るかに関しては、 すでに多くの 論文が出されている。
例えば大きい数の、因数分解の問題に関しては、古典コンピューターより、量子コンピューターの方が圧倒的に有利であることがわかっている。
重ね合わせ崩壊、デコヒーレンスの問題
量子コンピューターで何かの計算を行う場合において、重ね合わせ状態が途中で崩れてしまったら、何もかも台無しになるのは容易に想像できよう。
そのような量子的重ね合わせ状態の破壊による情報損失を、『(量子)デコヒーレンス』と言う。
デコヒーレンスは量子コンピュータを実用化する上で、かなり大きな困難とされている。
ようするに、キュビットの重ね合わせ状態を維持したまま、計算を続けさせることは非常に難しいのである。
手に持てるサイズの量子コンピューターがあるとして、それをほんの少しでも揺らしてしまったら。それがキュビットの重ね合わせを崩すことになりかねない。
実用的な量子コンピューターには、従来のコンピューターよりずっと強力な外装か、特殊な環境が必要なのは、まず間違いない。
量子コンピューターの姿
超低温の液体ヘリウムの上に配置した電子のふるまいをキュビットとして使う量子コンピューターなどが提唱されたりもしている。
これはよく言われる。
普通のコンピューターのICチップのようなものに、量子コンピューターのキュビットを搭載し、実用化させることは、かなり不可能のようにも思えるからである。
完全に理想的に実用化された量子コンピューターの姿は、我々がコンピューターと聞いて思い浮かべるようなものとは、まったく違うものになる可能性がわりとある。
因数分解と暗号
大きな数の因数分解ができるから、だから何だというのか。
実はこれは、かなり重要な問題と直結している。
コンピューターネットワークが世界中に広がった現在においても、かなり安全性が高いとされていて、実際に広く使われている、『RSAアルゴリズムと』いうの用いた暗号システムは、「大きな数の因数分解は、実質的に不可能」という推測を当てにしているのだ。
秘密鍵と暗号鍵
普通、暗号というのは暗号化するための「鍵」と、暗号化された情報を元に戻すための「鍵」が必要となる。
これらの鍵をオフラインでやり取りできればいいが、それではあまりに遅い。
そこで、自分に対して秘密にしておきたい情報を送ってもらう相手に、暗号化するための鍵を、オンラインで送る必要が発生する。
しかし、オンラインで鍵を送るということは、それが誰かに盗み見られる可能性がある事を意味する。
「ネットワークの仕組みの基礎知識」OSI参照モデル、IPアドレスとは何か
ネットワーク上における暗号技術の最大の難点はそこだった。
暗号化するための鍵がばれてしまったら、暗号を解除するための鍵まで、そこから推測されてしまう危険性がある。
しかし逆に言えば、暗号を解除するための『秘密鍵』はバレないのだから、相手に知らせる、暗号化するための『公開鍵』から秘密鍵を推測できないようにできるなら、問題は解決する。
そこで、『RSA暗号』においては、暗号化するための鍵となる数字を、適当に生成したふたつの素数を掛け合わせることで作る。
こうすれば、公開鍵から秘密鍵を知るためには、その数字の因数分解をおこない、掛け合わせたはずの二つの素数を探し出すしかない。
だがそれが十分大きな数であれば、因数分解は実質不可能。
量子コンピューターでもない限りは、という訳である。
不確定性原理
シュレーディンガーと同じく、量子論に大きく貢献したアインシュタインは、不確定性原理は信じていなかったと言われる。
彼はつまり、我々の観察能力に限界があるのであって、その状態が重なっている訳ではない、と主張していたそうである。
もし不確定性原理が、我々の勘違いなら、量子コンピューターは存在しえないように思える。
逆に言えば、量子コンピューターが実現したなら、アインシュタインが間違っていた可能性が大きく高まる。
アインシュタインの理想世界の量子コンピューター
もし不確定性原理が事実なのだとしても、我々の見ているようなマクロのスケールでは、そんなもの気にしなくてよいと考えられている。
例えば、よく言われるように、壁にもたれかかっていれば、自分も壁も破壊されることなく、すり抜ける可能性は、ゼロではない。
限りなく低いだけ、というのが量子論的な結露だが、ゼロでないとは言っても、ほぼゼロなので、実質ゼロである、という訳だ。
「ゼロとは何か」位取りの記号、インド人の発見
何が言いたいかと言うと、ようするに、不確定性原理というのが見せかけのものだとしても、実質量子スケールでそう扱えるというのなら、量子コンピューター が実現出来る事もあるのではなかろうか。
つまり、量子コンピューターが実現できて、かつアインシュタインは正しかった、というような結論に、未来人が至る可能性もなくはないという事。
この話には、この世界の可能性を感じる。
(コラム)宇宙の真理
もうひとつ。
我々はミクロの世界こそ真理だと考えがちだが、実はマクロの世界こそ真理なのかもしれない。
だとすると、ミクロな世界での振る舞いは、実はミクロの世界で見たときに擬似的に発生するような見せかけの真理であり、本当の真理はマクロの方にあるのではなかろうか。
そう考えては、なぜいけないだろうか?
我々は何を知ってるつもりなのか?
どの階層で生きてるつもりなのか。