Estratto del documento

Sintesi degli argomenti del corso di Informatica Teorica

Periodo: 03/10/2016 – 16/12/2016

Corso di Laurea: Informatica

Principali argomenti di informatica teorica

  • Chiusura linguaggi regolari e context-free (dimostrazione)
  • Quintupla di A e A complemento
  • Dato il linguaggio { (an b)* | con n pari } scrivere l'automa e complemento
  • Che vuol dire automa minimo? (definizione)
  • Che vuol dire che due stati sono indistinguibili?
  • L'automa minimale è unico?
  • I problemi P e NP? (spiegazione)
  • Che vuol dire tempo polinomiale?
  • Scrivere la grammatica delle stringhe palindrome
  • Scrivere la grammatica delle parentesi
  • CNF e trasformazione di una grammatica
  • Lemma di iterazione (P. Lemma 2, dimostrazione)
  • Verifichiamo se due automi riconoscono lo stesso linguaggio?
  • Automa minimo unico? (dimostrazione per assurdo)
  • Problemi: emptyness, inclusion (spiegazione e dimostrazione)
  • Berry e Sethy (spiegazione algoritmo)
  • Linguaggi locali (definizione e quadrupla)
  • NFA e DFA hanno la stessa potenza? (dimostrazione con subset)
  • Macchina di Turing
  • Chi dice che la macchina di Turing riesce a calcolare tutte le funzioni? (Turing/Church)
  • Descrizione e spiegazione della macchina (con settupla)
  • Transizioni della macchina per fare la somma di due numeri

1. Chiusura dei linguaggi regolari

I linguaggi regolari sono chiusi per:

  • Unione
  • Intersezione
  • Complemento

1.1 Chiusura per intersezione

Teorema: Se L1 e L2 REC, allora L1 ∩ L2 REC.

Dimostrazione per costruzione: Si costruisce un automa che riconosce l'intersezione dei due linguaggi: siano A1 e A2 due automi, anche incompleti, che riconoscono rispettivamente i linguaggi L1 ed L2 (L1=L(A1), L2=L(A2)).

A1 = (Q,Σ,δ,q0,F) A2 = (Q,Σ,δ,q0,F).

Si costruisce l'automa per intersezione A = (Q,Σ,δ,q0,F) dove Q = {(q1,q2)|q1 ∈ Q1 AND q2 ∈ Q2} cioè Q = Q1 x Q2, q0 = (q0,q0), δ = ((q1,q2),a) = (δ(q1,a),δ(q2,a)) ∀ a ∈ Σ.

F = {(q1,q2)|q1 ∈ F1 AND q2 ∈ F2} cioè F = F1 x F2.

È semplice provare che A riconosce L1 ∩ L2.

1.2 Chiusura per complemento

Teorema: se L REC, Lc REC.

Dimostrazione per costruzione: Si costruisce un automa che riconosce il complemento Lc = Σ* - L. Dato A = (Q,Σ,δ,q0,F) che riconosce L, si costruisce Ac = (Q,Σ,δ,q0,Fc).

Si completa l'automa, quindi bisogna sempre dichiarare l'alfabeto rispetto al quale si vuol fare la costruzione. Gli stati di accettazione diventano di non accettazione e viceversa. Ac riconosce Lc.

1.3 Chiusura per unione

Teorema: se L1 e L2 REC, allora (L1 U L2) REC.

Ci sono due modi per dimostrarlo:

  • Tramite la legge di Morgan: L1c ∩ L2c = (L1 U L2)c
  • Per costruzione: siano A1 e A2 due automi che riconoscono rispettivamente i linguaggi L1 e L2, ipotizzati completi.

A1 = (Q,Σ,δ,q0,F) A2 = (Q,Σ,δ,q0,F).

Si costruisce l'automa unione A = (Q,Σ,δ,q0,F) dove Q = {(q1,q2)|q1 ∈ Q1 AND q2 ∈ Q2}, q0 = (q0,q0), δ = ((q1,q2),a) = (δ(q1,a),δ(q2,a)) ∀ a ∈ Σ, F = {(q1,q2)|q1 ∈ F1 OR q2 ∈ F2}.

Si può provare che A riconosce (L1 U L2), facendo l'unione tramite l'ε-transizioni.

2. Chiusura dei linguaggi context-free

Linguaggi liberi dal contesto

2.1 Chiusura per unione

