Algoritmos para matrizes inteiras esparsas grandes


12

Estou procurando uma biblioteca que executa operações de matriz em grandes matrizes esparsas sem sacrificar a estabilidade numérica. As matrizes terão mais de 1000 por 1000 e os valores da matriz estarão entre 0 e 1000. Eu executarei o algoritmo de cálculo do índice , gerando serialmente vetores de linha (esparsos) da matriz. À medida que desenvolvo cada linha, precisarei testar a independência linear. Depois de preencher minha matriz com o número desejado de vetores linearmente independentes, precisarei transformar a matriz em forma de escalão de linha reduzida.

O problema agora é que minha implementação usa a eliminação gaussiana para determinar a independência linear (garantindo a forma do escalão da linha depois que todos os meus vetores de linha forem encontrados). No entanto, dada a densidade e o tamanho da matriz, isso significa que as entradas em cada nova linha se tornam exponencialmente maiores ao longo do tempo, pois o lcm das entradas principais deve ser encontrado para realizar o cancelamento. Encontrar a forma reduzida da matriz agrava ainda mais o problema.

Portanto, minha pergunta é: existe um algoritmo, ou melhor ainda, uma implementação que possa testar a independência linear e resolver o formulário de escalão de linha reduzido, mantendo as entradas o menor possível? Um teste eficiente para independência linear é especialmente importante, pois no algoritmo de cálculo do índice ele é executado de longe.

Respostas:


5

Você pode trabalhar no módulo uma série de números primos grandes para obter os resultados através desses números primos e, em seguida, verificar se existem racionais com poucos dígitos suficientes para satisfazer essas congruências. Se sim, você pode verificar por um vetor de matriz multiplicar se a aproximação encontrada é exata. Isso pode ser transformado em um algoritmo de decisão exato.

101000

links relacionados:
http://cs.ucsb.edu/~koc/docs/j21.pdf
http://dl.acm.org/citation.cfm?id=355767
http://dl.acm.org/citation. cfm? id = 355765

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.