Struttura del corso: logica e combinatoria + algebra astratta. Gli studenti dei corsi precedenti possono optare tra vecchio e nuovo programma. fino all’inizio.

Slides:



Advertisements
Presentazioni simili
…da von Neumann al computer quantistico
Advertisements

…da von Neumann al computer quantistico architettura dellelaboratore.
Introduzione al linguaggio C++
La Comunicazione Bisogno insopprimibile nella vita di ognuno di noi.
Algebra di Boole Casazza Andrea 3EA I.I.S. Maserati.
© 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
Inizio… Linguaggi Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi di programmazione Linguaggi Formali Linguaggi.
Linguaggi di programmazione
Algoritmi e 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
MACCHINE DI TURING Le macchine di Turing sono dispositivi astratti per la manipolazione di simboli, ideati nel 1936 dal matematico e logico britannico.
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
FONDAMENTI DI INFORMATICA III A3A1-1 Realtà e Modello MODELLI E METODOLOGIE PER LA PROGETTAZIONE LOGICA DI SISTEMI INFORMATIVI PER LUFFICIO Argomento 3.
Funzioni, Rappresentazioni e Coscienza
Chomsky La grammatica/sintassi è una proprietà della mente
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.
Unità Didattica 2 I Linguaggi di Programmazione
Intelligenza Artificiale
Labortaorio informatica 2003 Prof. Giovanni Raho 1 INFORMATICA Termini e concetti principali.
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.
LINGUAGGI DI PROGRAMMAZIONE
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.
Logica Matematica Seconda lezione.
L’inventore del calcolatore odierno
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
Lo sviluppo del software e i linguaggi di programmazione
Programma di Informatica Classi Prime
L'apprendistato al senso dei simboli in algebra
Algebra di Boole.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Logica A.A Francesco orilia
INTRODUZIONE ALLA GEOMETRIA EUCLIDEA
24/04/2015Introduzione1 Prentazione del modulo di: Elementi di Algebra d.p.d.v.s. Libero Verardi.
Algoritmi.
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.
Fondamenti di Informatica
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.
Problemi, algoritmi e programmazione
LA LOGICA MATEMATICA.
…da von Neumann al computer quantistico L’archittettura dell’elaboratore.
Luigi Borzacchini (Dipartimento di Matematica, Università di Bari) La matematica e la logica nella computer science Bari, 18 marzo 2015.
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.
Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini III. La logica delle proposizioni.
Logica Lezione 8, DISTRIBUIRE COMPITO 1.
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.
Logica Lezione 11, Annuncio Non si terrà la lezione di Lunedì 16 Marzo.
INSIEMI E LOGICA PARTE QUARTA.
Transcript della presentazione:

Struttura del corso: logica e combinatoria + algebra astratta. Gli studenti dei corsi precedenti possono optare tra vecchio e nuovo programma. fino all’inizio di novembre logica e combinatoria full immersion, dopo prevalentemente algebra Orari: lunedì , martedì , giovedì Esami: due scritti + un orale. Esoneri: il primo subito prima di Natale, il secondo a metà gennaio. Materiali. Logica: tutorials e slides power point in rete. Testo di algebra

Tutorials e Presentazioni pptx (che però talora cambio) F.A.Q. Risoluzione dei problemi degli scritti Risultati degli scrittiwww.dm.uniba.it/Members/borzacchini

LINK UTILI. Un corso teorico del prof. G.Lolli : Tutorials con esercizi:

Introduzione al ‘pensiero formale’, alla manipolazione dei segni, all’idea rigorosa di dimostrazione e al ragionamento algoritmico, sia per preparare allo studio della matematica, sia perché il computer è una ‘macchina’ che manipola segni, sia perché la logica è alla base della computer science pre-nozioni zero, dimostrazioni zero, ma studieremo che cos’è la dimostrazione? Esame da fare subito! Se no diventa un incubo! i corsi di matematica in senso stretto cominciano con la parte di algebra, la logica dovrebbe anche aiutarvi ad affrontarli meglio

Introduzione alla LOGICA MATEMATICA Corso di Matematica Discreta. Corso di laurea in Informatica. Prof. Luigi Borzacchini I. I segni, gli algoritmi, i linguaggi, la rappresentazione, sintassi e semantica.

