Un algoritmo (anche detto programma) è un insieme di operazioni da svolgere, che devono essere eseguite per risolvere un problema o per ottenere un risultato richiesto. Troviamo algoritmi ovunque intorno a noi: dalla ricetta per cucinare una pietanza, alle indicazioni stradali, fino alle regole per eseguire operazioni chirurgiche.
Ogni volta che qualcuno (che chiameremo richiedente) richiede che qualcun altro (che chiameremo agente) metta in atto un insieme preciso di operazioni (che chiameremo istruzioni), sta eseguendo un algoritmo.
Le istruzioni possono essere di diversi tipi, in base al numero di agenti disponibili, alla loro capacità di riconoscere e di eseguire istruzioni, alle caratteristiche del lavoro da svolgere e anche al modo di ragionare (scelta, gusti, fantasia) del richiedente:
Il richiedente può comunicare le istruzioni all'agente in modi e forme anche molto diverse, ma perché funzionino devono obbligatoriamente essere comprensibili ed eseguibili dall'agente.
Il funzionamento dell'algoritmo dipende molto dalle caratteristiche dell'agente. Ad esempio, i due algoritmi:
e
presuppongono agenti completamente diversi: il primo capisce la lingua italiana e può decidere autonomamente l'ordine in cui eseguire le istruzioni; il secondo capisce il linguaggio Assembler, e dispone di (almeno) due 'contenitori' (registri di memoria) denominati EAX ed EBX.
Descriverò soltanto il più semplice algoritmo per eseguire un algoritmo: supponiamo di avere un elenco di un numero ben preciso di istruzioni, numero che chiameremo N. Supponiamo anche di avere un contenitore (detto indice), dove possiamo memorizzare un numero. Il funzionamento è il seguente:
Spero di essere stato chiaro e utile.
Francesco