Il nostro fratello gemello: il computer

In un suo libro del 1982, “Mia sorella gemella psicoanalisi” Cesare Musatti identifica la propria nascita con quella della psicoanalisi: nacque il 21 Settembre 1897 proprio quando Freud passava in treno davanti alla sua casa di Dolo, diretto a Venezia in procinto di scrivere a Fliess la famosa lettera in cui rinunciava alla teoria del trauma e proponeva la psicoanalisi come strumento di analisi del mondo interiore (inconscio).

Le generazioni nate tra il 1945 e il 1957 sono coeve con la nascita dei Computer e della informatica in Italia. L’articolo non pretende di ripercorrere la storia dell’informatica italiana, ci vorrebbe ben altra conoscenza e spazio, ma solo raccontare come è stata vissuta da uno dei suoi tanti gemelli.

L’informatica italiana nasce sostanzialmente negli anni 50 in base a tre diverse esperienze quasi contemporanee. Due esperienze che chiameremo del Buy nascono rispettivamente allo INAC (Istituto Nazionale per le Applicazioni del Calcolo) dell’università di Roma e al dipartimento di elettronica (all’epoca non si chiamava così) del Politecnico di Milano. La terza esperienza che chiameremo del Make nasce con la collaborazione tra la Olivetti di Ivrea e la università di Pisa che stava progettando la Calcolatrice Elettronica Pisana.

Enzo Aparo, di cui mi sento grato allievo, così mi ha raccontato la storia della esperienza romana. Quando era giovane matematico allo INAC il direttore Mauro Picone, che soleva chiamare i suoi collaboratori con un campanello, lo invitò a partire per l’Inghilterra (dove Turing aveva progettato e realizzato i primi Computer) per acquistare e portare in Italia un calcolatore della Ferranti di cui il Centro di Calcolo dell’università di Roma aveva necessità per le sue ricerche e applicazioni.

Luigi Dadda (con cui feci l’esame di calcolatori elettronici, poi rettore del Polimi) giovane ricercatore su sua sollecitazione e con il consenso del rettore Cassinis fu inviato in California per contribuire alle ricerche, acquistare con fondi del piano Marshall, e portare a Milano un CRC 102A costruito secondo l’architettura dominante, ancora oggi usata, di Von Neumann. Nel 1954 il Computer fu installato e cominciò a sfornare soluzioni presso il politecnico di Milano. Fu il primo computer funzionante in Italia e nell’Europa continentale; il FINAC di Roma entrò in funzione solo qualche mese dopo.

La terza esperienza, quella del Make, nasce nel 1957 ad Ivrea per l’intuizione di un imprenditore illuminato Adriano Olivetti, che con l’aiuto di Mario Tchou, un geniale ingegnere, figlio di un diplomatico cinese arrivò a costruire il primo Computer commerciale funzionante interamente a transistor (e non con le più costose, e dispendiose di calore, valvole termoioniche). La famiglia dei nuovi Mainframe Olivetti si Chiamò ELEA (Elaboratore Elettronico Automatico) e fu scelto anche con riferimento alla scuola Eleatica di filosofia della Magna Grecia.

Nel 1957 mio padre, dipendente della Olivetti, era stato richiamato dall’ingegner Adriano da Buenos Aires (dove dirigeva il locale stabilimento di macchine da scrivere) per assumere, al posto di un suo compagno di marina, il ruolo ad Ivrea di direttore dello STAC (Servizio Tecnico Assistenza Clienti) che all’epoca si occupava principalmente delle macchine da calcolo elettromeccaniche, in primis la celebre Divisumma. Ricordo che, in tempi relativamente recenti, mio padre mi raccontò che all’epoca disse ai suoi collaboratori: “Quando in una macchina piccola come la Divisumma si riuscirà con l’elettronica a fare 2 + 2 senza parti in movimento il nostro business sarà finito”.

Nel 1958 fu assunto ad Ivrea anche mio zio, ingegnere civile, che poi sarebbe diventato direttore della divisione costruzioni della Olivetti. Mio zio aveva mille interessi non strettamente connessi con la sua professionalità: musica classica, gioco degli scacchi, energia solare e… Ricerca Operativa. Mi incuriosivano, ormai frequentavo il liceo, pur capendone poco, i suoi lavori sulla Programmazione Lineare ed il Pert che svolgeva in casa il Sabato e la Domenica, con il solo ausilio del Regolo calcolatore e di una calcolatrice elettromeccanica della Olivetti. Quando era pronto in tavola mia zia si spazientiva e mi diceva: “Vai da tuo zio e digli di smettere di giocare con i quadratini (Le celle della tavola del Simplesso.) ed i tondini (I nodi del reticolo CPM) perché la cena è pronta!”. Il PERT-Olivetti (in realtà non si trattava di PERT perché era un reticolo deterministico) adottava la notazione europea delle attività sui nodi diversa da quella originale americana che rappresentava le attività del progetto sugli archi. Mio zio, in quel periodo dirigeva il progetto di ampliamento dello stabilimento di Pozzuoli della Olivetti, collaborò con la divisione elettronica della società per gestire il progetto con il PERT-Olivetti implementato sul computer ELEA. In un articolo comparso sulla rivista L’Ingegnere scrisse che si trattava di una delle prime applicazioni in Italia di un reticolo computerizzato applicato ad un cantiere di una certa dimensione (diverse centinaia di attività).

Al Politecnico di Milano, benché seguissi il corso di elettronica, non ebbi mai occasione di vedere il computer che, all’epoca, era della Sperry Rand. Solo al momento della tesi (La Scelta degli Investimenti) decisi di scrivere un piccolo programma in Fortran per codificare i principali metodi decisionali (Media, Scarto, Wald, Hurwicz, Savage).

Per programmare si procedeva così:

  1. Il programma veniva scritto a mano su appositi fogli Fortran;
  2. Ci si recava con i fogli in un locale in cui erano presenti le macchine perforatrici di schede;
  3. Digitando su una tastiera si otteneva che ogni riga di programma venisse trasformata in una scheda perforata;
  4. Ci si recava a consegnare il pacco di schede (attraverso una finestra). Quando possibile l’operatore le avrebbe fatte leggere dal lettore di schede del computer;
  5. Il compilatore Fortran avrebbe restituito un tabulato con l’elenco degli errori. Per ottenere dalla solita finestra questo tabulato passavano 2 o 3 giorni;
  6. Gli errori sintattici erano facili da correggere, quelli logici talora difficili perché bisognava saper leggere ed interpretare un Dump , una specie di fotografia della memoria di lavoro del Computer nel punto in cui si era bloccato;
  7. Finalmente dopo aver ripetuto il ciclo varie volte si otteneva il tabulato finale con i risultati desiderati.

