En matemáticas, el objetivo de la reducción de la base reticular es encontrar una base con vectores cortos y casi ortogonales cuando se da como entrada una base reticular entera . Esto se logra utilizando diferentes algoritmos, cuyo tiempo de ejecución suele ser al menos exponencial en la dimensión de la red.
Una medida de la casi ortogonalidad es el defecto de ortogonalidad . Este compara el producto de las longitudes de los vectores base con el volumen del paralelepípedo que definen. Para vectores base perfectamente ortogonales, estas cantidades serían las mismas.
Cualquier base particular de vectores puede representarse mediante una matriz , cuyas columnas son los vectores base . En el caso completamente dimensional donde el número de vectores base es igual a la dimensión del espacio que ocupan, esta matriz es cuadrada, y el volumen del paralelepípedo fundamental es simplemente el valor absoluto del determinante de esta matriz . Si el número de vectores es menor que la dimensión del espacio subyacente, entonces el volumen es . Para una red dada , este volumen es el mismo (hasta el signo ) para cualquier base, y por lo tanto se lo conoce como el determinante de la red o constante de red .
El defecto de ortogonalidad es el producto de las longitudes de los vectores base dividido por el volumen del paralelepípedo;
De la definición geométrica se desprende que con igualdad si y sólo si la base es ortogonal.
Si el problema de reducción de red se define como la búsqueda de la base con el menor defecto posible, entonces el problema es NP-hard [ cita requerida ] . Sin embargo, existen algoritmos de tiempo polinomial para encontrar una base con defecto donde c es una constante que depende únicamente del número de vectores de base y la dimensión del espacio subyacente (si es diferente) [ cita requerida ] . Esta es una solución suficientemente buena en muchas aplicaciones prácticas [ cita requerida ] .
Para una base formada por sólo dos vectores, existe un método de reducción simple y eficiente, muy similar al algoritmo euclidiano para el máximo común divisor de dos números enteros. Al igual que en el algoritmo euclidiano, el método es iterativo; en cada paso, el mayor de los dos vectores se reduce sumando o restando un múltiplo entero del vector menor.
El pseudocódigo del algoritmo, a menudo conocido como algoritmo de Lagrange o algoritmo de Lagrange-Gauss, es el siguiente:
Entrada: una base para la red . Suponga que , de lo contrario intercámbielos. Salida: Una base con .
Mientras : # Redondear al entero más cercano
Consulte la sección sobre el algoritmo de Lagrange en [1] para más detalles.
Los algoritmos de reducción de red se utilizan en varias aplicaciones modernas de la teoría de números, incluido el descubrimiento de un algoritmo de espiga para . Aunque determinar la base más corta es posiblemente un problema NP-completo, algoritmos como el algoritmo LLL [2] pueden encontrar una base corta (no necesariamente la más corta) en tiempo polinomial con un rendimiento garantizado en el peor de los casos. LLL se utiliza ampliamente en el criptoanálisis de criptosistemas de clave pública .
Cuando se utiliza para encontrar relaciones de números enteros, una entrada típica al algoritmo consiste en una matriz de identidad aumentada con las entradas en la última columna que consisten en los elementos (multiplicados por una constante positiva grande para penalizar los vectores que no suman cero) entre los cuales se busca la relación.
Se utilizó el algoritmo LLL para calcular una base casi ortogonal para demostrar que la programación entera en cualquier dimensión fija se puede realizar en tiempo polinomial . [3]
Los siguientes algoritmos reducen las bases reticulares; también se enumeran varias implementaciones públicas de estos algoritmos.