Che vuol dire matematica discreta? Discreta è la matematica che tratta di numeri interi e razionali, segni algebrici, insiemi finiti di punti. Continua è la matematica che tratta di figure geometriche, di numeri reali, di applicazioni fisiche. Nell’antichità e nelle scuole elementari la matematica discreta è l’aritmetica e quella continua è la geometria: matematiche che trattano attributi dell’esperienza comune. Ma è noto agli storici della scienza e agli psicologi cognitivi che quattro secoli fa è nata una matematica diversa, in cui si trattano ‘enti’ più strani: segni algebrici, equazioni, serie, l’infinito, etc.

 Matematica e computer science -Matematica col computer La realtà è (quasi sempre) continua: modelli matematici, matematica del continuo, calcolo numerico, calcolo delle probabilità, ricerca operativa -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

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.

L’anima logico-matematica del computer Il computer attuale nasce circa 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.

La logica, gli algoritmi, l’argomentazione La logica tratta delle argomentazioni razionali, in tutti i campi, dalla filosofia alla matematica, dal diritto alla tecnica. C’è una qualche somiglianza tra i calcoli (le operazioni, gli algoritmi) e i ragionamenti, ad esempio filosofici? Per Leibniz (XVII secolo) si! Il computer nasce dall’idea che ogni argomentazione logica, ogni dimostrazione, è un algoritmo, e che ogni calcolo, ogni algoritmo è una dimostrazione, una argomentazione logica

I SEGNI Ma che cosa sono i segni? Qualcosa che sta per qualcos’altro (il significato): L’effetto per la causa (il fumo per il fuoco, gli occhi lucidi per la febbre, etc.) Per convenzione (il fischio dell’arbitro per il fallo, le lettere per i suoni alfabetici, etc.) Per analogia o similitudine (silhouette di uomini e donne sui bagni, segnali stradali:,, etc.) Il significato è preciso, fisso, ben definito. … e poi c’è la x, il segno algebrico

I segni matematici e logici La x è l’incognita, quello che non si sa e quindi non significa niente, non sappiamo neanche se sia un numero, un cliente, uno studente… Oppure è generico o variabile I segni algebrici non hanno un vero ‘significato’. x+2=5 mi dice che x=3. Anche se supponiamo di sapere che cosa ‘significano’ +, 2, =, 5, da dove ricaviamo che x ‘significa’ o ‘denota’ il 3? Il significato che i segni matematici hanno perso, in realtà è stato ‘trasferito’ agli algoritmi che trattano segni, e gli algoritmi manipolano solo segni x+2=5  x=5-2  x=3

Sintassi e Semantica La distinzione tra sintassi e semantica caratterizza la logica matematica attuale rispetto all’antica logica aristotelica La sintassi tratta della struttura formale delle espressioni, a prescindere dal significato. «A è un B» è una struttura formale che descrive il tipo più comune di giudizi. Ma non sappiamo se sia vera o falsa, dovremmo conoscere il significato di A e B. Il significato si associa a espressioni. In italiano «il cane mangia la carne» ha un significato, «cane» ha un significato, «c» non ha alcun significato.

La deduzione e la verità Le deduzioni hanno aspetti tanto semantici (contenutistici) che sintattici (formali). Ad esempio da «Michele è brindisino» e «Tutti i brindisini sono pugliesi» si deduce «Michele è pugliese», ed il significato è chiaro ed evidente. Ma se dico: «Michele è un sarchiapone» e «Tutti i sarchiaponi sono sesquipedali», posso dedurre formalmente «Michele è sesquipedale», ma il significato è oscuro: la deduzione è in questo caso un fatto solo sintattico, relativo ad una forma del tipo «a è un B», «tutti i B sono C», e dunque «a è un C».

Il calcolo Anche i calcoli hanno aspetti tanto semantici che sintattici. Ad esempio il problema:, la risposta è 24 Ma se il problema è:, la risposta è 24. Anche qui la stessa differenza: da un punto di vista sintattico i due problemi sono identici e si riducono al calcolo 6  4 = 24, ma semanticamente il primo è comprensibile il secondo no.

Ragione formale (sintattica): «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’uomo moderno è l’uomo primitivo + il computer + la loro fusione.

