HAND WAWE 6 i calcoli di Ada

Algoritmo di Ada Lovelace per i numeri di Bernouilli

Senza entrare nel dettaglio diciamo che l’algoritmo di Ada permette di calcolare i numeri di Bernouilli, senza far riferimento a tutti quelli a essi precedenti. È a tutt’oggi un risultato brillante, non soltanto per la valenza computazionale, quanto per la coniugazione di Matematica e Informatica.

Ada si servì della seguente funzione generatrice esponenziale:

la formula della serie in formato ridotto

Opportunamente semplificata e modificata nell’espressione:

La serie sviluppata

mediante una congettura piuttosto geniale per l’epoca, Ada riuscì a generare i coefficienti incogniti Bn    semplicemente mediante iterazioni successive (loop), attribuendo alla x valori interi via via crescenti 1, 2, 3……..

Ecco il primo programma sw della storia scritto da Ada sui numeri di Bernouilli,

La nota G è l’appendice finale dello Sketch e spiega il funzionamento della macchina fornendo l’esempio del calcolo dei numeri di Bernouilli. Questi numeri sono molto sensibili al calcolo della macchina perché sono definiti in modo ricorsivo: possiamo usare il primo per determinare il secondo, il secondo il terzo e così via.

the first computer

Questo fumetto rappresenta quello che potrebbe essere stata la macchina analitica. Babbage guarda il suo capolavoro meccanico, mentre Ada è presa dal SW compilato sulle schede perforate. Babbage aveva molteplici interessi in tutti i settori, tra i quali anche in economia industriale, quindi pensò di progettare la macchina seguendo lo schema di uno stabilimento industriale. Lo stabilimento industriale è un sistema che trasforma le materie prime in manufatti, tramite operazioni meccaniche come la macchina analitica trasforma numeri in altri numeri, tramite operazioni aritmetiche. In fabbrica vi è un magazzino che conserva le materie prime, i semilavorati e i prodotti finali. Per le due parti principali Babbage adottò la stessa terminologia delle industrie manifatturiere:

  • Mill (mulino, fabbrica)
  • Store (magazzino)

Il mill è un complesso meccanismo capace di svolgere le quattro operazioni, oggi verrebbe chiamato “unità di calcolo”. Lo store (memoria) un insieme di colonne di ruote decimali, simile a quelle della macchina delle differenze dove si registrano i dati numerici che devono essere elaborati, i risultati parziali e quelli finali. Durante il calcolo sono prelevati da colonne dello Store, elaborati nel Mill e riportati in altre colonne del Mill.

Come in ogni fabbrica, non basta disporre di macchine utensili, operai e materie prime nei magazzini, ma occorre dare ordini precisi, controllare che vengano eseguiti e coordinare i singoli processi nel tempo.

Nella macchina analitica gli ordini sono affidati al programma (SW) i comandi devono poter essere memorizzati su qualche supporto, ma con un codice interpretabile dalla macchina. Entrano in ballo le schede perforate per comandare la sequenza di operazioni della macchina analitica. Un primo tipo di schede indicava da quali colonne dello store si dovevano prelevare i numeri e su quale si dovevano depositare il risultato di un’operazione: le schede variabili. Un secondo tipo doveva quale operazione andava svolta: le schede delle operazioni. Un terzo tipo permetteva l’introduzione dei valori numerici necessari al calcolo: le schede dei numeri.

Più tardi introdusse un quarto tipo di schede che dovevano indicare se una certa operazione doveva essere ripetuta più volte: le schede combinatorie. Tutte le schede potevano essere perforate o no; BUCO non BUCO! Tutto questo codice è assimolabile al sistema BINARIO.

Le schede erano legate l’una all’altra in una catena e potevano essere lette in sequenza, ma anche riavvolte e rilette.

La macchina analitica disporrà di una biblioteca (di programmi) sua propria… ogni insieme di schede perforate, una volta preparato, in qualunque tempo futuro, riprodurrà i calcoli per cui era stato pensato la prima volta. (Charles Babbage)

