Ist das Testen der Polynomidentität über arithmetische * Ausdrücke * nicht trivial?


8

Das Testen der Polynomidentität ist das Standardbeispiel für ein Problem, von dem bekannt ist, dass es in Co-RP, aber nicht in P vorliegt . Über arithmetische Schaltungen scheint es in der Tat schwierig zu sein, da der Grad des Polynoms durch wiederholtes Quadrieren exponentiell groß gemacht werden kann. Diese Frage befasst sich mit der Frage, wie dies umgangen und das Problem in einer zufälligen Polynomzeit gehalten werden kann.

Wenn das Problem andererseits anfänglich dargestellt wird (z. B. hier ), wird es häufig über arithmetische Ausdrücke dargestellt, die nur Konstanten, Variablen, Additionen und Multiplikationen enthalten. Solche Polynome haben höchstens einen Gesamtgrad in der Länge des Eingabeausdrucks, und für jedes solche Polynom ist die Größe des Ausgabewerts ein Polynom in der Größe der Eingabewerte. Aber da ein Polynom vom Grad höchstens Wurzeln hat, ist das nicht trivial? Bewerten Sie einfach das Polynom über den Rationalen bei jedemddd d+1unterscheiden Sie Punkte und prüfen Sie, ob das Ergebnis an jedem Punkt Null ist. Dies sollte nur Polynomzeit dauern. Ist das richtig? Wenn ja, warum werden arithmetische Ausdrücke ohne gemeinsame Unterausdrücke häufig als Beispiele verwendet, wenn das Teilen für die Schwierigkeit des Problems wesentlich ist?

Antworten:


6

Das ist nicht als trivial bekannt .

Das Polynom unendlich viele Wurzeln. (Wenn eine der Variablen Null ist, hat die andere Variable keinen Einfluss auf den Wert des Polynoms.)xy


Ah, okay. Ich weiß nicht, wie ich vermisst habe, dass Polynome mit mehreren Variablen unendlich viele Wurzeln haben können.
Aaron Rotenberg

Im Übrigen bietet Korollar 3.1 dieses Dokuments eine interessante Konsequenz für signifikante (sogar nicht deterministische) Verbesserungen des von Ihnen beschriebenen Algorithmus.

7

Für ein univariates Polynom ist das so einfach.p(x)

Für ein multivariates Polynom funktioniert kein solcher Algorithmus.p(x1,x2,,xk)

Insbesondere wenn Sie "ein Polynom vom Grad hat höchstens Wurzeln" schreiben , gilt dies für univariate Polynome , im Allgemeinen jedoch nicht für multivariate Polynome. Ricky Demer gibt ein einfaches Beispiel: ist vom Grad, hat aber unendlich viele Wurzeln.d p ( x ) p ( x , y ) = x yddp(x)p(x,y)=xy


-1

Hier ist eine allgemeinere / abstraktere Methode, um die Bedeutung / Härte von Polynomidentitätstests in CS zu verstehen. Ein Grund, warum polynomielle Identitätstests derzeit intensiv untersucht werden, ist seit langem bekannt, dass sie eng mit der Komplexität boolescher Schaltkreise verbunden sind. Stellen Sie sich vor, Sie nehmen zwei beliebige boolesche Schaltkreise und konvertieren sie dann (dh im Grunde genommen ein 1-1-Mapping einrichten) in multivariate Polynome. das ist nicht so schwer. Grundsätzlich verwendet man Werte von 0/1, um falsch / wahr darzustellen, und die Konstruktionen sind in alten Papieren eingerichtet. dann entsprechen die Wurzeln des Polynoms T / F-Variablenzuweisungen, die die Formeln / Schaltungen erfüllen.

Nach diesem Aufbau ist PIT im Grunde fast das gleiche Problem wie das Bestimmen, ob zwei Binärschaltungen äquivalent sind. Es gibt auch andere (neuere) tiefe Beweise, die besagen, dass ihre Komplexität dem Faktorisieren von Polynomen nahezu gleichwertig ist. [ 1 ] Man erhält also ein Ergebnis wie das folgende: Wenn man PIT "schnell" lösen kann, bedeutet dies, dass zwei große Schaltkreise sein können auf Äquivalenz "schnell" verglichen, was unwahrscheinlich ist. Ein grober Weg, um das Problem zu verstehen, besteht darin, dass es nahezu nichttrivialen Problemen in der Booleschen Schaltungstheorie entspricht.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.