6 x 9 = 42

“Ho sempre detto che c’era qualcosa di fondamentalmente sbagliato nell’universo…” (Arthur Dent)

Vita si’, Vita no

Pubblicato da scardax su Giugno 19, 2009

La distinzione fra cio’ che é vivo e cio’ che non lo é ha sempre agitato gli animi: basti pensare ai dibattiti sull’aborto, alle posizioni “estremiste” di alcuni vegetariani (o vegani, che dir si voglia), a diversi movimenti ecologisti…  Cercare di approcciarsi al problema razionalmente sarà l’oggetto di questo post.

E’ probabilmente impossibile trovare una definizione di “vivere” su cui chiunque concordi, in quanto la parola stessa si porta appresso gran parte della nostra cultura, delle nostre esperienze, religioni e cosi’ via. Quindi, piuttosto che capire cos’é la vita per poi tracciare una linea che separi i vivi dai non vivi, cerchiamo di operare prima questa distinzione per poi generalizzare in una definizione.

In particolare, cominciamo dai fatti noti: io, voi che leggete e le persone che conoscete sono, indubbiamente, vive (a meno che non siate bot in giro per il web). Su questo, almeno, direi che tutti possiamo concordare. Potremmo anche concordare facilmente sul fatto che cani, gatti e, generalmente, qualunque animale di taglia sufficientemente grande sia vivo. Ho dovuto specificare la condizione della taglia perché scendendo troppo in basso cominciano a sorgere alcuni problemi: una formica, ad esempio, é viva? Il suo sistema nervoso é estremamente meno sviluppato di quello di un cane, ed inoltre il cervello non é sufficientemente complesso per l’emergere di una coscienza. Sono creature complicate, é indubbio, ed ottengono risultati straordinari come gruppo, ma non sono molto più complicate di alcuni apparecchi elettronici che usiamo ogni giorno.

Scendere lungo la scala biologica diventa pero’ via via più semplice: alcuni potrebbero dire che un virus é vivo, pochi affermerebbero che una singola cellula lo é, e la domanda non ha neanche senso se posta riguardo ad un unico atomo. Diminuendo le dimensioni ci siamo persi la vita da qualche parte, ma la domanda cruciale é: dove? In che punto?

Lasciamo da parte per un attimo questa domanda, e torniamo a considerare qualcosa di verosimilmente vivo: un grillo, ad esempio. Ecco un’altra domanda: un robot in tutto e per tutto simile ad un grillo (stesse articolazioni, uguale configurazione neuronica e cosi’ via) é vivo? Oggetti di questo genere sono stati realizzati, e si comportano in maniera identica ai grilli “naturali”, eppure difficilmente un’associazione animalista si batterebbe per i loro diritti. Eppure, cosa li distingue dal grillo originale? Le risposte sono due:

  1. Non sono formati da tessuti organici, ma da metallo. Questa é una distinzione un po’ triste, in quanto ci toccherebbe concludere che il carbonio é “vivo”, ma il silicio no (eppure chimicamente non sono neanche troppo diversi).
  2. Non sono “nati” né cresciuti, ma sono stati costruiti. Questo vorrebbe dire che voi vi dovreste considerare “vivi” solo in relazione alla vostra nascita ed alla vostra crescita. Eppure, in questo momento vi sentite indubbiamente vivi, e questo momento non dipende certo dal fatto che siate cresciuti nel passato (o forse si’). Lasciamo anche quest’obiezione aperta.

Avendo esaminato un po’ di punti di vista, potremmo ora cercare di metterci d’accordo su di essi. Io vi dico che un robot é vivo, qualcuno di voi mi risponde che no, non lo é, ma é viva una formica, io vi rispondo che allora anche una cellula lo é, altri mi dicono di no, e cosi’ via. Conclusione: é sostanzialmente impossibile tracciare una linea di demarcazione oggettiva fra cio’ che é vivo e cio’ che non lo é. Eppure, la logica di tutti i giorni ci dice che, se non possiamo distinguere due oggetti, quei due oggetti sono la stessa cosa (o, equivalentemente, non ha senso l’azione di distinguerli). Quindi, possiamo concludere che non vi é differenza fra cio’ che é vivo e cio’ che non lo é. Peggio ancora, non ha neanche senso il concetto di vita.

Questa conclusione, che ricorda un po’ la filosofia Zen, non é poi cosi’ astrusa come puo’ sembrare a prima vista: “vita” é un nome di comodo che diamo ad organismi particolarmente complessi, ma che non esiste in Natura. Non vi é un momento in cui, continuando a combinare atomi in maniere sempre più complesse, emerge un qualcosa di oggettivo che poi chiamiamo “vita”.

Concludere un post del genere é difficile, quindi lascio a voi il compito, se vorrete dirmi cosa ne pensate dell’argomento. Spero comunque di avervi un minimo appassionato al dibattito!

Pubblicato su Riflessioni | Contrassegnato da tag: , , | 11 Commenti »

Pensando In Grande

Pubblicato da scardax su Giugno 10, 2009

