Sei sulla pagina 1di 4

Esercizi proposti in preparazione esame di Calcolabilit e Complessit 16/1/2007 Calcolabilit 1. Si dimostri che il linguaggio L = {<T,x,n> | T accetta x in n passi} de cidibile.

e. 2. Dati due linguaggi Turing riconoscibili L e L', sia L" = LL' ={w | esistono x in L e y in L' e w=xy}, si dimostri che L" Turing riconoscibile. Complessit 1. Per dimostrare che P chiuso rispetto al complemento abbiamo osservato che basta scambiare lo stato di accettazione con quello di rifiuto. Per dimostrare che questo metodo non funziona per NP, si produca un controesempio L. Si pu descrivere una particolare NTM T a livello di implementazione e poi far vedere che la NTM T' in cui accettazione e rifiuto sono scambiati non porta a una NTM che decide L. Si descriva il linguaggio accettato da T'. 2. Si dimostri che CLIQUE = {<G,k> | G un grafo non diretto che ha un clique di almeno k vertici} in NP, e che invece per ogni k in N, il linguaggio k-CLIQUE = {<G> | G un grafo non diretto che ha un clique di almeno k vertici} in P (complessit O(nk), dove n il numero dei vertici. Perch questo non implica che CLIQUE in P? Linguaggi regolari - Automi a stati finiti 1. Si dimostri o si confuti che: a. se L1 e L2 non sono regolari allora L1 U L2 non regolare b. se L non regolare allora anche il suo complemento non regolare 2. Si dimostri o si confuti che se F un linguaggio finito e L-F regolare allora L deve essere regolare. 3. Si dimostri che il seguente linguaggio L su {a,b,c} non regolare: L = {xcw | x,w in {a,b}* e il numero delle a in x uguale al numero delle b in w} Linguaggi acontestuali. 1. La grammatica S | aSb | aS ambigua? Dimostrare la risposta. Qual il linguaggio generato? Se si dimostrata lambiguit, si produca una CFG equivalente non ambigua. 2. (Qui il testo era poco chiaro per errori dovuti al copia e incolla) Diamo la soluzioni per l'interpretazione seguente Si dimostri che il linguaggio L = { ambncmdn | m,n >0} non acontestuale. 1

Soluzioni Calcolabilit 1. Si dimostri che il linguaggio L = {<T,x,n> | T accetta x in n passi} decidibile. Sol. Banalmente la macchina M per L : Sull'input <T,x,n> Esegui T su x per n passi e se T accetta, accetta, altrimenti rifiuta. 2. Dati due linguaggi Turing riconoscibili L e L', sia L" = LL' ={w | esistono x in L e y in L' e w=xy}, si dimostri che L" Turing riconoscibile. Sia T la TM per L e T' quella per per L', la TM T" per LL' cos costruita: Sol. Sull'input x 1. nondeterministicamente scegli le parole y e z tali che x=yz 2. esegui T su y e se rifiuta rifiuta, mentre se accetta esegui T' su z e se anche T' accetta accetta, se T' rifiuta rifiuta. (Quindi se T va all'infinito su y o T' su z, anche T" lo fara') Complessit 1. Per dimostrare che P chiuso rispetto al complemento abbiamo osservato che basta scambiare lo stato di accettazione con quello di rifiuto. Per dimostrare che questo metodo non funziona per NP, si produca un controesempio L. Si pu descrivere una particolare NTM T a livello di implementazione e poi far vedere che la NTM T' in cui accettazione e rifiuto sono scambiati non porta a una NTM che decide L. Si descriva il linguaggio accettato da T'. Sol. Per illustrare la soluzione prendo come esempio di linguaggio quello adottato da alcuni di voi: Sia SUB= { <S,t> | esiste sottoinsieme di S tale che la somma degli elementi dia t } SUB deciso dalla seguente NTM T: su input <S, t> 1. Scegli non deterministicamente un sottoinsieme di S 2. Controlla che la somma degli elementi dia t, se cosi' accetta, altrimenti rifiuta.

Il complemento di SUB={ <S,t> | non esiste sottoinsieme di S tale che la somma degli elementi dia t } Chiamiamo T' la NTM ottenuta scambiando gli stati di rifiuto e accettazione. T' non un decisore per il complemento di SUB, poich se per esempio l'stanza in input ha una sola soluzione (cio c' un solo sottoinsieme X di S i cui elementi danno somma t), allora tra i vari rami di computazione in T solo uno rifiuta (quello corrispondente alla scelta di X) e gli altri accettano (sono quelli su tutti i sottoinsiemi di S i cui elementi non hanno somma t) quindi anche T' accetta quell'istanza. Solo se l'istanza tale che tutti i rami di computazione in T accettano (cio se ogni sottoinsieme di T tale che la loro somma t) allora T' rifiuta. Quindi L(T') = {<S,t> | esiste sottoinsieme di S tale che la somma degli elementi non t} 2. Si dimostri che CLIQUE = {<G,k> | G un grafo non diretto che ha un clique di almeno k vertici} in NP, e che invece per ogni k in N, il linguaggio k-CLIQUE = {<G> | G un grafo non diretto che ha un clique di almeno k vertici} in P (complessit O(nk) dove n il numero dei vertici.) Perch questo non implica che CLIQUE in P? Sol. In k-CLIQUE, essendo k costante, la complessit polinomiale. Sia G=(V,E), si devono considerare tutti i sottoinsiemi di V con un numero di elementi tra k e n, con un costo totale O(nk). Mentre se k dato in input questa funzione esponenziale.

Linguaggi regolari - Automi a stati finiti Sol. 1. a. L'affermazione falsa. Sia L1 = {anbm | n m0 } e L2 = {anbm | 0n < m } , L1 ed L2 non sono regolari (sono CFL, ma l'importante che non siano regolari), ma L1 U L2 = a*b*. b. L'affermazione vera. Se per assurdo L fosse non regolare ma il suo complemento s, si otterrebbe una contraddizione sapendo che la classe dei linguaggi regolare chiusa rispetto al complemento.