Dopo la laurea (1971) feci tre mesi come allievo ufficiale di marina presso l’accademia navale di Livorno, ma anche li non ebbi occasione di vedere un computer, potei però vedere un Radar e cercare di capire come funzionasse. Nominato ufficiale fui destinato all’ufficio SMRO (Statistica, Meccanografia e Ricerca Operativa) dello Stato Maggiore localizzato al Ministero della Marina a Roma. Neanche li ebbi occasione di vedere un computer. Negli uffici dello SMRO sottufficiali e ufficiali, diplomati e ingegneri usavano calcolatrici meccaniche o elettromeccaniche della Olivetti. Imparai parecchio: Supporto Logistico Mobile (era stato commissionato anche uno studio alla Honeywell), Pattugliamento probabilistico delle coste, teoria dei Giochi. Durante i 20 mesi di permanenza a Roma fui inviato a fare due corsi. Il primo di tre settimane (Ricerca Operativa) e il secondo due (Statistica) presso lo IFAP (Istituto Formazione e Addestramento del Personale) dell’IRI.. Durante quei corsi ebbi come docente per la prima volta Enzo Aparo, un valente matematico catanese che, tra l’altro in gioventù, aveva dimostrato alcuni teoremi relativi ai polinomi. I suoi interventi nell’ambito del corso di Ricerca Operativa furono principalmente centrati sulla Programmazione Lineare e sulla Analisi dei Sistemi. Nel 1972 era uscito il libro “I Limiti dello Sviluppo” commissionato dal Club di Roma (Aurelio Peccei) al MIT di Boston e basato sulla Dinamica dei Sistemi di J.W. Forrester.

Terminati gli obblighi militari, nella estate del 1973, vidi per caso, recandomi al Politecnico di Milano in Piazza Leonardo da Vinci, il bando per una borsa di studio presso la Scuola Mattei di San Donato Milanese. Dalla Scuola fui accettato, non tanto per il mio modesto voto di laurea 84/100, ma per gli esami aziendali facoltativi scelti e la tesi sulla “Analisi degli Investimenti”, di interesse per la Scuola. A quei tempi il Politecnico non aveva ancora istituito il corso in ingegneria gestionale.

L’ambiente della Scuola era entusiasmante: giovani compresi tra i 24 e i 30 anni, laureati in ingegneria, economia, giurisprudenza, matematica, scienze. Italiani provenienti da tutte le università del paese (circa 30 neo laureati), e stranieri, circa 20 anche con due o tre anni di esperienza lavorativa, provenienti da: Medio Oriente, Africa, Sud America, Stati Uniti, Australia, Cina e Giappone. La Scuola era collegata in Time Sharing con il Servizio “Call” della IBM. Il servizio metteva a disposizione una libreria di programmi (Matematica, Statistica, Ricerca Operativa, Simulazione) già compilati. L’utente doveva semplicemente collegarsi, scegliere un programma dalla libreria, fornire i dati del suo problema ed attendere la risposta dal Computer remoto. L’interfaccia uomo-macchina era costituita da una specie di grande macchina da scrivere (per la stampa era dotata della famosa pallina rotante della IBM) che utilizzava i grandi fogli standard dei tabulati per computer. Altro strumento di calcolo messo a disposizione degli studenti era una P101 (Programma 101 della Olivetti).
E’ necessario un breve passo indietro. Dopo la morte improvvisa di Adriano Olivetti (1960), l’azienda aveva deciso (o era stata costretta a decidere) di vendere la divisione elettronica alla General Electric . Ricordo che anni dopo mio padre chiacchierando di Computer in Italia mi disse: “…chi sa, se Adriano, non scomparendo prematuramente, avrebbe permesso la vendita della divisione elettronica”. L’ingegner Piergiorgio Perotto, che dirigeva un piccolo gruppo facente parte della divisione, riuscì a trasferire il suo ufficio all’interno della divisione macchine da calcolo e quindi restò in Olivetti anche dopo la vendita della divisione elettronica a G.E. La Perottina, come qualcuno la chiamava, progettata dal suo gruppo ebbe un grande successo alla fiera di New York del 1965 essendo allora, e poi nella storia, considerata il primo Personal Computer del mondo. Qualche polemica ci fu: pare che alcune soluzioni innovative fossero state successivamente ricopiate, in maniera non del tutto legale dalla Helwett e Packard.
Imparai alla Scuola a programmare la 101 che utilizzava un linguaggio tipo Assembler. Dovevano essere gestiti i singoli registri: quelli in cui si inserivano i dati di ingresso, quelli in cui si effettuavano le operazioni di calcolo e quelli in cui si inserivano i risultati da stampare. La memoria esterna, in cui si registravano dati e programmi, era costituita da una semplice scheda magnetica, antesignana delle cassette, i floppy disk e le chiavette USB. La stampantina integrata era piccola simile a quella utilizzata nella calcolatrice da tavolo Divisumma.

Ricordo che negli anni 73/74 si diffusero le prime calcolatrici tascabili, dotate di display e talora micro stampante, che potevano andare oltre le 4 operazioni, calcolando, con facilità, radici quadrate, logaritmi, esponenziali ed altri tipi di funzioni, tra cui quelle finanziarie e di attualizzazione; le marche principali erano Texas Instrument e Helwett Packard. Fu la fine delle tavole logaritmiche e finanziarie fondamentali e necessarie per i calcoli sino a quel momento.

Un passo indietro per ricordare un episodio divertente. Verso la metà dello scorso secolo, si trovarono a lavorare insieme negli USA tre geni della fisica e della matematica provenienti da diverse parti del mondo: R. Feynman, E. Fermi e J. Von Neumann. Tutti e tre, bravissimi nei calcoli, si sfidavano per gioco a chi per primo fosse riuscito a trovare la soluzione a complessi problemi di fluidodinamica. Naturalmente ciascuno era libero di lavorare con lo strumento preferito (Von Neumann non aveva ancora inventato i computer). La storia racconta che Feynman era imbattibile con la calcolatrice meccanica, Fermi era di una straordinaria velocità nell’eseguire i calcoli con il solo ausilio del regolo calcolatore e Von Neumann preferiva effettuare tutti i calcoli a mente. Arrivavano tutti e tre molto velocemente agli stessi risultati, ma molte volte il più veloce era Von Neumann.