Una delle cose sicuramente più affascinanti nella matematica é come alcune idee, scoperte inizialmente per uno o più casi particolari, si siano nel tempo generalizzate, incastrandosi perfettamente, ad ogni generalizzazione, nell’impalcatura complessiva matematica.

Prendiamo ad esempio il caso dell’elevamento a potenza: quando viene insegnato ai ragazzi a scuola, viene esplicitamente detto che “a elevato alla b vuol dire a moltiplicato per se stesso b volte“. In simboli, questo equivale a dire che ab = a * a * … * a (dove a compare esattamente b volte, appunto). Notate come, mentre a puo’ assumere qualsiasi valore, in questa definizione b é implicitamente un numero intero positivo (ovvero, un numero naturale, escludendo lo zero).

Possiamo pensare di estendere questa definizione includendo anche lo zero: pero’, cosa vuol dire “a moltiplicato per se stesso zero volte“? Qui possiamo fare quel che viene tecnicamente detto “far quadrare i conti”: dare all’operazione a0 un valore convenzionale di modo che le proprietà dell’elevamento a potenza siano preservate. In particolare, pensiamo alla proprietà ab+c = ab * ac. Se c=0, il membro di sinistra vale esattamente ab, quindi a destra ac dovrà essere pari a 1. Poiché c é zero, possiamo dire che un numero elevato alla zero fa sempre uno (convenzionalmente).

Notiamo come ci stiamo allontanando dalla definizione intuitiva per rendere quest’operazione astratta, ma generale. Il passo successivo é ovviamente dare la possibilità a b di essere negativo: saltando i ragionamenti fatti sulle proprietà, si arriva ad affermare che ab (con b<0) = 1/a-b (ovvero il reciproco di a elevato alla -b). Qui ci stiamo completamente lasciando guidare dalla matematica: affermare “a moltiplicato per se stesso meno tre volte” non ha più alcun senso.

Una delle proprietà dell’elevamento a potenza, peraltro, é che abc = ab*c. Ricordiamoci poi la definizione di radice n-esima: la radice n-esima di un numero a é quel numero che, moltiplicato per se stesso n volte, dà come risultato proprio a. Scrivendo questa seconda proprietà in formule (l’immagine é presa da Wikimedia):

Ricollegandoci alla proprietà degli esponenziali, capiamo quindi che possiamo scrivere la radice ennesima di un numero come a1/n. Infatti, a(1/n)n = an/n = a1 = a. Adesso, quindi, possiamo anche scrivere il risultato di ab/c: la radice c-esima di a, elevata alla b. Abbiamo generalizzato la formula di partenza anche per un qualunque b razionale!

E questo non é ovviamente tutto: e se b fosse irrazionale (ad esempio, pi greco)? Bé, possiamo generalizzare la formula in modo che sia valida per qualunque numero reale b (non voglio esasperarvi: su Wikipedia, comunque, c’é un accenno a questa definizione). Poi possiamo passare ai numeri complessi, agli iperreali, ecc.

Oppure, potremmo pensare all’operazione: “a elevato a potenza b c volte” (operazione di tetrazione in matematica). Ma qui c é un numero intero! E se fosse un numero negativo? Bé, possiamo pensare che…


NB: l’ispirazione del post viene in parte da un capitolo de “La Strada che Porta alla Realtà” di Penrose, sia da un articolo di Odifreddi su un numero di “Le Scienze” di qualche tempo fa. Fra l’altro, abbiamo superato 5000 visite, ed io non posso neanche andare ad ubriacarmi per festeggiare visto che sto sotto esami. In ogni caso: grazie a tutti! :D

Pubblicato su Matematica | Lascia un commento

Anche I Botanici Possono

Pubblicato da scardax su Giugno 2, 2009

Lo studio delle funzioni é uno di quegli argomenti che, al Liceo, o si amano o si odiano. C’é chi davanti ad un seno ha un collasso, chi si diverte non poco a disegnarlo, e chi lo preferisce decisamente dal vivo. Ve li ricordate i bei vecchi tempi? “Dunque, il logaritmo é crescente, quindi… no, aspetta, questo ha base minore di uno… pero’ se lo integriamo su tutto l’asse positivo…“.

Ovviamente i matematici si son stufati in fretta delle funzioni semplici come si vedono a scuola: una volta disegnato il grafico, tutto il divertimento é finito. E’ molto più bello parametrizzarle: ad esempio, con y=cos(x) avete una sola funzione, ma se scrivete y=a*cos(x) avete infinite funzioni, una per ogni possibile valore di a (in particolare, infinite funzioni che differiscono fra loro per l’ampiezza)! Nel caso del coseno é semplice, ma parametrizzando un esponente già si ottiene un risultato migliore: con y=xa otteniamo una miriade di funzioni da studiare: una retta con a=1, una parabola con a=2 e cosi’ via.

E c’é anche chi ha voluto strafare. Ad esempio, nel 2003 un botanico belga, Johan Gielis, ha scoperto quella che é stata simpaticamente definita “la superformula”, capace, a seconda di sei diversi parametri, di far ottenere le figure più diverse. La sua formula, che puo’ spaventare, é la seguente (immagine presa da Wikimedia):

