Euristica
In generale, un'euristica è una «regola pratica» o una buona guida da seguire quando si prendono decisioni. In informatica, il termine euristica ha un significato simile, ma si riferisce in modo specifico agli algoritmi.
Quando programmano software, gli sviluppatori puntano a creare gli algoritmi più efficienti per svolgere varie attività. Queste possono includere processi semplici, come ordinare numeri, oppure funzioni complesse, come elaborare immagini o videoclip. Poiché queste funzioni spesso accettano un'ampia gamma di input, un algoritmo può funzionare bene in determinati casi, ma non altrettanto bene in altri.
Per esempio, l'algoritmo di compressione delle immagini GIF funziona bene con immagini piccole e con pochi colori, ma non altrettanto bene della compressione JPEG con immagini grandi e con molti colori. Se sapessi di dover lavorare solo con immagini piccole che non presentano un'ampia varietà di colori, ti basterebbe la compressione GIF. Non dovresti preoccuparti delle immagini grandi e colorate, quindi non avrebbe senso ottimizzare l'algoritmo per questo tipo di immagini. Allo stesso modo, gli sviluppatori usano spesso algoritmi che funzionano bene nella maggior parte delle situazioni, anche se possono essere inefficienti in situazioni poco comuni.
Pertanto, un processo euristico può includere l'esecuzione di test e l'ottenimento di risultati per tentativi ed errori. Quando vengono testati più dati di esempio, diventa più facile creare un algoritmo efficiente per elaborare tipi di dati simili. Come detto in precedenza, questi algoritmi non sono sempre perfetti, ma funzionano bene nella maggior parte dei casi. L'obiettivo delle euristiche è sviluppare un processo semplice che produca risultati accurati in un tempo accettabile.
Metti alla prova le tue conoscenze