Können Sie die asymptotisch beschriebenen Funktionen bearbeiten und daraus Schlussfolgerungen ziehen?


7

Diese Frage basiert auf Hausaufgaben (ohne das eigentliche Problem zu verwenden)!

Angenommen, Sie haben eine Funktion, die wie folgt beschrieben wird:

f(n)O(2n2).

Können Sie dann Folgendes behandeln:

f(n)=2n2

und führt Mathematik darauf und behält seine asymptotische Bedeutung?

Könnte ich im obigen Fall vermuten, dass impliziert (unter der Annahme, dass Koeffizienten in diesem Beispiel eine Rolle spielen)?f(n)O(2n2)f(n)/2O(n2)


6
Sie müssten sehr vorsichtig sein. Denken Sie daran, dass O () eine Reihe von Funktionen ist. Nur einen Vertreter zu nehmen, kann zu falschen Schlussfolgerungen führen.
Adrian N

1
"Können Sie dann so weitermachen:" - nein. "Behalte seine asymptotische Bedeutung" - was meinst du damit? Einige Informationen werden übertragen, andere nicht. "Im obigen Fall könnte ich vermuten" - Sie können vermuten, was Sie wollen; Interessant ist, ob Sie etwas beweisen können. Sehen Sie hier , wie asymptotisch Beziehungen zu beweisen. Sie können auch direkt zu den Definitionen gehen: Was ist der Anspruch nach dem Entfalten von ? Was weißt du über nach dem Entfalten von ? Füllen Sie den Raum dazwischen. OfO
Raphael

Antworten:


8

Bei einigen Operationen, wie z. B. Addition, Multiplikation, können Sie die asymptotische Notation direkt bearbeiten. Wenn zum Beispiel und , dann und . Für einige andere Operationen, wie zum Beispiel die Division, kommt es dann darauf an. Zum Beispiel ist es für und nicht richtig, zu sagen (betrachte und ). Wenn jedoch eine feste Konstante ist, danng(n)=O(n2)f(n)=O(n2)g(n)+f(n)=O(n2)g(n)f(n)=O(n4)g(n)=O(n2)f(n)=O(n2)g(n)f(n)=O(1)g(n)=n2f(n)=ncg(n)c=O(n2) .


Gibt es eine Dokumentation darüber, welche Operationen für die asymptotische Notation im Allgemeinen "erlaubt" sind? Oder können Sie einfach schließen, dass Exponentiation immer erlaubt ist (Multiplikation) und Logarithmus abhängig ist (Division)?
Tyler Kelly

3
@ user3470987 Möglicherweise gibt es irgendwo eine Liste, aber Sie können sie auch im laufenden Betrieb erstellen. Dies ist eine ausgezeichnete Übung.
Yuval Filmus

1
@ user3470987 Dies ist Geschmackssache. Leute wie ich würden Ihnen raten, dies niemals zu tun, da dies leicht zu Verwirrung und Fehlern führen kann.
Raphael

3

Verwenden Sie die Definition von, um Fragen wie Ihre Vermutung zu beantworten O. Paraphrasierung aus Wikipedia zum Zeitpunkt des Schreibens:

fO(g) iff f(x)M×g(x) für alle x>x0für einige Konstanten M und x0.

Also wenn f(n)O(2n2), dann f(n)C×2n2  n>n0 für einige Konstanten C und n0 (Ich nenne es C anstatt Mum später Verwirrung zu vermeiden). Sie werden feststellen, dass wir das kombinieren können2C in eine Konstante, die Ihnen sagt O(2n2)=O(n2).

Was können wir dazu sagen? f(n)/.2? Wir können jetzt die normale Algebra für die Ungleichung verwenden, z. B. beide Seiten durch 2 teilen, um Folgendes zu erhalten:

f(n)/.2C.n2  n>n0

Ist das noch Ö(n2)? Um dies zu überprüfen, müssen wir Konstanten findenM. und x0so dass die obige Definition gilt. In diesem Fall,M.=C. und x0=n0funktioniert. Beachte dasM.=327.6C.ist auch gültig; Sie können jede beliebige Methode verwenden, um diese Konstanten zu finden, solange Sie wissen, dass sie konstant sind.

In der realen Welt werden Sie in der Lage sein, das meiste davon zu "verkürzen", wenn Sie Ihre Analyse durchführen, wie es NP-hard in seiner Antwort tut, aber dies sind nur Abkürzungen, um es so rigoros zu schreiben (was ich erwarten würde) Hausaufgaben speziell überÖ). Wenn Sie nicht sicher sind, ob es gültig ist, holen Sie sich dasÖVerwenden Sie die Definition, führen Sie eine Algebra für die Ungleichung durch und bringen Sie sie dann wieder ein Ö indem Sie die geeigneten Konstanten finden (oder einfach zeigen, dass sie existieren).

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.