Eu tenho a seguinte situação: Eu tenho uma sequência de vetores e para cada eu quero calcular o produto onde é fixado desde o início. Embora não haja informações sobre a estrutura de , normalmente possui um padrão específico em que muitos valores são repetidos e eu gostaria de calcular esses produtos o mais rápido possível.A x i A x i A
Um exemplo de é assim:
Aqui as regiões brancas são 0.
Gostaria de saber se existe alguma maneira de armazenar informações sobre ou modificá-las de alguma forma que me permita reduzir o número de operações para cada produto. Para linhas com 0, isso é trivial - é possível armazenar apenas as indicações de linha que indicam essas linhas. Também é possível armazenar informações sobre quais linhas são duplicadas para reutilizar os cálculos de linha. Também considerei ordenar as linhas da matriz para minimizar a diferença média entre cada linha e calcular apenas a diferença em cada linha. Isso parece ter problemas para os padrões mais complicados, no entanto.
Eu queria saber se existem métodos conhecidos para esse tipo de problema.
Edit: outra idéia que tive é que desde o não. de valores únicos na matriz é bastante baixo, pode-se decompor o produto como que contém apenas um valor único, mas ainda não tenho certeza se isso pode proporcionar alguma vantagem para esse problema.A i