Siano <Σ1,V1,S1,P1> e <Σ2,V2,S2,P2> due linguaggi non contestuali, la loro unione diventa: <Σ1 U Σ2, V1 U V2 U {S'}, S', P1 U P2> dove S' → S1 U S2 è il nuovo assioma.

2.2 Chiusura per concatenazione

Avendo <Σ1 U Σ2, V1 U V2 U {S'}, S', P1 U P2>, aggiungiamo la regola di produzione S' → S1 U S2 ed S' è il nuovo assioma.

2.3 Chiusura per iterazione

Dato <Σ1,V1,S1,P1>, si ha <Σ1,V1 U {S'},S',P1> aggiungendo S' → S1 S'|ε e usando S' come nuovo assioma.

2.4 Chiusura per intersezione

L'intersezione di due linguaggi c.f. non è necessariamente c.f.

Es. {an bn cm | n ≥ 1} ∩ {an bm cn | n ≥ 1} non è context free perché viene an bn cn che non è cf.

2.5 Chiusura per complemento

La chiusura per complemento non è necessariamente context free e lo si dimostra con De Morgan (L1c U L2c) = L1 ∩ L2 e l'intersezione non è necessariamente context free.

3. DFA e automa minimale

Un DFA (quintupla Q,Σ,δ,q0,F) è un automa a stati finiti deterministico che, dopo aver letto una sequenza in input, si ferma in un singolo stato. Esso è composto da 5 componenti:

  • Q: insieme degli stati;
  • Σ: insieme dei caratteri di input;
  • δ(q,a): funzione di transizione;
  • q0: stato iniziale;
  • F: stato finale o di accettazione che è incluso in Q; possono esistere più stati finali.

Tra tutti gli automi equivalenti, l'automa minimale è quello con il minor numero di stati:

  • per i DFA il minimale è unico;
  • per gli NFA il minimale non è unico.

Minimizzare un automa significa trovare il minimale equivalente. Esistono vari algoritmi di minimizzazione:

  • Algoritmo di Moore O(n2)
  • Algoritmo di Hopcroft O(n log n)
  • Algoritmo di Brzozowski (tempo esponenziale)
  • dove n = numero di stati dell'automa da minimizzare

4. Relazione di indistinguibilità

La relazione di indistinguibilità è una relazione tra gli stati di un automa.

Sia A = (Q,Σ,δ,q0,F) un DFA e {p,q} ⊆ Q.

Allora, pIq <=> ∀w ∈ Σ* | δ*(p,w) ∈ F <=> δ(q,w) ∈ F.

Invece, p e q sono distinguibili se:

∃w ∈ Σ* | δ*(p,w) ∈ F AND δ*(q,w) ∉ F o viceversa.

La relazione di indistinguibilità è una relazione di equivalenza:

  • Proprietà riflessiva: pIp ∀p ∈ Q
  • Proprietà simmetrica: pIq → qIp ∀p,q ∈ Q
  • Proprietà transitiva: pIq, qIr → pIr ∀p,q,r ∈ Q

Ogni stato del minimale è una classe della partizione e quindi si devono trovare le classi di stati indistinguibili.

4.1 Teorema di Nerode

Sia A = (Q,Σ,δ,q0,F) un automa che riconosca L. π = {Q1,Q2,...,Qm} la partizione di indistinguibilità.

L'automa minimo che riconosce L è MA = (QM,Σ ,δM,q0,FM) dove

  • QM = {Q1,Q2,...,Qm}
  • q0 = [q0]
  • δM ([q],a) = [δ(q,a)], ∀q ∈ Q AND ∀a ∈ Σ
  • FM = { [q] | q ∈ F}

Affinché la funzione di transizione sia ben definita, si deve mostrare che applicando δ a qualunque stato di una classe si arriva alla stessa classe:

Se pIq, allora δ(p,a)Iδ(q,a)

5. Grammatica generatrice di palindrome e parentesi

L = Linguaggio delle palindrome

G = Grammatica che genera L

G = <{S},{a,b},S,P> dove P sono le seguenti regole di produzione:

  • S → aSa
  • S → bSb
  • S → a
  • S → b
  • S → aa
  • S → bb

L = Linguaggio delle parentesi

G = Grammatica che genera L

G = <{S},{ '(', ')' },S,P>

Anteprima
Vedrai una selezione di 6 pagine su 21
Informatica teorica: sintesi Pag. 1 Informatica teorica: sintesi Pag. 2
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Informatica teorica: sintesi Pag. 6
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Informatica teorica: sintesi Pag. 11
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Informatica teorica: sintesi Pag. 16
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Informatica teorica: sintesi Pag. 21
1 su 21
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher astrex di informazioni apprese con la frequenza delle lezioni di Informatica teorica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Palermo o del prof Castiglione Giuseppe.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community