Una piccola precisazione é necessaria: questa formula non é espressa nella forma con coordinate cartesiane che molti conoscono, che associa ad ogni punto sull’ascissa un punto sull’ordinata, ma in coordinate polari: ovvero, ad ogni angolo del piano associa una distanza dal centro (rispettivamente, phi e rho nella formula). I parametri sono a, b, m, n1, n2 ed n3. Una serie di possibili forme ottenibili si trova al seguente link:

http://upload.wikimedia.org/wikipedia/commons/1/1c/Superformula.gif

Fine? Ancora no: moltiplicando opportunamente fra loro diverse “superformule”, si possono ottenere grafici non più in due sole dimensioni, ma in tre e (perché no) in quattro, cinque, sei… Un sacco di esempi in 3D sono al seguente link (da cui é anche possibile scaricare un programma per fare altri tentativi):

http://local.wasp.uwa.edu.au/~pbourke/geometry/supershape3d/

Ancora non si sa se questa formula racchiuda in sé qualche particolare segreto carpito alla Natura, quel che é certo é che (con tutto il rispetto) é uno straordinario perditempo per chi ha voglia di fare qualche tentativo cambiando i vari parametri.

Un grazie a Matematicamente.it per avermi fatto conoscere l’argomento del topic. Fra l’altro, reitero la richiesta di un po’ di tempo fa: c’é nessuno che mi segua dall’estero, disposto a farsi disturbare da qualche email per la gloria scientifica? Scrivete nei commenti.

Pubblicato su Matematica | Contrassegnato da tag: , , , | 4 Commenti »

Problemi di Senso Comune

Pubblicato da scardax su Maggio 21, 2009

Questa ve la devo assolutamente raccontare.

Negli anni ‘80, uno dei maggiori ricercatori di Intelligenza Artificiale (o, come va di moda chiamarla oggi, di Scienze Cognitive), Douglas Lenat, era reduce da due mezzi insuccessi nel tentativo di sviluppare macchine “creative”: aveva inizialmente sviluppato un programma, Am (Automatic Mathematician), capace di esplorare nuove idee matematiche a partire da alcuni concetti standard, che pero’ aveva smesso di dare risultati dopo i primi promettenti successi.

In seguito aveva pensato di puntare più in alto, progettando un sistema, Eurisko, capace, a differenza di Am, di fare ricerche nei campi più disparati. Diede ottimi risultati in alcuni giochi di strategia, ebbe qualche altra idea notevole, ma in seguito comincio’ a bloccarsi sempre più di frequente. Ad un certo punto, secondo la leggenda, ebbe l’idea di cancellare tutte le sue idee, ma l’idea stessa si cancello’ prima di riuscire a fare ulteriori danni.

A quel punto, uno pensa, Lenat si sarebbe dovuto scoraggiare. Invece no. Si chiese: cos’é che distingue il calcolatore da noi? Risposta: l’immensa quantità di informazioni che noi diamo per scontate ma che lui non conosce. Ad esempio, che una forchetta si usa per mangiare, o che una foglia tipicamente sta attaccata ad un albero. E quindi concluse: creiamo un programma che le conosca, tutte queste cose. Anzi, che conosca TUTTO. Un’enciclopedia.

Fondo’ una compagnia, chiamo’ diversi esperti nei settori più svariati, e comincio’ a popolare il database del nuovo software, chiamato Cyc (da EnCYClopedia), di centinaia e centinaia di questi fatti. L’idea é tipica di questo genere di programmi: si inseriscono numerose frasi (non in linguaggio naturale, ma in un qualche linguaggio logico) che formano il “sapere” del calcolatore. Questi poi, grazie a delle regole di inferenza, cerca di dedurre a partire da cio’ che conosce nuove cose. Ad esempio, se sa che “il 15 Giugno é il compleanno di Mario” e “oggi é il 15 Giugno“, ne deduce facilmente che “oggi é il compleanno di Mario“.

Bene: sono passati 25 anni da quando cominciarono ad inserire frasi nel programma. Si saranno stancati? Manco per idea. E quante ne avranno aggiunte, chiederete voi: un migliaio? Diecimila? Cinquantamila?

Oltre un milione.

Oggi Cyc conosce oltre un milione di piccole informazioni di senso comune e di cultura generale, ed é capace di interpretare tantissime frasi, di chiedere quando non capisce qualcosa, e secondo Lenat presto sarà capace di “leggere un giornale” ed anche di conversare. Nel frattempo, una parte ristretta del database é utilizzabile da chiunque ne abbia necessità (ad esempio é molto utile per il controllo del terrorismo, non sto scherzando) mentre una parte ancora maggiore é disponibile con una licenza di ricerca.

Cyc sta diventando un ometto, oramai.

PS: il post mi é stato ispirato da un paragrafo della bellissima storia sull’Intelligenza Artificiale “Macchine Come Noi”, di Castelfranchi – Stock. Un po’ di pubblicità “libresca” non fa mai male.

Pubblicato su Informatica | Contrassegnato da tag: , , , | 5 Commenti »

Giochi da Politici

