Angenommen, ich habe ein Diagrammmit Kanten. Ich möchte BFS auf ausführen, das eine Laufzeit von .
Es fühlt sich natürlich an zu schreiben, dass die Laufzeit in diesem Diagramm und dann zu vereinfacht wird .
Gibt es Fallstricke bei der Verwendung einer solchen Verknüpfung zum Entfernen des verschachtelten O (nicht nur in diesem Fall, sondern allgemeiner)?
terminology
asymptotics
landau-notation
Die Unfun Cat
quelle
quelle
Antworten:
Lassen Sie mich mit einer Empfehlung beginnen: Behandeln Sie die Landau-Notation so, wie Sie die Rundung behandeln sollten: Runde selten, Runde spät. Wenn Sie etwas genaueres als Wissen , verwenden Sie es, bis Sie mit allen Berechnungen fertig sind, und Landauify am Ende.O(.)
Lassen Sie uns diesen Missbrauch der Notation durchgehen¹. Wie würden wir so etwas wie interpretieren ? Wir sollten durch seine Definition von innen nach außen ersetzen . Also bekommen wirO.h∈O(f+O(g)) O
und dann
das ist äquivalent zu
Als sicher² wir, dass dies äquivalent zu ; Der Genauigkeitsverlust wird von ohnehin ignoriert .d(f(n)+cg(n))≤cd(f(n)+g(n)) h∈O(f+g) O
Was ist mit anderen Kombinationen, sagen wir ? Wenn wir hier dasselbe versuchen, bekommen wirh∈O(f+Ω(g))
Aber das ist eine Tautologie: ist sicherlich oben durch etwas willkürlich Großes begrenzt. Daher ist es nicht sinnvoll, Ober- und Untergrenzen auf diese Weise zu kombinieren.h
quelle
Ich wollte dies nur hinzufügen, weil ich es kürzlich angetroffen habe. Während diese Verknüpfung mit Addition und Multiplikation in Ordnung ist (wenn mit gemischt wird ; siehe die akzeptierte Antwort), muss bei der Verwendung von Exponenten vorsichtig vorgegangen werden. Zum Beispiel: In diesem Beispiel gehört zur ersten Klasse, aber nicht zur zweiten.O Ω
quelle
Per Definition ist eine Menge, und wenn Sie diese verschachtelte Notation verwenden, hätten Sie eine Menge in einer Menge, was falsch wäre.O(g)
Die Definition der O-Notation
Der Fehler
Sie haben Begriffe wie wobei k und n Funktionen sind und eine Menge ist. Aber was ist das Ergebnis einer Funktion, die einer Menge hinzugefügt wurde? Es ist nicht definiert!O(O(n)+k) O(n)
Korrekte Version
Anstatt die verschachtelten Landau-Symbole zu verwenden, können Sie Folgendes tun:O(m+k),m∈O(n)
quelle
In Abschnitt 9.3 " Manipulation" das Buch Concrete Mathematics (Second Edition), Knuth einige aufführt Regeln der Manipulation auf dem -Notation (Im Folgenden gehe ich davon aus, dass sowohl und ist positiv; Beachten Sie, dass die Reihenfolge der Regeln geändert wurde.O O f(n) g(n)
Mit (3) können Sie eine Funktion mit einer O-Notation umbrechen / entpacken . Dann können Sie mit (5) tatsächlich beliebig endliche Zeiten ein- und auspacken (oder aufrufen, verschachteln ). Mit (4) können Sie auch konstante Multiplikationsfaktoren zu / von hinzufügen / entfernen .O.f(n) O
Mit (2) und (6) können Sie dann verschachtelte Notationen so bearbeiten, dass sie mit und kompatibel sind .+ ×O + ×
quelle