En matemáticas, el objetivo de la reducción de la base de la red es encontrar una base con vectores cortos, casi ortogonales, cuando se le da una base de red entera como entrada. Esto se realiza mediante diferentes algoritmos, cuyo tiempo de ejecución suele ser al menos exponencial en la dimensión de la red.
Una medida de casi ortogonalidad es el defecto de ortogonalidad . Esto compara el producto de las longitudes de los vectores base con el volumen del paralelepípedo que definen. Para vectores de 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 totalmente 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 le conoce como determinante de la red o constante de red .
El defecto de ortogonalidad es el producto de las longitudes del vector base dividido por el volumen del paralelepípedo;
De la definición geométrica se puede apreciar que con igualdad si y sólo si la base es ortogonal.
Si el problema de reducción de la red se define como encontrar la base con el defecto más pequeño posible, entonces el problema es NP-duro [ cita necesaria ] . 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 base y la dimensión del espacio subyacente (si es diferente) [ cita necesaria ] . Esta es una solución bastante buena en muchas aplicaciones prácticas [ cita requerida ] .
Para una base que consta de sólo dos vectores, existe un método de reducción simple y eficiente muy análogo al algoritmo euclidiano para el máximo común divisor de dos números enteros. Como ocurre con 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 más pequeño.
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 celosía . Supongamos que , de lo contrario, cá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 celosía se utilizan en varias aplicaciones teóricas de números modernas, incluido el descubrimiento de un algoritmo de espita 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 polinómico 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 enteras, 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 relación.
El algoritmo LLL para calcular una base casi ortogonal se utilizó para demostrar que la programación entera en cualquier dimensión fija se puede realizar en tiempo polinómico . [3]
Los siguientes algoritmos reducen las bases de la red; También se enumeran varias implementaciones públicas de estos algoritmos.