Pubblicato da scardax su Maggio 14, 2009

Le elezioni si avvicinano nuovamente, e visto che proprio ieri mi é capitato di studiare una divertente formulazione della teoria dei Giochi della competizione elettorale (seppur molto semplicistica), cerco di riprodurre il ragionamento qua lasciando un po’ da parte la matematica.

Per cominciare, pensiamo ad una retta in cui ciascun punto rappresenta una posizione elettorale. Ogni elettore si colloca da qualche parte lungo questa retta, e di elettori ce n’é un numero molto alto. Non conosciamo la loro esatta distribuzione sulla retta (possiamo pensare che sia relativamente bassa agli estremi, e che abbia dei picchi vicino alle zone centrali), pero’ sappiamo che vi é un punto, che chiamiamo m, che li divide esattamente a metà, e che conosciamo.

I giocatori sono i partiti politici, che devono scegliere dove collocarsi lungo la retta in modo da vincere le elezioni. Ovviamente, ciascun elettore vota il partito a lui più “vicino” sulla retta, come nella figura qua sotto (le frecce rosse indicano i consensi dei partiti):

Consenso Elettori

Supponiamo di essere un partito, di avere un solo opponente e di dover decidere la nostra strategia. Ovviamente, questa dipenderà dal posizionamento sulla retta dell’altro partito. Proviamo a vedere cosa succede in alcuni casi:

  • Il nostro avversario si posiziona a sinistra del punto m. Ovviamente, posizionarci ancora più a sinistra di lui si rivelerebbe una strategia alquanto fallimentare: lui avrebbe tutti i voti alla destra della mediana (che sono già metà) più altri compresi tra il centro e la sua posizione, e vincerebbe sicuramente. Quindi, dobbiamo posizionarci alla sua destra, ma non troppo, in quanto altrimenti perderemmo troppi voti “centristi”.
  • Se il nostro avversario si posiziona a destra di m, il ragionamento é speculare: dobbiamo posizionarci alla sua sinistra, ma non troppo.
  • E se si posiziona esattamente su m? Se ci posizioniamo alla sua sinistra, perdiamo. Alla sua destra, perdiamo. L’unica alternativa é posizionarci a nostra volta su m, spartire i voti a metà con l’altro partito e sperare nel ballottaggio.

Ora, il nostro avversario conosce questi ragionamenti, e li applica a sua volta. Quindi sa che, dovunque lui si metta sulla retta, noi ci metteremo più vicini al punto mediano, e vinceremo. L’unica sua alternativa é posizionarsi ancora più vicino al punto m, al che replicheremo avvicinandoci sempre più. Il ragionamento a questo punto si puo’ estendere a più di due partiti, ma già vediamo la conclusione: alla fine, tutti i giocatori decideranno di posizionarsi su m e si spartiranno più o meno equamente i voti.

Ovvero, quando non sono gli elettori ad andare ai partiti, sono i partiti ad andare agli elettori! Ovviamente é tutto molto semplificato, ma bisogna ammettere che la nostra esperienza ci fa fiutare qualche verità nascosta.

PS: ci avviciniamo alle cinquemila visite, vediamo se riesco a preparare qualcosa di divertente per quel momento. Divertente dal mio punto di vista, of course.

Pubblicato su Teoria dei Giochi | Contrassegnato da tag: , | 6 Commenti »

Ritorno Al Lavoro

Pubblicato da scardax su Maggio 3, 2009

Ultimamente ho un po’ rallentato il ritmo, ma non é per mancanza di idee: é solo che sono obliterato (avevo sempre sognato di dire “obliterato”) di cose da fare per l’Università. Non ho comunque battuto la fiacca, e sono riuscito a finire di tradurre un altro articolo per la sezione “Cos’é la Realtà”, sulla Freccia del Tempo:

http://seipernove42.wordpress.com/cose-la-realta/la-freccia-del-tempo/

In verità me ne mancava ancora uno sulla Fisica Quantistica, ma per il momento l’ho lasciato da parte e sono passato a questo, perché lo reputo uno dei più interessanti: ad esempio, pone la domanda “Perché non possiamo ricordarci del futuro?“.

Per il resto, ho un sacco di idee da realizzare, ed anzi stavo pensando di ritentare un famoso esperimento sociale di qualche tempo fa, pero’ avrei bisogno di una persona che abiti abbastanza lontano (ad esempio, in America, o meglio ancora in Australia) e che sia disposta a farsi scocciare da qualche email. Qualche idea?

Pubblicato su Cos'é La Realtà? | Contrassegnato da tag: , , , , , , , | 2 Commenti »

Calcolamelo Tu – Parte 1

Pubblicato da scardax su Marzo 28, 2009

Tutto ha una sua Storia personale: ce l’avete voi, c’é l’hanno i vostri amici, ce l’ha un popolo, la hanno le idee e, perché no, anche le tecnologie. Qual’é la storia del Computer? Quando nasce, dove, come si evolve?