Gli algoritmi e le macchine. L’algoritmo è una macchina sintattica. Il computer è la macchina sintattica universale. Input: dati Output: soluzione algoritmo Sintattica perché consiste nel manipolare segni secondo regole fisse indipendenti dal significato dei segni. Esistono problemi risolubili meccanicamente, e problemi che richiedono l’assemblaggio non ovvio di diverse procedure. E soprattutto ‘creare’ algoritmi non è una procedura meccanica, e non lo è adattarli ai problemi concreti. Può essere facile o difficile, ma è spesso un’attività creativa, in quanto il problema deve essere ‘rappresentato’ formalmente

Talora si usano insieme i due tipi di rappresentazione La rappresentazione (semantica) La rappresentazione iconica La rappresentazione sintattica Si basa sulla somiglianza, è analitica (il camino nella immagine della casa è la immagine di un camino), è universale, ma ha difficoltà coi termini astratti, giustizia, verità, negazione, essere, … 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.

Il triangolo semiotico Sino dagli antichi Greci la rappresentazione sintattica si è strutturata come un triangolo i cui tre vertici sono la realtà, la mente e il linguaggio. Le relazioni interne al linguaggio caratterizzano la sintassi, mentre le relazioni tra linguaggio e realtà caratterizzano la semantica, il regno del significato. Le parole (rosso) hanno una intensione (la ‘rossità’) ed una estensione (l’insieme degli oggetti rossi). Il termine ‘pari’ ha come intensione la definizione (divisibile per 2) e come estensione {2,4,6,8,10,…}

Le primitive e i segni interpretabili Se in algebra numerica scrivo a+b=b+a (la proprietà commutativa), i segni usati sono a, b, +, =. Ma hanno un ruolo diverso i primi due dai secondi due. Trattando di numeri, a e b sono segni interpretabili, posso assegnare loro il significato che desidero: a può essere interpretato come 3 o 7 o 3418, …. E così anche b. + e = hanno invece un significato immutabile, sono delle primitive dell’aritmetica, non sono interpretabili, ed il loro ‘significato’ è dato dalle regole della manipolazione algebrica.

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. Sono segni interpretabili gli indici, i parametri, gli indirizzi, etc., assegnabili a piacere, altri sono delle primitive, il cui significato è ‘built in’, fissato nel compilatore dal modo con cui esso li manipola: if-then- else, for, while, le operazioni logico-aritmetiche, etc. Non esistono algoritmi senza segni da manipolare e non esistono segni senza algoritmi che li manipolano

I linguaggi di rappresentazione Realtà e Segni sono diversi La rappresentazione sintattica è un linguaggio per esprimere fatti e deduzioni ottenute da essi tramite segni. Ogni linguaggio di rappresentazione deve quindi fornire sia una ‘rappresentazione’ sintattica di ogni possibile fatto (come proposizione), sia un ‘calcolo’ per dedurre dai fatti (come inferenza)le loro possibili conseguenze logiche.

Linguaggio e Calcolo Leibniz si era accorto che la rappresentazione sintattica aveva questo grande vantaggio: era sia un linguaggio di rappresentazione che un calcolo. Ogni individuo e ogni fatto del mondo da rappresentare poteva essere rappresentato tramite i simboli: la rappresentazione era universale. Il divenire e le deduzioni in tale mondo potevano essere ‘simulate’ con 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 sono linguaggi di rappresentazione, linguaggi formali.

Alfabeti e linguaggi formali Un alfabeto  è un insieme di segni, ad esempio: {a, b, c, d, …, u, v, z} è l’alfabeto italiano Una sequenza finita di segni di un alfabeto è un’espressione (o parola) dell’alfabeto: bdactru Indicheremo con    l’insieme di tutte le parole. Una parte L di   è detta un linguaggio. Ad esempio {abaco, abate, abbinare, …, zucca, zuzzurellone} è il lessico del linguaggio italiano. I linguaggi naturali hanno un’origine storica e non sono formati tramite regole precise. I linguaggi formali sono stati costruiti artificialmente e sono formati tramite regole precise

