Ada Byron Lovelace e il primo algoritmo – Lovelace , George Boole, Alan Turing

Ada Lovelace e il primo programma di calcolo della storia

Augusta Ada Byron nasce a Londra il 10 dicembre del 1815, dal poeta Lord Byron e la matematica Anne Isabella Milbanke.E’ conosciuta come Ada Lovelace, nome che assunse dopo il matrimonio con William King, conte di Lovelace. Era una matematica ed è considerata una pioniera dell’informatica, è nota infatti per il suo contributo alla costruzione della macchina analitica ideata da Charles Babbage.

Quando Ada ha appena un mese la madre è già stanca del burrascoso poeta e ottiene la separazione dal marito e l’affidamento della piccola. Il poeta non rivendicò mai la custodia della figlia, anche se, la legge inglese del tempo dava la piena custodia ai padri in caso di separazione.

Anne Isabella Milbanke era una donna molto severa ossessionata dall’ordine e la disciplina, come madre ebbe come scopo principale quello di educare la figlia allo studio della scienza e la matematica e di allontanarla dal retaggio poetico del padre.

Nel 1833 all’età di 18 anni, Ada incontrò Charles Babbage inventore della Macchina Analitica. Ada si appassionò subito all’ambizioso progetto di Babbage e alle possibili prospettive di calcolo e dal 1842 al 1843 si dedicò alla traduzione dal francese all’inglese delle teorie di sviluppo proposte dall’italiano Luigi Federico Menabrea, che Babbage aveva conosciuto a Torino nel settembre del 1840. Ne nacque una fitta e visionaria corrispondenza tra Ada e Babbage.

Ada intuì l’idea di loop e di sequenza ripetuta di passi [sottoprogramma] Durante il lavoro di traduzione all’articolo di Manabrea, Ada aggiunse delle note personali [molto più lunghe dello stesso articolo], tra queste note c’è un particolare algoritmo che è storicamente riconosciuto come il primo programma della storia: L’algoritmo del numeri di Bernoulli.

Oltre ad aver scritto il primo software della storia, Ada Byron anticipò molti altri aspetti dell’informatica: pare sia stata lei a consigliare a Babbage l’utilizzo di schede perforate per la sua macchina analitica; fu la prima ad intuire che oltre al semplice calcolo i computer avrebbero avuto infinite applicazioni espressive come, ad esempio, la musica. Nonostante la rigida educazione scientifica, la contessa di Lovelace [è questo il nome di Ada da sposata] si dedicò ad una scienza poetica, condita di sogni e visioni, tanto che Babbage l’aveva soprannominata “incantatrice di numeri”. Ada Lovelace morì prematuramente, all’età di 37 anni, per un tumore uterino.

Per anni è stata dimenticata, a malapena citata nelle note biografiche del padre, ma recentemente è stata notevolmente rivalutata. A lei sono dedicati: il nome di un linguaggio di programmazione ADA del 1979, una giornata speciale per i blogger [ADA LOVELACE DAY], un simpatico fumetto e un interessante libro ricco di bellissime illustrazioni “Numeri e poesia. Storia e storie di Ada Byron”.

ada_lovelace

“The Analytical Engine weaves algebraic patterns,

just as the Jacquard loom weaves flowers and leaves.

Il programma per il calcolo dei numeri di Bernoulli

L’algoritmo di Ada permette di calcolare i numeri di Bernoulli, senza dover conteggiare tutti quelli ad essi precedenti. Tuttora, questo algoritmo è considerato un risultato brillante, non soltanto per la valenza computazionale, quanto nella coniugazione di Matematica e Informatica. Noto è soprattutto per essere stato il primo programma della storia.

Gli algoritmi di Ada Byron e di Bernoulli a confronto

Secondo alcune fonti storiche, per la costruzione del suo programma Ada Lovelace si servì della seguente funzione generatrice esponenziale:

(1)  \sum_{k=0}^n B_k {{x^n}\over n!}

opportunamente semplificata e modificata nell’espressione:

(2)  {1\over 2} {{2x-1}\over {2x+1}}= B_2 {{2x}\over 2}- B_4 {{2x(2x-1)(2x-2)}\over 4!} + B_6 {{2x(2x-1)...(2x-4)}\over 6!} + ...
Altre fonti non concordano con tale versione per diverse ragioni. In primo luogo perché, pur essendo vero che lo sviluppo della (1), insieme ad altri sviluppi in serie di funzioni trascendenti, contiene numeri di Bernoulli, come osservato dallo stesso Bernoulli nell’Ars conjectandi e successivamente anche da Eulero e Stirling, non esiste tuttavia alcuna relazione matematica in grado di trasformare la (1) nella (2). In secondo luogo, pare esistere una lettera della Byron scritta nel luglio del 1843, nella quale chiedeva a Babbage di inviarle la formula generatrice dei numeri di Bernoulli e non uno sviluppo che li contenesse (il che prevede anche una lista dei numeri). Infine, sempre in base a tali fonti, la formula (2) utilizzata dalla Byron non è altro che una rielaborazione della seguente formula utilizzata da Bernoulli:

(3)  2n=(-1)^{k-1}\sum_{k=1}^n {{{2n+1}\choose {2k}}2^k B_{2k}}

e che Ada fra l’altro aveva studiato qualche anno prima, sotto la guida di De Morgan. Per confrontare la formula effettivamente utilizzata dalla Byron con la (3), è sufficiente riscrivere lo sviluppo di quest’ultima sostituendo n con x e sottraendo 1 da entrambi i membri dell’uguaglianza:

 2x-1={{2x+1}\choose {2}}2^2 B_2 - {{2x+1}\choose {4}} 2^4 B_4 + {{2x+1}\choose {6}}2^6 B_6- ...

da cui, dividendo ciascun termine per il fattore 2(2x+1), si ottiene:

(4)  { {2x-1}\over {2(2x+1)} }= {{ {{2x+1}\choose 2} 2^2 B_2}\over {2(2x+1)} }- {{{{2x+1}\choose 4} 2^4 B_4}\over {2(2x+1)} }+{{{{2x+1}\choose 6 }2^6 B_6}\over {2(2x+1)}}- ...{-1\over{2(2x+1)}}

È possibile riscrivere ciascun coefficiente binomiale che compare nella (4) in modo più semplice. Ad esempio per il primo coefficiente si ha:

 { {2x+1}\choose 2 }= {{(2x+1)!}\over{2!(2x+1-2)!}} = {{(2x+1)(2x) (2x-1)!}\over{2!(2x-1)!}} = {{(2x+1)2x }\over 2 }

oppure per il secondo si ha:

 { {2x+1}\choose 4 }= {{(2x+1)!}\over{4!(2x-3)!}} = {{(2x+1)(2x) (2x-1)(2x-2)}\over{4!}}

Dunque, semplificando la (4), si perviene in definitiva alla:

(5)  {{2x}\over {2(2x+1)}} = 2^3 B_4 {{2x(2x-1)(2x-2)}\over{4!}} + 2^5 B_6 {{2x(2x-1)(2x-2)(2x-3) (2x-4)}\over{6!}} - ...

dalla quale, per ricorsività e grazie al supporto di una macchina quale l’Analithycal Engine di Babbage, è assai facile generare progressivamente i numeri di Bernoulli B_n con n>1″ /> , come Ada stessa propose.</p>
<p>In realtà, la Byron usò la formula (2) che differisce leggermente dalla (5) sia per l’alternanza dei segni sia per la presenza delle potenze dispari di <img src=, oltre che nel numeratore dell’uguaglianza, dove il fattore 2x compare al posto del fattore 2x-1 della (5).

Mediante una congettura piuttosto geniale per quell’epoca, la Byron riuscì a generare i coefficienti incogniti B_n semplicemente mediante iterazioni successive, attribuendo ad x valori interi via via crescenti 1, 2, 3, … In questo modo, sostituendo x=1, tanto nella (2) quanto nella (5), tutti i termini dello sviluppo contenenti (2x-2) si annullano, ossia tutti i termini dal secondo in poi. Ad esempio, per la (5) si ottiene:

 {{2\cdot 1}\over {2(2\cdot+1)}} = 2^1 B_2 {{2\cdot 1}\over{2!}}
