So-net無料ブログ作成

整列や類推などコンピュータに苦手な作業

データを一定の規則に従って並べることを、ソート(sort 、整列)といいます。
ソートを、例えば1から順に9まで(昇順に)並べた数字を、逆に9から順に1まで(降順に)並べ替えるような演算をコンピューターにやらせるとします。
まず、左端の1を隣の2とを比較して、2の右に並べ替え、次に1と隣の3とを比較して並べ替えというような作業を、1が右端に来るまで8回、(比較)演算します。次に左端となった2を同様に隣同士と比較して右端の1の左に並べるには7回の演算が必要です。
これを順に行っていくと合計で35回の演算で、9から1まで降順に並び、終了です。
ソートの方法はいくつもあって、おそらくこの方法が最も効率が悪い方法ですが、演算を一つ一つ順に行っていく直列処理のコンピューターでは、大なり小なりこのような手順になり、実際、ごく初期のパソコンではこの種のソートに結構時間がかかりました。
人間ならば一瞬で昇順を見て取り、ひっくり返して降順にしてしまうことができます。
コンピューターよりも人間のほうが計算が早い時代もあったのです。

次に「類推」(analogy)です。類推は、ある事物に基づく情報を他の事物に、それらの間の何らかの類似性に基づいて推し量り、適用することです。
類推は、コンピュータの苦手とする分野です。これがコンピューターサイエンスの先駆者、ダグラス・ホフスタッターによって取り上げられたのは、文字列間の類推です。

文字列 a b c が、 a b d に変わるとすると、i j k は何に変わるでしょうか?
多くの人は「右端の文字をアルファベットの直後の文字で置き換えよ」というルールが適用されたものとしてとらえ、i j l と答えます。
次に a b c → a b d となると、k j i → ?
「右端の文字を直後の文字で置き換える」というルールを適用すると、答えは k j j となりますが、それでは、k j i の持つ、「文字が右から左の順で逆向きに並んでいる」構造が無視されます。
そこで、 a b c の右端というコンセプトが、 k j j の左端というコンセプトに「横すべり」するような力が働いて、「左端の文字を直後の文字で置き換えよ」というルールが適用されているととらえ、 l j i という解答を得ます。
もちろん解答は一つだけではなく、人によってはk j j が解だというかもしれません。ただ一つの正解しかないのではなく、コンセプトの横すべりの滑りのよさ?や構造の強さなどの判断によって、どれだけの人がそのコンセプトを採るかという解であって、ここら辺もコンピューターに苦手なところです。

人はこの類推を、ごく日常のこととして行っています。例えば様々な筆跡によって書かれた文字Aを文字Aとして認識し、クラシック音楽愛好家は一度も聴いたことのないバッハの曲をバッハの曲と当てられるといった類です。類推は、生活に必要欠くべからずのものなのです。

現代のコンピューターは、性能の飛躍的向上と、コンピューターサイエンスの進展によって、苦手な作業を克服しようとしています。
直列処理であっても、並列処理をエミュレート(emulate、模倣する・真似をするという意味で、異なるハードウェアやソフトウェア環境を模倣・真似をさせる技術)することによって、例えばソートでは隣同士の数字の比較を同時に行います。
また類推アルゴリズムのプログラムによって、これをシミュレート(模擬する)するといったことです。
こういった技術の積み重ねによって、いわゆる人工知能への道が開かれつつあります。

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

メッセージを送る