Un linguaggio può essere usato come alfabeto per un linguaggio più complesso: Alfabeto italiano  Lessico italiano (parole) nel vocabolario Lessico Italiano  Linguaggio italiano (frasi) Frasi in italiano  Libri in italiano Cifre  Numeri interi Numeri interi, {+, -, , :, (, )}  Espressioni Espressioni  Sequenza di espressioni (eserciziario) Cifre, simboli e lettere (tastiera)  Istruzioni in C++ Istruzioni in C++  Programmi in C++ Programmi in C++  Libreria programmi in C++ I linguaggi finiti sono descritti elencandone le parole. Ma come si può descrivere un linguaggio infinito?

Grammatiche Generative Il linguaggio formale è dato da una grammatica generativa che produce tutte e sole le espressioni del linguaggio (formule ben formate, fbf). Esempio: i numeri Alfabeto 1: {|} Grammatica: i) sono numeri | e i numeri seguiti da | ii) nient’altro è un numero. Linguaggio: {|, ||, |||, ||||, |||||, ||||||, ….} Alfabeto 2: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, le cifre Grammatica: i) sono numeri le cifre e i numeri seguiti da una cifra ii) nient’altro è un numero. Linguaggio: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,…}

Esempio: le espressioni aritmetiche Alfabeto: {+, -, , :, (, ), 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Grammatica: i) sono numeri le cifre e le cifre seguite da un numero [così generiamo tutti i numeri], ii) sono espressioni tutti i numeri, iii) Se E è una espressione, -E è una espressione, iiii) Se E è una espressione, (E + E), (E - E), (E : E), (E  E) sono espressioni. iiiii) nient’altro è una espressione. Distinguiamo ‘sostituzione’ e ‘rimpiazzamento’ di un simbolo in una espressione formale. La ‘sostituzione’ avviene ovunque con lo stesso simbolo, come in algebra, il ‘rimpiazzamento’ si può fare sostituendo simboli distinti: le due E in E+E possono essere due espressioni qualsiasi anche diverse.

Simboli ausiliari e Rimpiazzamento Usando i simboli ausiliari Cifra, Numero ed Espressione, che non compariranno nel linguaggio, possiamo scriverla nella forma: Cifra  0/1/2/3/4/5/6/7/8/9 Numero  Cifra / Cifra Numero Espressione  Numero / - Espressione / (Espressione + Espressione) / (Espressione : Espressione) / (Espressione  Espressione) ove / vuol dire ‘oppure’ e i simboli ausiliari a destra di  possono essere ‘rimpiazzati’ anche da termini diversi.

Così che possiamo costruire L’Espressione (-37  ( )) generandola: Espressione  (Espressione  Espressione)  (- Espressione  (Espressione + Espressione))  (- Numero  (Numero + Numero))  (- Cifra Numero  (Cifra Numero + Cifra))  (- Cifra Numero  (Cifra Cifra Numero + Cifra))  (- Cifra Cifra  (Cifra Cifra Cifra + Cifra))  (- 37  ( ))

Esempio: le espressioni algebriche Alfabeto: {+, -, , :, (, ), 0, 1, 2, 3, 4, ….., x, y, z, ….} Grammatica: i) sono espressioni tutti i numeri e tutte le variabili [diamo per già generati i numeri] ii) Se E è una espressione, -E è una espressione iii) Se E 1 e E 2 sono espressioni, (E 1 + E 2 ), (E 1 - E 2 ), (E 1 : E 2 ), (E 1  E 2 ) sono espressioni. iiii) nient’altro è una espressione. Esempio: (((x+3)  (y-x)) : ((x  y) + 3)). Generiamola: E  (E 1 : E 2 )  ((E 11  E 12 ) : (E 21 + E 22 ))  (((E E 112 )  (E E 122 )) : ((E 211  E 212 )+ E 22 ))  ((( x + 3 )  ( y - x )) : (( x  y) + 3 ))

Espressione scritta come un albero, senza parentesi E : E 1 E 2  + E 11 E 12 E 21 E  E 111 E 112 E 121 E 122 E 211 E 212 E 22 x 3 y x x y 3

scriviamo le espressioni ma intendiamole come alberi :   x 3 y x x y 3 ((( x + 3 )  ( y - x )) : (( x  y ) + 3 )) e il calcolo si effettua dal basso verso l’alto: prova a porre x=2 e y=4, ottenendo 10/11 10/