dalla quale risulta agevole ricavare B_2={1\over 6}. In modo analogo, attribuendo ad x il valore 2 si annullano invece tutti i termini che contengono il fattore (2x-4) , ovvero tutti quelli a partire dal terzo:

 {{2\cdot 2}\over {2(2\cdot 2+1)}} = 2^1 B_2 {{2\cdot 2}\over{2!}} - 2^3 B_4 {{2\cdot 2(2\cdot 2-1)(2\cdot 2-1)}\over{4!}}
da cui, una volta noto B_2 , si ottiene il secondo coefficiente dello sviluppo B_4 . Per x=3 spariscono tutti i termini a partire dal quarto e così via per valori sempre crescenti di x. Anche Bernoulli, un secolo prima della Byron, propose un procedimento analogo in base al quale partendo dallo sviluppo (3) e ponendo di volta in volta n = 1, 2, 3, … si riesce ad arrestare la somma e a calcolare ricorsivamente i coefficienti B_n . Così ad esempio per n=1 , e di conseguenza k=1 , si ha:

 2 = {3 \choose 2} 2^2 B_2

da cui si ricava immediatamente B_2={1\over 6} . Ovviamente il numero successivo significativo B_4 si ottiene arrestando lo stesso sviluppo per n=2 e dunque facendo variare k da 1 a 2

 4 = {5 \choose 2} 2^2 B_2 - {5 \choose 4} 2^4 B_4

sapendo che B_2={1\over 6}, si ottiene:

 4 = {{20} \choose 3} - 80 B_4

cioè B_4={1\over 30}. Dunque la vera innovazione introdotta dall’algoritmo della Byron rispetto al metodo di Bernoulli sta nell’aver usato ad ogni iterazione la stessa formula, riuscendo a semplificarla di volta in volta al variare del valore dell’incognita x. Il calcolo di ciascun numero, uno alla volta, costituisce il ciclo esterno del programma, mentre per calcolare ogni valore frazionario successivo si fa ricorso ad un ciclo secondario. Riportiamo qui di seguito gli algoritmi proposti dalla Byron e da Bernoulli:

Algoritmo di Ada Byron

Algoritmo di Bernoulli

Ada Lovelace Day

Negli Stati Uniti il 15 ottobre si festeggia l’Ada Lovelace day, giornata in cui si celebra il contributo delle donne nello sviluppo delle tecnologie informatiche, della matematica e della scienza.

“Quando Ada aveva 12 anni voleva volare. Cercò di affrontare il problema da un punto di vista metodico, esaminando gli uccelli e provando a capire vari materiali che potevano essere in grado di diventare delle ali: carta, seta. Nel corso della sua ricerca, cominciata nel febbraio del 1828, Ada tenne traccia dei suoi studi in una guida illustrata che chiamò Flyology“, racconta il New Yorker. La ragazza aveva un talento sin da bambina per l’aritmetica, la musica, il francese secondo quanto riportato da una biografia che è stata pubblicata il 16 ottobre intitolata A Female Genius, scritta da James Essinger.

La sua carriera come programmatice cominciò il 5 giugno 1833, quando incontrò quello che divenne il suo amico e mentore, Charles Babbage, un matematico. Babbage stava lavorando a una macchina di calcolo: una struttura fatta con diversi ingranaggi numerati capaci di fare calcoli. Ada fu affascinata dal progetto che era solo un prototipo e cominciò una collaborazione intensa con il matematico.

C’è perfino chi dice che la macchina analitica, il primo prototipo di un computer meccanico sviluppato per eseguire compiti generici, ideata da Babbage, in realtà fosse frutto soprattutto del lavoro e degli studi di Ada. Negli Stati Uniti Ada Lovelace è diventato il simbolo “di quello che le donne possono fare se ne hanno l’opportunità”.

