ビッグO表記でチルドとはどういう意味ですか?


13

私は論文を読んでいて、その時間の複雑さの説明で、時間の複雑さはであると述べています。O~(22n)

私はインターネットとウィキペディアを検索しましたが、このティルダがbig-O / Landau表記で何を示しているのかわかりません。論文自体では、これについての手掛かりも見つかりませんでした。何をしない意味ですか?O~(⋅)


1
「インターネットを検索しました」どうやって?!?:-)通常、このような質問に対する私の最初の反応は、Googleが答えをすぐに教えてくれるというものです。しかし、これについては、どの検索語を使用するのかまったくわかりません!
— David Richerby 16

「ランダウシンボルチルド」を検索しましたが、決定的な結果は何も見つかりませんでした。
— ティルダ

あなたが時々見るもう一つはビッグオースター、すなわち、です。これは、たとえば正確な指数時間アルゴリズムなどで一般的に使用され、この表記は入力サイズに多項的に制限された因子を抑制します。O∗
— Juho 2016

回答:


17

対数的要因を「無視」するのは、big-Oの変形です。

f(n)∈O~(h(n))

以下と同等です。

∃k:f(n)∈O(h(n)logk⁡(h(n)))

ウィキペディアから:

本質的に、それはビッグ表記であり、対数係数を無視します。他のいくつかの超対数関数の成長率の影響は、実行時のパフォーマンスの不良を予測することよりも重要な、大規模な入力パラメーターの成長率の爆発を示すためです。対数成長係数による細かい点の影響。この表記は、多くの場合、あまりにもしっかりと(手元の事項について有界として記載されている成長率内の「つべこべ」を回避するために使用されて以来、常にある任意の定数のためのおよび任意の)。Ologk⁡no(nε)kε>0


とが異なると私は結論で正しいですか?これらは交換可能に使用されているように見えるため、これは混乱を招きます。O(22n+o(n))O~(22n)
— Johannes Schaub-litb

1
@ JohannesSchaub-litbはい、ごとにより大きくなり、それでもより小さくなる関数があるため、最初の関数には含まれますが、2番目の関数には含まれません。とにかく、その表記のポイントは、漸近的な複雑さの重要な部分だけを示すことであり、一般には重要とは見なされません。logk⁡nkno(n)
— Bakuriu

2
結果として、はと同じです。@ JohannesSchaub-litbはと同じです。実際に意味する場合、これにはが含まれますが、いくつかの関数はわずかに速く成長します。代わりに使用することがよくあります。これは間違いではないため、はあまり知られていない表記法であり、精度の低下は問題にならないことがよくあります。O~(22n)O(22npoly(n))O(22n+o(n))O(22n)O(22n+o(n)) O~(22n)O~(22n)O~
— EmilJeřábek3.0 2016

ああ、わかりました。ありがとう。これは非常に理にかなっています
— Johannes Schaub-litb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.