Hier ist ein Ansatz, der für einige Polynome funktioniert, aber nicht für alle garantiert ist.
Es funktioniert garantiert für alle mehrlinigen quadratischen Polynome. Es funktioniert auch garantiert, wenn eine Variable , sodass p ( ⋯ , x , ⋯ ) keinen x 2 -Term enthält . Für Polynome der Form p ( x , ⋯ , z ) = c x ⋅ x 2 + ⋯ + c z ⋅ z 2 + p ' ( x , ⋯ , z )xp(⋯,x,⋯)x2p ( x , ⋯ , z) = cx⋅ x2+ ⋯ + cz⋅ z2+ p'( x , ⋯ , z)wobei ein multilineares quadratisches Polynom ist (dh Polynome, bei denen jede Variable quadratisch erscheint), kann ich nur eine Heuristik darstellen. Die Heuristik funktioniert in der Praxis oft in Ordnung, aber ich habe keinen Beweis.p'
(Ich habe das Gefühl, dass hier irgendwo eine sauberere Lösung lauert ...)
Sei ein Feld. Es sei p ( x , y , z , ⋯ ) ∈ F [ x , y , z , ⋯ ] ist eine multivariate quadratisches Polynom mit Koeffizienten in dem Gebiet F . Faktoren von x herausrechnen , um zu erhaltenF.p ( x , y, z,⋯)∈F[x,y,z,⋯]Fx
p ( x , y, z, ⋯ ) = c ⋅ x2+ q( y, z, ⋯ ) ⋅ x + r ( y, z,⋯).
Beachten Sie, dass linear / affin sein muss , r quadratisch sein muss und c eine Konstante sein muss ( c ∈ F ). Wir wollen eine Zuordnung von Werten zu x , y , z , ⋯ finden , die machtqrcc ∈ F.x , y, z, ⋯
c ⋅ x2+ q( y, z, ⋯ ) ⋅ x + r ( y, z,⋯)=0.
Nun sei die Diskriminante dieser quadratischen Gleichung (in x ), dhΔx
Δ(y,z,⋯)=q(y,z,⋯)2−4c⋅r(y,z,⋯).
Das ursprüngliche Polynom ist nur dann erfüllbar, wenn Sie eine Zuordnung von Werten zu , die Δ ( y , z , ⋯ ) zu einem Quadrat (dh einem quadratischen Rest) in F macht . Beachten Sie, dass Δ ( y , z , ⋯ ) selbst ein multivariates quadratisches Polynom ist (da q affin und r quadratisch ist).y,z,⋯Δ(y,z,⋯)FΔ(y,z,⋯)qr
An diesem Punkt wird sich unser Lösungsansatz verzweigen, basierend darauf, ob (ein einfacher Fall) oder c ≠ 0 (der schwierigere Fall) ist.c=0c≠0
Wenn , ist das Lösen dieser Gleichung einfach: Es ist im Grunde nur eine lineare Gleichung (sie ist in x linear , sobald Sie alle anderen Variablen festgelegt haben).c=0x
Infolgedessen gibt es eine spezielle Klasse von Polynomen, bei denen dieses Problem besonders einfach zu lösen ist: jedes Polynom bei dem eine Variable existiert - der Einfachheit halber nennen wir es x -, so dass x 2 nicht in p erscheint . Für diese Klasse haben Sie oben c = 0 , und dann reicht der folgende Algorithmus aus, um das Problem zu lösen:pxx2pc=0
Überprüfen Sie, ob eine Zuordnung von Werten zu y , z , ⋯ hat , die q ( y , z , ⋯ ) ≠ 0 macht . Da q linear ist, ist dies leicht zu überprüfen.qy,z,⋯q(y,z,⋯)≠0q
Wenn ja, wählen Sie eine solche Zuordnung von Werten zu . Als nächstes setze x = - r ( y , z , ⋯ ) q ( y , z , ⋯ ) - 1 . Per Definition hat q ( y , z , ⋯ ) ≠ 0 , also hat q ( y , z , ⋯ ) eine Umkehrung (da wir in einem Feld arbeiten), also einen solchen Wert von xy,z,⋯x=−r(y,z,⋯)q(y,z,⋯)−1q(y,z,⋯)≠0q(y,z,⋯)xexistiert. Dies ergibt sofort eine Zuordnung von Werten zu , die p Null macht , und wir sind fertig.x,y,z,⋯p
Wenn nein, dann wissen wir für alle möglichen Zuordnungen von Werten zu den Variablen von p . Tatsächlich hing p überhaupt nicht von x ab, daher war es ein Fehler, es als eine Funktion von x zu betrachten . Oder anders ausgedrückt: Wir haben eine Variable aus p entfernt und erhalten eine neue Instanz des ursprünglichen Problems. Wenden Sie unsere Methoden rekursiv auf r ( y , z ,p(x,y,z,⋯)=r(y,z,⋯)ppxxp . Ausnahme: Wenn p eine Funktion einer einzelnen Variablen war (dh p ( x ) ), können Sie in diesem Fall schließen, dass p nicht erfüllbar ist (es ist für alle möglichen Werte seiner Variablen identisch Null).r(y,z,⋯)pp(x)p
Dieser Algorithmus behandelt den einfachen Fall: Polynome, bei denen mindestens eine Variable , die in p erscheint , bei der x 2 jedoch nicht in p erscheint . In diesem Fall läuft der Algorithmus in Polynomzeit und bestimmt, ob eine Zuordnung von Werten zu den Variablen vorhanden ist, die das Polynom gleich Null macht.xpx2p
Nun zurück zum schwierigen Fall. Wenn es nicht in den einfachen Fall fällt, müssen wir haben
p(x,⋯,z)=cx⋅x2+⋯+cz⋅z2+p′(x,⋯,z).
wobei keine quadratischen Terme hat (es ist mehrlinig). Schauen wir uns an, welche Methoden wir für diesen Fall verwenden können.p′(x,⋯,z)
Nun, hier ist eine Situation, in der wir dies lösen können. Angenommen, es gibt ein Paar von Variablen so dass - c x / c y ein Quadrat (ein quadratischer Rest) in F ist, beispielsweise - c x / c y = α 2 . Dann können wir die Änderung der Variablen y ' = y + α x anwenden . Praktischerweise haben wirx,y−cx/cyF−cx/cy=α2y′=y+αx
$(y′)2=(y+αx)2=y2+2α⋅xy+α2⋅x2=y2+2αcdotxy−cx/cy⋅x2.
Wenn wir diese Änderung der Variablen in einfügen , erhalten wirp
p(x,y′,⋯)=cx⋅x2+cy⋅y2+2αcy⋅xy−cy⋅(cx/cy)⋅x2+…,
dh
p(x,y′,⋯)=cy⋅y2+2αcy⋅xy+…
wobei der ausgelassene Teil keinen -Term enthält (da sich die Terme c x ⋅ x 2 und α 2 c y ⋅ x 2 aufheben). Tatsächlich haben wir den x 2 -Term eliminiert , sodass wir nun die obige Methode auf p ( x , y ′ , ⋯ ) anwenden können . Beachten Sie, dass p ( x , y ′ , ⋯ ) = 0 genau dann erfüllt werden kann, wenn p ( xx2cx⋅x2α2cy⋅x2x2p(x,y′,⋯)p(x,y′,⋯)=0 ist. Wenn wir eine Lösung findendie diese Null macht, können wir Rück lösen für y , und wir eine Zuordnung erhalten , x , y , z , ⋯ , das macht p ( x , y , z , ⋯ ) = 0 .p(x,y,⋯)=0yx,y,z,⋯p(x,y,z,⋯)=0
Ist es möglich, dass kein Variablenpaar es uns ermöglicht, einen quadratischen Term zu eliminieren? Wenn ein quadratischer Rest (ein Quadrat) in F ist und wir mindestens 3 Variablen haben, ist dies nicht möglich: - c x / c z = ( - 1 ) × ( - c x / c y ) × ( - c y / c z ) , und da das Produkt eines quadratischen Nichtrests und eines quadratischen Nichtrests ein quadratischer Rest ist, ist garantiert, dass mindestens eines von - c−1F−cx/cz=(−1)×(−cx/cy)×(−cy/cz) , - c y / c z oder - c x / c z ist ein quadratischer Rest, sodass mindestens einer der quadratischen Terme gelöscht werden kann. Wenn jedoch - 1 ein quadratischer Nichtrest ist oder wir nur 1 oder 2 Variablen haben, ist es möglicherweise nicht möglich, einen quadratischen Term zu eliminieren. Das ist der verbleibende schwierige Fall. (Die Situation mit nur 1 oder 2 Variablen ist nicht schwer zu handhaben, daher ist der schwierige Fall wirklich, wenn - 1 ein quadratischer Nichtrest ist und jede Variable in p im Quadrat erscheint−cx/cz−cy/cz−cx/cz−1−1p.) Ich habe keine allgemeine Lösung für diesen schwierigen Fall.
Ich kann jedoch eine Heuristik vorschlagen, die selbst in diesem schwierigen Fall häufig funktioniert.
In jedem Feld sind ungefähr die Hälfte aller Feldelemente Quadrate (quadratische Reste); wenn Sie ein Zufallsfeld Element wählen, wird es ein Quadrat mit einer Wahrscheinlichkeit von über seine 1 / 2 . Wenn wir also Werte für Pick y , z , ... zufällig, können wir das (heuristisch) vorherzusagen , Δ ( y , z , ⋯ ) sollte ein Quadrat mit der Wahrscheinlichkeit sein , 1 / 2 , wenn Δ ( y , z , ⋯ ) wirkt wie eine zufällige Funktion. Dies legt den folgenden heuristischen Algorithmus nahe:F1/2y,z,…Δ(y,z,⋯)1/2Δ(y,z,⋯)
Wählen Sie zufällig eine Variable aus, um sie zu eliminieren, z . B. .x
Wählen Sie zufällig Werte für .y,z,…
Wenn ein Quadrat in F ist , dann hat die Gleichung p ( x , y , z , ⋯ ) = 0 eine Lösung für x , nämlich x = ( - q ( y , z , ⋯ ) ± √Δ(y,z,⋯)Fp(x,y,z,⋯)=0x(unter der Annahme, dassFkeine Charakteristik 2 hat). Dies gibt uns eine Zuordnung zu den Variablenx,y,z,..., diep(x,y,z,⋯)=0 macht, also sind wir fertig.x=(−q(y,z,⋯)±Δ(y,z,⋯)−−−−−−−−−√)/(2c)Fx,y,z,…p(x,y,z,⋯)=0
Wenn kein Quadrat ist, fahren Sie mit Schritt 1 fort.Δ(y,z,⋯)
Wenn Sie nach vielen Schritten keine Lösung finden, können Sie davon ausgehen, dass die Gleichung nicht zufriedenstellend ist (dies ist jedoch eine Heuristik, sodass Ihre Vermutung möglicherweise falsch ist).
Dieser Algorithmus könnte für viele der verbleibenden schwierigen Polynome gut funktionieren, aber ich habe keinen Beweis dafür, dass er immer funktionieren wird. Insbesondere besteht das Risiko, dass alle möglichen Diskriminanzpolynome die Eigenschaft haben, dass ihre Werte immer keine Quadrate (quadratische Nichtreste) sind. In diesem Fall schlägt der obige Algorithmus fehl.Δ(⋯)