Eu tenho um código de modelagem baseado em Kalman Filter que desenvolvi para um aplicativo de mapeamento ionosférico regional quase em tempo real. O código assimila dados de diferentes sensores em um mapa (descrito por um conjunto de funções básicas) usando um filtro Kalman.
Estou tentando escalar isso para uma região maior e mais sensores, no entanto, a parte da álgebra matricial do Filtro Kalman está ficando muito lenta, devido às matrizes grandes (milhares de linhas / colunas) envolvidas. Eu suspeito que a melhor maneira de atacar o problema de tempo de execução é usar o fato de que essas matrizes geralmente são muito esparsas, com 80% ou mais do total de elementos zero. A razão para isso é que cada sensor possui um parâmetro de polarização estimado conjuntamente com os coeficientes do mapa. Isso aparece como um 1 na coluna para esse sensor na matriz Kalman H, com zero nas colunas para todos os outros sensores e coeficientes de mapa. Existem centenas de sensores, cada um contribuindo com 8 a 10 observações em cada época, portanto, muitos zeros.
Eu poderia analisar a implementação dos componentes do filtro Kalman usando algoritmos esparsos, especificamente multiplicação e inversão *, mas me pergunto se existe uma abordagem ainda melhor que reencaminhe o filtro Kalman de uma forma diferente, mais adequada para os casos em que as matrizes são escasso? Sei que poderia usar um filtro Kalman de conjunto ou algo semelhante, mas, se possível, gostaria de manter a otimização do filtro Kalman linear puro; o volume total de dados não é proibitivo, apenas as grandes matrizes esparsas que resultam do modelo linear.
Em termos de implementação, isso é feito em IDL, no entanto, a álgebra da matriz principal é feita por meio de chamadas para bibliotecas externas otimizadas de LA (especificamente ATLAS).
* Eu sei que uma implementação ideal do filtro Kalman evita inversão e, ao invés disso, usa uma decomposição UD. Estou pensando em tentar implementar algo assim, para que possa ser a resposta, mas estou buscando se há uma solução melhor, dada a escassez das matrizes.