ヒューリスティクス

ある問題の最適解を確実に得るアルゴリズムがないときでも「うまく」解の候補を絞って現実的な計算量で見つける方法のこと.最近,ヒューリスティクスという単語を思い出す機会が多い.生協に行ったら Modern Heuristics なるブ厚い本*1が置いてあったり,今週末にはACM ICPCアジア地区予選(愛媛大会)があったり*2,アンテナに加えた新山さんの通うニューヨーク大学大学院計算機科学専攻ではヒューリスティクスを主に使うプログラミング対戦演習の授業*3があったり.幅広い問題に対応できる強力な,工作機械のような緻密なアルゴリズムの勉強も重要だが,世の中そういうものだけで済むわけじゃない.アドホックではあっても「知恵」「閃き」を使って現実の問題を「うまく」解く訓練も重要なんだろう.しかしどうも私は(プログラミングに限らず)そういうのが苦手なようだ... あまり頭がよくない人間であることの傍証である気がして悲しくなる.何事もある程度は訓練しだい,私は単に今までそういう訓練を積んでこなかっただけで,やればそういう能力も向上するもんだと信じたい.まぁ,やらなければこのまま一生型にはまった問題にしか手の付けられない人間であり続けるんだろうけど.
そういや数学オリンピック日本大会も高2の頃予選落ちしたんだよな... 昨日触れた,学校文集の特集記事に追われて頭が文系になってた(ぇ ってのが公式な言い訳.ちなみに同じクラスだった女の子は高1,高2とも日本大会本戦まで行った.最近会う機会がないが私は彼女を尊敬している(別にJMOの結果を以ってという訳じゃないが).

*1:河の片岸に狼と羊とキャベツと羊飼いが... とかそういう問題がびっしり並んでる.500ページ超.誰か買え(ぉ

*2:私は例のごとく予選落ち.でもにゃあさん【猊下】にとってよい体験になるとよいな.楽しんできていただきたいものだ.

*3:数学オリンピック金メダリストで昨年のACM ICPC3位の台湾人が参加してるんだそうな.