Mi sono accorto che sto parlando quasi esclusivamente della guerra. Chiedo perdono e decido una moratoria unilaterale. Sto leggendo un libro molto bello (che commenterò quando avrò finito) e che mi ha fatto scoprire diverse cose che non sapevo.
Una di queste (che mi rimanda alle mie lontanissime origini di microelettronico) è l'esistenza dell'elettronica evoluzionistica, con gli esperimenti di Adrian Thompson. Questo strano campo di ricerca consiste nell'applicare una evoluzione simulata a circuiti elettrici per raggiungere un determinato scopo.
Esiste qualcosa di simile nel software, sono gli algoritmi genetici, citati anche in Preda di Crichton. Molto citati e pochissimo usati e credo di sapere il motivo, ma lo dirò alla fine del post.
Thompson ha preso un FPGA, un circuito elettronico riprogrammabile (il XC6200, per i più curiosi) e gli ha dato un compito: riconoscere fra due segnali diversi (uno a 100Hz e uno a 1Khz).
E' partito da un insieme casuale di programmazioni dell'FPGA, ha stabilito un modo per creare una nuova generazione, ricombinando le soluzioni della generazione precedente, ha determinato il modo di scegliere le migliori soluzioni e ha giocato a fare il dio stando a vedere cosa succedeva.
Dopo qualche migliaio di si è evoluta una soluzione che ha diverse proprietà sconcertanti:
- è straordinariamente concisa (usa solo 32 celle), molto molto meno di quante ne avrebbe usate un progettista.
- funziona come un circuito analogico benché utilizzi un FPGA che è digitale
- sfrutta proprietà (difetti?) del circuito riprogrammabile che non erano conosciuti: cinque delle 32 celle non sono nemmeno collegate con le altre, ma se le togli il circuito non funziona. Probabilmente c'è qualche accoppiamento (forse magnetico, o capacitivo) non voluto
Ma soprattutto (soprattutto), è stato impossibile capire come funziona. Con buona pace di quelli che vogliono capire come funziona il cervello, qui abbiamo 32 (trentadue, solo!) elementi che bastano per produrre un sistema che funziona e che non capiamo come.
Qualcuno ricorderà le letture giovanili di Asimov: il cervello positronico dei robot era troppo complesso per poter capire veramente come funzionasse, andava analizzato dal difuori (dalla robopsicologia). Evidentemente la realtà imita la fantasia (Asimov ne sarebbe stato deliziato).
Questo è il motivo per cui (secondo me) gli algoritmi genetici non hanno avuto grande successo (a prescindere dalla loro efficacia su cui non ho notizie recenti). Già il software fa quello che gli pare quando è progettato, figuriamoci se dobbiamo mettere in mezzo ai nostri programmi cose che non sappiamo nemmeno come e perché funzionano (gli spiritosi rileveranno che la Microsoft farebbe bene a provare).
Per me questa è una cosa misteriosa e affascinante. Oggi ho fatto giornata, spengo il PC e me ne vado al mare.
L'articolo di Thompson è qui.

9:26:16 AM
|