Luigi Borzacchini (Dipartimento di Matematica, Università di Bari) La matematica e la logica nella computer science Bari, 18 marzo 2015.

Slides:



Advertisements
Presentazioni simili
…da von Neumann al computer quantistico
Advertisements

…da von Neumann al computer quantistico
…da von Neumann al computer quantistico architettura dellelaboratore.
I Linguaggi di programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Linguaggi algoritmici
Evoluzione dei linguaggi di programmazione
I DATI LE ISTRUZIONI LE STRUTTURE FONDAMENTALI
La filosofia interroga la matematica
Linguaggi di programmazione
Fondamenti di Informatica
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Il ragionamento classico
Introduzione alle “Ricerche sulla teoria della dimostrazione” (1930)
L’aritmetica delle macchine e la macchina della mente
LALGEBRA NEI PROGRAMMI PNI & UMI. BIENNIO PNI TEMA 2. INSIEMI NUMERICI E CALCOLO a) Operazioni, ordinamento e loro proprietà negli insiemi dei numeri.
L’ALGEBRA NEI PROGRAMMI
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 7 Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale 1 Gestione della conoscenza lezione 8
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
1 Le competenze di base dell'asse matematico Utilizzare le tecniche e le procedure del calcolo aritmetico ed algebrico, rappresentandole anche sotto forma.
Funzioni, Rappresentazioni e Coscienza
L’indagine OCSE-PISA: il framework e i risultati per la matematica
Modelli simulativi per le Scienze Cognitive
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
l’intelligenza artificiale e la vita artificiale
Intelligenza Artificiale
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
L’AUTOMA ESECUTORE Un automa capace di ricevere dall’esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio.
Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
Introduzione ~ 1850 Boole - De Morgan – Schroeder ALGEBRA BOOLEANA
Elementi di Informatica Simone Scalabrin a.a. 2008/2009.
Logica formale e logica discorsiva 2° Lezione
Chomsky La grammatica/sintassi è una proprietà della mente Distinta dalla capacità di comunicare E una facoltà autonoma ed innata La comunicazione è solo.
1 Programmazione = decomposizione basata su astrazioni (con riferimento a Java)
Logica Matematica Seconda lezione.
L’inventore del calcolatore odierno
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
La bellezza nella scienza
ECDL Patente europea del computer
1 Nuovo Obbligo Scolastico: Gli Assi Culturali. 2 Asse dei Linguaggi Asse Matematico Asse Scientifico-Tecnologico Asse Storico Sociale.
Linguaggi e Programmazione per l’Informatica Musicale
Introduzione alla LOGICA MATEMATICA
IMMANUEL KANT Critica della ragion pura
L'apprendistato al senso dei simboli in algebra
Tesina di fine corso Argomento: Corso: Professore: Autori:
Algebra di Boole.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
INTRODUZIONE ALLA GEOMETRIA EUCLIDEA
1 Interpretazione astratta: un approccio sistematico all’analisi statica.
Algoritmi.
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
AOT Lab Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Rappresentazione della Conoscenza e Ragionamento.
1 Linguaggi: guardando la semantica §esistono un insieme di concetti semantici e di strutture di implementazione in termini dei quali si descrivono in.
Rappresentazione dell'informazione 1 Se ho una rappresentazione in virgola fissa (es. su segno e 8 cifre con 3 cifre alla destra della virgola) rappresento.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Aristotele Poi ch’innalzai un poco più le ciglia,
LA LOGICA MATEMATICA.
…da von Neumann al computer quantistico L’archittettura dell’elaboratore.
Luigi Borzacchini (Dipartimento di Matematica, Università di Bari) Le stagioni della matematica e della logica Orientamento Consapevole Bari, 13 marzo.
Logica di base e Conversione analogico-digitale Lezione 3 / Prima parte Gaetano Arena e.mail: 1.
Luigi Borzacchini (Dipartimento di Matematica, Università di Bari) Le stagioni della matematica e della logica Orientamento Consapevole Bari, 5 febbraio.
Analisi matematica Introduzione ai limiti
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Struttura del corso: logica e combinatoria + algebra astratta. Gli studenti dei corsi precedenti possono optare tra vecchio e nuovo programma. fino all’inizio.
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini III. La logica delle proposizioni.
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini II. La logica delle proposizioni.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
INSIEMI E LOGICA PARTE QUARTA.
Transcript della presentazione:

