ヒューリスティック
#わからなかった日本語
ヒューリスティック(英: heuristic)または発見的(手法)とは、必ずしも正しい答えを導けるとは限らないが、ある程度のレベルで正解に近い解を得ることができる方法である。発見的手法では、答えの精度が保証されない代わりに、解答に至るまでの時間が短いという特徴がある。「アルゴリズム」に対置する概念である
使用方法
1. アルゴリズム設計
**最適解が計算的に難しい問題(NP困難問題など)**では、正確な解を出すのに時間がかかりすぎます。
例: 巡回セールスマン問題 (TSP)、ナップサック問題。
そこで「ある程度良い解」を効率よく見つけるためにヒューリスティックが使われます。
→ 最近傍探索法、貪欲法など。
2. 探索アルゴリズム
経路探索 (pathfinding) では、A*アルゴリズムが有名です。
「スタートからゴールまでのコストの推定値(ヒューリスティック関数)」を使い、探索を効率化します。
例: マンハッタン距離、ユークリッド距離をヒューリスティックに使う。
3. 機械学習・最適化
学習アルゴリズムのパラメータ調整や特徴選択の場面で「ヒューリスティックなルール」が使われることがあります。
例: 学習率を徐々に減らす、過学習を避けるためにデータをシャッフルする。
厳密に証明されてはいないけど「経験上うまくいく」もの。
4. ソフトウェア開発実務
ヒューリスティックテスト: 完全な網羅はできないので「よくバグが出るパターン」に絞ってテストする。
キャッシュ戦略: 「直近に使ったデータはまた使う可能性が高い」と仮定して LRU キャッシュを使うのもヒューリスティック。