Il calcolo combinatorio venne ad assumere importanza notevole, ponendo le basi per la realizzazione di oggetti fondamentali in elettrotecnica e poi in informatica.
Esistono tuttavia dei precedenti: nella tavoletta I-Ching, si hanno 6 posizioni di 2 simboli, con cui si possono rappresentare 64 combinazioni differenti, equivalenti a 26; con un sistema di numerazione su base 10, e con 3 cifre, si possono invece rappresentare 1000 numeri. Nei termini del calcolo combinatorio, si tratta di “disposizioni con ripetizione” di n elementi a k a k, con possibile ripetizione di ogni elemento fino a k volte, dove il numero di raggruppamenti effettuabili è frutto della formula:
D’(n,k) = nk
Nel 1709, il matematico e ingegnere veneziano Giovanni Poleni realizzò una macchina aritmetica capace di eseguire le quattro operazioni fondamentali basata su pesi scorrevoli, con funzionamento analogo al sistema di pesi per la carica degli orologi. Progettata interamente in Italia, essa rappresenta uno dei pochi esempi di invenzione nazionale nel settore.
Il funzionamento del telaio consiste nel movimento alternato di una spoletta (shuttle), che corre trasversalmente rispetto a fili tesi, i fili d’ordito, i quali sono mantenuti parzialmente rialzati e parzialmente abbassati, formando la “bocca d’ordito”, e in seguito mutati di posizione, consentendo così l’intrecciamento e la realizzazione della trama finale.
Si hanno due principali modalità di tessitura. Se i fili d’ordito sono comandati singolarmente da un liccio, che li aziona e li rilascia, allora è possibile realizzare delle particolari trame, di complessità anche notevole.
Qualora i fili tesi siano invece comandati (più o meno alternativamente) da due barre, assumendo due sole posizioni relative gli uni rispetto agli altri, il passaggio trasversale del filo di trama permette di ottenere dei semplici tessuti piani.
I primi esempi di telai, ancora di tipo manuale, consentono la stesura di tessuti di misura inferiore a 1,20 m, misura paragonabile la larghezza delle braccia, in quanto il tessitore con una mano doveva guidare la spoletta da un capo all’altro della larghezza della pezza di tessuto in lavorazione, e con l’altra riprenderla quando questa arriva sul lato opposto.
Nel 1733, John Kay brevettò la flying shuttle, in grado di raddoppiare la larghezza della pezzatura e conseguentemente ottenere un raddoppio della produttività delle maestranze impiegate. Il principio è semplice: attraverso un pulsante si comanda, in modo del tutto automatico, lo spostamento della navicella, movimentandolo per mezzo di molle che la spingono da una parte all’altra dell’ordito.
Se i miglioramenti dei complementi delle macchine segnarono tutto il XVIII secolo, il XIX si aprì con l’invenzione di Jacquard.
Un contributo indiretto ma fondamentale all’evoluzione delle macchine da calcolo, si deve a Joseph Marie Jacquard, che nel 1801 presentò il primo telaio automatico, il paradigma della macchina da calcolo moderna.
L’inventore francese implementò una macchina che automatizzava uno degli strumenti più vecchi inventati dall’uomo: il telaio. L’aspetto rivoluzionario del congegno risiede proprio nel suo funzionamento, che per la prima volta nella storia della meccanica applicata, sfrutta lo schema
INPUT → PROCESSAMENTO DATI → OUTPUT
Si tratta del primo impiego di schede perforate, la cui applicazione durerà fino agli anni ’80 del XX secolo, con i centri meccanografici, la cui funzione fu per oltre un secolo anzitutto quella di gestire le presenze dei dipendenti, al fine dell’erogazione degli stipendi.
Nel 1833, con la seconda delle macchine da lui realizzata, Babbage riprese l’idea di Jacquard, e utilizzò le schede perforate per immettere dei dati e fornire quindi informazioni in input alla macchina. Il problema originario che lo portò al concetto di calcolatore programmabile è quello della tabulazione di polinomi, con cui gli astronomi potessero disporre di dati utili per stabilire ad esempio la posizione apparente di una stella.
Il primo tentativo di risoluzione del problema è legato alla “macchina alle differenze” (difference engine), dove la tabulazione mediante il metodo matematico delle differenze, permette il calcolo dei valori di un polinomio ƒ(x) per un dato Δ costante. Tuttavia, le difficoltà tecniche per il montaggio e la notevole precisione richiesta non permisero la sua realizzazione.
L’idea di calcolatore programmabile, presente in Babbage, si concretizzò con la “macchina analitica” (analytical engine). Secondo il progetto iniziale, essa si basava su 2 operazioni:
– Accettazione dei dati in ingresso e conservazione dei risultati parziali
– Esecuzione del calcolo
compiute da alcune strutture fondamentali:
– Memoria (store)
– Unità di calcolo (mill)
– Input (schede perforate, ispirate a quelle del telaio Jacquard)
Ciò che avveniva, in sintesi, era: data una quantità di dai iniziali in magazzino (STORE), attraverso opportune operazioni (MILL), si ottengono dei risultati in uscita (OUTPUT).
Anche in tal caso, la complessità e la mancanza di fondi, ne resero impossibile la realizzazione concreta; l’invenzione non si tramutò mai in innovazione.
Questo non accadde alla macchina degli Scheutz, basata su quella analitica, ma in più dotata di stampante per il completamento dell’output, il cui sviluppo fu finanziato dal governo svedese.