Per rispondere, partiamo dall’etimologia: computer é tradotto in Italiano (cosi’ come in Francese) con “calcolatore“, ovvero “macchina che permette di fare calcoli” (somme, sottrazioni e cosi’ via). Ed in effetti é proprio questa, la natura di fondo di un computer: il saper fare addizioni. Di macchina adibite all’automatizzazione di calcoli ne abbiamo notizia fin dai tempi più antichi, e ne usavano già molti secoli fa i marinai che per determinare le loro rotte dovevano svolgere complicati calcoli trigonometrici e si aiutavano con Astrolabi, regoli ed altri attrezzi del genere.

Il primo a costruire una macchina capace di addizioni (e sottrazioni) automatiche fu probabilmente Pascal nel 1642: la sua Pascalina, prodotta in qualche decina di esemplari, eseguiva somme nel sistema decimale e nel sistema monetario dell’epoca grazie ad una serie di ingranaggi e ruote, ed ebbe una notorietà eccezionale: Leibniz, basandosi sul progetto di Pascal, ne costrui’ un’altra capace anche di moltiplicazioni e divisioni, e queste restarono il punto di riferimento come calcolatrici compatte ed economiche fino ai primi anni del Novecento.

In questo arco di tempo si svilupparono tutte le ricerche che, pur senza volerlo, sarebbero confluite nella nascita della vera informatica: si comincio’ a studiare il codice binario (ovvero la possibilità di poter esprimere qualunque informazione per mezzo di due soli simboli, 0 ed 1); si realizzarono le prime schede perforate, schede di cartoncino perforate in vari punti utili come input per diverse macchine automatiche (in particolare il telaio di Jacquard); e Boole studio’ quella che sarebbe diventata l’algebra Booleana (un sistema utile ad esprimere proposizioni logiche).

Babbage, di cui ho già parlato in un altro post, uso’ proprio le schede perforate per progettare il primo vero prototipo di computer: un macchinario estremamente complicato che, prendendo alcuni input su schede perforate, li elaborava e restituiva output su altre schede perforate. La macchina, chiamata Macchina Analitica, non fu mai realizzata perché troppo complessa per la tecnologia dell’epoca, ma in essa si trovava già un’idea abbastanza rivoluzionaria: la possibilità per il programma stesso di essere passato come dato di input (o memorizzato all’interno della macchina): i Calcolatori stavano per diventare Universali, ovvero capaci di effettuare praticamente qualunque operazione. La macchina di Babbage desto’ interesse ovunque: un prototipo venne sviluppato dagli svedesi Scheutz, destando l’interesse di altre nazioni che ne intuivano l’immenso potenziale.

I fondamenti teorici erano pronti, ma la tecnologia non ne teneva il passo: la svolta si ebbe quando nel 1889 Hollerith brevetto’ un sistema capace di leggere le schede perforate con dispositivi elettrici: la Meccanica, più complessa da realizzare e meno performante dell’Elettrotecnica, cedeva il passo, almeno in parte, alla nuova venuta. Hollerith fondo’ poi la Tabulating Machine Company, che sarebbe diventata in seguito la IBM.

Ma i veri computer come li concepiamo noi avrebbero dovuto aspettare ancora qualche decennio. Che l’idea fosse nell’aria lo si capiva dai progetti che di tanto in tanto fiorivano: ad esempio, negli anni Trenta lo statunitense Bush progetto’ (ma non costrui’) il sistema Memex, un macchinario capace sostanzialmente di memorizzare informazioni e di permettervi un accesso rapido ed efficiente.

La Seconda Guerra Mondiale si avvicinava, e con essa i grandi sforzi per codificare e decodificare messaggi segreti. Ma questo lo lasciamo al prossimo post!

Pubblicato su Informatica | Contrassegnato da tag: , , , , , , | Lascia un commento

Breve Storia dell’Universo

Pubblicato da scardax su Marzo 11, 2009

C’era una volta, talmente tanto tempo fa che il Tempo ancora non esisteva, un paese molto felice e tranquillo chiamato Vuoto, in cui viveva un simpatico esserino chiamato Nulla, che pero’ si annoiava spesso, perché nel Vuoto non c’era mai Niente da fare. Nulla riflette’ molto sulla situazione, e guardandosi intorno scopri’ che molti altri la pensavano come lui. Nulla li riuni’ tutti per cercare di trovare una situazione e, interessati al dilemma, molti altri arrivarono, e di colpo il Vuoto non fu più cosi’ vuoto. Anzi, arrivarono cosi’ tanti amici di Nulla che il posto comincio’ a mancare, la temperatura si alzo’, ed improvvisamente un grandissimo tuono sguarcio’ il Vuoto e Nulla fu sbalzato via, mentre Spazio e Tempo uscivano improvvisamente fuori  dai resti dell’esplosione e tutti si ritrovarono improvvisamente dotati di un corpo e liberi di andare dove volevano.

