Was sind polynomielle Zeitalgorithmen?


Beste Antwort

Google ist Ihr Freund: von Zeitkomplexität – Wikipedia

Polynomzeit

Ein Algorithmus soll Polynomzeit , wenn seine Laufzeit obere Grenze durch einen Polynomausdruck in der Größe der Eingabe für den Algorithmus, dh T ( n ) = {\ displaystyle O (n ^ {k})} für eine positive Konstante k .

Probleme , für die ein deterministischer Polynomzeitalgorithmus existiert, gehören zur Komplexitätsklasse P , was im Bereich der Theorie der rechnerischen Komplexität von zentraler Bedeutung ist. Cobhams These besagt, dass die Polynomzeit ein Synonym für „verfolgbar“, „machbar“, „effizient“ oder „schnell“ ist.

Einige Beispiele für polynomielle Zeitalgorithmen:

  • Der Sortieralgorithmus Auswahlsortierung für n Ganzzahlen führen {\ displaystyle An ^ {2}} Operationen für eine Konstante A aus. Sie laufen also in der Zeit {\ displaystyle O. (n ^ {2})} und ist ein Polynomzeitalgorithmus.
  • Alle grundlegenden arithmetischen Operationen (Addition, Subtraktion, Multiplikation, Division und Vergleich) können in Polynomzeit ausgeführt werden.
  • Maximale Übereinstimmungen in Graphen können in Polynomzeit gefunden werden.

Ich könnte vorschlagen, einige traditionelle Kurse in Informatik zu belegen, z. B. Algorithmen, die einen Text wie Einführung in Algorithmen ( aka CLRS) sogar ein einfacher Datenstrukturkurs, wie er in Flons ACM-Papier Ein grundlegender CS-Kurs, der Theorie und Praxis vereint , der den klassischen Text von Wulf, Shaw, Hilfinger und Flon verwendet Grundlegende Strukturen der Informatik .

Antwort

Wenn wir ein Polynom p (x) durch ein Polynom d (x) teilen, finden wir einen Quotienten q (x), so dass p (x) = d (x) q (x) + r (x) wobei r (x) unser Rest ist.

Angenommen, r (x) hätte einen Grad ≥ ︎ n, dann hätten wir mehr davon modifizieren können, wenn d (x) Grad n ist, bis unser neuer r (x) ^ {*} hatte einen Grad, der streng unter d (x)

lag. Nehmen wir an, wir haben p (x) = x ^ 4 + 1 und d (x) = x ^ 2:

x ^ 4 + 1 = x ^ 2q (x) + r (x)

eindeutig q (x) = x ^ 2

x ^ 4 + 1 = x ^ 2 \ cdot {x ^ 2} + r (x) ⇒︎ r (x) = 1

Jetzt könnte ich versuchen zu sagen, dass q (x) = x und g et:

x ^ 4 + 1 = {x \ cdot {x}} ^ 2+ (x ^ 4-x ^ 3 + 1)

r (x) = x ^ 4-x ^ 3 + 1?

aber das wollen wir überhaupt nicht!

Dies ist analog zur Division / Rest in ganzen Zahlen:

p = dq + r

7 = 2 \ cdot {3} +1 ist korrekt

7 = 1 \ cdot {3} +4 ist nicht wünschenswert, da wir nicht vollständig geteilt haben durch unseren Divisor durch und ließ ein größeres r übrig, als wir haben sollten.

Das gleiche Konzept gilt für Polynome, aber der Grad bestimmt, wann Sie fertig sind:

\ text {deg} r ( x) text {deg} d (x)

oder Sie haben den Rest nicht vollständig auf das Element mit dem niedrigsten Grad in der Äquivalenzklasse modulo d (x) reduziert, oder in weniger mathematischen Begriffen Finden Sie tatsächlich eine ganze Klasse von Polynomen, die äquivalent sind, wenn Sie durch ein bestimmtes Polynom modifizieren, aber Sie möchten als Rest das kleinste mit einem Grad zwischen 0 und n-1 (einschließlich dieser Endpunkte).

10 = 7 = 4 = 1 ~ \ text {mod} 3, aber nur einer ist ein gültiger Restfall für eine ganzzahlige lange Division!

x ^ 4 + 1 = x ^ 2 + 1 = 1 ~ \ text {mod } x ^ 2 aber nur einer ist Ein gültiger Restfall für die Polynom-Langteilung!

Also

\ text {deg} r (x) text {deg} d (x)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.