Generazione e membership

Slides:



Advertisements
Presentazioni simili
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
Advertisements

Intelligenza Artificiale - AA 2001/2002 Logica formale (Parte 2) - 1 Intelligenza Artificiale Breve introduzione alla logica classica (Parte 2) Marco Piastra.
segmenti e punti notevoli dei triangoli
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Grammatiche non contestuali (1)
Macchine di Turing (1) Il modello di base ha un controllo finito, un nastro di input diviso in celle e una testa di lettura che esamina una cella alla.
Automi temporizzati.
Linguaggi, stringhe e alfabeti. Linguaggi e grammatiche Un linguaggio è un sistema di comunicazione tra persone che permette di trasmettere informazioni.
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
2a + 10b abx2 3a + 1 y 2 a + 1 x + 2y a − Espressioni algebriche
Fondamenti di Informatica A - Massimo Bertozzi ALBERI E ALBERI BINARI DI RICERCA (BST)
Disequazioni in una variabile. LaRegola dei segni La disequazione A(x) · B(x) > 0 è soddisfatta dai valori di per i quali i due fattori A(x) e B(x) hanno.
Huffman Canonico: approfondimento. Come abbiamo visto, Huffman canonico ci permette di ottenere una decompressione più veloce e con un uso più efficiente.
PRIMI CONCETTI ESEMPI INTRODUTTIVI DEFINIZIONI INTRODUZIONE ALLE FUNZIONI.
PROBLEMI RISOLUBILI E COMPUTABILITÀ se neanche la macchina di Turing riesce a risolvere un problema, quel problema non è risolubile! Secondo la Tesi di.
Logica Lezz
I limiti.
Le funzioni matematiche e il piano cartesiano
SUMMERMATHCAMP TARVISIO, AGOSTO 2017
Insiemi di numeri e insiemi di punti
Introduzione alla LOGICA MATEMATICA
Appunti sull’ Integrale Indefinito e Definito
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Progettare algoritmi veloci usando strutture dati efficienti
(se a = 0 l’equazione bx + c = 0 è di primo grado)
PICCOLA GUIDA PER FUNZIONI REALI A DUE VARIABILI
Definizione di logaritmo
Le successioni Un caso particolare di funzioni: le successioni
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Le equazioni di II°Grado
Stringhe e spostamenti
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Intervalli di numeri reali
Algoritmi e soluzioni di problemi
IL CONCETTO DI ALGORITMO
Equazioni di 2° grado.
x : variabile indipendente
Raccogliamo x al primo membro e 2 al secondo:
Algoritmi Avanzati a.a.2011/2012 Prof.ssa Rossella Petreschi
22) Funzioni (prima parte)
MATEMATICA I.
Sulla complessità Lezione n°2
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati Prof.ssa Rossella Petreschi
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Lezione n°4 Prof.ssa Rossella Petreschi
23) Esponenziali e logaritmi
Algoritmi Avanzati a.a.2010/2011 Prof.ssa Rossella Petreschi
I MONOMI.
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
ABBINAMENTO Lezione n°13
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Le espressioni algebriche letterali
Corrispondenza fra stringhe
Automi e stringhe Lezione n°24 Prof.ssa Rossella Petreschi
Le Macchine di Turing.
APPUNTI SUL LINGUAGGIO C Esercizi sugli array e strutture
Teoria della computabilità
Algoritmi e Strutture Dati
PICCOLA GUIDA PER FUNZIONI REALI A DUE VARIABILI
Esercizio Dato un albero binario, definiamo altezza minimale di un nodo v la minima distanza di v da una delle foglie del suo sottoalbero, definiamo invece.
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Corso di Sicurezza – A.A. 2006/07
I sistemi di equazioni lineari
Analisi e Sintesi di circuiti sequenziali
Algoritmi e Strutture dati a.a.2010/2011 Prof.ssa Rossella Petreschi
Appunti di analisi matematica: Integrale Definito
I sistemi di equazioni di I grado
I sistemi di equazioni di 1° grado
Transcript della presentazione:

Generazione e membership Le grammatiche generano il linguaggio definendolo iterativamente, come dato da tutte e sole le espressioni generabili tramite la grammatica. Si pone il problema duale della membership/parsing del linguaggio, cioè dell’algoritmo che risponde al problema se una data espressione w appartiene al linguaggio L: wL ? E, se si, della derivazione di w. E’ in fondo il problema opposto alla generazione: invece di costruire l’albero per ottenere dalle foglie l’espressione, data l’espressione vogliamo costruire l’albero da cui è stata generata (se esiste).

Più è complessa la grammatica, più è complesso il linguaggio generato, e più è complesso l’algoritmo della membership. Una grammatica semplice produce un linguaggio semplice e quindi poco espressivo, ma il problema della membership è risolto da un algoritmo semplice. Se voglio un linguaggio più espressivo e quindi più complicato, devo generarlo con una grammatica complessa, e complesso sarà anche il suo algoritmo di membership. Si definisce così una doppia gerarchia parallela di grammatiche e algoritmi di crescente complessità

Complessità di grammatiche e algoritmi La complessità di una grammatica si misura dal tipo di regole (molto o poco vincolato). La complessità di un algoritmo è misurata: - in primo luogo dal fatto se l’algoritmo termina o no per tutti i possibili dati di input (decidibilità). - in secondo luogo dalla relazione funzionale tra il tempo medio di esecuzione t e la dimensione n del dato di input (complessità computazionale), in genere scritta come t = O(f(n)), che va letto come limn t/f(n) = costante non nulla.