Alcuni, chiamati Materia, non capendo ancora la situazione, restavano fermi come erano abituati a fare mentre altri, che si chiamarono ironicamente Forze, si divertivano a colpirli ripetutamente facendoli vagare di qua e di là. Quando Nulla freno’ abbastanza, vide che tutta la Materia, per rispondere all’attacco congiunto delle Forze, si stava riunendo in agglomerati più grandi per difendersi, mentre anche le Forze cercavano nuovi modi per continuare a colpirli. Nulla vide formarsi Stelle, Pianeti, Galassie, e colpito a sorpresa da una Forza precipito’ su uno di essi. Qui fini’ nel mare, dove vide piccoli agglomerati di Materia, le Molecole, che vi nuotavano tranquillamente reclutando nuova Materia per crescere. Nulla non riusci’ a frenare, e si scontro’ con una Molecola: questa si divise, e le due nuove Molecole, non accorgendosi di Nulla, continuarono a mangiare ed a crescere. Nulla vide pero’ che le due Molecole non erano uguali fra loro, ma leggermente diverse: affascinato da questo gioco, continuo’ a vagare colpendo Molecole, dividendole, vedendo che effetto faceva, finché il mare non fu pieno e le Molecole cominciarono a colpirsi fra loro.

Improvvisamente si scateno’ una guerra, e le Molecole più forti colpivano le più piccole per farsi spazio, ed altre si chiudevano dentro scudi sempre più perfezionati per sopravvivere, e ben presto, stufi dell’acqua, alcune uscirono e cominciarono a camminare sulla Terra. Affascinato, Nulla usci’ dall’acqua e vide che oramai le Molecole erano diventate Animali, Vegetali, e popolavano l’intero Mondo. Improvvisamente vide una creatura diversa, strana, che si teneva in piedi con uno strano attrezzo in mano, cosi’ gracile, cosi’ indifeso, e decise di sperimentare ancora un po’. Entro’ nella sua testa, e qui vide che l’Uomo si rappresentava al suo interno lo Spazio che lo circondava, ed i predatori, e Nulla modello’ i suoi neuroni in modo che l’Uomo avesse al suo interno anche un modello di sé stesso, per vedere che effetto faceva. Nulla usci’, e l’Uomo, aprendo gli occhi, si vide nel Mondo e sopreso chiese: “Chi sono?”.

Ma questa volta Nulla l’aveva fatta grossa: l’Uomo non era più fragile, non era più indifeso, e si moltiplico’, si diffuse in tutto il Mondo, uccise gli altri Animali, e gli Uomini si uccidevano fra loro, costruivano e demolivano, e Nulla si divertiva come un pazzo, perché mai un attimo era uguale a quello prima. L’Uomo lascio’ la Terra, ando’ in altri pianeti, ma dopo un po’ Nulla si rese conto che il gioco stava per finire: le Forze erano stanche, la Materia non riusciva più a stare insieme, e tutto sembrava rallentare. Cercando un rimedio, Nulla corse più veloce che pote’, ed urto’ una Stella, e questa esplose, e coinvolse tutto intorno a sé, ed improvvisamente l’intero Universo fu un fuoco d’artificio di Materia che fuggiva e di Forze che venivano sballottate a loro volta, e tutto’ sembro’ allontanarsi, ed alla fine torno’ il Vuoto.

E Nulla fu di nuovo felice.

Pubblicato su Varie | 4 Commenti »

Senza Fermarsi Mai

Pubblicato da scardax su Febbraio 25, 2009

E’ difficile pensare all’Informatica come ad una Scienza. O, meglio, é difficile immaginarsi la scienza dell’Informatica. Niente sembra più lontano dalle astratte formule e misteriosi concetti studiati al liceo dalla “realtà” dei computer con cui lavoriamo, giochiamo e comunichiamo con il resto del mondo ogni giorno. Eppure, gli Informatici in quanto Scienziati esistono davvero: ed anche loro hanno i loro modelli teorici con cui si rappresentano un ‘calcolatore modello’ (più o meno come i Fisici hanno le loro rappresentazioni di un atomo), i loro libri pieni di formule matematiche a più non posso, ed i loro bei risultati, spesso anche sorprendenti.

Il più famoso, e forse uno dei più interessanti, fu scoperto da Alan Turing qualche decennio fa, e va sotto il nome di Problema dell’Arresto. Mi piacerebbe cercare di spiegarlo, in maniera abbastanza informale (terra-terra, se vogliamo), evitando qualunque appesantimento formale o teorico (Macchine di Turing e via dicendo). Spero apprezziate il tentativo o, se siete Informatici, spero quantomeno che non mi denunciate.

Per cominciare, pensate ad un qualche programma informatico scritto in un qualunque linguaggio di programmazione (il Java, il C, fate voi, va bene pure un linguaggio che vi siete appena inventati). Se non avete mai visto un simile programma, non credo capirete molto del resto del post. L’idea generale di un programma del genere é molto semplice: prende dei dati in input, li elabora in qualche maniera, e restituisce dei dati in output. Ad esempio possiamo pensare ad un programma isPrime, che prende in ingresso un numero intero n, e verifica che il resto della divisione n/m sia sempre diverso da zero, per qualunque m compreso fra 0 ed (n-1), per verificare se il numero é primo.

