Automi, Linguaggi e Computazione

Documenti analoghi
Linguaggi regolari e automi a stati finiti

Fondamenti di Programmazione: AUTOMI E LINGUAGGI FORMALI Corso di Laurea in MATEMATICA a.a. 2018/2019

Automi a stati finiti

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Esercizi di Logica Matematica (parte 2)

Automi e Linguaggi Formali. Cambiamenti di orario. Altre informazioni utili. Motivazione. Anno accademico

Automi e Linguaggi Formali

Sintassi. Linguaggi. 4: Sintassi. Claudio Sacerdoti Coen. Universitá di Bologna 24/02/2011. Claudio Sacerdoti Coen

Automi a stati finiti

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

Esercizi di Informatica Teorica - DFA

Formali. Corso di Automi e Linguaggi. Gennaio- Marzo Docente: Francesca Rossi,

Logica proposizionale

Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm

Ragionamenti e metodi di dimostrazione. Liceo Scientifico Statale S. Cannizzaro Prof.re E. Modica

02 - Logica delle dimostrazioni

Ragionamento formalei. Ragionamento formale

RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine

Concetti di base sugli automi e sui linguaggi formali

04 - Logica delle dimostrazioni

1 Cenni di logica matematica

Fondamenti dell Informatica

Capitolo 1: Concetti matematici di base

Linguaggi di Programmazione Corso C. Parte n.6 Linguaggi Regolari ed Espressioni Regolari. Nicola Fanizzi

Prefazione all edizione italiana

Introduzione al corso

Automi e Linguaggi Formali

INDUZIONE E NUMERI NATURALI

Il concetto di calcolatore e di algoritmo

Fondamenti teorici e programmazione

Luca Costabile Esercizi di Logica Matematica Dispensa Calcolo Proposizionale 1

Problemi, algoritmi, calcolatore

Informatica

ESERCIZI DI LOGICA MATEMATICA A.A Alessandro Combi

Linguaggi formali e compilazione

Linguaggi regolari e automi a stati finiti. Linguaggi regolari e automi a stati finiti

Grammatiche libere da contesto. Grammatiche libere da contesto

Errata corrige del libro Introduzione alla logica e al linguaggio matematico

PROGRAMMA CONSUNTIVO

Lo studioso di logica si chiede se la conclusione segue correttamente dalla premesse fornite e se premesse sono buone per accettare la conclusione.

Logica proposizionale

Fondamenti di Informatica 2

Introduzione alla Matematica per le Scienze Sociali - parte I

Grammatiche e Linguaggi Liberi da Contesto

Esercitazioni per il corso di Logica Matematica

1 Richiami di logica matematica

Grammatiche Parse trees Lezione del 17/10/2012

AUTOMA A STATI FINITI

Linguaggi di Programmazione Corso C. Parte n.2 Introduzione ai Linguaggi Formali. Nicola Fanizzi

Fondamenti teorici e programmazione

1 Richiami di logica matematica

Logica per la Programmazione

1 Principio di Induzione

Fondamenti dell informatica

AUTOMI A STATI FINITI

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi. Linguaggi Regolari. Determinismo vs Non determinismo. Potere espressivo

Linguaggi Regolari e Linguaggi Liberi

INSIEMI. DEF. Un INSIEME è una qualsiasi collezione di oggetti.

Progamma sintetico. Nozioni preliminari Automi Finiti Macchine di Turing Limiti delle macchine di Turing La tesi di Church-Turing Le classi P e NP

Automi e Linguaggi Formali

Sommario. Espressioni regolari. Equivalenza tra espressioni regolari e DFA. Esercizi problemi di decisione

METODI MATEMATICI PER L INFORMATICA

4 La Logica come base di ogni scienza. 5 Alla ricerca della forma logica. logica

Fondamenti dell Informatica. Esercizi di preparazione al secondo compitino

Insiemi Numerici: I Numeri Naturali. 1 I Numeri Naturali: definizione assiomatica

Elementi di logica. SCOPO: introdurre nozioni di logica & vocabolario per una corretta interpretazione delle dimostrazioni.

T1: Logica, discorso e conoscenza. Logica classica

Istituzioni di Logica Matematica

Grammatiche. Grammatiche libere da contesto Grammatiche regolari Potenza delle grammatiche libere e regolari Struttura di frase: Alberi di derivazione

a cura di Luca Cabibbo e Walter Didimo

a cura di Luca Cabibbo e Walter Didimo

Informatica

Proprieta dei Linguaggi Regolari. Proprieta dei Linguaggi Regolari

Informazione binaria: - rappresentazione di valori logici -

