2025-11-23T08:55:16.500829

Misfortunes of a mathematicians' trio using Computer Algebra Systems: Can we trust?

Durán, Pérez, Varona
Computer algebra systems are a great help for mathematical research but sometimes unexpected errors in the software can also badly affect it. As an example, we show how we have detected an error of Mathematica computing determinants of matrices of integer numbers: not only it computes the determinants wrongly, but also it produces different results if one evaluates the same determinant twice.
academic

Disgrazie di un trio di matematici che utilizzano Sistemi di Algebra Computazionale: Possiamo fidarci?

Informazioni Fondamentali

  • ID Articolo: 1312.3270
  • Titolo: Misfortunes of a mathematicians' trio using Computer Algebra Systems: Can we trust?
  • Autori: Antonio J. Durán (Universidad de Sevilla), Mario Pérez (Universidad de Zaragoza), Juan L. Varona (Universidad de La Rioja)
  • Classificazione: cs.SC (Symbolic Computation), cs.MS (Mathematical Software)
  • Data di Pubblicazione: 15 ottobre 2013 (preprint arXiv)
  • Link dell'Articolo: https://arxiv.org/abs/1312.3270

Riassunto

I sistemi di algebra computazionale forniscono un grande aiuto alla ricerca matematica, ma gli errori inaspettati nel software a volte possono influenzare gravemente la ricerca. Come esempio, gli autori mostrano come hanno rilevato un errore in Mathematica nel calcolo del determinante di matrici intere: non solo calcola erroneamente il determinante, ma il calcolo dello stesso determinante due volte produce risultati diversi.

Contesto di Ricerca e Motivazione

  1. Problema da risolvere: Gli autori hanno scoperto errori gravi nel software Mathematica durante il calcolo di determinanti di matrici con interi grandi durante la ricerca matematica, inclusi risultati di calcolo errati e il problema della produzione di risultati diversi per lo stesso calcolo.
  2. Importanza del problema:
    • I matematici dipendono sempre più dai sistemi di algebra computazionale per la ricerca
    • I risultati di calcolo errati possono portare a conclusioni matematiche errate
    • Il calcolo con interi grandi ha importanti applicazioni in campi come la crittografia
  3. Limitazioni dei metodi esistenti:
    • I sistemi di algebra computazionale commerciali sono "scatole nere" con algoritmi non trasparenti
    • Gli errori noti di solito non vengono divulgati agli utenti
    • È difficile applicare tecniche moderne di verifica del software
  4. Motivazione della ricerca: Gli autori, durante la ricerca dell'estensione dei risultati di Karlin e Szegő sui polinomi ortogonali, hanno scoperto che Mathematica e Maple fornivano risultati di calcolo diversi, portando a un'indagine più approfondita che ha rivelato errori sistematici in Mathematica.

Contributi Principali

  1. Scoperta e segnalazione di gravi errori di calcolo in Mathematica: Produzione di risultati errati nel calcolo del determinante di matrici con interi grandi
  2. Fornitura di un metodo riproducibile per generare errori: Progettazione di un programma casuale per generare matrici che attivano l'errore
  3. Rivelazione della natura non deterministica dell'errore: Il calcolo del determinante della stessa matrice può produrre risultati diversi
  4. Sollevamento di questioni sulla affidabilità dei sistemi di algebra computazionale: Avvio di una discussione importante su come fidarsi di questi sistemi

Spiegazione Dettagliata del Metodo

Processo di Scoperta del Problema

Gli autori, durante la ricerca del determinante di Casorati di polinomi ortogonali: det(Pf1(ak)Pf1(ak+1)Pf1(ak+l)Pf2(ak)Pf2(ak+1)Pf2(ak+l)Pfl(ak)Pfl(ak+1)Pfl(ak+l))\det \begin{pmatrix} P_{f_1}(a_k) & P_{f_1}(a_{k+1}) & \cdots & P_{f_1}(a_{k+l}) \\ P_{f_2}(a_k) & P_{f_2}(a_{k+1}) & \cdots & P_{f_2}(a_{k+l}) \\ \vdots & \vdots & \ddots & \vdots \\ P_{f_l}(a_k) & P_{f_l}(a_{k+1}) & \cdots & P_{f_l}(a_{k+l}) \end{pmatrix}

Utilizzando interi per costruire tutti gli esempi al fine di evitare problemi di numeri in virgola mobile, hanno scoperto che Mathematica e Maple fornivano risultati diversi.

Metodo di Isolamento dell'Errore

Per isolare il problema di calcolo, gli autori hanno progettato il seguente metodo per generare matrici che attivano l'errore:

  1. Generazione della matrice di base:
    basicMatrix = Table[Table[RandomInteger[{-99, 99}], {i, 1, 14}], {j, 1, 14}]
    
  2. Creazione di interi grandi:
    powersMatrix = DiagonalMatrix[{10^123, 10^152, 10^185, 10^220, 10^397,
    10^449, 10^503, 10^563, 10^979, 10^1059, 10^1143, 10^1229, 10^1319, 10^1412}]
    
  3. Aggiunta di perturbazioni casuali:
    smallMatrix = Table[Table[RandomInteger[{-999, 999}], {i, 1, 14}], {j, 1, 14}]
    
  4. Costruzione della matrice finale:
    bigMatrix = basicMatrix.powersMatrix + smallMatrix
    

Verifica dell'Errore

Attraverso il calcolo multiplo del determinante della stessa matrice per verificare l'errore:

a = Det[bigMatrix];
b = Det[bigMatrix];

I risultati hanno mostrato che a==b spesso restituisce False.

Configurazione Sperimentale

Ambiente di Test

  • Versioni del Software: Mathematica da 8.0 a 9.0.1
  • Sistemi Operativi: Mac e Windows
  • Software di Confronto: Maple e Sage come strumenti di verifica

Dati di Test

  • Dimensioni della Matrice: 14×14
  • Intervallo Numerico: Contiene interi grandi di circa 10.000 cifre
  • Metodo di Generazione: Generazione casuale della matrice di base, quindi costruzione attraverso amplificazione di potenze e piccole perturbazioni

Risultati Sperimentali

Scoperte Principali

  1. Errori di Calcolo: Il valore del determinante calcolato da Mathematica è completamente errato
  2. Non Determinismo: Lo stesso calcolo della matrice produce risultati diversi in più esecuzioni
  3. Dipendenza dalla Versione: L'errore appare nelle versioni 8 e 9, mentre le versioni 6 e 7 sembrano non essere interessate

Caso Specifico

In un esempio concreto:

  • Primo calcolo di Mathematica: N[a] = -3.263388173990166 × 10^9768
  • Secondo calcolo di Mathematica: N[b] = -8.158470434975415 × 10^9768
  • Risultato corretto (Maple/Sage): ≈ 1.95124219131987 × 10^9762

Segnalazione dell'Errore

Gli autori hanno segnalato l'errore a Wolfram Research il 7 ottobre 2013 (numero di caso: CASE:303438), ricevendo una risposta di conferma, ma il problema non è stato risolto nelle versioni successive.

Lavori Correlati

  1. Precedenti Storici: Simile all'errore di divisione del Pentium scoperto da Thomas Nicely nel 1994
  2. Verifica del Software: Menzione della ricerca su tecniche di verifica per sistemi di algebra computazionale open-source
  3. Casi di Successo del Software Matematico:
    • Prova del teorema dei quattro colori (Appel e Haken)
    • Prova della congettura di Keplero (Thomas Hales)
    • Software Kenzo che scopre errori in teoremi pubblicati

Conclusioni e Discussione

Conclusioni Principali

  1. Problemi di Affidabilità: Anche il calcolo simbolico (operazioni su interi) nei sistemi di algebra computazionale può produrre errori
  2. Portata dell'Impatto: Gli errori nel calcolo con interi grandi influenzano non solo la matematica teorica, ma anche campi applicativi come la crittografia
  3. Problema Sistematico: La natura "scatola nera" del software commerciale rende difficile prevedere e evitare errori

Limitazioni

  1. Condizioni di Attivazione dell'Errore Non Chiare: Impossibile prevedere con precisione quali matrici attiveranno l'errore
  2. Specificità della Versione: L'errore appare solo in versioni specifiche
  3. Dipendenza dalla Piattaforma: Richiede verifica su diversi sistemi operativi

Direzioni Future

  1. Sviluppo di migliori tecniche di verifica del software
  2. Aumento della trasparenza del software commerciale
  3. Istituzione di meccanismi più completi di segnalazione e correzione degli errori

Valutazione Approfondita

Punti di Forza

  1. Significato Pratico Rilevante: Rivela gravi errori in software matematico ampiamente utilizzato
  2. Metodo Scientifico: Verifica attraverso più sistemi indipendenti per garantire l'affidabilità della scoperta
  3. Forte Riproducibilità: Fornisce metodi dettagliati per riprodurre l'errore
  4. Scrittura Chiara: Presenta il processo di scoperta del problema in modo vivido sullo sfondo della ricerca matematica concreta

Punti Deboli

  1. Analisi Teorica Limitata: Manca un'analisi approfondita delle cause fondamentali dell'errore
  2. Mancanza di Soluzioni: Principalmente una segnalazione del problema, mancano metodi per prevenire o rilevare questo tipo di errori
  3. Portata dei Test: Principalmente concentrata su un tipo specifico di calcolo (determinante di matrice con interi grandi)

Impatto

  1. Valore Accademico: Ricorda ai ricercatori l'importanza dell'affidabilità delle prove assistite da computer
  2. Valore Pratico: Avvertimento importante per gli utenti che dipendono da Mathematica per calcoli con interi grandi
  3. Miglioramento del Software: Spinge gli sviluppatori di software a prestare attenzione e correggere questo tipo di errori

Scenari Applicabili

Le scoperte di questa ricerca si applicano a:

  • Ricerca che utilizza Mathematica per calcoli di matrici con interi grandi
  • Operazioni con numeri grandi in crittografia
  • Ricerca matematica che richiede calcolo simbolico ad alta precisione
  • Valutazione dell'affidabilità dei sistemi di algebra computazionale

Bibliografia

L'articolo cita le seguenti letterature importanti:

  1. Karlin & Szegő (1960/1961) - Ricerca originale sui determinanti di polinomi ortogonali
  2. Appel & Haken (1977) - Prova assistita da computer del problema dei quattro colori
  3. Hales (2005) - Prova della congettura di Keplero
  4. Ciaurri & Varona (2006) - Ricerca iniziale sull'affidabilità dei calcoli informatici

Sebbene questo articolo sia di breve lunghezza, rivela un problema importante: anche il calcolo simbolico apparentemente affidabile può contenere errori sistematici. Ci ricorda che quando dipendiam da computer per la ricerca matematica, dobbiamo mantenere cautela e sottolinea l'importanza della verifica del software e della trasparenza.