Luigi Borzacchini (Dipartimento di Matematica, Università di Bari) La matematica e la logica nella computer science Bari, 18 marzo 2015

Storicamente la logica e la matematica sono alle radici della computer science: il primo computer con programma registrato si deve a Charles Babbage, un matematico inglese dell’Ottocento. Il modello teorico degli algoritmi e dello stesso computer è la macchina di Turing, l’attuale architettura dei computer è sostanzialmente ascritta a John von Neumann: ebbene Turing e von Neumann erano logici e matematici di un secolo fa, legati al più importante approccio alla indagine matematica all’inizio del secolo: il “formalismo”. Ed anche oggi, tutti gli aspetti sia teorici che applicativi della computer science hanno una base matematica, più precisamente in un approccio ‘formalista’

Il pensiero formale Che intendiamo per ‘formale’? La ‘forma’ contrapposta al ‘contenuto’? Come nei temi di italiano : il contenuto è buono, ma la forma è sgrammaticata. O alla ‘materia’? un tavolo fatto di legno e di forma rettangolare. O alla ‘sostanza’? Come nel diritto in cui il ‘vizio di forma’ annulla un procedimento sostanzialmente ineccepibile. ‘Formale’ in matematica e nella computer science sta per sintattico, basato sulla sola manipolazione di segni secondo regole, mentre semantico è relativo al significato.

formale in logica e matematica,, quindi Qual è la differenza? Nei primi due la deduzione si appoggia anche su un contenuto semantico, nei secondi è solo formale.,, quindi..

Ragione formale: «Ragionare senza comprendere» Ragionare tramite la sola manipolazione di segni secondo regole. E’ una capacità soltanto umana Gli animali hanno un qualche linguaggio, una certa logica concreta, anche una semplice aritmetica di piccoli numeri. Ma non hanno una ragione formale. La ragione formale e la logica formale sono assenti anche nelle popolazioni cosiddette ‘primitive’, e storicamente appare insieme alla alfabetizzazione. E il computer è la macchina sintattica, che possiede solo la ragione formale: è l’opposto del ‘primitivo’, che possiede solo una ragione concreta.

Matematica e computer science Matematica del continuo (geometria, numeri reali, analisi) e del discreto (aritmetica, algebra, logica) -Matematica col computer La realtà è (quasi sempre) continua: modelli matematici, analisi matematica, calcolo numerico, calcolo delle probabilità, ricerca operativa: il mondo delle cose -Matematica del computer Il computer, il linguaggio e il cervello sono discreti: logica matematica, combinatoria, algebra, teoria degli algoritmi e linguaggi formali: il mondo dei segni

Matematica del Continuo Linguaggio di base è quello della analisi matematica, con la quale si possono rappresentare innumerevoli problemi reali: l’analisi matematica è il linguaggio di base di quasi tutta la descrizione fisica del mondo e quindi della parte principale dei problemi concreti. La risoluzione di un problema certe volte si può fare col calcolo simbolico, ma non sempre. In tali casi, molto frequenti, si deve trovare un algoritmo di tipo numerico che risolva il problema. Quando ci si accontenta di soluzioni approssimate, entra in gioco il calcolo numerico.

Altre volte il problema contiene aspetti aleatori: anche la gestione di uno sportello di informazioni richiede di ipotizzare quanti clienti arriveranno per ogni periodo di tempo, e questo si può solo approssimare per via probabilistica e trattare con il calcolo delle probabilità. La matematica col computer è anch’essa talora matematica discreta (come ad esempio in molti problemi di ricerca operativa o basati sulle matrici). Ma in realtà la varietà di tecniche matematiche che possono essere utili per risolvere i problemi trasformandoli in algoritmi da implementare con programmi del computer è oggi enorme.

Matematica Discreta Ma il computer in quanto tale è in sé un oggetto matematico, la sua memoria, le sue procedure di base, la sua stessa concezione è cresciuta come manipolazione di segni. Questa è matematica del computer. Questa è sempre una matematica discreta, tratta in modo formale di simboli: alla base è l’aritmetica dei numeri interi, ma oggi è in primo luogo logica matematica, teoria dei linguaggi formali, combinatoria e algebra simbolica.