Ora, quando i programma crescono in complessità, non é sempre facile capire che succederà all’interno della sua esecuzione. Magari a prima vista sembra funzionare, poi pero’ incontriamo un determinato input che comincia a far “ciclare” il programma all’infinito, non facendolo terminare mai (ad esempio, isPrime potrebbe controllare il resto della divisione per qualunque valore di m, non solo per quelli compresi fra 0 ed (n-1)). Questo é un problema serio: un programma che su alcuni input va bene e su altri no non sembra granché, e mi piacerebbe saperlo in anticipo. Ma se sapessi farlo guardando il codice, probabilmente non mi sarei neanche posto il problema. Quindi, ecco la domanda:

Potrebbe esistere un qualche programma T che, dato un altro programma P, ed un input I, dica se il programma P applicato all’input I termina oppure no?

Ecco, questo é il Problema dell’Arresto espresso nei suoi termini più generali. L’aver inserito la condizione di un dato input I sembra una presa in giro, perché adesso, per verificare la correttezza di P in generale dovrei applicare T a tutti i possibili input di P, e quindi al massimo potrei dire “esiste un input che non fa terminare P” se ne trovassi uno, ma non potrei mai dire “non esiste nessun input che non lo fa terminare“, ovvero “P termina sempre“. Il punto chiave é che, come dimostreremo fra un attimo, un programma come T non potrebbe esistere, e quindi il problema neanche si pone.

Prima di buttarci subito sulla dimostrazione, riagganciamoci un secondo alla realtà (si fa per dire), e vediamo di preciso cosa ci potremmo fare con T. Prendiamo una qualunque congettura matematica non dimostrata sui numeri interi, ad esempio la congettura di Goldbach, che afferma che qualunque numero pari maggiore di due é la somma di due numeri primi (nessuno ha ancora trovato una dimostrazione valida). In pochi minuti, potremmo scrivere un programma che verifichi che un dato numero soddisfa questa congettura (basterebbe provare tutte le possibili somme di numeri primi minori di quel numero), ed utilizzarlo per scrivere un altro programma che verifichi, partendo da 3, la validità di questa congettura per tutti i possibili valori, fermandosi appena trova un numero che non la soddisfa. Fermandosi: ecco la parola magica. E’ sufficiente applicare T al nostro programma e vedere se:

  1. Si ferma, quindi esiste un numero che non soddisfa la congettura di Goldbach, quindi questa non é valida.
  2. Non si ferma e quindi, per un ragionamento simile, la congettura é valida.

Da notare come 1) questa é una dimostrazione a tutti gli effetti e 2) si puo’ ripetere per qualunque ipotesi matematica sui numeri! Se T esistesse, sarebbe una vera e propria “manna“! Ma, come già detto, T non puo’ esistere (”e meno male”, commentano i matematici). Procediamo alla dimostrazione usando un procedimento che dovrebbe essere ben noto agli assidui (o assiDUE, visto che mi sa che non sono molti (e con questa battuta mi sa che me n’é rimasto uno solo, che quindi ora é assiUNO (ed ecco che i lettori sono finiti))) lettori di questo blog: la diagonalizzazione di Cantor.

Per prima cosa, dobbiamo pensare di associare ad ogni possibile programma un numero che lo identifichi: questo si puo’ fare (come già visto tempo fa) assegnando ad ogni carattere (compresi gli spazi ed i caratteri speciali) un numero che li identifichi (ad esempio il corrispettivo ASCII), e quindi sostituire nel programma ad ogni carattere il numero corrispondente. Vengono numeri molto lunghi, esageratamente lunghi forse, ma pur sempre numeri. Notate come ad ogni programma corrisponda un numero, ma ad alcuni numeri non corrisponda un programma: ad esempio 101103 corrisponde (in ASCII) ad “ac“, che in nessun linguaggio di programmazione (credo) é un programma valido. Possiamo pensare di modificare T in questa maniera: dati un numero a corrispondente ad un programma, ed un input (numerico) b:

  • Se il programma é corretto (ovvero, in gergo tecnico, “se si compila”) e termina per l’input b, dà in output 0.
  • Altrimenti, dà in output 1.

La modifica é banale, quindi non ci perdiamo tempo. A questo punto (seconda idea geniale dopo l’assegnamento di un numero univoco ad ogni programma) possiamo costruire una tabella in cui un generico elemento (a,b) é proprio l’applicazione di T ad a e b. Una tabella del genere, insomma:

1 2 3 4 5 …
1545465688412120003164 1 1 0 1 1
44979896432313164499 0 0 1 0 1
366595944112654747662 1 1 1 1 1

Ovviamente i numeri a sinistra, nel caso generale, sarebbero decisamente più grandi. Pero’, grazie alla modifica che abbiamo fatto, a sinistra comparirà ogni singolo numero naturale intero (e stessa cosa per le colonne). A questo punto, prendiamo i numeri sulla diagonale:

1 2 3 4 5 …
1545465688412120003164 1 1 0 1 1
44979896432313164499 0 0 1 0 1
366595944112654747662 1 1 1 1 1