Complessità computazionale La gerarchia delle complessità computazionali coincide con la gerarchia degli infiniti asintotici. La gerarchia dei polinomi nk per k dato da un numero reale positivo coincide con la relazione di > tra i numeri reali. Al di sotto di tali polinomi nella gerarchia c’è log n, e poi log log n, etc. Così n log n è più complesso di n, ma meno di nk per ogni k>1. Al disopra di tali polinomi nella gerarchia c’è en , poi nn , etc. Da notare che n! = O(nn+1/2) La complessità computazionale degli algoritmi reali va in genere da n a n!

La decidibilità Un problema (ad esempio decidere se un numero è primo o se una certa formula è dimostrabile da certe premesse) si dice decidibile se esiste un algoritmo che per qualsiasi input in tempo finito ci dà la risposta (positiva o negativa). n P Se nei casi negativi l’algoritmo può non terminare il problema si dice semidecidibile n P Se può non terminare in entrami i casi è indecidibile P(n) Non P(n) P(n) Non P(n)

Gerarchia di Chomskij grammatica Tipo 3 –regolare. AaB / a Tipo 2 – context free. Aa Tipo 1 – context sensitive. ab |a| ≤ |b| Tipo 0 – ricorsivamente enumerabile. ab Algoritmo di membership Automa a stati finiti Chart o automa a pila Chart o macchina di Turing Macchina di Turing decidibilità decidibile semidecidibile Complessità computazionale lineare polinomiale, in certi casi lineare esponenziale --------------------- Ogni classe è un caso particolare della successiva. Al di là della classe 0 gli insiemi/linguaggi non sono generabili e non ammettono algoritmi di membership neanche semidecidibile. Sono insiemi di fatto intrattabili: se anche costruiamo un algoritmo di membership esso può andare in loop sia per risposte positive che negative (indecidibile). E vedremo che sono infiniti di una cardinalità transfinita superiore ai ricorsivamente enumerabili: esempi più importanti sono l’insieme delle verità aritmetiche o quello dei non teoremi della logica dei predicati.

grammatica regolare e automa a stati finiti: S  aA / bS / b A  aS / bA b a S a A b b L = {a bn a bm | n, m  } grammatica context-free e chart: S  aSb / ab L = {an bn | n  } aaaaaabbbbb aaaaabbbbb aaaaaSbbbb aaaaSbbbb aaaaSbbb aaaSbbb aaaSbb aaSbb aaSb aSb aS S

Macchina di Turing S E’ un insieme di stati S={S, S’, S’’, ….}, un alfabeto di segni A={a, b, c, …}, e un insieme di quintuple {S, S’, a, b, spostamento}, ove spostamento può essere ‘destra’, ‘sinistra’ o ‘fermo’, che può essere interpretato come «se la S’ macchina sta nello stato S e legge il carattere a, transita nello stato S’, scrive b e si sposta a destra a sinistra o resta fermo». a Può essere rappresentata con un grafo labellato da terne i cui vertici b sono gli stati. S a, b, spost. S’ Ad esempio un algoritmo per la membership di L = {an bn | n  } potrebbe essere dato dalla macchina di Turing a,a,s a,,d ,,f F ,,d F b,b,f a,a,s b,b,d a,a,d S ,,f ,,d b,,s ,,s b,b,d b,b,s

Membership e Generazione

Calcolo alla Gentzen A è un teorema sse si può derivare:  A A1 A2 … Am B1 B2  …  Bn clausola {A1, A2, …, Am}  {B1, B2, …, Bn} sequente A1 A2 … Am  B1 B2  …  Bn Schema di Assiomi: G  D ove G  D   REGOLE: G,A  D G  D,A G  A, D A,G  D G,A,B  D G  D,A G  D,B G,A  B  D G  D,AB G,A  D G,B  D G  D,A,B G,A  B  D G  D,A  B G,A  D ,B G  D,A G,B  D G  D,A B G,A B  D G,A  D K L,A CUT G,K  L,D A è un teorema sse si può derivare:  A A1 C … Am B1 C  …  Bn tautologia (risoluzione) G,A  D G  A  D (G A)  D G   A  D G  ( A  D) G  ( A  D) G   A, D

A B  (AB)

ASSIOMATIZZAZIONE DELLA ARITMETICA PAII: categorica   induzione II ordine incompleta ( P) [P(0)  ( x) (P(x)=>P(s(x))) => ( x) P(x)] completa moltiplicazione Pressburger arithmetic addizione e addizione  Teoria del successore induzione I [P(0)  ( x) (P(x)=>P(s(x))) => ( x) P(x)] I primi tre assiomi di Peano (x) ( y) s(x)=s(y) => x=y ( x) ¬(x=0) => ( y) s(y)=x ¬( y) s(y)=0

ASSIOMI DI ZERMELO-FRAENKEL

|P()| Not(GCH,CA), CH Not(GCH,CA, CH) 0 1 2 3 0 1 2 3 0 1 2 3 || |P()|=|| |P()| 0 1 2 3 || |P()|=|| |P()| |P(P())| Not(GCH), CA, CH || |P()|=|| Not(GCH, CH), CA 0 1 2 3 |P()| Not(GCH,CA), CH || |P()|=|| 0 1 2 3 || Not(GCH,CA, CH) || 0 1 2 3