L’anima logico-matematica del computer Storicamente il computer nasce 70 anni fa dalla collaborazione di due classi di scienziati: gli ‘elettronici’ e i ‘logici-matematici’ che fornirono rispettivamente il corpo e l’anima del computer. L’elettronica ha subito cambiamenti epocali: dai relais alle valvole, ai transistor, ai microchip sempre più piccoli e potenti, tanto che questa evoluzione di misura in ‘generazioni’ L’anima logico-matematica invece è rimasta sempre la stessa: lo schema della macchina universale di Turing e l’architettura di von Neumann.

Il computer e le tecniche matematiche Sino dal Rinascimento esistono professioni che si fondano sulla conoscenza degli algoritmi, dai ragionieri agli ingegneri. Ma oggi il computer può eseguire ogni algoritmo meglio di noi. D’altra parte la creazione di algoritmi e la capacità di saperli applicare, combinare e generalizzare è una abilità strettamente matematica e umana. L’abilità matematica non è più allora la capacità di eseguire gli algoritmi, ma la capacità di trovarli, costruirli e applicarli a una rappresentazione formale del problema: l’informatica e la matematica algoritmica diventano sempre più simili.

Talora si usano insieme i due tipi di rappresentazione La rappresentazione La rappresentazione iconica (analogica)La rappresentazione sintattica (digitale) Si basa sulla somiglianza, è analitica (il camino nella immagine della casa è la immagine di un camino), è universale, ma ha difficoltà coi termini astratti, la verità, la negazione, l’essere, etc. CASA Nessuna somiglianza, non è analitica (la lettera C di CASA non corrisponde a nessuna parte di una casa), ha natura linguistica, dipende da un particolare linguaggio, ma può rappresentare anche termini astratti.

Linguaggio e Calcolo Già Leibniz si accorse che la rappresentazione sintattica aveva un altro grande vantaggio: era sia un linguaggio di rappresentazione che un calcolo. Da un lato ogni individuo e ogni fatto del mondo da rappresentare poteva essere rappresentato tramite i simboli: la rappresentazione era universale. Dall’altro lato, il divenire e le deduzioni in tale mondo potevano essere ‘simulate’ tramite la manipolazione dei segni secondo regole: la rappresentazione era un calcolo. L’algebra, l’analisi, i linguaggi di programmazione, e soprattutto la logica e gli algoritmi

Gli algoritmi La computer science si fonda sulla connessione tra algoritmi e logica. Al-Khwarizmi è stato un matematico arabo vissuto a Bagdad nella prima metà del IX secolo, celebre sia per aver diffuso la manipolazione algebrica dei problemi che per la diffusione delle cifre indo-arabe, importanti non tanto perché posizionali o per la presenza dello 0, ma perché il calcolo con esse si faceva tramite procedure sintattiche: gli algoritmi. Le costruzioni geometriche o iconiche e i processi meccanici non sono algoritmi: non esistono segni senza algoritmi e non esistono algoritmi senza segni.

Algoritmi e Logica Storicamente erano state sempre profondamente diverse: la logica era interna alla filosofia e alla teologia, gli algoritmi erano invece molto pratici, roba da bottegai, agrimensori e contabili. Nella matematica moderna invece diventano sempre più simili. La sovrapposizione si delinea all’inizio del XX secolo, quando si scopre che una dimostrazione logica è solo un calcolo particolare e che ogni calcolo è la dimostrazione di un certo risultato. E che un calcolo fosse una dimostrazione l’aveva già capito Leibniz nel Seicento.

Un calcolo è una dimostrazione Per esempio ‘dimostriamo’ che 4+3=7. Definiamo i numeri: 2=1+1, 3=2+1, 4=3+1, 5=4+1, 6=5+1, 7=6+1, etc. e usiamo come unica regola che «in una espressione si possono sostituire espressioni uguali». Allora 4+3 = = = = 6+1 = 7. E nel contempo questa dimostrazione è anche un algoritmo per effettuare la somma. Viceversa l’idea che ogni dimostrazione in fondo sia una sorta di calcolo appare solo alla fine dell’Ottocento, soprattutto con Gottlob Frege.

Una dimostrazione è un calcolo Per Frege «una dimostrazione è una sequenza di frasi (formule) ciascuna delle quali o è già nota (assioma o teorema già dimostrato) o si ricava dalle frasi precedenti mediante regole di inferenza». La verifica della correttezza di una dimostrazione logica è un fatto ‘meccanico’, non c’è bisogno di ‘capire’ nulla! «La matematica è logica travestita.» Una dimostrazione matematica è una sorta di compressione di una dimostrazione logica molto più lunga: «Se ci vogliono 27 equazioni per provare che 1 è un numero, quante ce ne vorranno per dimostrare un vero teorema?» (Poincarè).

