Smoothed Analysisは学外で使用されていますか?


24

平滑化された分析は、アルゴリズムのメインストリーム分析への道を見つけましたか?アルゴリズム設計者がアルゴリズムに平滑化分析を適用することは一般的ですか?


11
アカデミア以外のアルゴリズムに何らかの複雑な分析を適用しますか?
デイブクラーク

2
@DaveClarkeの言うこと; 多分彼は厳密な(または自明でない)分析を求めるべきです。多くの実践者がアルゴリズムを見て、ループのネストの深さを数えて、「これは!」と言うことを期待しています。On3
ラファエル

3
探している間任意の平滑化分析の使用シンプレックスI以外のが見つかりました。リストの技法を発見選手の一人がキュレーションを。
ラファエル

1
@DaveClarke IBMやHP、NTTで働いている人はどうですか?彼らはそのような分析を使うべきではないでしょうか?
マルコスビジャグラ

1
@DaveClarkeします。
ケビン

回答:


12

私は間違っている可能性がありますが、私は、スムーズな分析を、理論上の保証が不十分なアルゴリズム(シンプレックス、k-meansなど)の実際の動作を説明する方法と見なしています。最悪の場合のパフォーマンスが悪い特定のヒューリスティックの使用を正当化する場合を除き、実際に平滑化分析を使用することの意味がわかりません練習などでうまくいく」


2
問題は、これまでのところ、平滑化された分析の大きな成功は現在のプラクティスを説明することであったため、実務家は単に「私がやってきたことすべてが意味を成すことができることは素晴らしい」と言うだけで反応するかもしれないということです:) 誰かが、これまであまり知られていない平滑化分析の発見的手法を使用することを決めたかどうかはわかりません。
-Suresh

正式な平滑化分析は非常に困難です。理論に基づいていない人が過度に実践すべき理由はありません。一方、アルゴリズムの分析に使用されるヒューリスティック(つまり、入力が半ランダム)であると見なす場合は、おそらく常に使用されています。
ユヴァルフィルマス

3

現実の世界でアルゴリズムを分析する方法は、学界とは大きく異なります。学界では目標は実行時間の証明可能な正しい上限を見つけることですが、実際の目標はアルゴリズムがどのように機能し、どの調整が実行時間を改善できるかを理解することです。学界では禁止されていますが、実際には使用されている2つの主な方法があります。

  • 近似の方法。ここでは、多くの単純化された仮定を使用して、アルゴリズムの実行時間を予測しようとします。(かつて)理論物理学者がやっていることと似ています。
  • 実験。アルゴリズムを実行し、いくつかの統計を測定します-各部分にかかった時間、各関数が呼び出された回数、各ブランチが実行された頻度など。この情報を使用して、アルゴリズムを最適化できます。実験は、アルゴリズムの分析中に行われたいくつかの近似が実際に機能するかどうかを調べるためにも使用されます。

ただし、関連する学術出版物にフィラーテキストを追加する以外に、実際にアルゴリズムを分析することはあまり一般的ではないと思います。焦点は、主題に応じて、ソフトウェアエンジニアリングまたは低レベルの最適化のいずれかです。

最後に、平滑化分析は、アルゴリズムが実際に最悪のケースで示唆されるよりも実際にうまく機能する理由を説明するために使用できるヒューリスティックです。つまり、入力の一部が何らかの意味で「ランダム」です。このヒューリスティックは、近似の方法を使用している場合、アルゴリズムの動作を近似するために使用できます。


「学界での目標は、上で実行時にバインド証明可能-正しい見つけることですが」 -ある目標ではなく、ゴールを決めました。また、平均的なCS分析の学生は(比較的難しいので)平均的なCS分析の学生はあまり見ないかもしれませんが、平均的なケース分析には多くの作業があります。「アルゴリズムがどのように機能するかを理解すること」は、おそらく、学界のすべてのアルゴリズムの基礎です。
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.