回答:
もちろん、最悪の場合の実行時間は指数関数的ですが、最新のSAT解決アルゴリズムはほとんどのインスタンスを非常に高速に解決できます。ただし、この場合、実用的な速度は、洗練された単一のアルゴリズムではなく、長年にわたるアルゴリズムエンジニアリングの結果です。競合駆動型の節学習によってSATソルバーのパフォーマンスが大幅に向上したことを理解しましたが、後の改善は、アルゴリズムのさまざまなヒューリスティックを巧妙に使用することによって達成されることがよくあります。
Hindley-Milnerの型推論はEXPTIME完全ですが、プログラムでは一般的に人々はそれをかなり線形に近い形で記述します。
let z = (let y = e in e') in e''
とは対照的です let y = e in let z = e' in e''
。
Brendan McKayのnauty(AUTomorphismsはありませんか?)プログラムは、グラフの標準的なラベル付けの問題を解決し(グラフの同型写像とグラフの同型写像の問題を同時に解決)、指数関数的に最悪の場合のパフォーマンスを発揮します(Miyazaki、1996)。ただし、ほとんどのグラフ、特に自己同型が少ないグラフでは非常に高速に機能します。
具体的には、アルゴリズムは頂点を次数で分割することから始め、次に各パーツ間の次数で分割します。このプロセスが安定すると、重要な部分の頂点を区別するための選択を行う必要があり、これにより指数関数的な動作が発生します。ほとんどのグラフでは、この分岐手順の深さが浅いです。
単純な確率的ゲームのいくつかのアルゴリズムは、最悪の場合の実行時間が指数関数的ですが、実際にはうまく機能します。もちろん、この問題はある意味で線形計画法に関連していますが、多項式時間であることがわかっていません。
LPのシンプレックスアルゴリズムと同様の混合ナッシュ均衡を見つけるためのアルゴリズムがあります。(名前を忘れました。)指数関数的に最悪の場合の複雑さがありますが、実際にはよく動作するという漠然とした記憶があります。
ビンパッキング(多くのバリアント)は、複雑さがNP困難であることがわかっている問題です。
http://en.wikipedia.org/wiki/Bin_packing_problem
ただし、「実用的な」バージョンに適用すると、多くのヒューリスティックが非常にうまく機能します。1次元のビンの場合、これらのヒューリスティックのいくつかを、最初に適合するようにパッキングします。ファーストフィット減少; 最適; 最適な減少は、学生に見せるためのトピックとして非常に魅力的です。学生は、基本的なヒューリスティックのいくつかを自分で見つけることができます。
永続化アルゴリズム(元はEdelsbrunner-Letscher-Zomorodianによるもので、多くのバリエーションがあるため)は最悪の場合は3次ですが、実験から通常は線形時間で実行されるようです。