Einige einfache Probleme, deren Untergrenzen größer als die Größe ihrer Eingaben sind, sind Algorithmen, deren Ausgabegrößen größer als ihre Eingabegrößen sind.
Einige Beispiele:
- Das Problem der Auflistung aller Lösungen für 3-SAT oder ähnlich das Problem der Auflistung aller Hamilton-Zyklen . Diese Probleme haben im schlimmsten Fall eine exponentielle Anzahl von Lösungen. Sie haben also eine Untergrenze von . Interessanterweise hat das 3-SAT-Problem selbst keine bekannten superlinearen (größer als Ω ( n ) ) Grenzen! Das heißt, wir wissen nicht, ob es schwieriger als linear ist!Ω(cn),c>1Ω(n)
- Sie können sogar neue Algorithmen wie diesen erstellen: "Vervollständigen eines Graphen", dh , wobei E = ∅ und n = | V | Der Algorithmus gibt einen Graphen G ' = V , E ' aus , wobei E ' = { u , v | u ≠ v ∧ u , v ∈ V } .G=V,EE=∅n=|V|G′=V,E′E′={u,v|u≠v ∧ u,v∈V}
Darüber hinaus können Sie möglicherweise ein Problem mit Ausgängen in der Größe von zusammenstellen, wobei ein Problem darin besteht, dass Ω ( n 2 ) als Eingang verwendet wird und Ausgänge in der Größe von Ω ( n ) oder sogar Ω ( 1 ) ausgegeben werden ( beispielsweise , dass etwas zählt die Anzahl Ausgänge) , ein Problem zu erhalten, nimmt Ω ( n ) -sized Eingabe und gibt Ω ( n ) -sized Ausgang, und doch hat eine Laufzeit von mehr als Ω ( n )Ω(n2)Ω(n2)Ω(n)Ω(1)Ω(n)Ω(n)Ω(n). Es kann jedoch sehr schwierig sein zu beweisen (dass es keine Abkürzung gibt, um die Antwort in kürzerer Zeit zu erhalten).
Eine andere Möglichkeit, wie einige Probleme Untergrenzen kennen, besteht darin, das Berechnungsmodell einzuschränken.
Obwohl die Untergrenze der Vergleichssorte nicht überschreitet , denke ich, dass es sich lohnt, darüber zu diskutieren. Die Vergleichssortierung ist auch ein Problem, das eine größere Untergrenze als die Eingangsgröße aufweist, deren Untergrenze jedoch Ω ( n log n ) und in nicht überschreitet . Als ich dies untersuchte, fand ich jedoch diese Frage zum Mathoverflow: Superlineare Zeitkomplexitätsuntergrenzen für jedes natürliche Problem in NP . Weitere in der Antwort aufgeführte Beispiele liegen weit unter Ω ( n log n )Ω(nlogn)Ω(nlogn)Ω(nlogn). Ich denke, das Wesentliche ist, wenn Sie das Berechnungsmodell einschränken, können Sie Untergrenzen für Probleme erhalten, für die wir sie sonst nicht haben. Und wenn Sie das Berechnungsmodell nicht einschränken, ist es sehr schwierig, Untergrenzen für Probleme zu beweisen.