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