諸刃の剣

もろはのつるぎである。

雑に言うと効果的であるが大きなリスクを背負うと言う意味。

ドラクエ世代なら絶大な攻撃力の見返りに毎回使用者にダメージがある剣と記憶があるだろう。(まぁ,最強の武器でもないので使わない人の方が多いだろうけど)

 

近代の製造設計では高機能のために少々のリスクをとるスタイルが普及している。構造計算や制御技術が高まったためにリスク管理ができているのが前提である。航空機や大型建造物など普通に初歩的な力学を学んだ人だと驚くようなものが多い。

 

数値計算においても似たような問題がある。ある仮説をおいて数値を設定すると高確率で計算時間が大幅に短縮できる。逆に低確率であるが収束が困難になる。巨視的に見れば利益があるので導入するしそれが一般的になって普及するが,計算機の能力が桁違いにに上がってくると低確率の事象が無視できなくなり除外して計算する方がよくなることもある。両方計算して早い方を取る的なアルゴリズムもある。

素人目には停滞期で伸びていないように見えるだろうがアルゴリズム的な過渡期ではよくあることだ。

 

木探索において諸刃の剣と言えば前向き枝刈りである。

詳細は多くの文献があるので省くが,先日ふと思い立って自前のアイデアを実装してみた。比較的安全サイドから少し刈っただけで一桁くらいの速度向上が得られたが対戦成績は微妙である。つまり,既に弊害が拮抗している。

手軽に使える実装が既に普及しているので簡単に考えていた部分もあったが,さすがに既存のソフトはよくできているんだなぁと感心することになった。

よく分からないマジックナンバーには歴史があるってことだろう。