Wikipedia definiert es so
Ein Algorithmus hat eine Polynomzeit, wenn seine Laufzeit durch einen Polynomausdruck in der Größe der Eingabe für den Algorithmus nach oben begrenzt ist, dh für eine Konstante k.
Der Algorithmus läuft in stark polynomieller Zeit, wenn [8]
Die Anzahl der Operationen im arithmetischen Berechnungsmodell ist durch ein Polynom in der Anzahl der Ganzzahlen in der Eingabeinstanz begrenzt. und
Der vom Algorithmus verwendete Raum wird durch ein Polynom in der Größe der Eingabe begrenzt.
In Bernhard Korte, Jens Vygen, Kombinatorische Optimierung :
Definition 1.4.
Ein Algorithmus mit rationaler Eingabe soll in polynomialer Zeit ablaufen, wenn
- es gibt eine ganze Zahl k, so dass sie in der -Zeit läuft , wobei n die Eingabegröße ist, und
- Alle Zahlen in Zwischenberechnungen können mit Bits gespeichert werden .
Ein Algorithmus mit willkürlicher Eingabe soll in stark polynomieller Zeit ablaufen, wenn
- es gibt eine ganze Zahl k, so dass sie für jede Eingabe, die aus n Zahlen und besteht, in der Zeit läuft
- es läuft in polynomialer Zeit für rationale Eingabe.
Bitte korrigieren Sie mich, wenn ich falsch liege. Im Folgenden sind die wörtlichen Unterschiede aufgeführt, die mir aufgefallen sind:
Für polynomielle Zeitalgorithmen ist die Definition von Korte und Vygen "die Definition von Wikipedia + polynomieller Speicherplatz".
Für stark polynomielle Zeitalgorithmen erfordern sowohl die Korte- und Vygen-Definition als auch die Wikipedia-Definition eine Polynomzeit in der Größe des Eingabespeichers. Aber K und V benötigen zusätzlich eine Polynomzeit in der Anzahl der Zahlen in einer Eingabe, während Wikipedia zusätzlich einen Polynomspeicherplatz in der Eingabegröße benötigt.
Sind also die Definitionen von K und V bzw. Wikipedia für diese beiden Begriffe gleichwertig? Welche anderen Unterschiede und Beziehungen bestehen zwischen ihnen?
Danke und Grüße!