Ritrovai il Prof. Aparo come docente alla Scuola Mattei e da allora ogni anno, anche quando lavoravo da tempo, andavo a sentire le sue lezioni di Ricerca Operativa e Calcolo Numerico alla Scuola di Metanopoli. Una volta mi raccontò che Boldrini (Primo preside della Scuola, Professore di Statistica e Vice Presidente dell’Eni ai tempi di Mattei), già gravemente malato gli disse “… Enzo, mi raccomando la Scuola Mattei!”. Si interessò molto ad un programma Fortran che stavo preparando con un compagno, Saverio, relativamente alla tecnica reticolare GERT (Grafic Evaluation and Review Tecnique): “…assomiglia molto alla programmazione dinamica nell’incertezza” ci disse. Un’ altra volta, quando gli chiesi aiuto per una dimostrazione di matematica finanziaria raccomandò: “Roberto, quando fai una dimostrazione matematica, non devi riportare passaggi ovvi, ogni passaggio deve aggiungere qualcosa di nuovo e costruttivo in vista della conclusione finale”. Quando fui assunto in Saipem mi diede da leggere le fotocopie delle bozze di un articolo (Alcuni Modelli e Metodi e della Programmazione Lineare, Enzo L. Aparo, 08/09/74 , Istituto per le Applicazioni del Calcolo del CNR e Università di Roma) che stava scrivendo relativamente alla tabella ridotta del Simplesso. “Caspita!”, disse il preside della Scuola Mattei, “Aparo deve avere molta fiducia in te, perché in genere è gelosissimo dei suoi articoli e non li mostra a nessuno prima che siano pubblicati!!”. Quell’articolo fu poi di grande utilità per me ed il collega Stefano, già compagno alla Scuola, quando lavorammo al miglioramento dell’algoritmo di programmazione lineare studiato per la nuova “Anchor Force Allocation Logic del Castoro 6”. Si trattava di minimizzare i 12 tiri (3 per ognuno dei 4 vertici del pontone) dei verricelli, contrastando le forze esterne (vento e mare) e mantenendo il Castoro nella sua rotta di posa della condotta. All’epoca i calcolatori, in particolare di non grandi dimensioni come quello istallato sul Castoro, avevano poca memoria ed erano piuttosto lenti. Ebbene con il programma scritto in Basic, basato sulla tabella ridotta del Simplesso riuscimmo, con soddisfazione e a parità di ottimo, a ridurre di circa 10 volte sia lo spazio di memoria utilizzato sia i tempi di calcolo.
L’azienda penso di utilizzare Stefano e me anche per l’attività di formazione, quindi fummo inviati alla scuola di Matelica (fondata da Mattei in persona) per insegnare ai giovani diplomati, futuri assistenti di cantiere, il Pert e altre tecniche di Ricerca operativa. A lungo negli anni successivi, l’azienda mi inviò a fare formazione all’interno (IAFE, Scuola di Supercortemaggiore, Credera) e all’esterno del gruppo (Coopsette di Reggio Emilia, Siemens di Cernusco, International Facility Management ecc.).

Fui assunto alla Saipem dal direttore per la pianificazione e controllo perché si fidava degli allievi della Mattei e perché gli interessava la mia tesi sulla scelta degli investimenti. In quel momento il gruppo Eni passava da una struttura informatica decentralizzata (ogni società aveva il suo centro di calcolo) ad una informatica centralizzata. Era stata costituita una nuova società Enidata che gestiva un unico grande centro di calcolo del gruppo e anche gli analisti, i programmatori, i sistemisti e gli operatori del centro. Il capo della pianificazione e controllo che gestiva l’elaboratore di Saipem era stato contrario alla centralizzazione, ma dovette cedere. Su un punto restò irremovibile: dovevano garantirgli un hardware autonomo in grado di calcolare il tasso di rendimento interno dei progetti d’investimento. Infatti appena assunto trovai in ufficio una P652 (rilascio più recente, della P101 Olivetti) dotata di un programma memorizzato su scheda magnetica per il calcolo del TRI (Tasso di Rendimento Interno). Il programma esplorava sistematicamente i tassi di attualizzazione del Cash Flow del progetto (le navi/piattaforme della Saipem avevano una vita presunta di circa 20 anni) per trovare quel tasso (TRI) che azzerasse il V.A.N. Poiché il TRI doveva essere calcolato con 6 decimali la macchina impiegava circa 20 minuti per un calcolo. Con l’aiuto dell’amico Saverio rividi il programma introducendo il metodo del dimezzamento per calcolare lo zero di una funzione. Il tempo medio di calcolo si ridusse a soli 3 minuti, vantaggio non da poco se si considera che per ciascun progetto d’investimento dovevano essere effettuate numerose ipotesi variando gli esborsi in conto capitale, quelli dovuti alla gestione, alle manutenzioni straordinarie, gli incassi ed il valore di recupero al netto dello smantellamento. Con il tempo migliorai ulteriormente il programma facendogli calcolare tutti gli i principali indici PB (Pay-Back), ROI. (Return On Investment), VAN (Valore Attuale Netto), EA (Equivalente Annuo), IP (Indice di Profittabilità). Un grande limite di queste macchine era quello di non poter fare grafici, quindi bisognava armarsi di pazienza e… carta millimetrata.

Il mio direttore decise di commissionare ad ENIDATA, società sita in Milano, un progetto per la realizzazione di un sistema informativo per la programmazione e controllo degli uomini e dei mezzi nei cantieri Saipem. Si decise che il gruppo di lavoro dovesse essere misto: analisti-programmatori (ENIDATA) e utenti (SAIPEM). Per gli utenti fui scelto io e poi un altro giovane ingegnere del personale/organizzazione. L’esperienza, durata quasi 2 anni, fu altamente positiva da un punto di vista umano, organizzativo, tecnico e conoscitivo. Il capo progetto era una donna (rarità nell’Italia della seconda metà degli anni 70) competente e severa, ma comprensiva con i suoi sottoposti. Io legai subito con Giuliano un bravissimo perito informatico (conosceva perfettamente ASSEMBLER, COBOL e FORTRAN) che era stato programmatore in Saipem, prima della centralizzazione e prima che io fossi assunto. ENIDATA aveva acquisito per questo progetto, SYTEM 2000 un DBMS (Data Base Management System) di natura gerarchica dotato di PLI (Program Language Interface, principalmente verso il COBOL) e di un potente NL (Natural Language) che permetteva agli utenti di fare interrogazioni alla base dei dati in un linguaggio simile all’inglese parlato. Naturalmente, per l’interfaccia con la base dei dati, erano previste anche delle “maschere” realizzate in CICS (Costumer Interface and Control System). Per lo sviluppo dei programmi, scritti in COBOL/PLI si usavano i terminali video, che io conobbi per la prima volta, collegati via TSO (Time Sharing Option) con il centro di calcolo sito a Metanopoli.

Proposi a Giuliano di metterci a lavorare insieme per un modello euristico poi tradotto, principalmente da lui, in Cobol/PLI che sulla base di un indice multi criteri (distanza fisica, temporale, tipologica, politica, ecc. tra i cantieri/paesi), suggerisse all’utente dell’ufficio programmazione, una lista di accoppiamenti (metodo Greedy della Matrice minima), sempre da lui modificabile, tra cantieri in fase finale, cedenti dei mezzi e cantieri riceventi dei mezzi al loro inizio. Una sera, terminando la giornata lavorativa, Giuliano mi disse: io dopo cena vado al Centro di Calcolo a Metanopoli, ho degli amici tra i sistemisti che mi fanno entrare, perché non vieni anche tu? Dalle nove di sera all’una di notte possiamo fare le prove che dall’ufficio richiederebbero più di dieci giorni! Portati un golf!! Fu entusiasmante, per la prima volta entrai in un centro di calcolo: enormi armadi con dischi, nastri la CPU (Central Processing Unit), La Console, Stampanti, Lettori di schede, Terminali TSO e un aria condizionata gelida! Potevamo sederci intorno ad un tavolo, guardare i tabulati , fare le correzioni ed avere i risultati dopo 5 minuti!

E’ necessario spiegare che in quegli anni i computer, anche dei grandi centri di calcolo, non erano potenti come quelli di oggi: di giorno c’erano tutti i terminali collegati, di notte no e andavano solo le procedure routinarie in batch (a blocchi) quindi da un terminale attivo, con alta priorità come quelli del centro, si riusciva ad avere risposte in tempi rapidissimi.