2. Si dimostri o si confuti che se F un linguaggio finito e L-F regolare allora L deve essere regolare Sol. 2. L = (L-F) U (L F). Poich F e' finito L F finito e quindi regolare, L-F regolare per ipotesi e quindi L regolare perch unione di due regolari. 3. Si dimostri che L = {xcw | il numero delle a in x uguale al numero delle b in w } non regolare Per ogni k sia z = akcbk facile vedere che per qualsiasi scomposizione di z= uvw tra quelle che soddisfano la condizione |uv| k, e naturalemnte che |v| > 0 si trova un indice i tale che uviw non in L, analogamente al caso di {anbn | n 0 }. Linguaggi acontestuali. 1. La grammatica G : S | aSb | aS ambigua? Dimostrare la risposta. Qual il linguaggio generato? Se si dimostrata lambiguit, si produca una CFG equivalente non ambigua. Si G ambigua perch aab ha due alberi di derivazioni diversi, corrispondenti alle derivazioni (leftmost) S => aSb => aaSb => aab e S=>aS=>aaSb=>aab L(G) = {anbm | n m0 }. Per eliminare l'ambiguit basta osservare che questa dovuta al fatto che le a eventualmente presenti in numero superiore alle b possono essere generate prima o dopo aver generato le a in corrispondenza delle b, quindi: S-> aSb | A | A -> aA | a una grammatica non ambigua equivalente. Infatti se z= anbn allora le uniche derivazioni utilizzabili sono la prima e l'ultima per S, mentre se z= anbm con n>m l'unica derivazione possibile utililzza prima quella per S con la quale genero le b e poi solo utilizzando l'unica produzione per A si pu aumentare il numero delle a. Se z = an allora l'unica derivazione utilizza le produzioni per S -> A e A -> aA| a. 2. Si dimostri che il linguaggio L = { ambncmdn | m,n >0} non acontestuale. Per ogni k, si prenda z= akbkckdk quindi la prova analoga a quella per ambmcm.

Potrebbero piacerti anche