Was bedeutet Tilde in Big-O-Notation?


13

Ich lese eine Zeitung und in ihrer Beschreibung der Zeitkomplexität heißt es, dass die Zeitkomplexität .O~(22n)

Ich habe im Internet und in Wikipedia gesucht, aber ich kann nicht finden, was diese Tilde in der Big-O / Landau-Notation bedeutet. In der Zeitung selbst habe ich auch keine Ahnung davon gefunden. Was bedeutet ?O~()


1
"Ich habe im Internet gesucht" Wie?!? :-) Normalerweise ist meine erste Reaktion bei Fragen wie diesen, dass Google Ihnen die Antwort sofort mitteilt. Aber für diesen habe ich keine Ahnung, welchen Suchbegriff ich verwenden würde!
David Richerby

Ich suchte nach "landau symbole tilde", aber es zeigte sich nichts schlüssiges. Ich denke, Google braucht eine KI, die weiß, wie eine Tilde visuell aussieht, und sucht danach in gerenderten TeX-Bildern: p
Johannes Schaub - litb

Ein anderer, den Sie manchmal sehen, ist Big Oh Star, das heißt, . Es wird häufig mit exakten exponentiellen Zeitalgorithmen verwendet, und die Notation unterdrückt Faktoren, die in der Eingabegröße polynomiell begrenzt sind. O
Juho

Antworten:


17

Es ist eine Variante des Big-O, die logarithmische Faktoren „ignoriert“:

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

ist äquivalent zu:

k:f(n)O(h(n)logk(h(n)))

Aus Wikipedia :

Im Wesentlichen handelt es sich um eine Big- Notation, bei der logarithmische Faktoren ignoriert werden, da die Wachstumsrateneffekte einiger anderer superlogarithmischer Funktionen auf eine Wachstumsratenexplosion für große Eingabeparameter hinweisen, die für die Vorhersage einer schlechten Laufzeitleistung wichtiger ist als die Feinpunkteffekte, die durch den logarithmischen Wachstumsfaktor (die logarithmischen Wachstumsfaktoren) verursacht werden. Diese Notation wird oft verwendet, um das "Nitpicking" innerhalb von Wachstumsraten zu vermeiden, die für die vorliegenden Angelegenheiten als zu eng begrenzt angegeben werden (da für jede Konstante und jedes immer ).Ologkno(nε) epsi ; ) k& epsi ; > 0ε>0


Bin ich zu Recht zu dem Schluss gekommen, dass und ˜ O ( 2 2 n ) unterschiedlich sind? Dies ist verwirrend, da sie austauschbar zu sein scheinen. O(22n+o(n))O~(22n)
Johannes Schaub - litb

1
@ JohannesSchaub-litb Ja, es gibt Funktionen, die für jedes k mehr als und dennoch weniger als n wachsen und daher in der ersten, aber nicht in der zweiten enthalten sind. Wie auch immer: Der Sinn dieser Notation besteht darin, nur den wichtigen Teil der asymptotischen Komplexität zu zeigen, und im Allgemeinen wird o ( n ) nicht als wichtig angesehen. logknkno(n)
Bakuriu

2
Folglich ist dasselbe wie O ( 2 2 n p o l y ( n ) ) . @ JohannesSchaub-litb O ( 2 2 n + o ( n ) ) ist dasselbe wie O ( 2 2 n ) . Falls Sie tatsächlich O ( 2 2 n + o ( n ) ) gemeint haben , ist diesO~(22n)O(22npoly(n))O(22n+o(n))O(22n)O(22n+o(n))enthält , aber auch einige Funktionen, die etwas schneller wachsen. Menschen verwenden es oft anstelle von ˜ O ( 2 2 n ), weil es nicht falsch ist, ˜ O eine weniger bekannte Notation ist und der Verlust an Präzision oft keine Rolle spielt. O~(22n)O~(22n)O~
Emil Jeřábek 3.0

Ah, ich verstehe jetzt, danke. Das macht sehr viel Sinn
Johannes Schaub - litb
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.