Terminammo il nostro modello di programmazione e spostamento di uomini e mezzi tra un cantiere e l’altro sparsi nel mondo con una serie di programmi Cobol/PLI che si appoggiavano su due D.B System 2000 (PRGCANT e DISTRIBX). Gli uffici di programmazione della Saipem furono collegati tramite video terminali TSO e gli utenti potevano interfacciarsi con le basi di dati sia tramite maschere CICS che con il Natural Language. L’applicazione fu un successo e rimase attiva sino a quando, per motivi organizzativi, la movimentazione dei Mezzi/Apparecchiature (Grù, Side-boom, Ruspe, Pale, Saldatrici, ecc.) tra i cantieri passò all’ufficio Gestione Mezzi che, nell’ambito della direzione tecnica, aveva anche il compito di controllarne lo “stato d’uso”, le manutenzioni e le alienazioni.

La possibilità di accesso al grande centro ENIDATA tramite i terminali TSO diede una svolta alle attività dell’ufficio: potevamo scrivere nuovi programmi in COBOL e FORTRAN e creare banche dati in System 2000: due miei colleghi (un ingegnere e uno statistico) ne realizzarono una (MARKSAIP) per archiviare tutti i nuovi progetti probabili e programmati, nel mondo di interesse della società. Il sistema era arricchito da un insieme di formule, calcolate con tecniche di regressione statistica, per computare velocemente una prima stima del valore/costi del progetto. Da parte mia mi dedicai a scoprire i grandi packages IBM disponibili nel Computer centrale, di cui nessuno in azienda sapeva niente:

  • Lo SPSS (Statistical Subroutine Package); lo usammo molto per le analisi di regressione;
  • IL PROJACS/CIPREC; per l’analisi reticolare e il livellamento delle risorse nei progetti;
  • Lo MPSX; per la programmazione lineare (e non lineare, linearizzabile a pezzi) e per le analisi parametriche e post-ottimali.

Per tutti questi packages, che studiammo ed imparammo ad utilizzare, si trovarono molte applicazioni, sia gestionali all’interno della direzione programmazione, sia in collaborazione con la direzione tecnica. Ricordo in particolare la potenza/efficacia di MPSX con cui risolvemmo diversi problemi. Ne parlai con Gianni, un bravissimo compagno di liceo e di ingegneria che faceva l’assistente nel dipartimento di Energetica al Politecnico di Milano.

Gianni era vissuto diversi anni in Africa e, tra l’altro si era occupato di sviluppo delle colture di pomodori traendone alcuni modelli matematici. Avuto il permesso del direttore, felice di collaborare con il politecnico di Milano, utilizzammo con successo le potenzialità di MPSX/IBM per ottimizzare i suoi modelli.

In quegli anni il nostro direttore diede incarico ad una società di consulenza di Bologna di proporre un sistema (modello + software + hardware) per simulare sul computer diverse ipotesi di piano quinquennale (Conto Economico + Stato Patrimoniale). Ci proposero ed acquisimmo MDS (Modelli Dinamici per le Strategie) basato sui metodi di simulazione dinamica (System Dynamics) ideati da Forrester, il linguaggio di programmazione era il Basic e lo hardware un HP 9845b con memoria da 64Kbytes. Un breve inciso: il Byte è formato da 8 bit (che possono assumere valori 0-1) dunque un byte (combinazioni possibili 2^8 = 256) è sufficiente per rappresentare tutte le lettere dell’alfabeto, i caratteri speciali e le 10 cifre. Dunque una macchina con memoria di lavoro di 64Kbytes ha una capacità di 64.000 caratteri, si tenga presente che la P101 si fermava a 3 o 4 Kbytes. I primi PC (IBM o Olivetti M24) arrivavano a 640 Kbytes. Ben presto la memoria di lavoro dei PC si cominciò a misurare in Mega Bytes (10^6 Bytes = milioni di caratteri) ed oggi in Giga Bytes (10^9 Bytes = miliardi di caratteri). Per i Super Computer oggi si parla di Tera Bytes (10^12 Bytes = migliaia di miliardi di caratteri) e Peta Bytes (10^15 Bytes = milioni di miliardi di caratteri).

Un’altra importante misura, oltre la capacità della memoria di lavoro, è la velocità di calcolo dei Computers che si misura In FLOPS (Floating point Operations per Seconds, Numero di operazioni eseguibili in virgola mobile per secondo)1. . La storia passata segue più o meno bene la legge di Moore, ma vediamo oggi (2018) quali sono i SuperComputer più veloci (la misura è in PetaFLOPS, 10^15 Operazioni per secondo):

  1. Titan 17.59 USA;
  2. ENIHPC4 18.64 Italia;
  3. Gyoukou 19.14 Giappone;
  4. PizDaint 19.59 Svizzera;
  5. TaihuLight 93.00 Cina;
  6. Summit 200.00 USA?

La 9845 della Helwett Packard, siamo nei primi anni 80 dello scorso secolo, era un desktop computer fortemente innovativo: programmabile in un linguaggio di 3° generazione (Basic), dotato di video, stampante termica Uni A4 integrata e 2 lettori di cassette magnetiche. Una grande novità furono quelle grafiche: non più il ricorso alla carta millimetrata o agli orribili grafici composti da asterischi o caratteri prodotti dai tabulati dei centri di calcolo. Da allora la Businness Graphics fu qualcosa in più che i computer scientist poterono offrire ai tecnici di Ricerca Operativa, Matematica e Statistica e quindi ai decisori delle aziende e della economia. Acquistammo diversi packages: ricordo il RUFUS antesignano dei futuri sistemi di Word Processing, utilizzato con maestria da Patrizia, la segretaria del capo e un software di programmazione lineare che, per problemi medi e piccoli faceva concorrenza allo MPSX della IBM. Rapidamente trasferimmo sulla HP9845 tutti i programmi per l’analisi degli investimenti scritti per la P652 e ne approntammo di nuovi grazie a Cesare un perito informatico, e poi laureato in economia bravissimo, tra l’altro, a programmare in Basic.

Sviluppammo un PERT (con analisi statistica basata sul cammino critico), un modello di Punto di Pareggio per le singole divisioni e l’azienda nel suo complesso ed un modello di percentualizzazione dei Costi sui Ricavi del Conto Economico (sia storico che prospettico) fortemente voluto dal nostro direttore. Dal punto di vista logistico Cesare ed io eravamo dei privilegiati. Nel 3° palazzo uffici era di norma l’open space, i dirigenti potevano avere un box, ma con una parete di vetro; i direttori un box con due pareti opache. Lo stesso avemmo noi due; assieme al terminale e stampante TSO collegata al centro Enidata, la HP9845, e un grande armadio con dispense e libri che il direttore ci lasciava acquistare. Con Stefano e gli atri amici ingegneri della direzione tecnica impostammo in quegli anni sul computer della HP una banca dati, libri e articoli, di interesse dei vari settori aziendali.

Ricordo che, per un breve periodo, poiché il nostro direttore era andato in pensione ed il nuovo si trovava ancora negli USA, Cesare ed io ci trovammo a dipendere direttamente dall’amministratore delegato. Ci venne a trovare, volle vedere il 9845HP e si soffermò (proveniva dall’area amministrazione e Finanza) sul programma che avevamo approntato per il punto di pareggio. Fece con noi alcune simulazioni chiedendoci di variare le ipotesi sui costi fissi, variabili e ammortamenti delle diverse divisioni aziendali. Ringraziandoci se ne andò portando con se alcune stampe di tabelle e grafici.