Secondo le autorità negli Stati Uniti le donne che lavorano nelle discipline scientifiche sono diminuite negli ultimi vent’anni. Se nel 1990 le donne occupavano il 34 per cento dei lavori in discipline scientifiche, nel 2011 solo il 27 per cento dei lavori scientifici è fatto da donne.

Per festeggiare la pioniera della tecnologia Ada Lovelace The Atlantic ha raccolto i pezzi più interessanti che parlano di tecnologia e genere

https://storiografia.me/2013/11/10/ada-lovelace-e-il-primo-programma-di-calcolo-della-storia/

Ada Lovelace e il primo algoritmo

29 ottobre 2015

Non c’è motivo perché la gente si tenga in casa un computer.

È una di quelle frasi che fanno un certo effetto quando si mette a fuoco chi l’ha pronunciata. E a farlo non è stato uno qualsiasi, ma un personaggio che di computer se ne intendeva. Il suo nome era Kenneth Olsen e nel 1957 ha fondato, con il collega Harlan Anderson, uno dei gruppi americani dell’industria dell’elettronica, la Digital Equipment Corporation (DEC), che ha finito per essere una costola di colossi come Compaq e poi Hewlett-Packard. Nel 1977, quando pronuncia quella frase, Olsen pensa ai computer in produzione allora, così diversi dai personal computer di oggi o di solo una decina di anni più tardi. Chi se li sarebbe potuti permettere? Ma già nel 1992, quindi nella preistoria digitale, lui stesso ha già capito come sarebbe andata a finire e dice che “la gente si stuferà di gestire un personal computer e vorrà invece un terminale, magari con le finestre”.

Due frasi che da sole racchiudono buona parte della storia del computer, dalla sua immissione sul mercato dopo la Seconda Guerra mondiale fino ai giorni nostri. Da una parte l’incredibile trasformazione della componente fisica, l’hardware, che ha permesso al computer di essere davvero un oggetto per le masse. Dall’altra il ruolo centrale che ha il modo in cui chi lo usa riesce a dargli le istruzioni: il sistema operativo e, in generale, tutto il software. L’Olsen del 1977 sembra non riuscire a prevedere il nostro mondo attuale, con computer in ogni dove che ci assistono in infiniti modi diversi: nel lavoro, nelle comunicazioni, nell’intrattenimento, nell’archiviazione dei nostri ricordi, nel modo in cui esploriamo, misuriamo e conosciamo il mondo. Eppure questa rivoluzione della società era già iniziata oltre un secolo prima di quel momento, a metà dell’Ottocento, quando la  figlia di un poeta ha scritto il primo algoritmo informatico della storia. Il suo nome è Ada Lovelace ed è nata proprio duecento anni fa a Londra.

Chi era Ada Lovelace?

Augusta Ada King, contessa di Lovelace, nasce a Londra il 10 dicembre del 1815, figlia di George Gordon Byron, uno dei più famosi poeti e scrittori inglesi. In realtà, quel padre donnaiolo e dalle mani bucate (spende tutta la propria eredità di Lord nell’arco di un anno), lo vede per l’ultima volta quando ha solamente un mese e lui se ne parte per uno dei suoi viaggi. Ada rimane con la madre Anne Isabella, baronessa di Wentworth, che nonostante la partenza non proprio fortunata, riesce a garantire alla figlie un’ottima educazione, non solo sul fronte delle materie che si ritenevano adeguate a un membro di sesso femminile dell’aristocrazia inglese, ma anche in astronomia, ottica e, in generale, in tutti i campi della matematica. Inutile dire che saranno sforzi ben ripagati.

Ada_Lovelace_Chalon_portrait

Ritratto  (dettaglio) di Ada Lovelace di Alfred Edward Chalon del 1840 e conservato al Science Museum di Londra (Immagine: Wikimedia Commons)

