Lenstra–Lenstra–Lovász gitterbasreduktionsalgoritm
Lenstra –Lenstra–Lovász (LLL) gitterbasreduktionsalgoritm är en polynomisk tidsgitterreduktionsalgoritm som uppfanns av Arjen Lenstra Hendrik Lenstra och László Lovász 1982. Givet basen , med n -dimensionella heltalskoordinater, för ett gitter L (en diskret undergrupp av Rn ) med , beräknar LLL-algoritmen en LLL-reducerad ( kort, nästan ortogonal ) gitterbas i tid
De ursprungliga applikationerna var att ge polynom-tidsalgoritmer för att faktorisera polynom med rationella koefficienter, för att hitta samtidiga rationella approximationer till reella tal och för att lösa heltalslinjärprogrammeringsproblemet i fasta dimensioner.
LLL-reduktion
Den exakta definitionen av LLL-reducerad är som följer: Givet en grund
Då är basen LLL-reducerad om det finns en parameter i (0.25, 1] så att följande gäller:
- (storleksreducerad) För . Per definition garanterar denna egenskap längdminskningen av det beställda underlaget.
- ..,n .
Här, genom att uppskatta värdet på parametern , kan vi dra slutsatsen hur väl basen reduceras. Större värden på leder till starkare reduktioner av basen. Inledningsvis demonstrerade A. Lenstra, H. Lenstra och L. Lovász LLL-reduktionsalgoritmen för . Observera att även om LLL-reduktion är väldefinierad för , garanteras polynom-tidskomplexiteten endast för i .
LLL-algoritmen beräknar LLL-reducerade baser. Det finns ingen känd effektiv algoritm för att beräkna en bas där basvektorerna är så korta som möjligt för gitter med dimensioner större än 4. En LLL-reducerad bas är dock nästan så kort som möjligt, i den meningen att det finns absoluta gränser så att den första basvektorn inte är mer än gånger så lång som en kortaste vektor i gittret, den andra basvektorn är likaså inom av det andra på varandra följande minimum, och så vidare.
Ansökningar
En tidig framgångsrik tillämpning av LLL-algoritmen var dess användning av Andrew Odlyzko och Herman te Riele för att motbevisa Mertens gissningar .
LLL-algoritmen har hittat många andra tillämpningar i MIMO- detekteringsalgoritmer och kryptoanalys av krypteringsscheman med offentliga nyckel : ryggsäckskryptosystem , RSA med särskilda inställningar, NTRUEncrypt , och så vidare. Algoritmen kan användas för att hitta heltalslösningar på många problem.
I synnerhet bildar LLL-algoritmen en kärna av en av heltalsrelationsalgoritmerna . Till exempel, om man tror att r =1,618034 är en (något avrundad) rot till en okänd kvadratisk ekvation med heltalskoefficienter, kan man tillämpa LLL-reduktion på gittret i spänns av och . Den första vektorn i den reducerade basen kommer att vara en heltalslinjär kombination av dessa tre, alltså nödvändigtvis av formen ; men en sådan vektor är "kort" bara om a , b , c är små och är ännu mindre. Således är de tre första ingångarna i denna korta vektor sannolikt koefficienterna för det andragradspolynom som har r som en rot. I det här exemplet finner LLL-algoritmen att den kortaste vektorn är [1, -1, -1, 0,00025] och faktiskt har en rot som är lika med det gyllene snittet , 1,6180339887....
Egenskaper för LLL-reducerad grund
Låt vara en -LLL-reducerad bas av ett gitter . Från definitionen av LLL-reducerad basis kan vi härleda flera andra användbara egenskaper om .
- Den första vektorn i basen kan inte vara mycket större än den kortaste vektorn som inte är noll : . Speciellt för , detta ger .
- Den första vektorn i basen är också begränsad av gittrets determinant: . I synnerhet för ger .
- Produkten av normerna för vektorerna i basen kan inte vara mycket större än gittrets determinant: låt då .
LLL algoritm pseudokod
Följande beskrivning är baserad på ( Hoffstein, Pipher & Silverman 2008 , Theorem 6.68), med korrigeringarna från erratan.
0 00 INPUT en gitterbas b , b 1 , ..., b n i Z m en parameter δ med 1/4 < δ < 1, oftast δ = 3/4 PROCEDUR B * <- GramSchmidt({ b , ... , bn }) = { b * , ... , bn * } ; och normalisera inte μ i , j 0 <- InnerProduct( b i , b j * )/InnerProduct( b j * , b j * ); använda de mest aktuella värdena för bi och b j * k <- 1; medan k <= n gör för j från k −1 att göra om | μk _ , j | > 1/2 00 sedan b k <- b k − ⌊ μ k , j ⌉ b j ; Uppdatera B * och relaterade μ i , j efter behov. (Den naiva metoden är att beräkna B * närhelst b i ändras: B * <- GramSchmidt({ b , ..., b n }) = { b * , ..., b n * }) end if end för if InnerProduct( b k * , b k * ) > ( δ − μ 2 k , k −1 ) InnerProduct( b k −1 * , b k −1 * ) sedan k <- k + 1; annars Byt b k och b 00 k -1 ; Uppdatera B * och relaterade μ i , j efter behov. k <- max( k -1, 1); end if end while return B den LLL reducerade basen av {b , ..., b n } OUTPUT den reducerade basen b , b 1 , ..., b n i Z m
Exempel
Exempel från Z 3
Låt ett gitterbas , ges av kolumnerna för
Exempel från Z[ i ] 4
På samma sätt, för basen över de komplexa heltal som ges av kolumnerna i matrisen nedan,
Genomföranden
LLL implementeras i
-
Arageli som funktionen
lll_reduction_int
- fpLLL som en fristående implementering
-
FLINT som funktionen
fmpz_lll
-
GAP som funktionen
LLLReducedBasis
-
Macaulay2 som funktionen
LLL
i paketetLLLBases
-
Magma som funktionerna
LLL
ochLLLgram
(tar en grammatris) -
Lönn som funktionen
IntegerRelations[LLL]
-
Mathematica som funktionen
LatticeReduce
-
Number Theory Library (NTL) som funktionen
LLL
-
PARI/GP som funktionen
qflll
-
Pymatgen som funktionen
analys.get_lll_reduced_lattice
-
SageMath som metoden
LLL
som drivs av fpLLL och NTL -
Isabelle/HOL i posten "arkiv av formella bevis"
LLL_Basis_Reduction
. Denna kod exporteras till effektivt körbar Haskell.
Se även
Anteckningar
- Napias, Huguette (1996). "En generalisering av LLL-algoritmen över euklidiska ringar eller order" . Journal de Théorie des Nombres de Bordeaux . 8 (2): 387–396. doi : 10.5802/jtnb.176 .
- Cohen, Henri (2000). En kurs i beräkningsalgebraisk talteori . GTM. Vol. 138. Springer. ISBN 3-540-55640-0 .
- Borwein, Peter (2002). Beräkningsexkursioner i analys och talteori . ISBN 0-387-95444-9 .
- Luk, Franklin T.; Qiao, Sanzheng (2011). "En pivoterad LLL-algoritm" . Linjär algebra och dess tillämpningar . 434 (11): 2296–2307. doi : 10.1016/j.laa.2010.04.003 .
- Hoffstein, Jeffrey; Pipher, Jill; Silverman, JH (2008). En introduktion till matematisk kryptografi . Springer. ISBN 978-0-387-77993-5 .