Un giorno Roberto, amico di lungo corso, che lavorava in HP mi mostrò su una piccola loro macchina dotata di un piccolo video, un software innovativo per fare i calcoli, che assomigliava alla battaglia navale. Rimasi affascinato dalla semplicità e dalle potenzialità di calcolo di quella applicazione: “Spreadsheet”, in italiano si sarebbe poi chiamato “Foglio di calcolo” o “Foglio elettronico”. Chiamai presto il nostro referente commerciale della HP e gli chiesi come mai sulla HP9845b non fosse disponibile questo software, presente su loro macchine di classe molto inferiore. Mi rispose che lo Spreadsheet era poco più di un video gioco e quindi da escludere da macchine professionali. Rimasi a lungo stupito della cecità, non tanto del nostro referente commerciale, ma di una azienda dinamica e di successo come la HP A questo punto è però necessario un breve Flash-back.

Alla fine del 1978 Frankston e Bricklin fondarono la Software Arts e produssero VISICALC, il primo programma di gestione di fogli elettronici. L’accoppiata Apple II / VISICALC divenne trainante per il mercato dei microcomputer: la macchina era facile da usare, ad un prezzo accessibile, il programma rispondeva alle esigenze di ingegneri, tecnici, manager e professionisti fornendo uno strumento veloce, semplice e versatile per risolvere problemi finanziari, gestionali e matematici. Così lo stesso Frankston descrive la nascita del foglio elettronico: “Poche persone sono in grado, o vogliono sostenere lo sforzo, di scrivere programmi in BASIC (o in PASCAL) dedicati a semplici applicazioni; del resto i packages pronti e confezionati sono complessi e specialistici: è un letto di Procuste a cui gli utenti finali, cioè coloro che debbono risolvere i problemi più svariati, debbono confrontarsi. Naturalmente non si dice questo per sostenere che non si può fare un uso efficace del Personal Computer. Tutti possono constatare il successo dei primi calcolatori tascabili, uno strumento utile, flessibile e semplice da usare: noi vogliamo catturare la semplicità e la familiarità delle Calcolatrici Tascabili e trasferirle in un Personal Computer. Abbiamo osservato che la maggior parte delle persone per risolvere i loro problemi utilizza una Calcolatrice Tascabile assieme ad un foglio di carta ed una matita su cui annotano parametri e risultati intermedi. Abbiamo quindi pensato che una calcolatrice abbinata ad un video tabellare potesse essere un potente strumento di problem solving: questa è stata la premessa per lo sviluppo di VisiCalc…”.

Nel nostro ufficio, poiché sul 9845b il foglio elettronico non era disponibile, acquisimmo un Olivetti M24 (un clone del PC-IBM) su cui funzionava il foglio di calcolo Multiplan (prodotto da Microsoft) che, a differenza dell’originario Visicalc consentiva la gestione di Dossier formati da più fogli (impostazione che poi sarebbe stata adottata anche da Excel e da altri fogli di calcolo). In quel periodo (metà anni 80) in azienda i video dei computer, fossero di PC o di terminali, erano ancora visti come indicatori di basso status symbol: “…roba da segretarie o da terminalisti!”.Ne parlai con il dirigente responsabile del controllo di gestione, fu subito entusiasta e volle un M24 con Multiplan installato nel suo box con parete di vetro. Il dottore poteva farsi direttamente e autonomamente tutte le simulazioni che voleva, se e quando lo ritenesse opportuno. Passarono almeno altri due o tre anni prima che un altro dirigente avesse il coraggio di farsi installare un PC nel suo Box e di usarlo in prima persona!

Ai convegni dell’AIRO (Associazione Italiana di Ricerca Operativa), incontrai per molti anni persone interessanti che mi insegnarono molto: dal già citato Prof. APARO, alla Prof. Ostanello (studiosa all’epoca di tecniche multi criteri e processi decisionali), all’Ing Poiaga (esperto di tecniche reticolari, lessi un suo articolo fondante sul GERT) che poi avrebbe fondato AICE (Associazione Italiana di Cost Engineering), all’Ing. Gatti che poi incontrai nuovamente come A.D. Snamprogetti e Presidente ANIMP (Associazione Nazionale Italiana di Impiantistica). Conobbi anche Luisa una dott.ssa in statistica che in ASM (Associazione Servizi Municipalizzati di Brescia) si occupava di analisi degli investimenti, ricerca operativa, informatica e reti aziendali. Luisa mi parlò di Framework un nuovo sistema di “produttività individuale” che comprendeva le seguenti funzionalità: foglio elettronico, data base, word processor, indici con funzionalità ipertesto, linguaggio di programmazione (FRED). Convinsi il direttore ad acquistarlo e nel giro di un anno molti dipendenti (dalle segretarie al dirigente del controllo gestione) della direzione PROG (programmazione e controllo) furono equipaggiati con un PC avente il prodotto installato.
Patrizia si impadronì per prima dei segreti del Word Processor, Felice del linguaggio FRED ed io utilizzai il foglio elettronico per approntare modellini di Ricerca Operativa, Analisi degli investimenti e Project Management.

Decidemmo anche di capire qualcosa della nascente intelligenza artificiale (IA): all’epoca erano di moda i sistemi esperti, celebri Mycin per la diagnostica medica e Dendral per le analisi chimiche. Acquisimmo per poche centinaia di migliaia di lire un guscio di sistema esperto, basato sulle regole di produzione. Le regole di produzione erano fondate su una logica del tipo: “se… allora”, molto simile ai sillogismi di Aristotele, ma anche alla istruzione “IF” dei principali linguaggi di programmazione di terza generazione (Fortran, Cobol, Basic). In pratica tutte le regole di produzione (IF) erano costituite da precedenti e conseguenti. Esisteva poi un pool di fatti accertati e di fatti da accertare. Se una regola di produzione aveva tutti i precedenti accertati si accendeva e produceva nuovi fatti accertati, così via per tutte le altre regole. Si diceva che questo approccio tendesse a “simulare il cervello umano” mentre quello concorrente delle reti neurali tendeva ad “emulare il cervello umano”. Le reti neurali si rifanno da un lato agli studi di Mc Culloch e Pitts su neuroni e sinapsi e dall’altro lato ai lavori di Hebb sulle reti. L’idea è la seguente: esistono un livello d’ingresso, un livello d’uscita e uno o più livelli intermedi, ciascun livello è composto da uno o più “neuroni”. Ciascun neurone è collegato (sinapsi) sia con neuroni dello stesso livello che con neuroni di altri livelli. L’apprendimento della rete (supervisionato dagli umani o no) avviene variando i pesi delle connessioni. Oggi non si parla quasi più di sistemi esperti, invece le reti neurali sono sottostanti al dibattito sul “deep learning”: secondo la “IA forte” avremo presto sistemi e robot dotati di intelligenza e coscienza confrontabile (è forse superiore) con quella umana. Secondo la “IA debole” avremo potenti strumenti in grado di interagire e migliorare le potenzialità umane. In questa visione anche le preoccupazioni luddiste della perdita di posti di lavoro sono eccessivamente pessimiste: dalla ruota, al mulino ad acqua, alla macchina a vapore, ai telai meccanici la tecnologia ha sempre ridotto posti di lavoro, ma ne ha sempre creati di nuovi più qualificati, meno faticosi e più gratificanti.