A diciassette anni, a una festa incontra Charles Babbage. È un noto scienziato dell’epoca e sta lavorando da tempo a un progetto per la costruzione del primo computer meccanico della storia. Lo chiama Macchina Analitica e una volta completata sarebbe stata in grado di eseguire una grande varietà di compiti generici, proprio come fa oggi un computer. Ha già alle spalle la costruzione del prototipo della Macchina Differenziale, anch’essa completamente meccanica, che permette di risolvere le funzioni polinomiali e che gli ha permesso di non passare totalmente per un pazzo visionario. Ma la Macchina Analitica è ancora lontana: ci sono molti problemi, suprattutto matematici, che devono essere risolti. L’incontro con Ada Lovelace è la chiave. Le sue doti e la sua intelligenza lo affascinano (la soprannominerà l’«incantatrice dei numeri») e le trova stimolanti per i suoi progetti. Forse se ne innamora anche, ma quello che ne risulta è inizialmente una corrispondenza intellettuale profonda e proficua.

Che cosa ha scoperto?

La Macchina Analitica, in realtà, non vede mai la luce. Ci sono problemi finanziari che bloccano il progetto di Charles Babbage, ma il progetto e il personaggio sono famosi e fanno parlare di sè in tutt’Europa. Tanto che Luigi Malerba, uno scienziato italiano, anzi piemontese per essere precisi, nel 1842 pubblica un articolo sul progetto della macchina. Lo scrive in francese e Charles Babbage chiede a Ada Lovelace di tradurlo in inglese. La Lovelace, però, non si limita a una traduzione letteraria, ma aggiunge note di suo pugno che diventano più corpose dell’articolo originale, trasformandolo in una ricerca e una riflessione completamente originale.

Babbage_Difference_Engine_(Being_utilised)

Modello della Macchina Analitica conservato al Science Museum di Londra (Immagine: Wikimedia Commons)

Ci sono diversi aspetti interessanti e sorprendenti in quell’articolo. Il primo è la chiara consapevolezza che l’autrice dimostra della necessità di un sistema per la programmazione della Macchina Analitica: bisognava darle le istruzioni per i compiti che doveva eseguire. Nelle sue note fornisce anche un esempio concreto di che cosa intenda e scrive la serie di comandi necessari perché la Macchina Analitica possa calcolare i numeri di Bernoulli, una serie numerica molto importante per la risoluzione di diversi problemi. Ada Lovelace ha scritto il primo algoritmo informatico della storia, la prima serie di istruzioni che indicano a partire da certi dati in ingresso quali siano le istruzioni che il calcolatore deve effettuare. Tutto questo pensando di utilizzare le schede perforate impiegate per immettere dati e istruzioni nella sua macchina.

punchcards

Schede perforate del tipo utilizzato per le macchine di Babbage (Immagine: catherinecronin via Flickr)

Qual è la sua eredità scientifica?

Un altro aspetto importante della sua traduzione dell’articolo di Menabrea è la profonda consapevolezza dell’importanza che la Macchina Analitica e i suoi successori avrebbe potuto giocare nel campo della scienza. Scrive: «Un nuovo, vasto e un potente linguaggio è stato sviluppato perché in futuro sia usato per l’analisi, in modo da poter raccoglierne le verità per più una velocità e più una precisione applicazione agli scopi dell’umanità di quanto i mezzi oggi a disposizione abbiano reso possibile». Rapide risoluzioni di problemi e veloce travaso dei risultati nella sfera applicativa: questo lo scopo principale per il quale la programmazione della Macchina dovrà trovare adeguato sviluppo.

La sua consapevolezza delle potenzialità della Macchina e dell’informatica, sebbene sia una disciplina che nascerà solamente un secolo più tardi, non si limitano all’idea che il calcolo automatizzato avrebbe accelerato la risoluzione di problemi matematici. La Lovelace capisce che se opportunamente programmata la Macchina avrebbe potuto manipolare qualsiasi tipo di dati, arrivando a preconizzare la possibilità che potesse essere utilizzata per comporre musica, produrre grafici e altro. In un solo “articolo”, per così dire, Ada Lovelace “inventa” il primo algoritmo gettando le basi della programmazione informatica e prefigura una storia delle sue applicazioni che ha cominciato a svilupparsi solamente cinquant’anni fa.

