Angenommen, wir arbeiten mit einer Infinite-Tape-Turing-Maschine.
Wenn ich jemandem den Begriff der Zeitkomplexität erläutere und erkläre, warum er im Verhältnis zur Eingabegröße einer Instanz gemessen wird, bin ich auf die folgende Behauptung gestoßen:
[..] Zum Beispiel ist es normal, dass Sie mehr Schritte benötigen, um zwei Ganzzahlen mit 100000 Bits zu multiplizieren, als zum Beispiel zwei Ganzzahlen mit 3 Bits zu multiplizieren.
Die Behauptung ist überzeugend, aber irgendwie von Hand zu winken. Bei allen Algorithmen, auf die ich gestoßen bin, sind je größer die Eingabegröße, desto mehr Schritte erforderlich. Genauer gesagt ist die Zeitkomplexität eine monoton ansteigende Funktion der Eingangsgröße.
Ist es so, dass die Zeitkomplexität in der Eingabegröße immer eine zunehmende Funktion ist? Wenn ja, warum ist das so? Gibt es dafür einen Beweis , der über das Winken von Hand hinausgeht?
Antworten:
Betrachten Sie eine Turing-Maschine, die danach anhält Schritten, wenn die Eingangsgröße n gerade ist, und nach n 2 Schrittenanhält,wenn n ungerade ist.n n n2 n
Wenn Sie die Komplexität eines Problems meinen , lautet die Antwort immer noch nein. Die Komplexität der Primalitätstests ist bei geraden Zahlen viel geringer als bei ungeraden Zahlen.
quelle
Lassen Sie die Eingangsgröße bezeichnen. Um die gesamte Eingabe zu lesen, benötigt eine Turingmaschine bereits n Schritte. Wenn Sie also annehmen, dass ein Algorithmus seine gesamte Eingabe lesen muss (oder n / c für eine Konstante c ), erhalten Sie immer mindestens eine lineare Laufzeit.n n n / c c
Das Problem bei der Definition von Algorithmen mit einer "monoton abnehmenden Laufzeitfunktion" ist, dass Sie die Laufzeit fürn = 1 irgendwie definieren müssen. Sie müssen es auf einen endlichen Wert setzen. Es gibt jedoch unendlich viele mögliche Werte für , sodass Sie eine Funktion erhalten, die für unendlich viele Werte konstant ist.n > 1
Wahrscheinlich sind für Sie sublineare Algorithmen von Interesse, die nicht die gesamte Eingabe lesen. Siehe zum Beispiel http://www.dcs.warwick.ac.uk/~czumaj/PUBLICATIONS/DRAFTS/Sublinear-time-Survey-BEATCS.pdf .
quelle
Das sei gesagt, mittlere Laufzeiten enthalten Komponenten oszillieren, zum Beispiel Mergesort .
quelle