Nell’ufficio studi continuammo anche a occuparci dei packages disponibili sul mainframe uno dei principali fu il SAS (Statistical Analysis System). Applicammo con successo la Cluster Analysis e scrivemmo un piccolo programma (Il sistema era dotato di un potente macrolinguaggio orientato alle analisi statistiche e probabilistiche) per stimare in via preliminare il profilo del rischio dei progetti. I clienti, sin dalla fase di offerta, chiedevano sempre più una “full network analysis” come condizione indispensabile per acquisire nuovi progetti. Mi orientai, con l’aiuto di un ingegnere della direzione tecnica su Artemis, un prodotto della Metier che comprendeva: analisi reticolare e calcolo del cammino critico sia per reti AON (Activities ON Nodes) sia per reti PDM (Precedence Drawing Method), un sistema di livellamento dei carichi delle risorse (con vincoli di tempo/risorse), un potente data base relazionale ed un evoluto linguaggio di programmazione. Ma la più eclatante novità di Artemis era la grafica: niente più Box delle attività o istogrammi di carico disegnati con asterischi, chiare curve ad S con sotto tabelle dei dati e bar-chart che consentivano ogni tipo di tratto per visualizzare criticità, milestones ecc. Continuava alla grande l’era della business graphics a cui oggi siamo tutti abituati anche solo con l’uso di Excel. L’acquisto di Artemis fu accettato dai capi. La direzione del personale e organizzazione colse la palla al balzo per avere un mainframe in casa in quanto Artemis si poteva utilizzare, grazie al potente DB relazionale, anche come sistema gestionale aziendale. L’ufficio studi fu però presto autorizzato ad avere la versione funzionante su PC (Artemis 7000).

Dopo aver avuto la certezza di interesse per la pubblicazione da parte della Scuola Mattei, proposi a due colleghi di scrivere un libro “Il Project Management nella Organizzazione Aziendale”. Nel quaderno (sarebbe circolato solo all’interno del gruppo) non solo descrivemmo tutte le potenzialità delle tecniche reticolari e di Artemis, ma anche i pregi e difetti delle varie strutture aziendali (funzionale, divisionale, a matrice, ecc.) nell’ottica di facilitare la gestione dei progetti. Il nuovo direttore della programmazione e controllo apprezzò il lavoro, ma ci spinse a proseguire scrivendo un secondo volume in cui, partendo da un semplice esempio pilota (scegliemmo una casa la cui costruzione richiedeva solo 10 attività!) fossero chiaramente spiegati tutti i passi necessari per gestire un progetto con le tecniche più moderne. Tramite comuni conoscenze potei presentare il progetto, già in fase avanzata, a Franco Angeli. L’editore si mostrò molto interessato anche perché all’epoca non esisteva, in italiano, un manuale che mostrasse passo, passo come costruire, a partire dalla WBS (Work Breakdown Structure), un reticolo di progetto per ottenere il bar-chart, gli istogrammi di carico delle risorse e le curve ad S di avanzamento e dei costi (Budget, Earned, Actual). Nella prima edizione il titolo del manuale era “Pianificazione e Controllo dei progetti)” ed il Software utilizzato per costruire i modelli sul computer era Artemis. Negli anni successivi continuammo ad aggiornare il volume: aggiungemmo un glossario dei termini di Project Management, mostrammo come buoni risultati potevano ottenersi usando Winproject ed Excel, potenziammo la parte sul Cost Control ed introducemmo l’analisi del rischio dei progetti. L’anno in cui facemmo le modifiche più sostanziose l’editore ci propose di rilanciare il volume con un nuovo titolo: “Tecniche di Project Management”. Il volume da oltre 30 anni continua a vendere copie con grande soddisfazione dell’Editore.

Mentre lavoravo al libro una giovane amica informatica (che poi sarebbe diventata ordinario di Ricerca Operativa e presidente dell’Airo) mi fece ottenere un contratto al politecnico di Milano per tenere diverse lezioni sul P.M.; gli studenti furono contenti di vedere le potenzialità di un software che non conoscevano e anche il mio nuovo direttore fu ben contento di collaborare con Polimi, purché tenessi le mie lezioni/esercitazioni dopo le 16. Anna mi propose anche di seguire come relatore la tesi di una sua studentessa della Statale di Milano, argomento ricerca: funzioni semplici e flessibili per rappresentare le curve ad S dei progetti. Da quel momento, anche con interesse dell’azienda, seguii come Tutor diversi laureandi di varie università. In collaborazione con IAFE (Istituto Addestramento e Formazione ENI), di cui in gioventù ero stato allievo, e Snamprogetti fondammo il primo Chapter italiano del PMI (Project Management Institute USA). A lungo poi tentai di trasferirne in azienda i principi: Initiation, Planning, Execution, Control, Termination. Processi che dovevano essere ripetuti per le varie aree gestionali dei progetti: Scopo, Tempi, Costi, Qualità, Rischi, Contratti ed Acquisti, Comunicazione ed Integrazione, ecc.
Quando il direttore della pianificazione e controllo fu destinato a nuovo incarico l’ufficio studi venne soppresso e noi (eravamo non più di sei) andammo a costituire l’ufficio planning che, assieme all’ufficio cost control fu posto in staff al direttore generale operativo. In quegli anni non ci fu molto tempo per la ricerca e lo studio, dovevamo infatti dare supporto al commerciale in fase di acquisizione delle offerte e agli operativi in fase di gestione dei progetti. L’unico cambiamento di rilievo (da un punto di vista informatico) fu il passaggio da Artemis a Promavera Project Planner e l’installazione di un grande e bel Plotter in dotazione dell’ufficio. Seppi anche che l’ufficio organizzazione e sistemi aveva abbandonato Artemis ed aveva acquistato SAP per le applicazioni gestionali.

Quando andai in pensione una delle prime preoccupazioni fu di aggiornare il computer di casa. In passato avevo avuto un PC Amstrad ancora dotato di due lettori per floppy disk grandi (ma senza Hard Disk) e poi un Notebook Zenith equipaggiato con Hard Disk ed un lettore di mini floppy, non avevo però collegamento internet e quindi neanche posta elettronica. L’idea era che essendo disponibili queste facility in ufficio non avevo necessità di averle anche in casa. Dunque, arrivato alla pensione acquistai un Notebook Toshiba dotato di video grande, lettore di CD e porta USB, chiesi però di avere un lettore esterno di mini floppy in quanto sui dischetti erano memorizzati tutti i miei file. Quando la scheda video del Toshiba mi abbandonò passai ad un Samsung, con cui sto scrivendo questo articolo, più potente ma con un grande video come il Toshiba. Le porte USB erano ormai uno standard e ad esse (almeno 4) si potevano collegare: le chiavette, il mouse, la stampante e altre periferiche. Due anni fa mi regalarono una nuova stampante in sostituzione alla vecchia Epson a getto d’inchiostro. Si trattava di una multifunzione (stampante, fotocopiatrice, fax, scanner) sempre della Samsung. Già in ufficio avevo apprezzato la superiorità delle stampanti laser che hanno si il toner, ma non le cartucce d’inchiostro che debbono essere cambiate frequentemente ed il cui contenuto si secca se per una settimana non si usa la stampante. Il più grande vantaggio pratico è però lo scanner che permette di inviare documenti cartacei (ad assicurazioni, banche, commercialisti, ecc.) e pagine di libri o articoli agli amici.