Deviazione: George Boole

Questa storia dovrebbe concludersi con il boom dell’informatica della seconda metà del Novecento, di cui la Lovelace e Babbage sono stati degli autentici pionieri. Ma prima di arrivarci, dobbiamo prendere una piccola deviazione, spostandoci da Londra a Cork, in Irlanda. E per la precisione al numero 5 di Grenville Place, in un piccolo ma confortevole cottage dove vive George Boole. Alla scrivania posizionata di fronte alla finestra principale del piano terra di quella casa scrive un libro fondamentale per questa storia: An Investigation of the Laws of Thought (Indagine sulle leggi del pensiero) pubblicato nel 1854. Matematico sopraffino, si era fatto conoscere una quindicina di anni prima con un paio di articoli scientifici sui metodi per la risoluzione delle equazioni differenziali.

PSM_V17_D740_George_Boole

George Boole ritratto per le pagine del Popular Science Monthly

L’Indagine, però, si occupa del rapporto che esiste tra matematica e logica. In particolare, dimostra come le proposizioni logiche possono essere espresse da equazioni matematiche e come la loro manipolazione algebrica offra un metodo per la deduzione logica. Boole dimostra che è possibile ridurre a un simbolo (p, q o qualsiasi altro) delle proposizioni e assegnare loro un valore di verità, 0 o 1. E che è possibile conoscere il risultato di qualsiasi possibile combinazione tra i valori di verità delle proposizioni indipendentemente dal loro contenuto, ma esclusivamente basandosi sulle regole che governano il comportamento degli operatori logici.

In pratica, Boole ha fornito lo strumento logico-matematico necessario perché l’idea di Ada Lovelace che la Macchina Analitica possa trattare qualsiasi tipo di dati si realizzi. Ma è una connessione che rimane nell’ambito delle suggestioni, perché Ada Lovelace e George Boole non si incontrano. Il matematico muore nel 1864, a soli 49 anni, per causa di una polmonite, non prima di essere diventato un membro della Royal Society, la più prestigiosa istituzione scientifica dell’epoca, e aver gettato le basi per la ricerca scientifica di almeno due generazioni di matematici e filosofi. La Lovelace si spegne ancora più giovane, a 36 anni, alla stessa età di quel padre che non ha mai davvero conosciuto, per un cancro all’utero. Nati nello stesso anno, hanno vissuto due vite parallele, lasciando aperto uno dei grandi “cosa sarebbe successo se…” della storia del pensiero scientifico.

George Boole, Ada Lovelace e il personal computer di oggi

La storia della scienza e della tecnologia attribuisce a un matematico americani l’onore di essere il vero e proprio fondatore della disciplina informatica. Il suo nome è Claude Shannon (1916 – 2001) e nel 1937, con la sua tesi di laurea, dimostra che l’applicazione della logica booleana alla costruzione dei circuiti elettrici permette di costruire qualsiasi relazione numerica: da una parte vero e falso, zero e uno, i valori di verità della logica booleana; dall’altra aperto e chiuso, i due stati che possono assumere i relay. Dopo la Seconda Guerra mondiale, i primi veri e propri computer vedono la luce. E con essi nascono anche le grandi aziende, come la Digital Equipment di Ken Olsen. Negli anni successivi, e fino ai giorni nostri, la storia dell’informatica non ha fatto altro che confermare l’intuizione di Ada Lovelace sulla flessibilità e le svariate possibilità di utilizzo delle macchine per il calcolo automatico.

http://aulascienze.scuola.zanichelli.it/ieri-oggi-scienza/ada-lovelace-e-il-primo-algoritmo/

lògica matemàtica e Zero Storia di una cifra ..

THE IMITATION GAME film ; Systems of Logic – Alan Turing

Paradox Turing news english e italiano – THE IMITATION ..

Alan Turing | controappuntoblog.org

la mela di Turing | controappuntoblog.org

Questa voce è stata pubblicata in speciale femministe, speciale scienza e contrassegnata con , , . Contrassegna il permalink.