Algoritmi per matrici intere sparse di grandi dimensioni


12

Sto cercando una libreria che esegua operazioni con matrici su grandi matrici sparse senza sacrificare la stabilità numerica. Le matrici saranno 1000+ per 1000+ e i valori della matrice saranno compresi tra 0 e 1000. Eseguirò l'algoritmo di calcolo dell'indice, quindi genererò i vettori (sparsi) di riga della matrice in serie. Mentre sviluppo ogni riga, dovrò testare l'indipendenza lineare. Una volta riempito la mia matrice con il numero desiderato di vettori linearmente indipendenti, dovrò quindi trasformare la matrice in una forma di scaglione ridotto.

Il problema ora è che la mia implementazione utilizza l'eliminazione gaussiana per determinare l'indipendenza lineare (assicurando la forma del tratteggio di riga una volta trovati tutti i miei vettori di riga). Tuttavia, data la densità e le dimensioni della matrice, ciò significa che le voci in ogni nuova riga diventano esponenzialmente più grandi nel tempo, poiché è necessario trovare il mcm delle voci iniziali per eseguire la cancellazione. Trovare la forma ridotta della matrice aggrava ulteriormente il problema.

Quindi la mia domanda è: esiste un algoritmo, o meglio ancora un'implementazione, che può testare l'indipendenza lineare e risolvere il modulo di scaglione di riga ridotta mantenendo le voci più piccole possibili? Un test efficiente per l'indipendenza lineare è particolarmente importante poiché nell'algoritmo di calcolo dell'indice viene eseguito di gran lunga il più.

Risposte:


5

Puoi lavorare su un numero di numeri primi grandi per ottenere i risultati su questi numeri primi, quindi controlla se esistono razionali con poche cifre sufficienti a soddisfare queste congruenze. In caso affermativo, puoi verificare per moltiplicatore di matrici se l'approssimazione trovata è esatta. Questo può essere trasformato in un algoritmo decisionale esatto.

101000 (abbastanza possibile nel tuo scenario), in genere non troverai soluzioni i cui componenti richiedono meno di qualche migliaio di cifre.

link correlati:
http://cs.ucsb.edu/~koc/docs/j21.pdf
http://dl.acm.org/citation.cfm?id=355767
http://dl.acm.org/citation. cfm? id = 355.765

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.