La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Generazione e membership

Presentazioni simili


Presentazione sul tema: "Generazione e membership"— Transcript della presentazione:

1 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).

2 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à

3 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.

4 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!

5 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)

6 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.

7 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

8 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

9 Membership e Generazione

10

11 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

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

13 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

14 ASSIOMI DI ZERMELO-FRAENKEL

15

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


Scaricare ppt "Generazione e membership"

Presentazioni simili


Annunci Google