ISTITUTO TECNICO STATALE “VITTORIO BACHELET” SANTA MARIA A VICO (CASERTA) Progetto Lauree Scientifiche anno scol. 2011/2012 “L’aritmetica delle macchine e la macchina della mente” Referente : Prof. Antonio Lanza INTELLIGENZA ARTIFICIALE Le origini “In altre attività del pensiero puramente logico, la nostra mente funziona molto più velocemente di qualsiasi computer ancora inventato.” DANIEL Crevier, AI: la tumultuosa storia della Ricerca per l'Intelligenza Artificiale Per Intelligenza Artificiale s'intende sia la possibilità che un qualunque meccanismo mostri un comportamento «intelligente», sia la disciplina che si occupa di studiare e sviluppare simili meccanismi. Cosa significa però comportarsi in modo intelligente? A parte l’abaco (inventato nel 2000 a.C. in Cina ) . Le prime macchine costruite per effettuare meccanicamente operazioni di calcolo, tali che ad una variabile input corrispondesse un output come effetto di un processo dei dati immessi determinato da una regola matematica o logica, sono molto antiche. La macchina di Anticitera fu realizzata intorno al 1° secolo a.C. Consisteva in un piccolo congegno meccanico capace di riprodurre il moto del Sole e di alcuni astri, sopperendo ai relativi calcoli altrimenti necessari per determinare le loro posizioni, secondo le curve teoriche allora ipotizzate. Alla metà del XVII secolo il filosofo francese Blaise Pascal realizzò la sua celebre Pascalina, ottimizzata per operazioni di somma e sottrazione, tenendo conto del riporto; è uno strumento di calcolo precursore della calcolatrice. La Pascalina è stata considerata per molti anni la prima addizionatrice meccanica inventa, anche se tale merito va attribuito a Wilhelm Schickard che nel 1623 inventò la vera prima macchina calcolatrice. La macchina poteva sommare e sottrarre numeri fino a sei cifre, e indicava il superamento della sua capacità facendo suonare una campanella. Per aiutare nelle operazioni di moltiplicazione e divisione, sopra l'addizionatrice erano collocati dei cilindri ruotanti. Per avere una macchina realmente in grado di eseguire le quattro operazioni occorrerà attendere l'invenzione di Leibniz. Nel 1673 Leibniz presenta alla Royal Society di Londra la calcolatrice meccanica (La Stepped Reckoner) realmente in grado di moltiplicare e dividere. L'innovazione principale rispetto alla pascalina e alla calcolatrice di Schickard fu l'introduzione del traspositore che permetteva di memorizzare un numero per sommarlo ripetutamente. Solo nel 1820 Xavier Thomas de Colmar riuscì a produrre l'aritmometro basato su un progetto quasi identico. Un'altra grande intuizione di Leibniz fu il primo tentativo di costruire una calcolatrice che utilizzava il sistema numerico binario. La macchina funzionava con delle biglie, la presenza o meno di una biglia in una posizione determinava il valore 1 o 0. Con George Boole ,nell'Ottocento e lo sviluppo dei calcolatori elettronici, venne ripresa e sviluppata. Nell'Ottocento si svilupparono i rudimenti dell'elaborazione basata sul codice binario (0,1) e le schede perforate, e ne nacquero i primi applicativi. Nel 1833 Charles Babbage progettò la Macchina Analitica, il primo vero calcolatore programmabile della storia. Venne realizzata la CPU, ma non ne fu mai realizzato un prototipo completo. Era il primo esempio di macchina con un'unità di memoria ed un'unità di calcolo. Nel 1854 George Boole, inventò il codice binario. Nacque l'algebra booleana. E’ un ramo dell'algebra astratta che comprende tutte le algebre che operano con i soli valori di verità 0 o 1, detti variabili booleane. L'algebra di Boole assume un ruolo importante in vari ambiti, in particolare nella logica matematica e nell'elettronica digitale. Nel 1858 la prima macchina differenziale, che permette di accedere ad una vasta gamma di calcoli matematici mise piede sul territorio degli Stati Uniti, dato che l'Osservatorio astronomico di Albany importò il calcolatore automatico meccanico realizzato dagli svedesi Goerg ed Edward Scheutz, basato sul progetto di Babbage e da quel momento gli americani cercarono di sviluppare in proprio i filoni di ricerca scientifica e tecnologica. Nel 1889 Herman Hollerith (1860-1929) brevettò l'utilizzo di schede perforate la cui lettura avveniva mediante l'analisi di circuiti elettrici. L'epoca dei computer inizia esattamente con la progettazione, nel 1937, dei primi calcolatori elettromeccanici, da parte di un gruppo d'ingegneri americani, tra cui Howard Aiken e George R. Stibitz, riprendendo le idee di Babbage e impiegandole nella costruzione del Complex Computer, nel '39: una piccola macchina che impiegava l'aritmetica booleana per funzionare. I suoi commutatori erano relè telefonici e la grossa novità stava nel suo controllo telecomandato a distanza. Nel 1944 Aiken costruì la Mark I. Questa macchina era un po' più complicata della prima, in quanto aveva una memoria centrale composta da settantadue contatori, che le permetteva di moltiplicare in sei secondi e dividere in dodici. Nel 1943, un anno prima, era, comunque, già nato il progetto del primo vero computer: l'ENIAC (Electronic Numerical Integrator And Calculator). Costruito da Mauchly e Eckert, con von Neumann e Herman M. Goldstine, ENIAC fu attivato nel '45, all'Università di Pennsylvania. Era un macchinario della lunghezza di trenta metri, alto e profondo un metro, composto da più di 18.000 valvole, 70.000 resistori, 10.000 condensatori e 6.000 commutatori: centinaia di volte più veloce del Mark I. Il Mark I aveva l'esclusivo vantaggio di «leggere» il programma di gestione dei diversi compiti d'affrontare, mentre l'ENIAC aveva bisogno di una nuova programmazione, lunga almeno due giorni di lavoro, per ogni ulteriore operazione non prevista nel precedente programma dato. Il Mark I prendeva direttamente le istruzioni nuove da un nastro di carta, immagazzinandole subito nella propria memoria. Mauchly ed Eckert costruirono il BINAC, una macchina che conteneva il programma da eseguire, per poi inventare l'UNIVAC, il primo computer da immettere sul mercato americano. Fu John von Neumann l'ideatore dei princìpi fondamentali dell'architettura dei moderni calcolatori. Non a caso il computer può esser definito «macchina di von Neumann», e non solo «macchina di Turing». Nel 1956 il progetto più ricco di aspettative per il nuovo settore scientifico fu quello del computer JOHNNIAC, ad opera di von Neumann. La preoccupazione fondamentale che aveva animato la programmazione del computer era di natura logica: in quegli anni era forte la ricerca di un'automazione del ragionamento deduttivo. Se, infatti, l'uomo opera secondo una logica stabilita, con regole immutabili, nel campo della matematica e delle altre scienze esatte, come potrebbe una macchina che emula il pensiero umano non funzionare secondo la medesima logica? Il JOHNNIAC fu costruito proprio con tale proposito simulativo. Ciò che, in sostanza, si cercava di ottenere era un calcolatore che, utilizzando un programma di pura logica, riuscisse ad isolare, nello spazio delle infinite soluzioni possibili, la risposta anch'essa logicamente più pura. Il JOHNNIAC fu in grado di risolvere vari sillogismi grazie ad un programma, il Logic Theorist (il teorico logico), inventato da Herbert Simon, Allen Newell e Cliff Shaw. Tale programma riuscì a dimostrare trentotto dei primi cinquantadue teoremi del secondo capitolo del monumentale Principia Mathematica, l'opera che all'inizio di questo secolo offrì una completa sistematizzazione di tutta la logica occidentale. La soluzione del computer fu più raffinata di quella offerta nei Principia. Nel 1960 alcuni studi su Whirlwind (un computer utilizzato dalla marina americana che reagiva in tempo reale alle azioni dell’utente) ispirarono due studiosi della materia alla fondazione della società DEC (Digital Equipment Corporation) e all’invenzione del PDP-1 nel 1960. Tecnicamente fu un successo: aveva un monitor a tubo catodico integrato, poteva trovare posto in una piccola stanza e forniva una rispettabile potenza di calcolo per il suo costo di "soli" 120.000 dollari. Ma, cosa molto più importante, lo standard del PDP-1 era aperto: tutti i dettagli costitutivi erano a disposizione, in modo da fornire agli utenti "avanzati" la possibilità di personalizzare o migliorare la macchina in caso di necessità: cosa che, per inciso, avvenne puntualmente. La DEC nel 1965 creò il primo esemplare del PDP-8. Incredibilmente piccolo e leggero per l'epoca, e con un prezzo di 18.000 dollari, il PDP-8 cominciò ben presto a fare bella mostra di sé in decine di laboratori e addirittura nelle scuole. Fu il capostipite della famiglia dei cosiddetti minicomputer Dai laboratori Xerox di Palo Alto nel 1970 nasce un progetto molto in avanti sui suoi tempi, che vedrà la prima luce due anni dopo. 1972: lo Xerox Alto. Prodotto dal Palo Alto Research Center (PARC), è il primo computer nella storia ad essere dotato di un display bitmap a finestre con capacità di sovrapposizione, connesso alla prima stampante laser, collegato alla prima rete Ethernet in local area network (LAN), e dotato del primo linguaggio orientato ad oggetti: lo Smalltalk. Lo Xerox Alto rimarrà un concept computer, ma darà il via al progetto Xerox Star (1981), il primo computer in assoluto sul mercato dotato di interfaccia GUI a icone, con mouse, i cui concetti e le cui soluzioni ispireranno tutto il mondo dell'informatica di là da venire. Apple Lisa e poi il Macintosh, Microsoft Word e Microsoft Windows, Xerox Ventura, l'interfaccia GEM, eccetera, sono tutti debitori in vario modo dello Xerox Star, diretto discendente dello Xerox Alto. Il 12 agosto 1981, IBM immette nel mercato il primo di una serie di personal computer che diventerà molto popolare: l'IBM 5150, meglio conosciuto come PC IBM. Nella sua prima versione era dotato di microprocessore Intel 8088 a 4,7 MHz, con 16 KByte di RAM, espandibili a 640, senza disco rigido, con massimo due drive per floppy disk da 5.25" a 160Kb, un monitor a fosfori verdi e sistema operativo PC-DOS 1.0, sviluppato dalla Microsoft e ceduto in licenza all'IBM. Il costo di questo PC era elevato (circa 3.000 dollari), la capacità di elaborazione bassa, la possibilità di gestire grosse moli di dati era legata all'acquisto di costosissimi dischi rigidi, o unità a nastro esterne. D'altra parte era una macchina solida e affidabile, che godeva di assistenza tecnica; era espandibile tramite un bus interno per schede di espansione. Mentre il resto degli home/personal computer di allora non riusciva a scrollarsi di dosso una certa immagine da "tecno-giocattoli", il PC IBM nasceva invece come una macchina "seria", con cui poter lavorare. 1969 ARPA lancia il progetto ArpaNet. Viene stabilito il primo collegamento con quattro istituti universitari: l’UCLA a Los Angeles, l’UCSB a Santa Barbara, lo Stanford Institute e l’Università dello Utah. Viene definito il primo protocollo di collegamento (NCP – Network Control Protocol). 1977 Dennis Hayes inventa il modem (modulatore-demodulatore) per la trasmissione dati fra due computer su linee telefoniche a modulazione. 1984 La National Science Foundation comincia a sostenere lo sviluppo dell’internet. Negli anni seguenti Nsf-Net prende gradualmente il sopravvento su ArpaNet. Nasce il sistema DNS (Domain Name System). Ci sono mille host internet. Cominciano i collegamenti fra BBS. Aprono i primi BBS in Italia. William Gibson pubblica Neuromancer e nasce la leggenda del “ciberspazio” . La Apple lancia Macintosh "La creatività è solo collegare le cose. Quando si chiede alle persone creative come hanno fatto qualcosa, si sentono un po 'in colpa, perché in realtà non lo fanno, hanno appena visto qualcosa. ” Sembrava ovvio per loro dopo un po '. " Steve Jobs nato a San Francisco 24 Febbraio 1955, è stato un imprenditore informatico e inventore statunitense di Apple Inc. Ne è stato amministratore delegato fino al 24 agosto 2011 quando si è dimesso per motivi di salute. È noto per aver introdotto al grande pubblico il primo personal computer con il mouse (Apple Lisa), e prodotti di successo come iPod, iPhone e iPad . 1972 : Steve Jobs a 17 anni si diploma Homestead High School di Cupertino. Nello stesso anno si iscrive al Reed College di Portland per rivolgere l'attenzione alla sua principale passione, l‘INFORMATICA . 1974 : Coinvolge il suo caro amico Steve Wozniak nella fondazione di Apple Computer :con la "mela" i due muovono i primi passi verso la fama nel mondo dell'informatica grazie ai loro modelli di microcomputer particolarmente avanzati . Apple lancia quasi subito, sul mercato, il suo primo computer: Apple I . Il buon successo commerciale (più di 1000 esemplari venduti) convince Jobs a lanciare Apple II. 1985: Jobs lascia la posizione di CEO dell’azienda da lui fondata, sulla scia di alcuni problemi patiti dagli ultimi computer lanciati sul mercato. Fonda NeXT, altra azienda informatica dedicata al mondo professionale. 1996: Apple, dopo anni fallimentari (perdite per due miliardi negli ultimi due anni) acquisisce NeXT per 429 milioni di dollari e rimette Jobs a capo del gruppo, in qualità di CEO “ad interim”. Jobs si attiva subito: semplifica il processo di produzione e riprogetta tutta la gamma. 1998: Apple lancia iMac, un computer “tutto in uno”, che unisce cabinet e monitor, e vanta colorazioni sgargianti. 2000: Steve diventa CEO a tutti gli effetti, mentre Apple lancia il fortunato Mac G4 Cube. 2001: Due date ravvicinate: il 18 Ottobre Apple annuncia un crollo di fatturato del 61%, tre giorni dopo è lo stesso Jobs a presenta al mondo l’iPod. C’è spazio per 1000 canzoni e un’autonomia che arriva a 10 ore. Steve batte in un solo colpo il CD. 2002 Al Macworld Jobs presenta il portatile iBook e una nuova versione di iMac. 2003: Jobs introduce il negozio di musica online iTunes: l’industria discografica ci intravede lo strumento per bloccare la pirateria, gettandosi a capofitto nel progetto. 2004: Jobs annuncia ai suoi dipendenti la malattia: cancro al pancreas. Dopo una cura, decide di operarsi nello stesso anno, risolvendo in apparenza il problema. Nel 2005 viene chiamato a tenere il “commencement speech”, il discorso di apertura dell’anno accademico, nell’università di Stanford. È qui che recita il suo discorso passato alla storia. 2006: La sua apparizione alla Wordwide Developers Conference lo rivela ancora sofferente, sebbene Apple si affretti a comunicare che è in buona salute . 2007: Apple, sotto la spinta di Jobs, entra in modo epocale nel mercato della telefonia: è il momento di iPhone. 2010 L’ultimo, grande, colpo di Steve: iPad. Il concorrente di Kindle smuove un settore, quello dei tablet, che mai era riuscito ad affermarsi. 2011 Jobs lascia la carica di CEO di Apple. IL CONCETTO DI ALGORITMO Il calcolatore elettronico per risolvere un problema utilizza un algoritmo, cioè un insieme di azioni (o istruzioni) che, eseguite secondo un ordine prestabilito, permettono di trovare il risultato cercato sulla base dei dati in ingresso. Il concetto di algoritmo è uno dei concetti di base dell'intera matematica: i più semplici ed antichi algoritmi sono le regole per eseguire le operazioni dell'aritmetica elementare, formulate dal matematico arabo medioevale Al-Khuwarizmi, da cui deriva appunto il nome di algoritmo. Un computer è un rapidissimo esecutore di sequenze di istruzioni (gli algoritmi) ESECUZIONE DI UN ALGORITMO SU COMPUTER Algoritmo Procedura di trasformazione di un insieme di dati iniziali in un finali mediante una sequenza di istruzioni. insieme di risultati Linguaggio di programmazione Linguaggio (insieme di simboli e regole) per rappresentare le istruzioni di un algoritmo e la loro concatenazione. Programma Algoritmo scritto in un linguaggio di programmazione al fine di comunicare al calcolatore elettronico le azioni da eseguire. Processo Programma in esecuzione sul computer ESEMPI DI ALGORITMO Altro esempio elementare • Problema: stampare i primi 10 multipli di x. • Il problema è semplice e chiaro: un solo dato in input (un parametro che caratterizza l’istanza del problema): la “base” costituita dal numero x; una costante del problema: il numero di multipli da stampare, 10. • La strategia risolutiva è la seguente: Iniziando dal numero x letto in input, per 10 volte verrà calcolato e stampato il multiplo di x, moltiplicando x per una variabile i il cui valore verrà incrementato di una unità ad ogni passo, da 1 fino a 10. • Possiamo ricondurre la strategia al seguente algoritmo: 1. Leggi in input un numero e chiama x il numero letto; 2. Assegna il valore 1 alla variabile i; 3. Calcola x•i e assegna alla variabile y il risultato; 4. Stampa y; 5. Calcola i+1 e assegna alla variabile i il risultato; 6. Se i≤10 allora vai al passo 3 altrimenti prosegui; 7. Fermati. Linguaggi procedurali • Questi linguaggi sono basati su sei istruzioni fondamentali: – Assegna: assegna ad una variabile (ad una locazione di memoria) il valore di una espressione. – Leggi: legge in input dall’esterno un valore e lo memorizza in una variabile (locazione di memoria). – Scrivi: scrive in output il valore di una espressione o di una variabile (locazione di memoria). – Se … allora … altrimenti …: modifica il “flusso” del programma sulla base del valore di una espressione logica. – Vai al passo …: modifica il “flusso” del programma incondizionatamente. – Fermati: termina l’esecuzione del programma ISTITUTO TECNICO STATALE “VITTORIO BACHELET” SANTA MARIA A VICO (CASERTA) Progetto Lauree Scientifiche anno scol. 2011/2012 ALUNNI RUOTOLO MARIA CARMELA DONATA III ERICA DE LUCIA VINCENZA III ERICA PASCARELLA CARMEN JESSICA III ERICA PALUMBO MARIA LUCREZIA III ERICA DIGLIO BENIAMINO IV ERICA GUIDA PATRIZIA IV ERICA DE ROSA PASQUALINA IV ERICA PASCARELLA ANTONELLA IV MERCURIO FERRARO IOLANDA IV MERCURIO OROLOGIO ILARIA V ERICA