Ben presto mi stufai del collegamento a tempo con Internet e passai, come credo abbiano fatto tutti, al collegamento forfettario pagato in bolletta e allo ADSL. Ricordo che miei primi articoli e anche i primi libri erano scritti a mano e talora con la macchina da scrivere, si portava a mano il cartaceo dall’editore, si andavano a ritirare le prime bozze, si correggevano e si riportavano all’editore. Le bozze solitamente erano due, talora tre. L’editore poi, che si appoggiasse o no alla tipografia, impiegava due o tre mesi per stampare i volumi. Una prima svolta vi fu con la diffusione dei word processor (le correzioni molto più facili e rapide, grazie anche al controllo ortografico dei testi) e dei dischetti, ora all’editore si portava direttamente il floppy e non più il cartaceo. L’editore dal canto suo utilizzava sistemi elettronici e quindi i tempi di stampa erano dimezzati. La seconda svolta avvenne con la diffusione della posta elettronica che permette di inviare in allegato anche un intero volume. Internet è uno strumento prezioso anche per chi studia, scrive e fa ricerca. Nei riferimenti riportati sotto si trovano diversi richiami a Wikipedia, l’enciclopedia On-line. La versione Inglese è sicuramente più completa, ma personalmente non padroneggiando perfettamente la lingua, procedo in questa maniera: se conosco abbastanza l’argomento vado direttamente sulla voce Inglese se invece non lo conosco leggo sempre prima quella italiana. Lo Home-banking è uno strumento prezioso soprattutto ora che le banche chiudono sempre più sportelli e tendono ad eliminare la figura del “cassiere” per sostituirla con quelli che pomposamente chiamano “robot”, in realtà Bancomat poco più evoluti ma scomodi e complicati da usare. Per ridurre i costi si trasferisce lavoro, perdita di tempo, code e arrabbiature sui clienti. Un percorso inverso, cioè miglioramento del servizio almeno dove vivo, lo ho riscontrato alle poste, noto lo aumento del numero degli sportelli, ora tutti multifunzione, personale gentile e possibilità di pagare sia in contanti che con il bancomat.

Lo Smartphone, che è in realtà un piccolo Computer, è diventato pervasivo con le sue centinaia di apps (applicazioni che sono programmi di computer). La domenica capita di vedere al ristorante madre, padre e 2 figli che appena seduti a tavola cominciano a “smanettare” con lo Smartphone, il più piccolo ne ha uno finto che gli permette comunque di abituarsi alla realtà virtuale invece che interagire con il mondo reale. Se c’è un nonno non tecnologizzato, sarà lui a leggere il menù, interagire con il cameriere e cominciare ad ordinare acqua e vino. Mi hanno regalato uno Smartphone, ma lo tengo spento e di riserva, infatti mi è anche scaduta la sua scheda Sim. Preferisco di gran lunga il PC: video grande, tastiera comoda e poi decido io quando accenderlo e cosa fargli fare. Anche i più diffusi Social Network (Facebook, Twitter, WhatsApp) non suscitano il mio interesse, tre o quattro anni fa però, su sollecitazione di un ex-collega e di una amica, mi sono inscritto a Linkedin che seguo con interesse e attivamente da quando ha iniziato a convertirsi da semplice Social per offerte/ricerche di lavoro a Social su cui si possono dibattere questioni culturali inerenti tutte le diverse professioni.

Presso l’università di Castellanza ottenni un contratto per insegnare, nell’ambito del corso di ricerca operativa, le tecniche di Project Management e, corsi simili, più o meno estesi, tenni anche presso la Scuola Mattei – Master Medea, presso ANIMP (Associazione Nazionale di Impiantistica) e presso varie altre aziende e associazioni. Per la scuola Mattei, ora parte integrante della nuova Eni Corporate University, pubblicai nel 2005 il libretto “La gestione dei progetti”. Vi erano descritti diversi fogli elettronici, alcuni innovativi come l’Equazione della curva ad “S”, il Cruscotto del Project Manager, Il Revised Earned Value Method e le Matrici Impatto Probabilità semplificate. Quel quaderno non era disponibile sul mercato esterno al gruppo, quindi poiché Animp era interessata per i corsi che tenevo in associazione decisi di realizzare un CD “La cassetta degli attrezzi del Project Manager” distribuito nel 2006 da Springer Verlag con cui nello stesso anno avevo pubblicato il volume, “Problem Solving: idee, metodi e strumenti da Mosè a Mintzberg”.

Due anni dopo, nel 2008, pubblicai con Franco Angeli un testo corredato da CD: “Il foglio elettronico come strumento per il Problem Solving”. Mentre il libro pubblicato con Springer aveva un taglio storico/filosofico, questo volume aveva un taglio di matematica applicata e ricerca operativa descritte con modelli realizzati sul foglio elettronico Excel.
Il primo collegamento ad Internet in Italia avvenne nel 1986 ad opera della università di Pisa che seguiva le orme tracciate da Faedo e Conversi. Personalmente iniziai a collaborare attivamente (e non solo per consultazione/informazione) con la rete nel 2007 attraverso il sito www.matematicamente.it . Me lo fece conoscere una cugina insegnante di matematica nella scuola secondaria superiore. Con Matematicamente oltre a numerosi articoli scrissi due libri: “Problem Solving: 102 nomi per 102 idee” di taglio storico/filosofico e “Project Management, Problem Solving, Decision Making” di taglio matematico-applicativo e di ricerca operativa. Circa cinque anni fa potei dunque capire concretamente il significato di “libro elettronico”, i volumi infatti furono pubblicati sia in formato cartaceo che elettronico.

Il secondo volume, come del resto il secondo pubblicato con Angeli avevano come soggetto/oggetto principale il foglio elettronico ed in particolare Excel che ormai aveva vinto la competizione con tutti i suoi concorrenti, storici e contemporanei (Visicalc, Multiplan, Lotus, Framework, ecc.). Excel fu subito dotato di un linguaggio di “Programmazione Macro” sostituito negli anni con il “Visual Basic”, simile al Basic di terza generazione, ma anche ai linguaggi di programmazione più moderni (Java, CC+, Pyton, ecc.). Mi interessa però, essendo sempre stato un programmatore di computer piuttosto scadente, mettere in evidenza tre altre importanti funzionalità di Excel per la soluzione dei Problemi:

  1. Ricerca Obiettivo: in inglese what to do to achieve , cosa fare per ottenere. Apparentemente si tratta di una opzione banale che consente in una tabella, di imporre un risultato ed andare a vedere quale deve essere il dato di partenza che lo può generare. Si tratta di una analisi inversa dal risultato al dato. L’opzione può essere usata però per risolvere una qualunque equazione (o cercare gli zeri di una funzione) lineare,  polinomiale o non lineare qualunque;
  2. Iterazioni: sono utilissime per risolvere i problemi di formule circolari (se vi è una convergenza). Sono però anche utili nei problemi di Simulazione e di generazione di numeri casuali (Metodo MonteCarlo). Premendo in successione il tasto F9 (Ricalcolo) si può visualizzare su un grafico come procede la ricerca;
  3. Risolutore (Solver): Si tratta di un potente sistema di programmazione matematica (ottimizzazione) fornito dalla Frontline a Microsoft. Non tutti sanno però che il Risolutore, se non si indica una funzione obiettivo, può essere utilizzato per trovare le soluzioni di un qualunque sistema di equazioni lineari/non lineari.