Logicismo e Formalismo Russell, Whitehead: Principia Matematica Le regole di inferenza devono essere puramente sintattiche, senza alcuna ‘intuizione’ della ‘verità’: A A  B B I teoremi di incompletezza di Gödel hanno smentito questa idea logicista e formalista, che però resta in qualche modo ancora presente nell’opinione comune. E vedremo due teoremi matematici che ci dicono che cosa il computer può fare.

Aristotele e la logica antica Il sillogismo: «tutti gli umani sono mortali», «tutti i greci sono umani» e quindi «tutti i greci sono mortali». Oppure «alcuni ateniesi sono alti» e «tutti gli alti sono robusti» e quindi «alcuni ateniesi sono robusti». Ma da «alcuni ateniesi sono alti», «alcuni ateniesi sono biondi» non si può dedurre niente di rilevante. I principi formali: non contraddizione (non può essere la stessa proposizione vera e falsa), terzo escluso (ogni proposizione è vera o falsa), verità per corrispondenza (è vero dire che è ciò che è, o che non è ciò che non è, è falso dire che è ciò che non è, o che non è ciò che è).

I connettivi Le proposizioni sono gli ‘atomi’ della logica: le asserzioni che hanno un valore di verità, V/1 o F/0. Le proposizioni complesse si ottengono tramite l’uso dei connettivi: non/not (  ), e/and/ congiunzione (  ), o/or/disgiunzione (  ), se … allora /if … then (  ), se e solo se/if and only if (  ). Si dicono verofunzionali, poiché agiscono solo sui valori di verità: ad es.  A è vera se e solo se A è falsa, A  B è vera se e solo se sono vere sia A che B, A  B è vera se e solo se A e B hanno uguale valore di verità, a prescindere dal significato di A e B.

Rappresentare con gli insiemi I diagrammi di Venn e gli intervalli. L’insieme P : P Sia P la proprietà ‘umano’, P l’insieme degli esseri umani, Q sia ‘maschio’, Q l’insieme dei maschi. P (complemento di P) è l’insieme degli «esseri non umani», corrispondente alla proprietà  P. P  Q (intersezione di P e Q) è l’insieme degli «umani maschi», corrispondente alla proprietà P  Q P  Q (unione di P e Q) è l’insieme degli «esseri umani o maschi», corrispondente alla proprietà P  Q P  Q se ogni elemento di P è anche elemento di Q.

«tutti gli umani sono mortali», «tutti i greci sono umani» e quindi «tutti i greci sono mortali». Oppure «alcuni ateniesi sono biondi» e «tutti i biondi sono robusti» e quindi «alcuni ateniesi sono robusti». mortali robusti umani G  U U  M B  R A  B  Ø greci G  M ateniesi biondi A  R  Ø «nessun umano è immortale», «tutti gli dei sono immortali», e quindi «nessun umano è un dio», umani dei U  I=Ø D  I U  D=Ø immortali

«alcuni ateniesi sono robusti», «alcuni ateniesi sono biondi», …..? ateniesi A  R  Ø A  B  Ø ateniesi ? robusti biondi robusti biondi «nessun umano è immortale», «qualche immortale è biondo», …..? immortali U  I=Ø I  B  Ø biondi umani ? immortali biondi umani

Gli algoritmi e le macchine. L’algoritmo è una macchina sintattica. Il computer è una macchina sintattica. Input: dati Output: soluzione algoritmo Sintattica perché consiste nel manipolare segni secondo regole fisse indipendenti dal significato dei segni. Tuttavia, creare algoritmi non è una procedura meccanica. Può essere facile o difficile, magari talora banale. Ma è sempre un’attività creativa (la dottrina ‘catarella’).

Il computer manipola segni Che ‘significa’ un segno quando lavori col computer? Solo l’uso che di quel segno faranno il sistema operativo o il compilatore, che sono gli algoritmi che manipolano i segni sul computer. Alcuni segni sono interpretabili, indici, parametri, indirizzi di memoria, etc., assegnabili a piacere, altri sono delle primitive, il cui significato è ‘built in’, fissato nel compilatore dal modo con cui esso li manipola. Non esistono algoritmi senza segni da manipolare e non esistono segni senza algoritmi che li manipolano