ISTITUTO TECNICO STATALE COMMERCIALE E PER GEOMETRI A. MARTINI Castelfranco Veneto (TV) Elementi di Logica

Insiemi Numerici: I Numeri Naturali

LOGICA DEL PRIMO ORDINE: PROOF SYSTEM. Corso di Logica per la Programmazione A.A. 2013/14 Andrea Corradini

Analisi Sintattica. Maria Rita Di Berardini. Universitá di Camerino Ruolo del parser

Logica per la Programmazione

Teoria della Calcolabilità!

COMPITO di LOGICA PER INFORMATICA (fila 1) 24 giugno 2005

Linguaggi e Ambienti di Programmazione

LINGUAGGI REGOLARI. Teorema (Kleene). Le seguenti classi di linguaggi sono equivalenti:

La matematica non è un opinione, lo è oppure...?

1 Giochi di Ehrenfeucht-Fraissé e Logica del Prim ordine

METODI MATEMATICI PER L INFORMATICA

Logica per la Programmazione

Tecniche di prova per induzione

LA METAFORA DELL UFFICIO

Logica per la Programmazione

Fondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Grammatiche. Stefano Ferrari

Sistemi Deduttivi. Marco Piastra. Intelligenza Artificiale I. Intelligenza Artificiale I - A.A Sistemi Deduttivi[1]

Corso di Linguaggi di Programmazione + Laboratorio Docente: Marco de Gemmis

Logica per la Programmazione

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

Costruzione di espressioni regolari 4

Transcript:

Automi, Linguaggi e Computazione Capitolo 1 : Teoria degli Automi e Tecniche di Dimostrazione Laurea Magistrale in Ingegneria Informatica Università di Padova Docente : Giorgio Satta Presentazione basata su materiale originariamente sviluppato da : Gösta Grahne, Concordia University Francesca Rossi, Università di Padova

Informatica teorica

Introduzione Uno degli obiettivi principali dell informatica teorica è lo studio matematico della computazione computabilità : cosa posso computare?? trattabilità : cosa posso computare in modo efficiente?? Per studiare la computazione è necessario sviluppare modelli astratti di calcolo : teoria degli automi sviluppare una rappresentazione dei problemi e studiare le loro proprietà : teoria dei linguaggi formali

Introduzione Modelli di calcolo più noti : macchine di Turing, introdotte per lo studio della calcolabilità automi a stati finiti, introdotti come modelli del calcolo neuronale grammatiche formali, introdotte da Noam Chomsky come modelli linguistici

1 Introduzione agli automi a stati finiti : modello di calcolo pervasivo che utilizza una quantità prefissata di memoria 2 Tecniche per le dimostrazioni formali : ipotesi, tesi, deduzione, induzione 3 della teoria degli automi : alfabeti, stringhe e linguaggi

Automa a stati finiti : Insieme finito di stati con regole di transizione che portano da uno stato all altro come modello per : software per la progettazione di circuiti digitali analizzatori lessicali di un compilatore ricerca di parole in un file o sul web software per verificare sistemi a stati finiti, come protocolli di comunicazione

Rappresentazione La più semplice rappresentazione per un automa a stati finiti è il grafo : i nodi rappresentano gli stati gli archi rappresentano transizioni le etichette sugli archi ci dicono cosa causa la transizione

Esempio Automa a stati finiti per un interruttore on/off Push Start off on Push Automa a stati finiti che riconosce la parola chiave then del linguaggio di programmazione Java Start t h e n t th the then

Rappresentazioni strutturali Gli automi a stati finiti sono modelli riconoscitori : prendono in ingresso una sequenza (stringa) e accettano oppure rifiutano Alternativamente posso rappresentare una macchina calcolatrice utilizzando modelli generativi : vengono generate tutte le sequenze compatibili (non c è input)