Mettiamoli uno in coda all’altro, ed invertiamoli (ovvero, se c’é 1 sostituiamo con 0 e viceversa). Otteniamo un altro numero (in questo caso che comincerebbe con 010…). Poiché abbiamo detto che ogni numero ha la sua riga (ovvero si trova fra gli elementi a sinistra), ne deduciamo che anche il numero appena ottenuto ci deve essere. Ma notiamo che:

  1. Differisce dalla prima riga per il primo valore.
  2. Differisce dalla seconda riga per il secondo valore.
  3. Differisce dalla riga n per il valore n-esimo.

Ovvero: non si trova nella tabella. Contraddizione! Risalendo il ragionamento, ne deduciamo che: T non puo’ esistere. E, come ogni scienziato che si rispetti, mi sa che ci siamo pure dimenticati di cosa stavamo parlando. Quindi, per oggi, basta! :D

Pubblicato su Informatica | Contrassegnato da tag: , , , , | 1 Commento »

Piccoli Terroristi Crescono

Pubblicato da scardax su Febbraio 6, 2009

Magari avrete sentito il casino che sta succedendo in Iran. Si sono messi a costruire centrifughe per l’Uranio, e gli Stati Uniti li accusano di volersi costruire la propria bomba atomica. Del resto, bisogna capirli, gli Iraniani. Oggi non sei nessuno se non hai un’atomica in casa. Anche piccola.

Quindi, costruiamocela.

Prima di tutto, visto che a noi piace capire quello di cui si sta parlando, riassumiamo le idee alla base di una bomba atomica. Al suo interno si trova del materiale detto fissile, che viene bombardato con dei neutroni, “spaccandosi” in due, e liberando nel contempo altri neutroni ed un bel po’ di energia. I neutroni liberati, poi, vanno a colpire altro materiale fissile, e se di quest’ultimo ce n’é abbastanza (la soglia viene detta “massa critica“), la reazione diventa incontrollata e si ha il grande botto. A dirlo é semplice, a farlo non cosi’ tanto (altrimenti anche il Botswana avrebbe la sua bomba, e di certo non ci sentiremmo troppo tranquilli).

Prima di tutto, com’é chiaro dal precedente paragrafo, necessitiamo di materiale fissile. Se siete dei poveracci (oppure il capo del Botswana che ha trovato questo articolo su Internet cercando “Come costruirsi la propria bomba atomica e non essere più chiamati ‘Il Paese delle Banane’“), vi potete accontentare dell’isotopo 239 del Plutonio: essendo uno dei prodotti di gran parte dei reattori nucleari, se ne trovano in grandi quantità, se avete gli agganci giusti. Solo nell’atmosfera ce ne staranno 10 tonnellate, mentre nei depositi se ne stimano un’altra ventina. A voi ne servono una decina di chili, e se avete visto abbastanza film americani, infiltrarvi in un qualche stabilimento di conservazione del Plutonio dovrebbe essere facile. Se invece volete fare le cose in grande, dovrete procurarvi qualche chilo di Uranio, quindi infilarlo in speciali lavatrici per separare l’isotopo 235 (datelo ai vostri bambini per giocarci, non vi serve a niente) dal 238, che é quello figo che fa boom, e ripetere il procedimento un bel po’ di volte. Naturalmente non dimenticatevi che sia Uranio che Plutonio sono radioattivi (ed il Plutonio anche nettamente tossico), quindi se siete riusciti ad infiltrarvi in una centrale, vi consiglio di requisirla direttamente cosi’ la potrete pure usare per lavorare il materiale fissile.

Il secondo punto é più semplice: vi serve dell’esplosivo per far partire la reazione. La scelta di riferimento é il Trinitrotoluene (o TNT), che puo’ anche essere tagliato con del nitrato d’ammonio per ottenere dell’amatolo, che é un altro esplosivo abbastanza in voga. Vi ricordo che anche il TNT é tossico, quindi non é ancora venuto il momento di lasciare la centrale nucleare. Se siete fanatici di Metal Gear, va bene anche il Semtex, che oramai si trova pure su eBay, a cercarlo bene. Se proprio non trovate nulla di tutto cio’, potete accontentarvi anche di un po’ di gelatina esplosiva (o Gelignite).

Il terzo punto é facilissimo: avete bisogno di un detonatore. Per farlo, procuratevi un qualunque servomeccanismo radiocomandato (ne trovate in qualunque modellino da radioamatore), e con qualche piccola modifica lo potrete usare per attivare una capsula che farà partire l’esplosione. Niente di più semplice.

Infine, passiamo alla costruzione vera e propria: lavorate il materiale fissile in modo da ottenere due semisfere, separate fra loro da circa 4 cm; rivestite il tutto di esplosivo in maniera quanto più omogenea possibile, incollateci il detonatore, ed inserite il tutto in una scatola di metallo, avendo cura di incollarcela bene in modo da evitare detonazione non previste.

Ecco fatto. Buon divertimento. La settimana prossima passiamo a costruire qualcosa di più serio.

Ringrazio softpedia per l’articolo che mi ha dato l’ispirazione:
http://news.softpedia.com/news/How-To-Make-An-Atomic-Bomb-53392.shtml

Pubblicato su Varie | Contrassegnato da tag: , , , , | 4 Commenti »