量子コンピュータは、並列作業をすることで、ノイマン型コンピュータよりも圧倒的に高速で作業ができる、という説明が出回っている。それは、まったくの間違いとは言えないが、かなり不正確である。詳しくは:
→ 細々とした周辺的な話題 の「量子コンピュータ」の箇所。 ──
簡単に言えば、量子コンピュータの並列作業については、次の通り。
・ 「素因数分解や検索では、有効である」
・ 「普通のビジネス作業では、無効である。(並列CPUならば有効)」
どうしてかというと、量子コンピュータで有効なのは、「得られる解答が一つだけ」というものに限られるからだ。
一方、「20の作業をして、20の解答を得る」という場合には、作業量は20分の1にはならないし、2分の1にすらならない。
( ※ 時間で言えば、どうか? 現実の量子コンピュータは、圧倒的に遅いので、作業時間は1兆倍ぐらいの時間がかかりそうだ。 (^^); )
( ※ 将来的に、量子コンピュータがどんなに高速化しても、ビジネス作業では、ノイマン型に大差で負ける。ノイマン型に勝てるのは、上記の二つの例ぐらいしか知られていない。)
なぜそういうことになるか、という原理は、上記の文書を参照。
直感的に言えば、間違いに至る作業を省略するのが高速であるだけであって、正解に至る作業を次々と高速でなしていくわけではない。
──
下品になるが、プレイボーイの比喩で言おう。20人の女がいるとする。ここで、三つのタイプがある。
一番いい女を得るのに、どの女がいいかわからないで、一つ一つ女を味見するタイプがいる。(ノイマン型)
一方、見てわかる情報(足首や口の形)から、上手に見当をつけて、ダメな19人をさっさと切り捨てて、見事に最適の女を見つけるタイプがいる。(量子コンピュータ型)
一方、一度に 20人の女を同時に処理できる精力タイプもいる。(並列CPU型)
以上の三つを、ちゃんと区別しよう。
──
なお、「重ね合わせの原理ゆえに高速化するんです」なんていう説明は、あまりにも物事を単純化しすぎている。それはいわば、「テレビを見ながら勉強すると、二つのことが同時にできて、能率が二倍に上がります」という詭弁と、五十歩百歩である。
実を言うと、量子コンピュータの研究者には、この手の嘘をつく人が非常に多い。たとえば、「シミュレーションを高速にできます」とか、「天気予報を高速にできます」とか。
しかしながら、それらは、純然たる並立処理である。「間違いを捨てる」というタイプではない。こういうものは、量子コンピュータの対象にはならない。(並列CPUや、複数コンピュータの並列化なら、OKだが。)
要するに、こういう量子コンピュータ研究者は、自分が何をやっているのかわかっていないのだ。基本的な原理もわからないまま、「あれもできます、これもできます」と勝手に夢見ている。
ま、夢を見るのは勝手だが、その夢ないし嘘を、世間にばらまかないでほしいですね。人々をだまして喜ぶのならともかく。
余談だが、画像処理に適しているのは、「完全並列処理機構」のハードウェアだ。セルの情報を中央のCPUで計算するのではなく、セルの情報をセルごとに計算する。
それを実現しているのが、人間の視覚情報機構だ。視覚野から入った情報を、脳が完全に並列処理している。
ちなみに、人間のニューロンの回路の総数は、百兆くらいの量がある。視覚野だけも十兆ぐらいのレベルだろう。それだけの並列処理をしている。……こういうのを、真の並列処理という。
( コンピュータがいくら高速化しているといっても、人間様には、まだまだかなわないのである。)
2007年05月23日
過去ログ
一つ一つ調べなくても、目的のものを一挙に見出すことはできる、という例。
以下、引用。
──
ある数列をソートしたい場合、まずスパゲッティを各数に対応する長さに切りそろえ、それを手でまとめて「えいや!」とテーブルに立てる。あとはそこから一番長いスパゲッティを順繰りに抜けばいい。
http://blog.livedoor.jp/dankogai/archives/50376368.html
──
余談だが、私も「行のソート」というプログラムを書いたことがある。面倒臭かった。まさしく逐次処理。
(で、その手間を減らすのに工夫が必要。……ま、プログラマならばわかるでしょう。)