En computación científica , el almacenamiento de matriz de horizonte , o SKS, o almacenamiento de matriz de banda variable , o esquema de almacenamiento de envolvente [1] es una forma de una matriz de formato de almacenamiento de matriz dispersa que reduce el requisito de almacenamiento de una matriz más que el almacenamiento en bandas . En el almacenamiento en bandas, se almacenan todas las entradas dentro de una distancia fija desde la diagonal (llamada medio ancho de banda). En el almacenamiento de horizonte orientado a columnas, solo se almacenan las entradas desde la primera entrada distinta de cero hasta la última entrada distinta de cero en cada columna. También existe el almacenamiento de horizonte orientado a filas y, para matrices simétricas, generalmente solo se almacena un triángulo. [2]
El almacenamiento de la línea del horizonte se ha vuelto muy popular en los códigos de elementos finitos para mecánica estructural , porque la línea del horizonte se conserva mediante la descomposición de Cholesky (un método para resolver sistemas de ecuaciones lineales con una matriz simétrica definida positiva ; todo el relleno cae dentro de la línea del horizonte), y los sistemas de ecuaciones de elementos finitos tienen una línea del horizonte relativamente pequeña. Además, el esfuerzo de codificación de la línea del horizonte Cholesky [3] es aproximadamente el mismo que para Cholesky para matrices en bandas (disponible para matrices en bandas , por ejemplo, en LAPACK ; para un código prototipo de línea del horizonte, consulte [3] ).
Antes de almacenar una matriz en formato skyline, las filas y columnas se suelen renumerar para reducir el tamaño del skyline (la cantidad de entradas distintas de cero almacenadas) y para disminuir la cantidad de operaciones en el algoritmo de skyline de Cholesky. El mismo algoritmo de renumeración heurística que reduce el ancho de banda también se utiliza para reducir el skyline. El algoritmo básico y uno de los primeros en hacerlo es el algoritmo Cuthill-McKee inverso .
Sin embargo, el almacenamiento en skyline no es tan popular para sistemas muy grandes (muchos millones de ecuaciones) porque el skyline de Cholesky no se adapta tan fácilmente para la computación masivamente paralela , y los métodos dispersos generales [4] , que almacenan solo las entradas distintas de cero de la matriz, se vuelven más eficientes para problemas muy grandes debido a que requieren mucho menos relleno.