Algoritme F4 blev foreslået af Jean-Charles Faugeré i 1999 som en ny effektiv Gröbner -basisberegningsalgoritme [1] . Denne algoritme beregner Gröbner-grundlaget for et ideal i en polynomialring ved hjælp af en række standard lineære algebraprocedurer: matrixreduktioner. Det er en af de hurtigste til dato.
sådan at
Indgang:
Output: begrænset delmængde
mens gør
for gøre
Vend tilbage
ReduktionsalgoritmeNu kan vi udvide definitionen af polynomiel reduktion modulo
delmængde , indtil reduktionen af delmængden med
modulo en anden undergruppe :
Input: L, G endelige delmængder
Output: endelige delmængder (kan være tomme)
Vend tilbage
Der bruges ingen aritmetisk operation: dette er symbolsk forbehandling.
Symbolsk forbehandlingsalgoritmeInput: L, G endelige delmængder
Output: endelige delmængder
mens gør
hvis støbt ovenfra modulo så
eksisterer
Vend tilbage
LemmaFor alle polynomier vi har
Sætning (intet bevis)Algoritmen beregner Gröbner-grundlaget G in
sådan at
Kommentar
Hvis # er for alle , reduceres algoritmen til Buchbergers algoritme . I dette tilfælde er Sel-funktionen den tilsvarende udvælgelsesstrategi for Buchberger-algoritmen.
ValgfunktionInput : liste over kritiske par
Output : liste over kritiske par
Vend tilbage
Vi kalder denne strategi for den normale strategi for .
Derfor, hvis inputpolynomierne er ensartede, kommer vi til potensen, og d er Gröbner-grundlaget.
I det næste trin vælger vi alle de kritiske par , der er nødvendige for at beregne Gröbner-grundlaget til potensen d+1.
Der er flere måder at optimere algoritmen på:
Buchberger kriterier Algoritme - implementering:
Indgang:
Output: endelig undersæt til opdateret liste over kritiske par
Pseudokode for F4-algoritmen (med kriterium)Indgang:
Output: endelig delmængde af .
mens gør
mens gør
til
Vend tilbage
Lad der være et begrænset sæt polynomier . Baseret på dette sæt konstrueres en stor sparsom matrix, hvis rækker svarer til polynomier fra , og kolonnerne svarer til monomer. Matrixen indeholder koefficienterne for polynomier ved de tilsvarende monomer. Matricens kolonner er sorteret i henhold til den valgte monomial rækkefølge (det højeste monomium svarer til den første kolonne). Reduktion af en sådan matrix til en trinvis form gør det muligt at finde ud af grundlaget for det lineære spænd af polynomier fra polynomiers rum.
Antag, at i den klassiske Buchberger-algoritme er det nødvendigt at udføre et trin med at reducere polynomiet med hensyn til , og samtidig skal det multipliceres med et monomial . I F4-algoritmen, og vil være specielt placeret i matrixen . Det hævdes, at det er muligt på forhånd at forberede et sæt af alle potentielle multiplikationsreducere, der kan være nødvendige, og placere dem på forhånd i en matrix. [2]
Vi generaliserer algoritmen F4 [3] :
lad os reducere polynomiet i forhold til mængden . Til dette vi
(1) tilføje til matrixen;
(2) vi konstruerer understøttelsen af polynomiet (sættet af monomialer);
(3) hvis tom, afslut derefter proceduren;
(4) vælg det maksimale monomial i (og kasser det fra );
(5) hvis det ikke er deleligt med nogen af de højeste monomer af elementer , så gå til trin (3);
(6) ellers vælger vi reducereren ∈ (og den ekstra faktor ): derefter ;
(7) tilføje til matrixen;
(8) tilføje monomer af polynomiet (undtagen det højeste ) til mængden ;
(9) gå til trin (3).
Denne procedure til at genopfylde en matrix med multiplicerede reduktionselementer kaldes symbolsk forbehandling . Derudover kan du i stedet for S-polynomier lægge deres venstre og højre del i matricen (når du reducerer en række med en anden, får du automatisk et S-polynomium).
Endelig er den tredje forskel fra Buchberger-algoritmen , at det i F4-algoritmen er tilladt at placere dele af flere S-polynomier valgt efter en eller anden strategi i én matrix. Så hvis et S-polynomium er valgt ved hvert trin, gentager det den klassiske Buchberger-algoritme .
Den anden yderlighed er, når mængden af alle tilgængelige S-polynomier reduceres ved næste trin. Dette er heller ikke særlig effektivt på grund af matricernes store størrelse. Forfatteren af algoritmen J.-Sh. Faugère foreslog en normal strategi for valg af S-polynomier til reduktion [4] , hvorefter S-polynomier med den mindste grad af venstre og højre side vælges. Det giver gode empiriske resultater for bestilling af DegRevLex, og dets valg er naturligt for homogene idealer.
Der kan laves flere naturlige forbedringer af algoritmen. Som i den klassiske algoritme til beregning af Gröbner -grundlaget, kan Buchbergers kriterier bruges til at bortfiltrere åbenlyst unødvendige S-polynomier.
F4 algoritme implementeret
Opgave: Beregn Gröbner-grundlaget for polynomier Først tildeler vi
1) Symbolforbehandling
Jeg er klar nu.
2) Symbolforbehandling
fra oven reduceres til .
3) Symbolforbehandling
koger ikke ned til .
fire)
Matrixrepræsentation af det resulterende :
Gaussisk reduktion af den resulterende matrix :
Fra denne matrix får vi:
Og siden da
og så
For det næste skridt skal vi overveje
Herfra
I symbolsk forbehandling kan du prøve at forenkle ved hjælp af de tidligere beregninger:
For eksempel 1) Symbolforbehandling
2) Symbolforbehandling
3) Symbolforbehandling
Lad os beskrive forenklingen
Formål: at erstatte ethvert produkt med produktet , hvor er den tidligere beregnede streng, og dividerer monomiet
I den første version af algoritmen: nogle rækker i matrixen bruges aldrig (rækker i matrixen ).
Ny version af algoritmen: vi gemmer disse strenge
SIMPLIFY forsøger at erstatte produktet med produktet , hvor
allerede beregnet streng i Gaussisk reduktion, og ut deler det monomiale m; Hvis vi har fundet sådan et bedste produkt, så kalder vi rekursivt SIMPLIFY-funktionen:
Indgang:
Output: Resultat svarer til
for gøre
hvis
hvis
Vend tilbage
ellers vende tilbage
Vend tilbage
Algoritme SYMBOLIK FORBEHANDLING
Indgang:
Output: endelig delmængde af .
mens gør
hvis støbt ovenfra modulo så
eksisterer
Vend tilbage
Nu tilbage til eksemplet.
4) Symbolforbehandling
Og så videre....
5) Symbolforbehandling
Efter Gauss-reduktion:
og
På næste trin har vi:
og rekursivt kalder forenklingen:
På næste trin har vi:
og
Efter nogle beregninger viser det sig, at rangen er 5.
Det betyder, at der er en ubrugelig ophævelse.
På næste trin har vi:
og
Symbolforbehandling