ビッグ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)))

ウィキペディアから:

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


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

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