Rappresentazioni strutturali Grammatiche : Una regola di riscrittura E Ñ E ` E specifica che un espressione aritmetica può essere formata da due espressioni aritmetiche connesse dall operatore addizione Espressioni regolari : L espressione [A-Z][a-z]*[ ][A-Z][A-Z] genera la stringa Ithaca NY, ma non genera la stringa Palo Alto CA

Dimostrazioni deduttive Forma tipica del teorema da dimostrare (H, C proprietà) : Se H, allora C dove H = ipotesi, C = conclusione Ciò significa che H è condizione sufficiente per C C è condizione necessaria per H

Dimostrazioni deduttive In una interpretazione insiemistica, H e C sono associati all insieme degli elementi dell universo U che hanno tale proprietà H ñ C equivale a H Ď C : se H vero, C non può essere falso C H U

Dimostrazioni deduttive Deduzione : Sequenza di enunciati che parte dalle ipotesi e porta alla conclusione Ogni passaggio della deduzione utilizza un principio logico accettato, e lo applica alle ipotesi oppure ad uno degli enunciati precedentemente ottenuti Modus ponens : regola logica per passare da un enuciato al successivo. Se sappiamo che se H allora C è vera, e se sappiamo che H è vera, allora possiamo concludere che C è vera

Esempio Teorema Se x è somma dei quadrati di quattro interi positivi, allora 2 x ě x 2 x è un parametro dell enunciato, ed è quantificato universalmente, il teorema vale per tutti gli x che soddisfano le ipotesi Vedi libro di testo per esempio di deduzione che dimostra il teorema

Dimostrazioni deduttive Teoremi della forma C1 se e solo se C2 richiedono la dimostrazione in due direzioni : se C2 allora C1 se C1 allora C2 che è equivalente a C1 solo se C2

Altre tecniche Ridurre ipotesi a definizioni : Convertire tutti i termini delle ipotesi nelle corrispondenti definizioni Dimostrazione per assurdo : Per dimostrare se H allora C, dimostro H e non C implica il falso

Esempio Teorema Sia S sottoinsieme finito di un insieme infinito U. Sia T il complemento di S rispetto a U. Allora T è infinito Dimostrazione S è finito equivale, per definizione, a : esiste un intero n tale che S n U è infinito equivale, per definizione, a : per nessun intero n vale U n T è il complemento di S equivale, per definizione, a : S Y T U e S X T H

Esempio Considero la negazione della conclusione T è finito (dimostrazione per assurdo) T è finito equivale, per definizione, a : esiste un intero m tale che T m Usando S n ed usando S Y T U e S X T H, segue che U S ` T n ` m, cioè U è finito. Ciò contraddice l ipotesi l

Altre tecniche Controesempio : per dimostrare che un teorema non vale basta dimostrare che in un caso il teorema è falso Esempio : È vero che se x è un numero primo allora x è dispari?? No, infatti 2 è un numero primo ma non è dispari

Quantificatori Per ogni x (@x) : vale per tutti i valori della variabile Esiste x (Dx) : vale per almeno un valore della variabile L ordine in cui compaiono i quantificatori influisce sul significato dell enunciato

Esempio Teorema Se un insieme S è infinito, allora per ogni intero n esiste almeno un sottoinsieme T di S con n elementi @ precede D; per la dimostrazione dobbiamo dunque (nell ordine) considerare un n arbitrario dimostrare l esistenza di un sottoinsieme T di S con n elementi

Uguaglianza tra insiemi Se E ed F sono insiemi, per dimostrare E F dobbiamo dimostrare E Ď F e F Ď E Ciò si riduce a dimostrare due enunciati se e solo se : se x è in E allora x è in F se x è in F allora x è in E

Contronominale L enunciato se H allora C è equivalente all enunciato se C è falso allora H è falso detto contronominale, o anche modus tollens La dimostrazione di equivalenza utilizza la tabella di verità In alcuni casi può essere più agevole dimostrare il contronominale

Dimostrazione per induzione Tecnica essenziale quando si lavora su oggetti definiti ricorsivamente (espressioni, alberi, ecc.) Induzione sugli interi : dobbiamo dimostrare un enunciato Spnq con n intero nel caso base dimostriamo Spiq per un intero particolare (di solito i 0 o i 1) nel passo induttivo per n ě i, dimostriamo l enunciato se Spnq allora vale Spn ` 1q Possiamo concludere che Spnq è vero per ogni n ě i, dove i è il caso base

