web-dev-qa-db-ja.com

最悪の場合の時間/空間の下限の漸近的な成長を気にするのはなぜですか?

数学では、漸近的な下限、上限、および厳密な(定数係数内の)境界の表記法があります。一般的な機能の成長を説明するとき、3つすべてが何らかの機能に関連している可能性があることは理にかなっています。

アルゴリズム分析では、通常、時間またはスペースの要件の増加を説明するために漸近表記が使用されます。

私には、最大、最小、または予想される要件に関心があるのは当然のことのように思われます。予想される要件を無視すると、最良の場合の下限(最小スペース/時間)または最悪の場合の上限(最大スペース/時間)に関心があるかもしれません。

最悪の場合の下限または最良の場合の上限になぜ興味があるのか​​想像できません。下限は一種のベストケースであり、上限は一種のワーストケースであるため、これらは「ワーストケースのベストケース」と「ベストケースのワーストケース」が一致していないように見えます。

しかし、何度か、これが私の側の想像力の失敗である可能性があることを示唆する回答/コメントへの返信がありました。

それで、私が想像し損ねているのは何ですか?

「何とかアルゴリズムの最悪の場合の下限は何とかだと言うのは非常に一般的です」という言葉に沿ったステートメントは、人々が気にする理由も述べていない限り、質問に答えることは考えません。

6
Steve314

最悪の場合の下限を使用して、アルゴリズムがnot機能することを証明できます。

特にリアルタイムプログラミングについて考えてください。非常に正確なスケジュールでメッセージを受信する必要がある機械に適切なメッセージを送信するには、時間内に回答が必要であるため、コードを最大でxで実行する必要があります。そうしないと、問題が発生します。最悪の場合の下限がxを超える場合、それはあなたが絶対にもっと良いことを考えなければならないことを証明します。 99.99%の確率で問題がないかどうかは関係ありません。残りの0.01%の確率で、何かに深刻な損傷を与える可能性があるからです。

6
btilly

最良の場合の上限が何に適しているかはわかりませんが、可能な限り最良のアルゴリズムの最悪の場合の下限を特定すると役立つ場合があります。特定のタスクを実行します。このような情報は、たとえば次のようなアルゴリズムがある場合に役立ちます。時間O(N ^ 2lgN)で実行され、より良いものを見つけようとするかどうかを決定しようとしています。実行する必要のあることを実行できるアルゴリズムの最悪の場合の下限がO(N ^ 2lg(lgN))であると判断できる場合、それは、持っていたアルゴリズムがほぼ一定の係数内にあることを意味します。最適の。代わりに、下限分析でO(lgN)が得られた場合、それはおそらく改善の余地がはるかに多いことを示唆しています。

0
supercat