さて、前回は「古典コンピュータ」というものを学びました。
たしか「ビット」と「アルゴリズム」についてでしたね
今回は、そんな古典コンピュータの「限界」についてみていきましょう
------------------------------------------------------------------
ちょっと復習です。
古典コンピュータは、「0と1」で情報を表すこと
そして、早くコンピュータを動かすために「アルゴリズム」があるという話をしました
実際、現在もこれらは研究されていて、現在でもコンピュータは発展しています
しかし、研究を進めるうちに「限界」が出てきてしまいます
今回は三つの大きな課題について紹介しましょう
古典コンピュータの限界その1:ビットの大きさ
前回も言いましたが、古典コンピュータは「スイッチのオンオフ」のようなものを使い、情報を表します
つまり「スイッチが小さくなればなるほどコンピュータにたくさん情報を入れられる」のです
そのため、現在まで様々な方法を使いこのスイッチを小さくしてきました
しかし、いくら人類がすさまじい努力を重ねても大きさには限界があります 現在はまだ研究の余地がありますが、もう数年もたつと「ビット数を増やすにはパソコンの大きさを上げるしかない」という風になってしまうかもしれません
古典コンピュータの限界その2:アルゴリズムの限界
コンピュータって万能に感じますよね
実際ほとんどの問題は人間より早く解くことができます
しかし、一部ですが「古典では難しい問題」というのがあるんです
例として「巡回セールスマン問題」というのをあげましょう
『あなたは、世界をまたにかけるセールスマンです
今日は、いろんな都市を巡って営業をします
しかし、時間がないため「なるべく早く帰りたい」
どういう順番で巡回すれば、最も早く帰れるだろう?』
かなりシンプルですが、実はこれは古典コンピュータにとっては天敵といってもいい問題です
シンプルすぎるゆえに基本的には総当たりで確かめるしかなく、都市の数を増やせばそれも非現実的
つまり現状は「どうしようもない」わけです
古典コンピュータの限界その3:古典では作ることのできないもの
コンピュータはシミュレージョンをするときも重要です
しかし、実は「完全なシミュレーションは不可能なもの」というのも存在します
その一つとして、乱数を紹介しましょう
乱数とは、完全にランダムに出力される数字です
サイコロやルーレットみたいなイメージを浮かべてください
実は、あれは古典コンピュータで再現するのはとても難解なんです
コンピュータはこちらの命令に対して忠実に動きます
逆に、忠実すぎて「適当なことはできない」という欠点があるんです
つまり、「この数字とこの数字を足せ」という命令には従うんですが「適当な数字をだせ」といっても働いてくれないんです
現在は「疑似乱数」というものを使って乱数っぽいものを使っています
乱数はゲームやシミュレーションによく使われているのですが、乱数が疑似であるために「乱数調整」とかいうものができてしまうんですね
--------------------------------------------------------------------------
というわけで、三つの古典コンピュータの限界について書きました
次回はようやく量子コンピュータについて記述します!