Circa cinque anni fa ricevetti una mail di saluto da un frequentatore di matematicamente. Si trattava di Marco, un compagno di liceo che non incontravo da oltre trenta anni. Iniziammo un intenso scambio di mail su vari temi: economia, scienze, matematica, politica, ecc con divertimento reciproco. Insieme scrivemmo anche alcuni articoli, per brevità ne cito due che sono in stretta relazione con la divulgazione del progresso dei computer, della matematica applicata e dei relativi software:

  • Hume e Smith, “Programmazione Matematica”, Matematicamente 2018;
  • Hume e Smith, “Problemi algoritmi e Codici”, Matematicamente 2017.

In “Programmazione Matematica” riprendemmo i temi a me cari di ottimizzazione che da ragazzo avevo appreso dallo zio che lavorava alla Olivetti e da giovane da Enzo Aparo. In particolare utilizzammo gli “algoritmi genetici” di cui Marco disponeva l’opzione nella sua versione aggiornata di Excel. Sul concetto di algoritmo vi è oggi molta enfasi e tanta confusione. Il nome deriva da un matematico persiano: al-Khwarizmi, ma il concetto era già noto ai greci, ad esempio ad Euclide che aveva inventato un algoritmo per il calcolo del Massimo Comun Divisore.
Gli algoritmi genetici, utilizzati in genere per risolvere problemi di ottimizzazione a più variabili, traggono il nome e la modalità del loro funzionamento da due meccanismi fondamentali della biologia scoperti da Mendel e Darwin: Il Cross-Over e le Mutazioni casuali. Sostanzialmente funzionano così:

  1. Si scelgono casualmente dei punti di soluzione iniziali (come nel Metodo MonteCarlo);
  2. Si selezionano le soluzioni migliori, si incrociano i valori di alcune variabili di queste soluzioni per generarne di nuove;
  3. Si introducono mutazioni casuali sulle nuove soluzioni per generare ulteriori nuove soluzioni;
  4. Si torna al punto 2) sino a quando i miglioramenti cessano;
  5. Fine.

R” è un software statistico e grafico, utilizzato anche da una mia giovane cugina medico nella tesi di specialità per le ricerche sui problemi di anestesia e ventilazione dei pazienti. Come altri software statistici (ad esempio SAS) comprende anche algoritmi di ricerca operativa e ottimizzazione. In questi giorni il collega ed amico Stefano utilizza e confronta i risultati dell’algoritmo genetico di “R” con l’algoritmo genetico di “Excel”. Il problema è quello di posare una condotta (oleodotto o gasdotto) in fondo al mare minimizzando gli stress (taglio, momento flettente, ecc.) sulla condotta. L’idea è quella di minimizzare in fase di posa, l’energia potenziale sulla condotta… come farebbe la natura.

In “Problemi algoritmi e Codici” scrivemmo, con Marco, di algoritmi euristici, sub-ottimali come sono ad esempio gli algoritmi “Ingordi”, “Greedy Algorithm”. Questo tipo di algoritmi sono chiamati così perché ad ogni passaggio scelgono la soluzione (localmente) migliore; naturalmente non si ha garanzia di raggiungere un ottimo assoluto, ma spesso si ottengono buone soluzioni. Ecco un esempio concreto e divertente per concludere questo articolo e, in particolare la parte sugli algoritmi.
Problema: cercate un modo ragionevole, e rispettoso delle preferenze, per far trovare l’anima gemella ad “n” donne (X) ed “n” uomini (Y) cercando di accontentare tutti. Costruite una tabella n*n in cui sulle righe sono riportate tutte le donne e sulle colonne tutti gli uomini. Considerate poi il voto (compreso ad esempio tra 0 e 10) Xi che ogni donna darà su ogni uomo ed il voto Yi che ogni uomo darà su ogni donna. Per ogni cella della tabella o matrice costruite poi il seguente indicatore (media ponderata tra le preferenze femminili e maschili): $ P_i = k*X_i + (1-k)*Y_i \ \ \ \ \ \ \ \ \ (0<= k <= 1) $.
E’ evidente che se $ k = 1 $ la matrice rappresenterà tutte e solo le preferenze femminili, se $ k = 0 $ tutte e solo le preferenze maschili. Se $ k = 0.5 $ la matrice rappresenterà la media aritmetica tra le preferenze maschili e femminili. Si può pensare a $k$ come ad una manopola regolatrice dell’algoritmo: se girata tutta a sinistra ($k=1$) si da la massima enfasi alle preferenze femminili, se girata tutta a destra ($k=0$), a quelle maschili. Qualunque sia il valore di $k$ prescelto vediamo ora i passi dell’algoritmo Greedy per effettuare le assegnazioni:

  1. Si costruisce la tabella/matrice che in ogni cella riporta l’indice di preferenza $P_i$ dello specifico accoppiamento;
  2. Si sceglie il $P_i$ massimo. Si elimina da ogni ulteriore considerazione la donna è l’uomo assegnati cancellando le rispettive righe e colonne della matrice;
  3. Si sceglie il successivo $P_i$ massimo. Si elimina da ogni ulteriore considerazione la donna è l’uomo assegnati cancellando le rispettive righe e colonne della matrice;
  4. Si torna al punto 3 sino a quando tutte le assegnazioni siano state effettuate;
  5. Fine.

Non si avrà garanzia di aver trovato la soluzione ottima, ma solo una elevata probabilità di avere trovato una “buona soluzione”. Il lettore attento avrà compreso che era questo l’algoritmo euristico che avevamo utilizzato per il trasferimento dei Mezzi tra i cantieri della Saipem.

Conclusione

Gli anni del “Boom economico” in cui l’Italia primeggiava (3° o 4° nel mondo) per la ricerca e le nuove tecnologie (Elettronica, Chimica, Farmaceutica, Nucleare, Energia,…) fu dovuta da un lato al piano Marshall (USA), dall’altro ad alcuni personaggi eccezionali non ben compresi e talora osteggiati dalla politica, i sindacati, la magistratura e la burocrazia: Olivetti, Mattei, Ippolito, Marotta, Amaldi, Natta…; vedi in proposito il bel saggio, citato tra i Riferimenti, di Pivato (Il Miracolo Scippato).

L’auspicio di chi scrive è che altri “gemelli” dell’informatica italiana vogliano raccontare la loro storia di problemi risolti, ma anche di crescita e convivenza con i computer.

Riferimenti

Persone

Hardware

Software

Libri e Articoli

Commenti

commenti