アルゴリズム,もう少し

牧野さん,ありがとうございます.
http://grape.mtk.nao.ac.jp/~makino/journal/journal-2007-12.html#19

他の方からも「本書けばいいのに」とよく言われる (特にここ1ヶ月ぐらいは本当によく言われる) のですが,本を書くほどアルゴリズムに関して頭が整理されていないので,おそらく近いうちに書くことはないと思います.

それでですね,アルゴリズムは確かに記号なので「そうするとその表現されたものを直接解釈して実行する計算機ソフトウェアができる、とするとアルゴリズムとプログラムは違う、といっても、、、みたいな」というのはよく分かるんですけど,やはりキモは「直接解釈して実行する計算機ソフトウェアができる」という仮定に思えます.数学的に表現しても無限精度の実数は現在の計算機では扱えないわけですし,0と1と2の中から1つの数字を確率1/3で選ぶような乱数も現在の計算機では作れないわけですし,やはり抽象世界と具体世界のギャップはありますし,認識していないといけないと思います.

そしてキャッシュ再利用に関しては私の想定していたものと違ったので食い違いがでてしまってすいません.メモリへの配置の仕方とかそういうのは案外好きで,私のやってる計算幾何とかグラフ関係とかでは10年ぐらい前から盛んに研究されて,私がスイスにいるときそれ関係の授業のTAをしたり,今週も仙台でのアルゴリズムの国際会議でそれに関する1件の招待講演と他何件かの一般講演が行なわれてました.ちゃんとブロック転送回数を理論的に評価して (つまり,そういう計算モデルを考えている),実装上も高速だということで,私は注目してるんですけどね.数値計算についてはよく分かりませんが,話が細かくなりすぎるとそんなに楽しくない気は自分でもします.