Babbage introdusse anche quello che oggi chiamiamo il salto condizionato (IF….. THEN….ELSE), ma previde anche l’uso di un plotter che doveva disegnare il grafico della funzione.

Il motore analitico era un dispositivo computazionale programmabile, meccanico e multifunzionale. Era un computer meccanico. Doveva essere programmato usando le schede perforate, metodo di controllo già utilizzato con successo nei telai meccanici.

Quindi, la macchina sarebbe stata in grado di eseguire numerosi calcoli e memorizzare un numero limitato di variabili. Per controllare la macchina sarebbero stati utilizzati tre tipi di carte: carte operative, numeri e carte variabili. Una sequenza di queste carte può essere vista come un software per il motore analitico.

Le schede operative eseguivano operazioni aritmetiche e funzioni di ramificazione/loop. Le schede numeriche caricheranno una costante numerica nel negozio (memoria) e le carte variabili trasferiranno i valori dalla parte del negozio del motore analitico alla parte Mulino che esegue le operazioni.

Se si ha familiarità con i linguaggi di programmazione come Assembly, si possono sicuramente notare alcune somiglianze. In effetti, il linguaggio che sarebbe stato usato per programmare il motore analitico sarebbe stato più o meno simile.

È strabiliante! Alcuni secoli prima che fossero creati, i primi computer “moderni” c’erano persone che già “programmavano” in Assembly.  Una di queste persone si è anche reso conto che il potenziale di tali macchine è di gran lunga superiore al semplice calcolo del numero. Questa persona era Ada Lovelace.

progetto della macchina analitica

Gli appunti di Ada

Perché Ada Lovelace è spesso considerato il primo programmatore al posto di Charles Babbage che ha inventato la macchina? Voglio dire, sicuramente Babbage sapeva come programmare la sua macchina, sicuramente aveva in mente alcuni programmi per questo, quindi perché Ada?

A causa delle sue note allo “Schizzo del motore analitico”. La parola     “nota”    è un pò fuorviante, in quanto queste note sono un paio di volte più lunghe del testo tradotto. Queste note sono etichettate da A a G. La Nota G include un algoritmo per il calcolo dei numeri di Bernoulli sul motore analitico. Non aspettarti di trovare linee di codice lì però.

Non è noto a quale livello Ada Lovelace e Babbage hanno collaborato per creare queste note. Quindi, la designazione “primo programmatore” è spesso contestata. Tuttavia, Ada Lovelace ha svolto un lavoro straordinario e ha sollevato alcune questioni filosofiche riguardanti il software e il suo ruolo significativo nell’informatica.

In primo luogo, ha predetto che una macchina come il motore analitico con un software appropriato potrebbe fare molto di più che risolvere problemi matematici. Fammelo citare.

Di nuovo, potrebbe agire su altre cose oltre al numero, sono stati trovati oggetti i cui reciproci rapporti fondamentali potrebbero essere espressi da quelli della scienza astratta delle operazioni e che dovrebbero essere anche suscettibili di adattamenti all’azione della notazione operativa e del meccanismo del motore. Supponendo, ad esempio, che le relazioni fondamentali dei suoni lanciati nella scienza dell’armonia e della composizione musicale fossero suscettibili di tale espressione e adattamenti, il motore potrebbe comporre brani musicali elaborati e scientifici di qualsiasi grado o complessità. (Nota A)

Ha anche avuto un’opinione su qualcosa che oggi chiamiamo Intelligenza Artificiale. Lasciatemelo citare pure.

Il motore analitico non ha alcuna pretesa di originare nulla. Può fare tutto ciò che sappiamo come ordinarlo per esibirsi. Può seguire l’analisi; ma non ha il potere di anticipare relazioni o verità analitiche. (Nota G)

Qui sostanzialmente nega la possibilità di una “macchina pensante”. D’altro canto, si suppone che non potesse immaginare quale potere computazionale era disponibile. 

