グラフがあるとしましょうでの縁。実行時間がでBFSを実行したい。| E | = O (V 2)G O (V + E )
このグラフの実行時間はで、簡略化すると書くのは自然なことです。O (V 2)
このような「ネストされたOを削除する」ショートカットを使用することの落とし穴はありますか(この場合だけでなく、より一般的に)?
グラフがあるとしましょうでの縁。実行時間がでBFSを実行したい。| E | = O (V 2)G O (V + E )
このグラフの実行時間はで、簡略化すると書くのは自然なことです。O (V 2)
このような「ネストされたOを削除する」ショートカットを使用することの落とし穴はありますか(この場合だけでなく、より一般的に)?
回答:
まず、推奨事項から始めましょう。ランダウ記法は、丸めを扱うのと同じように(すべきです)丸めはめったに行わず、丸めを遅くします。よりも正確なものがわかっている場合は、すべての計算が完了するまでそれを使用し、最後にLandauifyを使用します。
質問については、この表記の乱用を調べてみましょうlet。ようなものをどのように解釈しますか?をその定義に完全に置き換える必要があります。つまり、O
その後
これは
。
確かに、これはと同等であることがわかります。とにかく、精度の低下はによって無視されます。H ∈ O (F + G )O
他の組み合わせはどうですか、と言いますか?ここで同じことを試みると、
。
しかし、これはトートロジーです:は確かに上に任意の大きな何かによって制限されます。したがって、この方法で上限と下限を組み合わせることは意味がありません。
定義により、はセットであり、この表記をネストして使用すると、セットにセットが含まれることになり、これは誤りです。
ような用語を使用しました。ここで、kとnは関数であり、はセットです。しかし、セットに追加された関数の結果は何ですか?定義されていません!O (n )
ネストされたランダウ記号を使用する代わりに、以下を実行できます。O