sabato 1 dicembre 2012

Parole informatiche: euristico

Tranquillizzo subito i filosofi, gli psicologi e gli studiosi di comunicazione: non intendo considerare il termine "euristico" come un'esclusiva dell'informatica, perché in effetti non lo è.
La parola deriva dal verbo greco εὑρίσκω, che significa "trovare", "scoprire".
Chi non conosce l'aneddoto secondo il quale il grande matematico Archimede si accorse, mentre faceva il bagno, che il volume di un corpo di forma irregolare poteva essere calcolato misurando il volume dell'acqua spostata dal corpo stesso una volta immerso, e per la soddisfazione gridò a squarciagola "eureka!" (in greco εὕρηκα)?
Ebbene, quella strana parola, che ha anche dato il nome ad un asteroide, a due film,  ad un poema di Edgar Allan Poe, ad una serie americana di fantascienza, e addirittura a undici città degli Stati Uniti, altro non è che il perfetto indicativo del sopra citato verbo εὑρίσκω, e significa quindi "ho trovato".

Il termine "euristico", quindi, ha a che fare con il "trovare" e con lo "scoprire".
Si parla infatti di metodo euristico, non solo in informatica, ma anche nell'ambito della filosofia e della psicologia, per indicare un approccio alla soluzione di un problema che non procede secondo un percorso predefinito, "a colpo sicuro", ma che si basa su procedimenti più creativi, innovativi, che di volta in volta si adattano alle circostanze e sono in grado di generare nuova conoscenza.

Su un terreno più specificamente informatico, l'approccio euristico si rivela utile quando il problema da risolvere non può essere affrontato con un metodo di "forza bruta", cioè quando l'esplorazione esaustiva di tutte le possibili soluzioni sarebbe impraticabile dal punto di vista dei tempi di esecuzione.
In questi casi noi informatici ricorriamo ad algoritmi euristici (come ad esempio quello descritto in un mio vecchio post), che, basandosi su una ricerca "intelligente" nello spazio delle soluzioni, riducono enormemente il tempo di calcolo. Siccome, come si sa, a questo mondo nulla è gratis, anche questo vantaggio in qualche modo lo dobbiamo pagare. In che modo? Rinunciando alla pretesa di arrivare necessariamente alla soluzione ottima, cioè la migliore di tutte in assoluto.
I metodi euristici hanno questa caratteristica fondamentale: non è detto che trovino sempre la soluzione migliore (come farebbe un algoritmo esatto, ma magari a costo di impiegarci miliardi di anni per trovarla).

1 commento:

  1. Si potrebbe anche dire che adottando un metodo euristicamente corretto, con un po' di fortuna ci si può anche imbattere nell'algoritmo migliore in assoluto. Voglio dire che i termini "migliore in assoluto" possono anche diventare una chimera innarrivabile e nel frattempo? Nel frattempo, un po' come nella storia dell'uovo e della gallina, meglio euristico che niente. E poi il bello di un algoritmo euristico è che è migliorabile quindi potenzialmente sempre in crescita.
    Grazie per le tue parole informatiche.
    Un saluto
    Marco

    RispondiElimina