ジャパン/コンピュータ・ネット代表取締役 岩戸あつし

前回の話:
従来からあるコンピュータの基本的な仕組み、基礎知識の解説をした。電球を例にして、電球が消えているのを0、点いているのを1と定義した。そして電球をビットと呼び変えて、ビットを横並びに並べて、ビット数が増える毎に、0と1で構成されるパターンが累乗的に増えることを解説した。つまり、1ビットでは2パターン、2ビットでは4,3ビットでは8、4ビットでは16、8ビットでは256、32ビットでは約43憶パターンが可能である。そしてそのパターン数がそのままコンピュータで使えるMAXの数字の値になる。ただ、それらは数字の大きさの話であって、それらを使って足し算や引き算の計算をするためには、タイミングを取るための、ヘルツ(クロックサイクル)が重要であると話した。

 

量子ビット:
さて量子コンピュータであるが、まずビットの代わりとして量子ビットがある。量子ビットは電球で例えることが難しい。なぜなら量子ビットは、点く、消えるという2種類の状態ではなく、点くと消えるのどちらも同時に可能、という不思議な状態を持っているからだ。壊れかけの蛍光灯がちらちらしているのとは違う。壊れかけの蛍光灯は、点いたり、消えたりしているのであって、同時ではない。正直、通常の論理では説明できない。

これを説明するためには、量子とは何か? という量子物理学を学ばなければならないが、きっとほとんど人は興味ないし、聞いてもだめだと諦めていると思う。それで、よくあるところの「これは理屈抜きにこうなんだ。~としましょう」という仮定に立って話を進めるしかない。超常現象を説明するのに、「仮にお化けが存在するとしましょう」と同じ論法だ。

 

量子ビットが増えていくとどうなる?:
1量子ビットが、0でもあり1でもあると定義した。そしたら2量子ビットはどうなるのか? 通常のビットでは4通りのパターンがあるが、量子ビットでも実は4通りになる。ただし1量子ビットが0と1の同時になるので、4通りのパターンが同時に可能ということになる。具体的に言えば、通常ビット場合は0から3までの4つの数字の内、一つの数字しか一度に表すことができない。ところが量子ビットは0から3までの数字を全て同時に出せるのだ。でも、これらは同時であるにせよ数字を並べる能力であり、足し算や引き算などの計算能力を表していない。次に1+2の計算をする場合の計算タイミングの比較をしてみよう。

 

通常コンピュータで1+2を計算する時の動き:

  1. ロード: メモリから1をレジスタにロード
  2. ロード: メモリから2を別のレジスタにロード
  3. 加算: 1と2を加算し、その結果を一時的なレジスタに保存
  4. ストア: 結果をメモリにストア

以上のように4回のタイミング(クロックサイクル)になる

 

量子コンピュータで1+2を計算する時の動き:

  1. 初期化: |0⟩ 状態に量子ビットを初期化
  2. エンコード: |1⟩ と |2⟩ 状態に量子ビットを設定
  3. 量子ゲート操作: 量子ゲート(加算器)を使って |1⟩ + |2⟩ を実行
  4. 測定: 結果の |3⟩ を測定して「3」を取得

以上のように計算方法は異なるが、4回のタイミング(クロックサイクル)が必要になる。

(ただし、量子コンピュータにおける計算のタイミングは、通常のコンピュータのものとは異なるので単純な回数比較はできない)

1+2を計算するのに量子コンピュータは必要ないし、却って通常のコンピュータより手間がかかるかも知れない。量子コンピュータは、今のところ通常のコンピュータと併用して使うことを目的としている。通常のコンピュータでは時間がかかり過ぎるアルゴリズム、例えば交通渋滞を解消する計算、何十桁の数字から因数分解をする方法など、量子コンピュータに向いた計算だけをさせていてる。

さてここで課題を出すが、量子ビットの性質を使って一体どんなことができるか考えてみてほしい。つまり、たくさんの数字を同時にいくらでも出すことができる計算機があったとして、あなたなら何をさせますか?

Share This