Esempio Teorema Se x ě 4, allora 2 x ě x 2 Dimostrazione Base x 4 ñ 2 x 2 4 16 e x 2 4 2 16 Induzione Supponiamo che 2 x ě x 2 per x ě 4 Dobbiamo dimostrare che 2 x`1 ě px ` 1q 2 : 2 x`1 2 2 x ě 2 x 2 (per ipotesi induttiva) dimostriamo adesso che 2x 2 ě px ` 1q 2 x 2 ` 2x ` 1 semplificando (divido per x 0): x ě 2 ` 1{x se x ě 4, 1{x ď 1{4 ñ 2 ` 1{x ď 2.25 l

Dimostrazione per induzione Possiamo dimostrare un numero finito di casi base Possiamo estendere il passo induttivo e dimostrare per un certo k ą 0 : se Spn kq, Spn k ` 1q,..., Spn 1q, Spnq allora vale Spn ` 1q

Induzione strutturale Molte strutture possono essere definite ricorsivamente Definizione di espressione aritmetica Base Qualunque variabile o numero è un espressione aritmetica Induzione Se E e F sono espressioni aritmetiche, allora lo sono anche E ` F, E ˆ F, e peq Esempio : Sono espressioni aritmetiche 3 ` px ˆ 2q e p2 ˆ p5 ` 7qq ˆ y

Induzione strutturale Definizione di albero Base Un singolo nodo N è un albero di radice N Induzione Se T 1, T 2,..., T k, k ě 1, sono alberi, la struttura seguente è un albero di radice N N T 1 T 2 T k

Induzione strutturale Per dimostrare teoremi su una struttura X definita ricorsivamente: si dimostra l enunciato sul caso base della definizione di X si dimostra l enunciato sulla struttura X a partire dalla validità dell enunciato sulle strutture di cui X è composta secondo la definizione ricorsiva

Esempio Teorema Ogni espressione aritmetica ha un numero uguale di parentesi aperte e chiuse Dimostrazione Procediamo per induzione sul numero di parentesi Base Una variabile e un numero hanno zero parentesi aperte e zero parentesi chiuse Induzione Assumiamo che E abbia n parentesi aperte e chiuse e F ne abbia m Ho tre modi per costruire induttivamente una espressione aritmetica : E ` F ha n ` m parentesi aperte e n ` m parentesi chiuse E ˆ F ha n ` m parentesi aperte e n ` m parentesi chiuse peq ha n ` 1 parentesi aperte e n ` 1 parentesi chiuse l

Esempio Teorema Ogni albero T ha un numero di nodi n ed un numero di archi e tale che n e ` 1 Dimostrazione Procediamo per induzione sulla struttura di T Base T ha n 1 ed e 0 Induzione Assumiamo che T i abbia n i nodi ed e i archi, con n i e i ` 1 Abbiamo : n 1 ` kÿ i 1 n i, e k ` kÿ i 1 e i

Esempio Segue : n 1 ` řk i 1 n i 1 ` řk i 1 p1 ` e iq ipotesi induttiva 1 ` k ` řk i 1 e i 1 ` e l

Induzione mutua Talvolta non è possibile dimostrare un singolo enunciato per induzione, perchè un enunciato dipende da altri enunciati Si deve dimostrare congiuntamente un gruppo di enunciati S 1 pnq, S 2 pnq,..., S k pnq per induzione su n

Esempio Push Start off on Push Teorema Dato l automa in figura S 1 pnq : Dopo n azioni di push, l automa si trova nello stato off se e solo se n è pari S 2 pnq : Dopo n azioni di push, l automa si trova nello stato on se e solo se n è dispari

Esempio Dimostrazione Procediamo per induzione su n Base (S 1 p0q, se) Dopo 0 push, l automa è nello stato off (S 1 p0q, solo se) 0 pari è sempre vero (S 2 p0q, se) 0 dispari (premessa) è falso, quindi implicazione vera (S 2 p0q, solo se) L automa è nello stato on dopo 0 push (premessa) è falso, quindi implicazione vera

Esempio Induzione Assumiamo S 1 pnq e S 2 pnq veri, e dimostriamo S 1 pn ` 1q e S 2 pn ` 1q (S 1 pn ` 1q, se) Da n ` 1 pari abbiamo n dispari. Applico l ipotesi induttiva S 2 pnq, parte se, ed ottengo che dopo n push, l automa è nello stato on. Dallo stato on abbiamo una transizione push allo stato off. Quindi dopo n ` 1 push, l automa è nello stato off (S 1 pn ` 1q, solo se) L automa è in stato off dopo n ` 1 push. Poiché vi è una sola transizione push entrante in off, l automa era in stato on dopo n push. Applico l ipotesi induttiva S 2 pnq, parte solo se, ed ottengo che n è dispari. Dunque n ` 1 è pari

Esempio (S 2 pn ` 1q, se) Da n ` 1 dispari abbiamo n pari. Applico l ipotesi induttiva S 1 pnq, parte se, ed ottengo che dopo n push, l automa è nello stato off. Dallo stato off abbiamo una transizione push allo stato on. Quindi dopo n ` 1 push, l automa è nello stato on (S 2 pn ` 1q, solo se) L automa è in stato on dopo n ` 1 push. Poiché vi è una sola transizione push entrante in on, l automa era in stato off dopo n push. Applico l ipotesi induttiva S 1 pnq, parte solo se, ed ottengo che n è pari. Dunque n ` 1 è dispari l

Alfabeto & stringhe Alfabeto : insieme finito e non vuoto di simboli atomici Esempio : Σ t0, 1u alfabeto binario Σ ta, b, c,..., zu insieme di tutte le lettere minuscole insieme di tutti i caratteri ASCII stampabili Stringa : Sequenza finita di simboli presi da un alfabeto 0011001 stringa su Σ t0, 1u Stringa vuota : La stringa con zero simboli (presi da un qualsiasi alfabeto) è denotata ɛ

Alfabeto & stringhe Lunghezza di una stringa : Numero di occorrenze (posizioni) per i simboli nella stringa w denota la lunghezza della stringa w 0110 4, ɛ 0 Potenze di un alfabeto : Σ k è l insieme delle stringhe di lunghezza k con simboli da Σ Σ t0, 1u Σ 1 t0, 1u; ambiguità tra Σ e Σ 1 Σ 2 t00, 01, 10, 11u Σ 0 tɛu Domanda : Quante stringhe ci sono in Σ 3??

Alfabeto & stringhe L insieme di tutte le stringhe su Σ è denotato Σ Abbiamo Σ Σ 0 Y Σ 1 Y Σ 2 Y Σ` Σ 1 Y Σ 2 Y Σ 3 Y Σ Σ` Y tɛu

Alfabeto & stringhe Concatenazione : Se x e y sono stringhe, allora xy è la stringa ottenuta mettendo una copia di y immediatamente dopo una copia di x Esempio : Per ogni stringa x : x 01101 y 110 xy 01101110 xɛ ɛx x ɛ è l elemento neutro della concatenazione

Alfabeto & stringhe Convenzioni : a, b, c,..., a 1, a 2,..., a i,... simboli di un alfabeto u, w, x, y, z stringhe per n ě 0, a n aa a (a ripetuto n volte) a 0 ɛ, a 1 a

Linguaggi Un linguaggio è un insieme di stringhe scelte da Σ, dove Σ è un alfabeto. L Ď Σ è un linguaggio Esempio : insieme delle parole della lingua italiana insieme dei programmi C senza errori sintattici insieme delle stringhe che consistono di n zeri seguiti da n uni, con n ě 0 tɛ, 01, 0011, 000111,...u insieme delle stringhe con un numero uguale di zeri e di uni tɛ, 01, 10, 0011, 0101, 1001,...u

Linguaggi Esempio : insieme dei numeri binari il cui valore è primo L p t10, 11, 101, 111, 1011,...u linguaggio vuoto H, non contiene alcuna stringa linguaggio tɛu, contiene la sola stringa vuota Non confondere questi due linguaggi : H tɛu

Linguaggi Rappresentazione estensiva di un linguaggio : L tɛ, 01, 0011, 000111,...u Posso definire un linguaggio in forma intensiva, usando un descrittore di insiemi : L tw enunciato su wu Esempio : tw w consiste di un numero uguale di 0 e 1u tw w è un intero binario che è primou tw w è un programma Java sintatticamente correttou

Linguaggi Spesso uso descrittori di insiemi espressi in forma matematica : L tw w 0 n 1 n, n ě 0u oppure, in forma semplificata, anche : L t0 n 1 n n ě 0u che risulta equivalente a : L tɛ, 01, 0011, 000111,...u Nota : non confondere i due linguaggi t0 n 1 n n ě 0u t0 n 1 n u, n ě 0

Linguaggi Esempio : t0 i 1 j i, j ě 1, i ě ju t0 i 1 j i, j ě 1, i ą j oppure i ă ju Non esiste una sintassi precisa per l uso dei descrittori di insiemi

Problemi di decisione Sia P un predicato che esprime una proprietà matematica Problema di decisione associato a P : assegnato in input un elemento x, decidere se P è vero per x Riformulazione mediante un linguaggio formale : L P tx x ha la proprietà Pu Assegnato in input un elemento x (visto come una stringa), x P L P??

Esempio Assegnato in input un numero binario x, decidere se x è primo Definiamo il linguaggio dei numeri primi L p t10, 11, 101, 111, 1011,...u Assegnata in input la stringa binaria x, x P L p??

Problemi di decisione Molti problemi matematici non sono problemi di decisione, ma richiedono una elaborazione che costruisca un risultato in output Esempio : assegnate le matrici A, B, costruire la matrice C A ˆ B problema decisionale associato : data una tripla xa, B, Cy di matrici, decidere se C A ˆ B

Problemi di decisione La risoluzione computazionale di un problema di elaborazione non può essere più semplice della risoluzione del problema di decisione associato Esempio : algoritmo di decisione che utilizza l algoritmo di elaborazione come subroutine (tecnica di riduzione) input xa, B, Cy uso subroutine su A, B per costruire C 1 A ˆ B se C 1 C rispondo si al problema di decisione, altrimenti rispondo no