メイン | トートロジー »

アルゴリズム

ある特定の目的を達成するための処理手順、またはその手順をまとめたもの

たとえば料理のレシピには材料とその調理方法が時系列にまとめられており、料理のセンスがない人でもその手順にそって進めば人並みの料理が作れるようになっている。つまりレシピとはおいしい料理を作るためのアルゴリズムといえる。しかし例えば人を感動させる本を書くのは多分にセンスの問題であり決まりきった手順などはないし、将棋で必ず相手を打ち負かす手順も残念ながらいまのところ見つかっていない。つまりヒット作を生み出すアルゴリズムや将棋の必勝アルゴリズムは(いまのところ)ないのである。

2つの整数の最大公約数を見つけるのに、中学生のように共通の素因数を見つけて割っていくという方法は共通の素因数の見つけ方については個人の裁量に委ねられており(基本的にしらみつぶしに見つけるしかない)アルゴリズムということはできない。しかしユークリッドの互除法は一定の操作を繰り返し行うだけで誰がやっても自動的に最大公約数が見つかる手順でありこれはアルゴリズムといえるのである。数学の問題には解を求めるアルゴリズムが決まっているものがあり、そういうものは数学のセンスなんて関係なく決まった手順を踏めば必ず答えが出せる(例えば整式の割り算や微分計算など)。数学の才能がないと嘆く前に、高校数学の必要最小限のアルゴリズムを覚え、それについては最低限きちんとこなせるようにしておこう。もちろんすべてがアルゴリズムだけでは片付かないところに数学の面白さがあるのだけどね。

ちなみに僕はこの言葉を覚えたての頃、友人の前で得意げに「アナゴリズム」と口走りしばらく馬鹿にされ続けた苦い記憶がある。できれば消し去りたい過去である。