Tutto è un data base Cantor alla fine dell’Ottocento crea la teoria dell’infinito, in cui mostra di fatto che ogni insieme (anche infinito) di oggetti comunque descrivibili in un linguaggio sono sempre codificabili/decodificabili come stringhe di 0 e 1. E codifica e decodifica sono sempre realizzabili tramite algoritmi. Il computer può memorizzare tutto ciò che è comunque descrivibile. Tutti i clienti di una banca con i loro conti correnti, tutti i cittadini italiani con i loro dati, tutte le immagini, ma anche tutti gli algoritmi, tutte le formule, tutti i calcoli sono sempre codificabili e decodificabili come stringhe di 0 e 1.

Esempio: le espressioni aritmetiche L’alfabeto: {+, -, :, , (, ), 0, 1, 2, 3, 4, ……, n, ….} La codifica: ….. n+6 ….. Usando il teorema fondamentale della aritmetica per cui ogni numero N è univocamente determinato dalla sua espressione come prodotto di potenze di numeri primi, e considerando i numeri associati ai simboli, l’espressione (2 - 4)  2 diventa il numero di codice: 2 4  3 8  5 1  7 10  11 5  13 3  17 8 ( )  2 che può essere scritto in base 2 come sequenza di 0 e 1, e dal quale si può ricavare l’espressione.

Tutto è un programma Turing negli anni trenta del XX secolo descrive una macchina/algoritmo che può simulare al suo interno qualsiasi algoritmo che lavora su qualsiasi insieme di dati, è la macchina universale, lo schema teorico del moderno computer, che quindi può eseguire qualsiasi algoritmo codificato nella forma di un programma. MACCHINA DI TURING UNIVERSALE programma(algoritmo), dati soluzione dati algoritmo soluzione L’insieme di tutti i possibili algoritmi è il calcolabile.

Il calcolabile Il calcolabile è la risposta alla domanda «che cosa si può fare manipolando segni secondo regole?», e si potrebbe rispondere «dipende: dalle regole, dalla memoria, etc.». Ma oltre un certo punto ciò che si può fare manipolando segni non può più crescere, il calcolabile diventa un concetto stabile ed assoluto: «tutto quello che si può fare manipolando segni secondo regole», ed è quello che può fare il computer, realizzando il sogno di Leibniz: un linguaggio di rappresentazione ed un calcolo universali

Analogico e Digitale Le trasformazioni nella rappresentazione analogica seguono le leggi naturali: una stampa fotografica invecchiando sbiadisce, e il ritratto di Dorian Gray invecchiava ‘naturalmente’ al posto di Dorian Gray. Le trasformazioni nella rappresentazione digitale sono impossibili, una foto digitale in linea di principio non invecchia. Se Dorian Gray avesse avuto una foto digitale da fare invecchiare in sua vece, poteva farlo solo tramite un apposito algoritmo che lavorasse su stringhe di 0 e 1.

Il calcolabile e la realtà Di fronte al calcolabile, il regno assoluto degli algoritmi, c’è la realtà, con una struttura molto più varia e imprevedibile, a cui applicare gli algoritmi. Ed esistono algoritmi semplici e dalla applicazione non problematica, come le operazioni aritmetiche. Ma esistono anche algoritmi più complessi, in cui ci sono scelte non meccanizzabili da fare, algoritmi che sembrano un laboratorio pieno di pezzi da assemblare. Ci sono algoritmi che possono non terminare e algoritmi che su problemi complessi richiedono tempi biblici per terminare.

Il computer e l’intelligenza matematica Questa è l’intelligenza matematica dell’informatico: applicare alla complessità del mondo reale gli strumenti del mondo algoritmico, tenendo presente che in primo luogo nel mondo reale c’è anche il computer che è la macchina algoritmica per eccellenza, e alla quale e sulla quale gli algoritmi vanno applicati. All’informatico non serve saper ‘eseguire’ gli algoritmi, questo lo fa benissimo il computer. Bisogna degli algoritmi conoscere invece la logica, le caratteristiche ed i limiti, sceglierli, comporli, adattarli, generalizzarli e specializzarli.

Questa presentazione potete trovarla in rete nel sito: nella cartella Orientamento Consapevole. Nello stesso sito trovate un corso introduttivo alla logica matematica di slides e tutorials Auguri!