Se trovi interessante il documento Analytical Engine o Ada Lovelace e vorresti saperne di più, ti consiglio vivamente di visitare questo sito, dedicato ad Ada Lovelace e al motore analitico . Qui puoi trovare documenti storici su questo argomento, tra cui “Schizzo del motore analitico” di Menabrea con gli appunti della Contessa Lovelace.

Lì si può trovare un emulatore del motore analitico. Quindi, se devi fare un progetto sulla storia di calcolo o qualcosa del genere, puoi effettivamente scrivere un programma per il motore analitico. 

In entrambi i casi, Ada Lovelace era una persona significativa. Inoltre, è spesso considerata come un simbolo delle donne nell’informatica e se la merita pienamente. Penso che noi robotisti dovremmo onorarla anche perché nessun robot è un robot senza un software adeguato.

Si citano le frasi importanti di Ada in inglese e loro traduzione

L’Incantatrice di Numeri

Forget this world and all its troublesand if possibleits multitudinous Charlatans – every thing in shortbut the Enchantress of Numbers.

Charles Babbage, 1843

Dimentica questo mondo e tutti i suoi problemi e se possibile i suoi numerosi Charlatans –  ogni cosa in breve ma l’incantatrice dei numeri.

Charles Babbage, 1843

Computer e tessitura

“The Analytical Engine weaves algebraic patterns just as the Jacquard loom weaves flowers and leaves”.

“Il Motore Analitico intreccia schemi algebrici proprio come il telaio Jacquard tesse fiori e foglie”

Computer e calcolo non numerico

“[The Analytical Engine] might act upon other things besides number, were objects found whose mutual fundamental relations could be expressed by those of the abstract science of operations, and which should be also susceptible of adaptations to the action of the operating notation and mechanism of the engine…”

“[Il motore analitico] potrebbe agire su altre cose oltre al numero, sono stati trovati oggetti i cui reciproci rapporti fondamentali potrebbero essere espressi da quelli della scienza astratta delle operazioni e che dovrebbero essere anche suscettibili di adattamenti all’azione della notazione operativa e del meccanismo del motore …

Computer e musica

Supposing, for instance, that the fundamental relations of pitched sounds in the science of harmony and of musical composition were susceptible of such expression and adaptations, the engine might compose elaborate and scientific pieces of music of any degree of complexity or extent

“Supponendo, ad esempio, che le relazioni fondamentali dei suoni accordati nella scienza dell’armonia e della composizione musicale fossero suscettibili di tale espressione e adattamenti, il motore potrebbe comporre brani musicali elaborati e scientifici di qualsiasi grado di complessità o estensione. “

Computer e intelligenza

“The Analytical Engine has no pretensions whatever to originate anything. It can do whatever we know how to order it to perform. It can follow analysis; but it has no power of anticipating any analytical relations or truths.”

Il motore analitico non ha alcuna pretesa di creare qualcosa. Può fare tutto ciò che sappiamo come ordinarlo per esibirsi. Può seguire l’analisi; ma non ha il potere di anticipare alcuna relazione analitica o verità.

Ada era una visionaria!!

Capiva che i numeri potevano essere usati per rappresentare più di una semplice quantità, e una macchina che poteva manipolare numeri poteva essere utilizzata per manipolare qualsiasi dato rappresentato dai numeri.

Ha predetto che macchine come il motore analitico, potrebbero essere usate per comporre musica, produrre grafici ed essere utili alla scienza.

Babbage leggendo una delle note così si è espresso: “Sono molto fiducioso nel restituire la tua e ammirevole e filosofica Nota A. Non alterarla, più leggo i tuoi appunti e più rimpiango di non aver esplorato più in modo più ricco e amabile una vena del metallo più nobile!… (così si esprimevano nei primi anni dell’ottocento!)

Charles Babbage & Ada Byron Contessa di Lovelace

Potrebbero interessarti anche...

Lascia un commento