Algoritme LLL
El algoritme de simplificació de bases de retículs de Lenstra–Lenstra–Lovász (LLL) és un algoritme de simplificació de retículs de complexitat polinomial inventat per Arjen Lenstra, Hendrik Lenstra i László Lovász en 1982.[1] Donada una base en coordenades sanceres n-dimensionals , d'un retícul L en Rn en , l'algoritme LLL torna una base del retícul LLL-reduïda (menuda, casi ortogonal) en temps
a on B és la llongitut més llarga dels baix la norma euclídea.
Les aplicacions originals eren donar algoritmes de complexitat polinomial para factorizar polinomis que coeficients racionals, per a trobar aproximacions racionals simultànees als número real, i per a resoldre el problema de la programació llineal sancera en dimensions fixades.
Simplificació de el LLL
[editar | editar còdic]La definició exacta de LLL-reduït és la següent: Donada una base
es definixen la seua base ortogonal obtinguda pel procés de ortogonalización de Gram-Schmidt
i els coeficients de Gram-Schmidt
- , per a cada .
Llavors la base és LLL-reduïda si existix un paràmetro en (0.25,1] tal que es complixen les següents condicions:
- (Tamany reduït) Para . Per definició, esta propietat garantisa la reducció de la llongitut de la base.
- (Condició de Lovász) Per a k = 2,3,..,n .
Aplegats a este punt, estimant el valor del paràmetro, podem concloure cóm de be es reduïx la base. A majors valors de majors reduccions de la base. Inicialment, A. Lenstra, H. Lenstra and L. Lovász varen demostrar l'algoritme de simplificació LLL algoritme per a . Note's que si ben l'algoritme de simplificació LLL està ben definit per a , la complexitat de temps polinomial està garantisada solament per a .
L'algoritme LLL calcula bases LLL-reduïdes. No es coneix un algoritme eficient que calcule una base que els seus vectores siguen tan menuts com siga possible per a retículs de dimensions majors que 4. No obstant, una base LLL-reduïda és casi tan chicoteta com siga possible, en li sentit de que hi ha unes cotes absolutes tal que el primer vector de la base no és més de voltes més llarc que el vector més curt del retícul, el segon vector de la base és igualment més llarc com a màxim que el segon vector més curt, i aixina successivament.
Implementacions en llenguages computacionals
[editar | editar còdic]LLL està implementat en
- Arageli com la funció lll_reduction_int.
- fpLLL com a implementació que s'eixecuta en local.
- GAP com la funció LLLReducedBasis.
- Macaulay2 com la funció LLL en el paquet LLLBases.
- Magma com les funcions LLL i LLLGram (prenent una matriu de Gram).
- Maple com la funció IntegerRelations[LLL].
- Mathematica com la funció LatticeReduce.
- Number Theory Library (NTL) com la funció LLL.
- PARI/GP com la funció qflll.
- Pymatgen com la funció analysis.get_lll_reduced_lattice.
- Sage com el método LLL portat a terme per fpLLL i NTL.
Referències
[editar | editar còdic]- ↑ (1982).Mathematische Annalen.261(4)
- 515–534.doi:10.1007/BF01457454.
Vore també
[editar | editar còdic]Bibliografia
[editar | editar còdic]- Cohen (2000). A course in computational algebraic number theory, Springer. ISBN 3-540-55640-0.
- Borwein, Peter (2002). Computational Excursions in Analysis and Number Theory. ISBN 0-387-95444-9.
Referències
[editar | editar còdic]
- Este artícul conté una traducció derivada de «Algoritmo LLL» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.