Algoritmo di Lagrange
In matematica, e più precisamente in algebra lineare, l'algoritmo di Lagrange è un algoritmo utile a trovare una base ortogonale in uno spazio vettoriale di dimensione finita munito di un prodotto scalare. Viene utilizzato nel problema della ricerca di un vettore di norma minima (Shortest Vector Problem, abbreviato in SVP), ed è collegato con l'algoritmo LLL (algoritmo di Lenstra-Lenstra-Lovász).
Si tratta di una variante del processo di ortogonalizzazione di Gram-Schmidt utilizzata nel caso in cui il prodotto scalare non sia definito positivo.
L'algoritmo
Sia uno spazio vettoriale di dimensione finita su un campo , con prodotto scalare . L'algoritmo costruisce una base ortogonale a partire da una base data. Si tratta di applicare iterativamente per le mosse seguenti:
- Se non è isotropo, allora e si definisce
- Il risultato è un vettore che continua a formare una base con i vettori restanti, ma ortogonale a tutti i vettori successivi: infatti per ogni . Quindi si sostituisce con .
- Se è un vettore isotropo, viene scambiato con un elemento non isotropo con . Nel caso in cui tutti tali vettori siano isotropi, si cerca un vettore non isotropo tra i con . Se anche tutti questi sono isotropi, allora la base è già ortogonale e l'algoritmo si interrompe.