Viagra online
www.flickr.com

Ripartiamo dalle basi (Algorithms)

dicembre 13, 2006 12:07 pm

Un libro che riparte dalle basi.. dagli algoritmi. Algorithms di Dasgupta, Papadimitriou, Vazirani; rilasciato gratuitamente sul web. E se pensate che gli algoritmi siano solamente per i programmatori.. vi sbagliate di grosso.

Supponiamo abbiate la vostra libreria ordinata per titolo e in ordine alfabetico: se volete cercare “Lo zen e l’arte di aggiustare la motocicletta” come fate? Un modo è quello di scorrere tutti i libri fino a trovarlo… ma allora averla ordinata non è servito a molto giusto?!
Probabilmente getterete uno sguardo più o meno verso la metà della pila di libri, ne prendete uno e guardate con che lettera inizia il titolo: se avete beccato proprio il libro che volete.. siete molto fortunati.. siete caduti sul caso ottimo (detto anche botta di culo). Altrimenti guardate con che lettera inizia il titolo, per esempio “Io, Robot”. Allora sapete che il libro che cercate è tra questo e la fine.
Ripetendo il processo arriverete ben presto a trovare quello che cercate.

Questo esempio può sembrare stupido, perché noi umani siamo abituati a risolvere i problemi ad occhio, ma immaginate di avere 1 milione di libri.. l’occhio diventa meno affidabile giusto??

Quello che vi ho appena descritto, in realtà è un algoritmo, si chiama algoritmo di ricerca binaria. Sicuramente lo avrete usato tante volte senza mai rendervene conto.

Ovviamente per un programmatore (in senso lato, non solo in senso informatico) la conoscenza degli algoritmi è la base. Ma cos’è un algoritmo? Secondo me una buona definizione potrebbe essere una sequenza di semplici operazioni che dato un problema di partenza portano alla sua risoluzione. In pratica un algoritmo non è altro che la spiegazione logica di come un problema può essere risolto.
L’aspetto più bello degli algoritmi è la genericità. Un buon algoritmo può essere riutilizzato per risolvere problemi di natura diversa applicando sempre la stessa sequenza logica di operazioni. Questa è l’operazione più difficile, che richiede molta esperienza.. dato un problema riuscire a schematizzarlo in modo da poter poi applicare uno dei tanti algoritmi presenti in letteratura.

Ok, forse sto banalizzando un po la cosa.. se nei corsi scientifici si fanno lezioni e lezioni sugli algoritmi un motivo ci sarà.. ma alla base il concetto di algoritmo non dovrebbe essere legato in maniera stretta a quello di “scienza”.

Sono sempre stato affascinato dall’argomento, non tanto dagli aspetti tecnico/scientifici ad essi legati, quanto dalla capacità della mente umana di formulare soluzioni che possono risolvere problemi profondamente diversi tra loro.

Ma ammetto che dalla fine dei miei studi ho un po abbandonato la letteratura sull’argomento, escludendo alcuni studi sulla “complessità” degli algoritmi di ottimizzazione, e questo libro arriva a fagiolo. In più è liberamente scaricabile dal sito.. ragione in più per dargli un’occhiata.

Un argomento interessante.. magari per una bella puntata del podcast 😉
Mandatemi i vostri algoritmi preferiti, quelli che più si adattano alla vita quotidiana, e vediamo cosa fare…

Nessuna risposta a “Ripartiamo dalle basi (Algorithms)”

This blog is protected by dr Dave\'s Spam Karma 2: 147257 Spams eaten and counting...