Komplexitätstheorie, O-Notation

Neue Frage »

Malcang Auf diesen Beitrag antworten »
Komplexitätstheorie, O-Notation
Hallo zusammen,

mir fällt immernoch die Interpretation der Schreibweisen etc... sehr schwer.
Ich habe mir nun ein Buch über Komplexitätstheorie genommen (Wegener, Komplexitätstheorie). Dort findet sich beispielweise:
Zitat:
Wenn wir auf Bitebene absteigen, braucht jede arithmetische Operation auf Zahlen der Bitlänge sicher Operationen. Für Additionen und Subtraktionen genügen auch Operationen, während die besten bekannten Algorithmen für Multiplikation und Division Operationen benötigen.


Die Notationen sind im Anhang auch erklärt wie ich es kenne, aber die Interpretation fällt mir schwer.

Nehmen wir
Zitat:
Wenn wir auf Bitebene absteigen, braucht jede arithmetische Operation auf Zahlen der Bitlänge sicher
.

Kann ich das lesen als: "Nehme ich eine Zahl, die aus Bits besteht, so benötige ich für jede arithmetische Operationen nicht weniger als Operationen?" verwirrt
HAL 9000 Auf diesen Beitrag antworten »

Nein, dieses Landau-Symbol beinhaltet auch noch einen Faktor, d.h. es gibt ein , so dass man mindestens Operationen benötigt. allein sagt nichts darüber aus, wie groß dieses ist - es kann also durchaus auch sein.


Zitat:
Original von Malcang
während die besten bekannten Algorithmen für Multiplikation und Division Operationen benötigen.

Und das ist schon bemerkenswert! Denn mit dem naiven Multiplikationsalgorithmus (wie man ihn vom schriftlichen Multiplizieren kennt, nur eben auf Bitebene) ist man nämlich beim viel größeren . Worauf hier bezogen wird, sind vermutlich die auf FFT basierenden Algorithmen.
Malcang Auf diesen Beitrag antworten »

Hallo HAL 9000,

danke für deinen Beitrag.
Dieser Faktor ist aber dann für jede Eingabe gültig, unabhängig von der Anzahl der Bitstellen , richtig?

Und das habe ich ja dann auch bei Additionen und Subtraktionen zu beachten:
Zitat:
Für Additionen und Subtraktionen genügen auch Operationen

bedeutet also:
"Wenn meine Eingabe in Bits genau Stellen belegt, dann brauche ich für Addition und Subtraktion jeweils nicht mehr als Operationen, wobei gilt."?

Zitat:
Denn mit dem naiven Multiplikationsalgorithmus (wie man ihn vom schriftlichen Multiplizieren kennt, nur eben auf Bitebene) ist man nämlich beim viel größeren .


Das ist ein gutes Beispiel. Ich habe zwei Zahlen in Bitdarstellung. Sagen wir, die erste Zahl hat Bitstellen, die zweite Zahl Multipliziere ich schriftlich, muss ich mal multiplizieren.
Das Aufsummieren der Werte betrachte ich für die Komplexität nicht mehr, weil Multiplizieren ohnehin aufwändiger ist als Addieren?

Und bedeutet doch, dass ich nicht weniger als Operationen benötige, aber nicht mehr mehr als , oder?
HAL 9000 Auf diesen Beitrag antworten »

Bei verschiedenen Bitlängen und hat der naive Algorithmus die Komplexität statt .
Malcang Auf diesen Beitrag antworten »

Zitat:
Original von HAL 9000
Bei verschiedenen Bitlängen und hat der naive Algorithmus die Komplexität statt .


Ach ja, natürlich Hammer
Meine Interpretation würde ja nun lauten "Ich brauche nicht weniger als Operationen, aber nicht mehr als ".
Aber die Komplexität betrifft ja den asymptotischen Fall. Wenn ich jetzt die Konstanten kennen würde, sagen wir , dann könnte es doch trotzdem sein, das für hinreichend kleine die Anzahl der Operationen möglicherweise ist, oder nicht? (Nicht im Beispiel der schriftlichen Multiplikation, sondern im Allgemeinen Fall eines Algorithmus mit Komplexität ).
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »