328
 Linguaggi, Modelli, Complessit` a Giorgio Ausiello Universit` a di Roma “La Sapienza” Fabrizio d’Amore Universit` a di Roma “La Sapienza” Giorgio Gambosi Universit` a di Roma “Tor Vergata”

EL _ Algoritmi e Strutture Dati - Linguaggi Modelli e Comp Less It

Embed Size (px)

Citation preview

Linguaggi, Modelli, Complessit`aGiorgio AusielloUniversit`a di Roma La SapienzaFabrizio dAmoreUniversit`a di Roma La SapienzaGiorgio GambosiUniversit`a di Roma Tor VergataQuesto documento `e statoscritto con lausilio del sistemaLATEX2.Stampato il 10 aprile 2002.iiiDa queste premesse incontrovertibili dedusse che la Biblioteca `e totale, e che isuoi scaali registrano tutte le possibili combinazioni dei venticinque simboliortograci (numero, anche se vastissimo, non innito) cio`e tutto ci`o ch`e datodiesprimere,intuttelelingue. Tutto: lastoriaminuziosadellavvenire,leautobiograedegli arcangeli, il catalogofedeledellaBiblioteca, migliaiaemigliaiadicataloghifalsi,ladimostrazionedellafalsit`adiquesticataloghi,ladimostrazionedellafalsit`adel catalogoautentico, levangelognosticodiBasilide, il commento di questo evangelo, il commento del commento di questoevangelo, il resoconto veridico della tua morte, la traduzione di ogni libro intutte le lingue, le interpolazioni di ogni libro in tutti i libri.J.L. Borges La Biblioteca di BabeleivIndiceCapitolo1 Concettimatematicidibase 11.1 Insiemi, relazioni e funzioni . . . . . . . . . . . . . . . . . . . . 11.2 Strutture algebriche elementari . . . . . . . . . . . . . . . . . . 211.3 Caratteristiche elementari dei linguaggi . . . . . . . . . . . . . 251.4 Notazione asintotica . . . . . . . . . . . . . . . . . . . . . . . . 32Capitolo2 Linguaggiformali 352.1 Grammatiche di Chomsky. . . . . . . . . . . . . . . . . . . . . 362.2 Grammatiche con-produzioni . . . . . . . . . . . . . . . . . . 482.3 Linguaggi lineari . . . . . . . . . . . . . . . . . . . . . . . . . . 542.4 Forma Normale di Backus e diagrammi sintattici . . . . . . . . 552.5 Accettazione e riconoscimento di linguaggi. . . . . . . . . . . . 58Capitolo3 Linguaggiregolari 713.1 Automi a stati niti . . . . . . . . . . . . . . . . . . . . . . . . 713.2 Automi a stati niti non deterministici . . . . . . . . . . . . . . 773.3 Relazioni tra ASFD, ASFND e grammatiche di tipo 3 . . . . . 833.4 Il pumping lemma per i linguaggi regolari . . . . . . . . . . . 923.5 Propriet`a di chiusura dei linguaggi regolari . . . . . . . . . . . 943.6 Espressioni regolari e grammatiche regolari . . . . . . . . . . . 1023.7 Predicati decidibili sui linguaggi regolari . . . . . . . . . . . . . 1103.8 Il teorema di Myhill-Nerode . . . . . . . . . . . . . . . . . . . . 113Capitolo4 Linguagginoncontestuali 1214.1 Forme ridotte e forme normali . . . . . . . . . . . . . . . . . . . 1234.2 Il pumping lemma per i linguaggi CF . . . . . . . . . . . . . 1344.3 Chiusura di operazioni su linguaggi CF . . . . . . . . . . . . . . 1364.4 Predicati decidibili sui linguaggi CF . . . . . . . . . . . . . . . 1384.5 Automi a pila e linguaggi CF . . . . . . . . . . . . . . . . . . . 1394.6 Automi a pila deterministici . . . . . . . . . . . . . . . . . . . . 1534.7 Analisi sintattica e linguaggi CF deterministici . . . . . . . . . 1554.8 Grammatiche e linguaggi ambigui . . . . . . . . . . . . . . . . . 1594.9 Algoritmi di riconoscimento di linguaggi CF. . . . . . . . . . . 163Capitolo5 MacchinediTuring 1695.1 Macchine di Turing a nastro singolo . . . . . . . . . . . . . . . 1705.2 Calcolo di funzioni e MT deterministiche . . . . . . . . . . . . . 1785.3 Calcolabilit`a secondo Turing . . . . . . . . . . . . . . . . . . . . 180vi Indice5.4 Macchine di Turing multinastro. . . . . . . . . . . . . . . . . . 1815.5 Macchine di Turing non deterministiche . . . . . . . . . . . . . 1925.6 Riduzione delle Macchine di Turing . . . . . . . . . . . . . . . . 1995.7 Descrizione linearizzata delle MT. . . . . . . . . . . . . . . . . 2035.8 La macchina di Turing universale. . . . . . . . . . . . . . . . . 2105.9 Il problema della terminazione . . . . . . . . . . . . . . . . . . 2145.10Linguaggi di tipo 0 e MT . . . . . . . . . . . . . . . . . . . . . 2155.11Linguaggi di tipo 1 e automi lineari . . . . . . . . . . . . . . . . 219Capitolo6 ModelliImperativieFunzionali 2236.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2236.2 Macchine a registri . . . . . . . . . . . . . . . . . . . . . . . . . 2246.3 Macchine a registri e macchine di Turing . . . . . . . . . . . . . 2306.4 Macchine a registri e linguaggi imperativi . . . . . . . . . . . . 2346.5 Funzioni ricorsive. . . . . . . . . . . . . . . . . . . . . . . . . . 2376.6 Funzioni ricorsive e linguaggi imperativi . . . . . . . . . . . . . 2426.7 Funzioni ricorsive e linguaggi funzionali . . . . . . . . . . . . . 247Capitolo7 Teoriageneraledellacalcolabilit`a 2517.1 Tesi di Church-Turing . . . . . . . . . . . . . . . . . . . . . . . 2517.2 Enumerazione di funzioni ricorsive . . . . . . . . . . . . . . . . 2527.3 Propriet`a di enumerazioni di funzioni ricorsive . . . . . . . . . 2567.4 Funzioni non calcolabili . . . . . . . . . . . . . . . . . . . . . . 2597.5 Indecidibilit`a in matematica ed informatica . . . . . . . . . . . 2637.6 Teoremi di Kleene e di Rice . . . . . . . . . . . . . . . . . . . . 2667.7 Insiemi decidibili e semidecidibili . . . . . . . . . . . . . . . . . 269Capitolo8 TeoriadellaComplessit`a 2778.1 Valutazioni di complessit`a . . . . . . . . . . . . . . . . . . . . . 2788.2 Tipi di problemi . . . . . . . . . . . . . . . . . . . . . . . . . . 2818.3 Complessit`a temporale e spaziale . . . . . . . . . . . . . . . . . 2848.4 Teoremi di compressione ed accelerazione . . . . . . . . . . . . 2888.5 Classi di complessit`a . . . . . . . . . . . . . . . . . . . . . . . . 2938.6 Teoremi di gerarchia . . . . . . . . . . . . . . . . . . . . . . . . 2948.7 Relazioni tra misure diverse . . . . . . . . . . . . . . . . . . . . 3008.8 Riducibilit`a tra problemi diversi . . . . . . . . . . . . . . . . . . 305Capitolo9 Trattabilit`aedintrattabilit`a 3119.1 La classeP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3119.2 La classeNP . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3239.3 NP-completezza . . . . . . . . . . . . . . . . . . . . . . . . . . 3269.4 Ancora sulla classeNP . . . . . . . . . . . . . . . . . . . . . . . 3379.5 La gerarchia polinomiale. . . . . . . . . . . . . . . . . . . . . . 3449.6 La classePSPACE . . . . . . . . . . . . . . . . . . . . . . . . . 350Indice viiCapitoloANotestoricheebibliograche 341viii IndiceIntroduzionex IndiceCapitolo1ConcettimatematicidibaseIn questo primo capitolo vengono richiamate, in modo sintetico, alcune nozio-ni matematiche preliminari riguardanti concetti che sono alla base degli argo-menti trattati nel volume: relazioni, funzioni, strutture algebriche, ecc. Inoltrevengono introdotte denizioni, propriet`a elementari ed operazioni su linguag-gi, strutturematematichechehannounruolofondamentaleininformatica,dotatedi propriet`ainsiemisticheedalgebricheparticolarmenteinteressanti.Inne vengono illustrate alcune delle tecniche che saranno pi` u frequentementeutilizzate nella dimostrazione di teoremi nel corso dei successivi capitoli.Come si `e detto nella premessa, in questo capitolo assumeremo noti il con-cetto primitivo di insieme e la denizione delle principali operazioni su insiemi(unione, intersezione, complementazione). Tra gli insiemi cui ci riferiremo, al-cuni sono particolarmente importanti; essi sono riportati in Tabella 1.1 insiemeai simboli utilizzati per rappresentarli. Assumeremo anche noti i signicati deiconnettivi logici (and, or, not, implica, equivale a) e dei quanticatori (esiste,perogni), cheutilizzeremoancheal di fuori del contestodi specicheteo-rielogiche, semplicementecomenotazioneperesprimereinmodoformaleesintetico i concetti ad essi corrispondenti.1.1 Insiemi, relazioni efunzioni. Cardinalit`aecontabilit`adegliinsiemi.1.1.1 InsiemedellepartiSia dato un insiemeA. Ricordiamo che conx A indichiamo che lelementox appartiene adA, conB A indichiamo che linsiemeB`e un sottoinsiemedi A e con B A indichiamo che B `e un sottoinsieme proprio di A. Se A `e uninsieme costituito da un numero nito n di elementi, con [ A[ indichiamo la sua2 CAPITOLO1. CONCETTIMATEMATICIDIBASEsimbolo descrizioneIN naturaliIN+naturali positiviZZ interiZZ+interi positivi (coincide con IN+)ZZinteri negativiQ razionaliQ+razionali positiviQrazionali negativiIR realiIR+reali positiviIRreali negativiTabella 1.1 Simboli adottati per indicare alcuni insiemi di particolare interesse.cardinalit`a,cio`eilnumerodielementichelocompongonoequindiabbiamo[ A[= n. Inne con indichiamo linsieme vuoto, tale cio`e che [ [= 0 .Denizione1.1Linsieme composto da tutti i sottoinsiemi di un insiemeAsi diceinsieme delle parti diA, e si indica con T(A)Si noti che T(A) contieneA e linsieme vuoto .`E facile dimostrare che se [ A[ `e nita e pari adn allora [ T(A) [ `e pari a2n: per questa ragione linsieme T(A) viene anche indicato con 2A.Esercizio1.1 DimostrarecheseA `euninsiemenito [ 2A[= 2|A|.Denizione1.2Due insiemiA eBsi diconouguali, e si scriveA = B, seogni elemento diA `e anche elemento diBe, viceversa, se ogni elemento diB`e anche elemento diA, cio`eA = B(A B B A).1.1.2 Principiodi InduzioneMatematicaNelcasoincuisidebbanodimostrarepropriet`arelativeadinsieminiti, inteoria si pu`o sempre pensare di vericare esaustivamente le propriet`a su tuttigli elementi, per quanto tale procedimento potrebbe risultare non praticabileperinsiemiaventinumerosielementi. Nelcasoincuisidebbanodimostrare1.1. INSIEMI,RELAZIONIEFUNZIONI 3propriet`a relative ad insiemi inniti, tale procedimento `e chiaramente non ac-cettabile, nemmeno in teoria: per questo motivo `e necessario utilizzare metodiadeguati a questo genere di insiemi.Un metodo particolarmente utile per dimostrare propriet`a dei numeri na-turali `e il principio di induzione matematica. Questo principio aerma quantosegue.Data una proposizione P(n) denita per un generico numeronaturalen, si ha che essa `e vera per tutti i naturali se P(0) `e vera (passo base dellinduzione);per ogni naturale k, P(k) vera(ipotesi induttiva) implicaP(k + 1) vera (passo induttivo).Esempio1.1Un classico esempio di dimostrazione per induzione matematica `e quel-lodellaformulache esprime il valore dellasommadei naturali nonsuperiori adnn

i=0i =n(n + 1)2.Questarelazione pu`oessere dimostrataper induzione osservandoche per quantoriguarda il passo base si ha che0

i=0i =0(0 + 1)2= 0,mentre per quanto riguarda il passo induttivo si hak+1

i=0i =k

i=0i + (k + 1) =k(k + 1)2+ (k + 1) =k2+ 3k + 22=(k + 1)(k + 2)2.Il che prova lasserto.Una versione pi` ugenerale del principio di induzione matematica aermaquanto segue.Data una proposizione P(n) denita per n n0 (con n0 intero nonnegativo) si ha che essa `e vera per tutti glin n0 se: P(n0) `e vera (passo base dellinduzione);per ogni naturale k n0, P(k) vera (ipotesi induttiva)implicaP(k + 1) vera (passo induttivo).4 CAPITOLO1. CONCETTIMATEMATICIDIBASECi`o `e giusticato dallosservazione che applicare la versione generalizzata alloscopo di dimostrare che P(n) `e vera per ogni n n0 `e equivalente a dimostrarechelaproposizionePn0(n) P(n n0) `everaperogninaturale. Applicaredunque la versione generalizzata, per un qualsiasi n0 0, equivale ad applicarequella originale modicando leggermente la proposizione Pqualora sia n0> 0.Ancheil metodosiaapplicatocorrettamente`enecessariocheil passoinduttivo sia valido per ogni valore dik n0.Esercizio1.2 Dimostrareperinduzioneche

n1i=02i= 2n1pern 1.Si noti che, applicandoinmodononcorrettoil principiodi induzionematematica,si pu`o erroneamente giungere alla conclusione che in un brancodi cavalli, tutti gli esemplari hanno il manto dello stesso colore. Si consideri ilseguente ragionamento:PassobaseNel caso di un solo cavallo il predicato `e senzaltro vero.PassoinduttivoSi consideri un qualunque insieme di n+1 cavalli; allontanando momen-taneamenteuncavallodatalebranco, diciamoilcavalloci, otteniamoun branco di n cavalli che,per ipotesi induttiva, `e costituito da cavallicon il manto di uno stesso colore. Se riportiamocinel branco, e suc-cessivamenteallontaniamocj ,=ciotteniamodinuovouninsiemedi ncavalli che, per ipotesi induttiva, `e costituito da cavalli con il manto diuno stesso colore. Dunqueciha coloreecjha colore. Poiche nelbranco ci sono n1 cavalli che non sono mai stati allontanati, e poiche ilmanto di questi non pu`o aver cambiato colore, ne segue necessariamenteche =e checi, cje gli altri n 1 cavalli hanno tutti il manto delmedesimo colore.Esercizio1.3 Cheerrore `estatocommessonellapplicazionedelprincipiodiinduzio-ne?Nel seguitoutilizzeremofrequentementedimostrazioni perinduzione. Sinoti che, in alcuni casi, si far`a uso di una formulazione del principio di induzio-ne pi` u forte di quella fornita precedentemente. Tale principio viene chiamatoprincipio di induzione completaed aerma quanto segue.Data una proposizione P(n) denita per un generico numeronaturalen n0 si ha che essa `e vera per tutti glin n0 se: P(n0) `e vera (passo base dellinduzione);perogninaturalek n0, P(i)veraperogni i, n0 i k(ipotesi induttiva), implicaP(k + 1) vera (passo induttivo).1.1. INSIEMI,RELAZIONIEFUNZIONI 5Esempio1.2Supponiamo di voler dimostrare la proposizione:Ogni interon 2 `e divisibile per un numero primo.Il passo base dellinduzione `e costituito dal fatto che lasserto `e vero pern = 2.Consideriamooraungenericonumerok >2. Sek`ecomposto, alloraesso`edivisibile per due interi k1 e k2 entrambi minori di k. Poich`e per ipotesi induttiva siak1chek2sono divisibili per un numero primo (ad esempiop1ep2, rispettivamente),ne segue che anchek`e divisibile perp1(e perp2). Se,al contrario, k`e un numeroprimo, allora esso `e divisibile per se stesso. Ne segue dunque che lasserto `e vericatoper ognin 2.In molte applicazioni il principio di induzione completa risulta pi` u comodo dautilizzare rispetto al principio di induzione matematica. Nellesempio abbiamoinfatti vistochelavalidit`adellapropriet`adi interesseperuninteroknonsembra potersi semplicemente inferire dalla sola validit`a della propriet`a per ilvalorek 1.Peraltro si pu`o osservare che il principio di induzione matematica implicail principio di induzione completa, e viceversa.Teorema1.1Per ogni pressata propriet`aPil principio di induzione mate-matica ed il principio di induzione completa sono equivalenti.Dimostrazione. Supponiamopersemplicit`achelabasedellinduzionesian0 = 0. Si osservi che i due principi possono essere rispettivamente formulatinel seguente modo:1. P(0) k

(P(k

) P(k

+ 1)) nP(n)2. P(0) k

(P(0) . . . P(k

) P(k

+ 1)) nP(n).Chiaramente, seP(0) `e falso o `e vero che nP(n), lequivalenza `e banalmentedimostrata.Se, al contrario, P(0) `e vera ed `e falso che nP(n) allora si deve dimostrarelequivalenza dei termini intermedi delle disgiunzioni. Chiaramente dal fattoche esistek

tale cheP(0) . . . P(k

) P(k

+ 1) sia vero si pu`o dedurreche esiste k

= k

che verica la congiunzione P(k

) P(k

+1). Viceversa sedisponiamo di k

che verica P(k

) P(k

+1) possiamo osservare che o P(i)`everaperogni i,0 i k

equindiintalcasok

=k

,oesisteunvalore0 k

< k

tale cheP(0) . . . P(k

) P(k

+ 1). 2Esercizio1.4 I numeri di Fibonacci sono deniti mediante le seguenti regole: F0 = 1,F1 = 1eFn = Fn1 +Fn2pern 2.Utilizzando il principio di induzione completa si dimostri che, per ogni n 2, datounqualsivogliainteropositivok, 1 k n,Fn = FkFnk +Fk1Fn(k+1).6 CAPITOLO1. CONCETTIMATEMATICIDIBASE1.1.3 RelazioniSiano dati due insiemiA eB.Denizione1.3Il prodottocartesianodi Ae B, denotatoconAB, `elinsiemeC = x, y) [ x A y B,cio`eC`ecostituito datuttelepossibilicoppie ordinateoveilprimoelementoappartiene adA ed il secondo aB1.Il prodottocartesianogodedellapropriet`aassociativa, mentrenongodediquella commutativa.Generalmente si usa la notazione Anper indicare il prodotto cartesiano diA con se stesso, ripetuton volte, cio`e per indicareA A.. .nvolteSi noti che seA = oB = alloraAB = .Denizione1.4Unarelazione n-aria R suA1, A2, . . . , An `e un sottoinsiemedel prodotto cartesianoA1AnR A1An.Il generico elemento di una relazione viene indicato con il simboloa1, a2, . . . , an) R,oppure con il simboloR(a1, . . . , an);n viene detto arit`adella relazioneR. Nel caso delle relazioni binarie (n = 2)si usa anche la notazionea1Ra2.Esempio1.3La relazione binaria minore di denita sui naturali, `e linsiemeR IN2denito daR = x, y) IN2[ z IN(z ,= 0 x +z = y).Esempio1.4La relazione quadrato di denita sui naturali `e linsiemeR IN2R = _x, y) [ x2= y_.Relazioni che godono di propriet`a particolarmente interessanti sono le cosid-dette relazioni dordine e le relazioni dequivalenza.1Quandoconsidereremounacoppiadi simboli, useremoleparentesi angolari selordineconcuisiconsideranoglielementi`esignicativo,lenormaliparentesitondeselordinenon`esignicativo. Cos`lecoppie a, be b, asonodistinte,mentrenonlosono(a, b)e(b, a)1.1. INSIEMI,RELAZIONIEFUNZIONI 7Denizione1.5Una relazioneR A2si dicerelazione dordine se per ognix, y, z A valgono le seguenti propriet`a1. x, x) R (riessivit`a),2. x, y) R y, x) Rx = y(antisimmetria),3. x, y) R y, z) R x, z) R (transitivit`a).Uninsieme Asucui `edenitaunarelazionedordinevienedettoinsiemeparzialmente ordinato.Denizione1.6Una relazione dordineR A2tale chea, b) A2aRb bRa,dove cio`e ogni elemento `e in relazione con ogni altro elemento, si dice relazionedi ordine totale.Esempio1.5La relazione `e una relazione dordine su IN. In questo caso lordi-namento `e totale in quanto per ogni x ed y si ha che x, y) R oppure che y, x) R,oppure valgono entrambe, nel qual caso si ha chex = y, per antisimmetria.Esercizio1.5 Dimostrarechelarelazionesu INnon `eunarelazionedordine.Denizione1.7UnarelazioneR A2si dice relazionedequivalenzase,per ognix, y, z A, valgono le seguenti propriet`a1. x, x) R (riessivit`a),2. x, y) Ry, x) R (simmetria),3. x, y) R y, z) Rx, z) R (transitivit`a).Esempio1.6Consideriamo linsieme delle coppie n, m) con n IN ed m IN+. LarelazioneE = _u, v), p, q)) [ uq = vp_`e una relazione dequivalenza.UninsiemeAsucui siadenitaunarelazionedequivalenzaRsi pu`opar-tizionareinsottoinsiemi, detti classi dequivalenza, ciascunodei quali `eunsottoinsiememassimalechecontienesoloelementitraloroequivalenti. DatiuninsiemeAedunarelazionedequivalenzaRsuA2, linsiemedelleclassidequivalenza di A rispetto a R `e detto insieme quoziente, e viene normalmen-te denotato conA/R. I suoi elementi vengono denotati con [a], dovea A `eun rappresentante della classe dequivalenza: [a] denota cio`e linsieme deglielementi equivalenti ada.8 CAPITOLO1. CONCETTIMATEMATICIDIBASEEsempio1.7Dato un intero k, deniamo la relazione k, detta congruenza modulok, su IN2nel seguente modo:nkm esistonoq, q

, r, con 0 r < k, tali che_n = qk +rm = q

k +rEssa `e una relazione dequivalenza e le sue classi dequivalenza sono dette classi restorispetto alla divisione perk.Denizione1.8Dataunarelazione dequivalenzaR A2,sidiceindice diR, e si denota conind(R), il numero di elementi diA/R.Esercizio1.6 Datouninterok,qual `elindicedellarelazione k?Di particolare interesse godono, in informatica, le relazioni rappresentabilimediante gra.Denizione1.9Dato un insieme nitoVed una relazione binariaE V V , la coppia V, E) si deniscegrafo orientato.Per visualizzare un grafo orientato si usa rappresentare gli elementi diVconpunti (detti nodi ) e le coppie i, j) diEcon frecce dai aj(dette archi ).Esempio1.8Sia dato linsiemeV= A, B, C, D. Consideriamo la relazioneE = A, B), A, C), A, D), B, C), C, D), B, B), B, A).Essa si pu`o rappresentare con il grafo orientato di Figura 1.1.ABCDFigura1.1 Esempio di relazione rappresentata mediante grafo orientato.Se la relazione E gode della propriet`a simmetrica il grafo pu`o essere rappresen-tato senza assegnare un orientamento agli archi. In tal caso la coppia V, E)si denisce grafo non orientatoo semplicemente grafo.1.1. INSIEMI,RELAZIONIEFUNZIONI 91.1.4 Operazioni trarelazioniLe operazioni che si possono denire per le relazioni non dieriscono molto daquelle note per insiemi generici. Ad esempio lunione `e denita daR1 R2 = x, y) [ x, y) R1 x, y) R2,mentre la complementazione `e denita daR = x, y) [ x, y) , R.Unoperazione che possiede caratteristiche interessanti `e la chiusura transitiva.Denizione1.10SiaR una relazione suA2; si deniscechiusura transitivadiR, denotata conR+, la relazioneR+= x, y) [ y1, . . . , yn A, conn 2, y1 = x, yn = y, tali cheyi, yi+1) R, i = 1, . . . , n 1.In alcuni casi `e interessante denire la chiusura transitiva e riessiva.Denizione1.11SiaR una relazione suA2; si deniscechiusura transitivae riessiva diR, denotata conR, la relazioneR= R+ x, x) [ x A.Esercizio1.7 SiadatoungrafoorientatoG = V, E)incui V `elinsiemedei nodiedE VV `elinsiemedegli archi orientati. DimostrarecheseR`elarelazionetalechexRyseesolosex=yoppure`epossibileraggiungereyapartiredaxpercorrendogliarchisecondoilloroorientamento,alloraR `elachiusuratransitivaeriessivadellarelazioneE.Esercizio1.8 DimostrarechedatouninsiemenitoV edunaqualsiasi relazionebinariasimmetricaEdenitasuV2,E`eunarelazionedequivalenza.Esercizio1.9 DatoungrafoorientatoG= V, E), cosarappresentanole classidequivalenzadelgrafoG = V, E)?1.1.5 FunzioniUn particolare tipo di relazioni sono le relazioni funzionali.Denizione1.12Si dice che RX1 . . . Xn(n2) `e una rela-zione funzionale tra una (n 1)-pla di elementi e ln-esimo elemento, sex1, . . . , xn1) X1. . .Xn1esisteal pi` uunelementoxn Xntaleche x1, . . . , xn) R.10 CAPITOLO1. CONCETTIMATEMATICIDIBASEIn tal caso si denisce funzione(o anche applicazione, o corrispondenzauni-voca)laleggecheallelemento x1, . . . , xn1) X1. . .Xn1associa, seesiste, quellunicoelementoxn Xntalechex1, . . . , xn R. Lanotazioneusata per indicare lesistenza di una relazione di tipo funzionale tra gli elementix1, . . . , xn `ef(x1, . . . , xn1) = xn.In tal caso diciamo che la funzione f ha arit`a n1. Per convenzione si ammettecheunafunzionepossaancheaverearit`a0. Intalmodounvalorecostanteapu`oessereconsideratocomeilrisultatodellaapplicazionediunafunzione0-aria: f() = a.La notazione generalmente usata per indicare tra quali insiemi viene rea-lizzatalacorrispondenza, cio`e per stabilire il ruolodegli insiemi ingioco`e:f: X1Xn1 Xn.LespressioneX1Xn1 Xnvienedettatipodellafunzionef2.Nel caso in cuiX1 ==Xn1 =Xn =Xil tipo della funzione pu`o essereindicato daXn1 X.Denizione1.13Dataunafunzionef: X1Xn1 Xn, linsiemeX1Xn1viene dettodominio della funzione, dom(f), e linsiemeXnviene dettocodominio, cod(f).Denizione1.14Dataunafunzionef: X1Xn1 Xnsichiamadominio di denizione della funzionef, e lo si indica con la notazione def (f),il sottoinsieme di dom(f) cos` denito:def (f) = x1, . . . , xn1) dom(f) [ xn cod(f)f(x1, . . . , xn1) = xnIl dominio di denizione di f `e cio`e linsieme di tutte le (n1)-ple x1, . . . , xn1per cuif(x1, . . . , xn1) `e denita.Denizione1.15Si denisceimmagine della funzionef,e lo si indica conla notazione imm(f), il sottoinsieme diXncos` denito:imm(f) = xn Xn[ x1, . . . , xn1) dom(f)f(x1, . . . , xn1) = xn.Limmagine dif`e quindi linsieme di tutti i valori assunti daf.Denizione1.16Dataunafunzionef econsideratoungenericoelementoxn cod(f) si dice controimmagine (o bra) di xn, e lo si indica con f1(xn),il seguente sottoinsieme del dominio diff1(xn) = x1, . . . xn1) [ x1, . . . xn1) def (f) f(x1, . . . xn1) = xn.2Si noti chefrequentemente, nellambitodei linguaggi di programmazione, pertipodiunafunzionesiintendeiltipodelvalorerestituitodaessa.1.1. INSIEMI,RELAZIONIEFUNZIONI 11Lacontroimmaginedi xn`ecio`elinsiemedi tuttele(n 1)-plepercui fassume valorexn.Si noti cheil dominiodi denizionedi unafunzionepu`oomenocoinci-dereconil dominio. Infatti, inmolti casi `enecessarioconsiderarefunzionicheperalcunivalorideldominiononsonodenite. Adesempiolafunzionef(x) = 1/ sin(x) ha come dominio linsieme IR ma come dominio di denizionelinsieme IRk [ k ZZ.Denizione1.17Una funzionef: X1. . . Xn1 Xn viene dettatotalesedef (f) = dom(f). Nelcasopi` ugeneraleincuidef (f) dom(f), fvienedetta funzioneparziale.Chiaramentetuttelefunzioni sonoparziali (ancheseci`ononvienesempreesplicitamente dichiarato) e le funzioni totali sono un caso particolare. Ana-logamente a quanto accade per il dominio di una funzione possiamo osservareche anche limmagine di una funzione pu`o coincidere o meno con il codominiorelativo.Denizione1.18Unafunzione f : X1 Xn1Xnviene dettasuriettiva seimm(f) = cod(f).Denizione1.19Unafunzionefsidiceiniettivaouno-ad-uno (1:1)sefacorrispondereadelementidiversidel dominiodidenizioneelementidiversidel codominio, come esplicitato di seguitox

1, . . . , x

n1_ X1 . . . Xn1, x

1, . . . , x

n1_ X1 . . . Xn1,x

1, . . . , x

n1) ,= x

1, . . . , x

n1_f(x

1, . . . , x

n1) ,= f(x

1, . . . , x

n1).Equivalentemente, possiamo anche notare che, in tal caso,f(x

1, . . . , x

n1) = f(x

1, . . . , x

n1)x

1, . . . , x

n1_ = x

1, . . . , x

n1_.Naturalmente la bra di ogni elemento dellimmagine di una funzione iniettivaha cardinalit`a unitaria.Denizione1.20Unafunzionesidicebiiettivaobiunivocase`eallostes-sotempoiniettiva, suriettivaetotale. Unafunzionebiiettivasi diceanchebiiezione.Esercizio1.10 Dimostrarecheesisteunabiiezionetralinsiemedei sottoinsiemi diuninsiemeSnitodicardinalit`a [ S[= nelesequenzebinariedilunghezzan.Unimportantepropriet`adellefunzioni iniettive`eespressadal seguenteteorema3.3IlnomeletteralmentesignicaPrincipiodellapiccionaiaesiriferisceallimpossibilit`acheduepiccioni occupinolastessacelladi unapiccionaia. Perquestoteorema, comedal-tronde accadr`a per altri teoremi nel corso del volume, manteniamo la dicitura inglese perchecontalediciturailprincipio`euniversalmentenotoecitato.12 CAPITOLO1. CONCETTIMATEMATICIDIBASETeorema1.2(PigeonholePrinciple)Dati dueinsiemi niti AeB, taliche0 2nonesisteunabiiezionetrale 2-partizioniele 3-partizionidiB.1.1. INSIEMI,RELAZIONIEFUNZIONI 13Esercizio1.12 Dimostrarecheinognigrafosemplice(privocio`ediarchimultiplifracoppie di nodi e di archi riessivi) esistono almeno due nodi con lo stesso grado (conlostessonumerodiarchiincidenti).1.1.6 Cardinalit`adi insiemi inniti enumerabilit`aAllinizio del Capitolo abbiamo introdotto informalmente la denizione di car-dinalit`a di un insieme innito (vedi Sezione 1.1.1). Al ne di poter estendereagli insiemi inniti il concetto di cardinalit`a si rende ora necessario denire inmodopi` uformaletaleconcetto,basandocisullapossibilit`adiconfrontarelanumerosit`a di due insiemi.Denizione1.21Dueinsiemi AeBsidiconoequinumerosi seesisteunabiiezione tra di essi.Esempio1.9Gli insiemiluned`, marted`, . . . , domenicae 5, 7, 31, 50, 64, 70, 75sono equinumerosi.Esercizio1.13 Dimostrarechelarelazionediequinumerosit`a `eunarelazionedequi-valenza.Primadiconsiderarecomeil concettodiequinumerosit`aci permettedidenire la cardinalit`a di insiemi inniti, osserviamo che, utilizzando tale con-cetto, `e possibile ridenire in modo formale la cardinalit`a di insiemi niti, nelseguente modo.Denizione1.22DatouninsiemenitoA, lasuacardinalit`a [ A [ `ecos`denita:[ A[=_0 seA = n seA `e equinumeroso a 0, 1, . . . , n 1, conn 1.Il concetto di cardinalit`a pu`o essere utilizzato per dare una denizione insiemi-stica del concetto di numero cardinale:il numero n pu`o infatti essere denitocome la classe dequivalenza di tutti gli insiemi equinumerosi a 0, . . . , n1.In particolare, il numero 0 `e la classe dequivalenza dellinsieme vuoto.Denizione1.23Uninsiemesi dicenumerabileseesso`eequinumerosoaIN.Denizione1.24Un insieme si dicecontabile se esso `e nito o numerabile.14 CAPITOLO1. CONCETTIMATEMATICIDIBASEMentre nel caso degli insiemi niti la cardinalit`a pu`o essere espressa appuntodal numero cardinale corrispondente, nel caso di insiemi inniti si fa general-mente uso di simboli aggiuntivi introdotti ad hoc. In particolare, per indicarela cardinalit`a degli insiemi inniti equinumerosi ad IN si utilizza il simbolo 0(aleph4zero)Inbase alle denizioni poste si pu`o facilmente dimostrare il seguenterisultato.Teorema1.3Se un insiemeA `e equinumeroso a un insiemeB, conB C,doveC`e un insieme contabile, allora ancheA `e contabile.Dimostrazione. La dimostrazione `e lasciata come esercizio al lettore (Eser-cizio 1.14). 2Esercizio1.14DimostrareilTeorema1.3.Esempio1.10LinsiemeZZ degli interi relativi risulta essere numerabile (cio`e [ ZZ[=0)poichei suoi elementi possonoessereposti incorrispondenzabiunivocaconINtramite la biiezionef: ZZ IN denita nel seguente modo:f(i) =_2i sei 02i 1 sei > 0.Il precedenteesempioci permettedi osservareunimportantecaratteristicadegli insiemi inniti. Infatti linsieme IN `e propriamente contenuto nellinsiemeZZ: ciononostante i due insiemi risultano equinumerosi. Si osservi che ci`o nonsi pu`overicarenel casodi insiemi niti comevistoinbaseal Pigeonholeprinciple.Esempio1.11Linsieme delle coppie di naturali IN2`e numerabile. La corrisponden-za biunivoca pu`o essere stabilita con la seguente biiezione, frequentemente chiamatafunzione coppia di Cantorp(i, j) =(i +j)(i +j + 1)2+i.Il metodo con cui la biiezione p pone in corrispondenza coppie di naturali con i naturali`e illustrato in Figura 1.2.Pi` u in generale `e possibile mostrare che, per ognin IN, seA `e contabile, ancheAnlo `e.5Il procedimentodi enumerazioneillustratoinFigura1.2fuoriginariamenteintrodotto da Cantor per mostrare la numerabilit`a dellinsieme Q dei numeri4Primaletteradellalfabetoebraico.5Lafunzionep(i, j)`efrequentementedenominatafunzionecoppiadiCantor.1.1. INSIEMI,RELAZIONIEFUNZIONI 150123450 1 2 3 4 50 1234567891011121314151617181920Figura1.2 Dimostrazione della numerabilit`a delle coppie di naturali.razionali. Atal nedobbiamoinnanzi tuttoricordarechei numeri razio-nali corrispondono alle classi dequivalenza della relazione binariaRdenitasullinsiemeZZ (ZZ+):R(a, b), c, d)) se e solo sead = bc.Per tale motivo, linsieme Q`e dunque equinumeroso allinsieme ZZ (ZZ+)/R. DaltrondepoicheZZ`econtabile, ancheZZ2lo`eecos` anchelin-siemeZZ (ZZ+)/R che `e equinumeroso ad un sottoinsieme proprio di ZZ2. Ci`oprovacheQ`econtabile. Si noti cheil procedimentodi Cantorpu`oessereulteriormente generalizzato per mostrare il seguente risultato.Teorema1.4Lunione di una quantit`a contabile di insiemi contabili `e ancoraun insieme contabile.Dimostrazione. Lenumerazione pu`o essere eettuata applicando ancora ilmetododiCantor,comesipu`ovedereinFigura1.3,dovesisupponechelarigai-esima contenga gli elementi delli-esimo insieme. 2Esercizio1.15 Si consideri linsiemedelleequazioni di gradointero, acoecientiinteri:a0 +a1x +a2x2+. . . +anxn= 0.Linsiemedei numeri algebrici reali`eperdenizionelinsiemedellesoluzioni reali ditaliequazioni. Dimostrarechetaleinsieme `enumerabile.16 CAPITOLO1. CONCETTIMATEMATICIDIBASEa01a02a03a04a11a12a13a21a22a23a31. . .. . .. . ....Figura1.3 Tecnica per enumerare gli elementi dellunione di una quantit`acontabile di insiemi contabili.1.1.7 Insiemi nonnumerabiliDopoaverintrodottoalcuni esempi di insiemi numerabili, `eutilemostrarelesistenza di insiemi non numerabili. A tal ne useremo una tecnica che sar`aripetutamente utilizzata in questo volume, la cosiddetta tecnica di diagonaliz-zazione, introdottadaCantorproprioperillustrarelanonnumerabilit`adeinumeri reali, ediusamenteutilizzataperprovarerisultati importanti nellateoria della calcolabilit`a.Data una lista di oggetti, la tecnica di diagonalizzazione consiste nel creareuncontroesempio, cio`eunoggettononappartenenteallalista, medianteunprocedimento che deliberatamente lo costruisce garantendo che esso sia diversoda tutti gli altri oggetti appartenenti alla lista;tale oggetto `e appunto dettooggetto diagonale.Intermini pi` uformali, dataunasequenza0, 1, . . ., doveciascuni`easuavoltaunasequenzadiinnitielementi ai0, ai1, . . . , ain, . . ., ladiagona-lizzazione consiste nel creare una sequenza diagonale che si dierenzia, percostruzione, daognii. Inparticolare, lelementoi-esimodisar`adiversodallelementoi-esimoaii di i.Teorema1.5Linsieme IR dei reali non `e numerabile.Dimostrazione. Innanzi tutto osserviamo che linsieme aperto (0, 1) e lin-sieme IR sono equinumerosi (una possibile biiezione `e 1/(2x+1), che ha dominioIR e codominio (0, 1)). Basta dunque mostrare che linsieme dei reali in (0, 1)non `e numerabile. A tal ne,consideriamo dapprima linsieme delle sequen-ze innite di cifre decimali che rappresentano la mantissa dei reali in (0, 1) e1.1. INSIEMI,RELAZIONIEFUNZIONI 17mostriamochetaleinsiemenon `enumerabile. Perfarlosisuppongaperas-surdo di aver trovato una qualsiasi corrispondenza tra i naturali e le sequenze:questa corrispondenza denirebbe una enumerazione i.Introduciamo ora la sequenza avente come i-esima cifra, per i =0, 1, 2, . . ., il valore ottenuto sommando 1( mod 10) alla i-esima cifra di i. Conriferimento, ad esempio, alla Figura 1.4 si ottiene = 124 . . ..Lasequenzavieneacostituireelementodiagonaledellenumerazione0, 1, . . . in quanto dierisce da ogni altra sequenza i nella posizionei.mantisse dei i0 1 2 3

0 0

1 0 0 1

2 2 1 3 ..................k

013Figura1.4 Costruzione per diagonalizzazione del numero reale 0.124 . . . nonappartenente allenumerazione.Inaltreparole, dopoaversuppostoperassurdodi poterenumeraretut-telerappresentazionidecimalidirealinellintervallo(0, 1),`estatopossibilecostruire per diagonalizzazione unulteriore rappresentazione che, seppure re-lativa ad un reale in (0, 1), non appartiene allenumerazione, il che contrastacon lipotesi che linsieme delle rappresentazioni dei reali sia numerabile.La non numerabilit`a dei reali in (0, 1) deriva da quanto detto ed osservan-doinoltrecheogninumerorealehaalpi` uduerappresentazionidistinte(adesempio, 0.01000 . . . e 0.00999 . . .) 2Unsecondoimportanteesempiodi insiemenonnumerabile `elinsiemedelleparti di IN, T(IN).Teorema1.6Linsieme delle parti di IN, T(IN), non `e numerabile.Dimostrazione. Supponiamoperassurdoche T(IN)sianumerabileesia18 CAPITOLO1. CONCETTIMATEMATICIDIBASEP0, P1, . . . una sua enumerazione. A ciascunPi, coni = 0, 1, 2, . . ., associamouna sequenzabi0,bi1,bi2, . . . , dovebij =_0 sej , Pi1 sej Pi.Costruiamo ora linsieme diagonale P. La sequenza associata a P`e p0, p1, . . .,dovepi=1 biiper i =0, 1, 2, . . .. LinsiemeP`eperfettamentedenitodallasequenzap0, p1, . . ., madieriscedaciascunodegli insiemi Pipoiche,per costruzione, i Pi ,Pi. Avendo dunque supposto che sia possibileenumerare gli elementi di T(IN), si `e riusciti a costruire un insieme P T(IN)che non fa parte della enumerazione, il che falsica tale ipotesi. 2Chiaramenteil risultatodi nonnumerabilit`aoratrovatononvalesoloperlinsiemedelleparti di IN, maper linsiemedelleparti di ogni insiemedicardinalit`a 0.1.1.8 Cardinalit`atransnitaNella sezione precedente abbiamo visto esempi di insiemi la cui cardinalit`a `esuperiore ad 0. Vediamo ora come possa essere caratterizzata la cardinalit`a ditali insiemi. A tal ne consideriamo innanzitutto la seguente classe di funzionia valore binario.Denizione1.25Si denisce funzione caratteristica fS(x) di uninsiemeS IN la funzione totalefS : IN 0, 1fS(x) =_1 sex S0 sex , S.(1.1)`E utile introdurre questa classe di funzioni perche ci`o consente di ricondurre ilproblema del riconoscimento di insiemi al problema del calcolo di una funzione.Si pu`o facilmente mostrare che anche linsieme delle funzioni caratteristichesuINnon`enumerabile. Perdimostrarlosi usa, al solito, il procedimentodiagonale.Teorema1.7Linsiemedellefunzioni caratteristiche f [ f:IN 0, 1non `e numerabile.Dimostrazione. Sisuppongaperassurdodiavereunacorrispondenzatralinsieme delle funzioni caratteristiche e i naturali, come in Figura 1.5. A par-tire dalle funzioni di questa enumerazione, si pu`o costruire una nuova funzione,denita come di seguito:f(i) = 1 fi(i).Questaf(i) assume ovviamente solo valori in 0, 1. La funzione cos` costrui-ta`eevidentementediversadatuttequelleenumerateperalmenounvaloredellargomento, il che dimostra lasserto. 21.1. INSIEMI,RELAZIONIEFUNZIONI 190 1 2 3 4 j f0 0 0 0 0 0 f0(j) f1 0 1 0 1 0 f1(j) f2 0 1 1 0 1f2(j) .....................fifi(0)fi(1)fi(2)fi(3)fi(4)fi(j) .....................Figura1.5 Enumerazione delle funzioni caratteristiche.Il risultato trovato `e,in eetti,ovvio,nel momento in cui si osserva che esi-steunacorrispondenzabiunivocanaturaletrasottoinsiemi di INefunzionicaratteristiche.ComeabbiamovistoinSezione1.1.1, datouninsiemenitoAdi cardi-nalit`an,linsieme T(A)hacardinalit`a2n. Peranalogia,datouninsiemeAnumerabile, e quindi di cardinalit`a 0, si dice che linsieme T(A) ha cardinalit`a20(o, con un leggero abuso di notazione, 2|IN|). Gli insiemi aventi cardinalit`a20vengonodettiinsiemicontinui . Losservazioneprecedentecircalacorri-spondenza tra linsieme T(IN) e linsieme f [ f: IN 0, 1 ci permettedi asserire che questultimo insieme `e un insieme continuo.Tale risultato pu`o essere in realt`a esteso a tutte le funzioni intere. Infattida un lato vale che:[ f [ f: IN IN[ [ f [ f: IN 0, 1[= 20.Daltra parte ogni funzione totale intera pu`o essere vista come un insieme dicoppie di interi, cio`e come un elemento di T(IN2), e poiche sappiamo che IN2`e equinumeroso a IN, `e chiaro che linsieme delle funzioni intere ha cardinalit`anon superiore a 20. Ne risulta che [ f [ f: IN IN[= 20.Si noti che il problema dellesistenza di un insieme avente cardinalit`a com-presa tra 0e 20(noto come problemadelcontinuo) `e tuttora un problemaaperto.6Raniamo ora il risultato del Teorema 1.5 dimostrando che linsiemedei reali ha cardinalit`a 20.6Sechiamiamo 1ilprimocardinaletransnitomaggioredi 0ilproblemadelcontinuosipu`oformularecomeilproblemadistabilirese 1= 20.20 CAPITOLO1. CONCETTIMATEMATICIDIBASETeorema1.8Linsieme IR dei reali `e un insieme continuo.Dimostrazione.`E suciente mostrare che tale propriet`a `e goduta dallin-siemedei reali compresi fra0e1, poiche, comeabbiamovisto, esisteunacorrispondenza biunivoca tra IR e linsieme dei reali in (0, 1) (vedi dimostra-zionedelTeorema1.5). Osserviamocheadognisottoinsiemedeinaturali `epossibile associare una unica stringa binaria che ne descrive la funzione carat-teristica e che tale stringa,a sua volta,pu`o essere vista come la mantissa diun unico reale in (0, 1). Daltro canto, come osservato nella dimostrazione delTeorema 1.5, ad ogni reale corrispondono al pi` u due diverse mantisse e quindidue diversi sottoinsiemi dei naturali. Ne deriva quindi che i reali in (0, 1) sonoalmenolamet`adei sottoinsiemi dei naturali enonpi` udi questi ultimi. Ilteorema `e dimostrato constatando che la presenza di un fattore moltiplicativonito non modica una cardinalit`a transnita. 2Per indicare la cardinalit`a degli insiemi inniti sono stati introdotti da Cantori cosiddetti cardinali transniti . 0e 20sono esempi di cardinali transniti.Cantor ha anche mostrato che esistono inniti cardinali transniti, in base allapropriet`a che se un insiemeA ha cardinalit`a transnita, linsieme T(A) hacardinalit`atransnita2. Talerisultato `ebasatosuunusodellatecnicadidiagonalizzazione estesa ai numeri transniti.Teorema1.9Linsiemedellefunzionireali f [f: IR IRhacardinalit`a220.Dimostrazione. Poiche ad ogni elemento dellinsiemeF= f [ f: IR IRsipu`oassociareunelementodi T(IR2)abbiamoche [ F [[ T(IR2) [. Daltraparte IR2`e equinumeroso a IR: infatti basta vericare, per quanto visto nelladimostrazione del Teorema 1.5, che [ (0, 1)[=[ (0, 1)2[. Ci`o `e sicuramente vero,se consideriamo la biiezione che associa ad ogni elementoa di (0, 1) la coppiadi (0, 1)2avente per mantisse le cifre ottenute estraendo le cifre dispari e pari,rispettivamente, della mantissa dia. Dunque[ F [[ T(IR2)[=[ T(IR)[= 220.Possiamo poi osservare che esiste una ovvia corrispondenza biunivoca fraT(IR) eF

= f [ f: IR 0, 1 F. Ne segue che [ F [[ F

[= 220.Da quanto visto, risulta che deve necessariamente essere [ F [= 220. 2In Tabella 1.2 sono riassunti vari risultati di cardinalit`a ottenuti su insiemi diinteresse.1.2. STRUTTUREALGEBRICHEELEMENTARI 21insiemi cardinalit`aIN,ZZ, Q, INn,ZZn, Qn0T(IN), f[ f: IN 0, 1, f[ f: IN IN, IR, IRn20T(IR), f[ f: IR 0, 1, f[ f: IR IR 220Tabella 1.2 Cardinalit`a di alcuni insiemi notevoli.Esercizio1.16 Determinarelacardinalit`adeiseguentiinsiemi:1. linsiemedellerelazionin-arie,pernqualunque,suuninsiemenitoA,2. linsiemedellerelazionin-arie,pernqualunque,sullinsiemedeinaturali,3. linsiemedellerelazionibinariesullinsiemedeireali.1.2 StrutturealgebricheelementariNel seguitodellatrattazioneavremonecessit`adi considerareinsiemi sucuisono denite operazioni aventi particolari propriet`a. Come si ricorda,un in-sieme chiuso rispetto a una o pi` u speciche operazioni `e generalmente denitoalgebra. Prima di tutto `e dunque utile richiamare denizioni e propriet`a dellestrutture algebriche cui si far`a riferimento nel seguito.1.2.1 Semigruppi, monoidi, gruppi, semianelliSupponiamodatouninsiemeuniversoU, cheperipotesi contienetutti glielementi degli insiemi cui faremo riferimento nel seguito.Denizione1.26Dato un insieme non vuotoS U, si denisceoperazionebinaria suSuna funzione : S S U.Denizione1.27UninsiemenonvuotoSsi dice chiusorispettoadunaoperazione binaria suSse imm() S.SeuninsiemeS`echiusorispettoa , neseguequindi cheapplicandotaleoperazione ad elementi diSsi ottengono ancora elementi dellinsieme stesso.Si consideri ora un insiemeSchiuso rispetto ad unoperazione binaria .22 CAPITOLO1. CONCETTIMATEMATICIDIBASEDenizione1.28Lacoppia S, ) vienedetta semigrupposeloperazionebinaria soddisfa la seguente propriet`a:xyz S (x (y z)) = (x y) z) (associativit`a).Se inoltre vale la seguente propriet`a:xy S (x y) = (y x) (commutativit`a)il semigruppo `e dettocommutativo.Esempio1.12Lacoppia IN, +),dove+ `elusualeoperazionedisomma, `eunse-migruppo commutativo, in quanto, chiaramente, loperazione di somma di naturali `eassociativa e commutativa.Denizione1.29La ternaS, , e) viene detta monoide se S, ) `e unsemigruppo, e see S`e tale che:x S (e x) = (x e) = xLelementoe viene dettoelemento neutro ounit`a del monoide. Se `e anchecommutativa, il monoide viene dettocommutativo.Esempio1.13Leterne IN, +, 0)e IN, , 1), dove+e sonoleusuali operazionidi sommaeprodotto, sonomonoidi commutativi. Infatti, oltreallepropriet`adiassociativit`a e commutativit`a della somma e del prodotto di naturali, si ha anche chex IN(x + 0) = (x 1) = x.Denizione1.30La ternaS, , e) viene detta gruppo seS, , e) `e unmonoide ed inoltre loperazione ammette inverso, cio`e sex S y S (x y) = (y x) = e.Lelementoyviene dettoinverso dix, e si denota comex1.Seil monoide S, , e)`ecommutativoil gruppovienedettocommutativo(oabeliano).Esempio1.14Le terne IN, +, 0) e IN, , 1) non sono gruppi, in quanto linsieme INnon `e chiuso rispetto allinverso di + e di . Al contrario, le terne ZZ, +, 0) e Q, , 1)sono gruppi abeliani.Esercizio1.17 Dimostrarechelaseguentedenizionedielementoinversox S y S (x y) = e,`eequivalenteaquelladata.Osserviamo ora che, se `e unoperazione associativa, allora ((x y) z) =(x(y z)) e potremo non considerare lordine di applicazione delloperazione,scrivendo semplicementex y z.1.2. STRUTTUREALGEBRICHEELEMENTARI 23Denizione1.31Dati un semigruppo S, ) e un insieme X S, si deniscechiusura diXlinsiemeXT= x S [ x1, . . . , xn) Xnx1 x2 xn = x, n 1.ValeadirecheXT`elinsiemedegli elementi di Schepossonoessereotte-nuti, applicando loperazione un numero arbitrario di volte, a partire daglielementi inX. Un importante caso particolare `e quandoXT= S.Denizione1.32Dati un semigruppoS, ) e un insieme X S, glielementi diXsi diconogeneratori diSseXT= S.Denizione1.33Dati uninsiemeSedunaoperazioneassociativa , de-niamosemigruppo libero sulla coppia S, ) il semigruppo S+, +), dove:1. S+`e linsieme di tutte le espressioni x = x1x2. . . xn, per ogni n 1,conx1, . . . , xn S;2. loperazione +`edenitanel modoseguente: se x=x1 . . . xney = y1 . . . yn, allorax+y = x1 . . . xn y1 . . . yn.Per semplicit`a, gli elementi di S+vengono usualmente denotati senza indicareil simbolo doperazione (pertanto, anzichex1 x2 x3 scriviamo ad esempiox1x2x3).SeestendiamoS+introducendounelementoaggiuntivo, dettoparolavuota, possiamo denire sullinsieme risultante S = S+ loperazione ,estensione di +, tale che, x, y S+xy = x+y e x S (x = x =x).La terna S, , ) `e allora un monoide e viene detto monoide libero.Esercizio1.18 Dataunasequenzadi trecaratteri, si considerinoleoperazioni dirotazione verso destra (d), di rotazione verso sinistra (s) e loperazione neutra (i) chenon opera alcuna rotazione. Dimostrare che la coppia d, s, i , ),, dove loperazione `e la composizione delle rotazioni, `e un gruppo commutativo. Dimostrare che d `e ungeneratoredelgruppo. Denireilmonoideliberoassociatoallacoppia d , ).Se consideriamo coppie di operazioni denite suSpossiamo individuarele seguenti strutture algebriche pi` u complesse.Denizione1.34La quintupla S, +, , 0, 1) `e dettasemianello se valgono leseguenti propriet` a: S, +, 0) `e un monoide commutativo; S, , 1) `e un monoide;loperazione gode della propriet`a distributiva rispetto alloperazione +,cio`e x, y, z S x (y +z) = (x y) + (x z);24 CAPITOLO1. CONCETTIMATEMATICIDIBASElo0`eunelementoassorbenteperil prodotto, cio`e x S (x 0)=(0 x) = 0.Il semianello `e dettocommutativo se loperazione `e anchessa commutativa.Esempio1.15Esempi di semianello sono le strutture algebriche seguenti:- T(S), , , , S), per ogni insiemeS,- Q, +, , 0, 1),- false, true, , , false, true) (detto semianello booleano).In tutti i casi si tratta di semianelli commutativi perche le operazioni di prodotto sonocommutative.Esercizio1.19 Dimostrare che la quintupla IN , min, +, , 0) `e un semianellocommutativo(siassumache x INx + = e min(x, ) = x).Tralestrutturealgebriche, lealgebredi Boolerivestonouninteresseparticolare in informatica.Denizione1.35Un algebra di Boole `e un semianello B, +, , 0, 1 ) con leseguenti propriet`a aggiuntive:0 ,= 1;per ogni x B esiste x1 B (inverso) tale che xx1= 0 e x+x1=1;per ognix B,x x = x.1.2.2 Congruenze, monoidequozienteegruppoquozienteIntroduciamo ora alcuni importanti concetti riguardanti relazioni tra glielementi di strutture algebriche.Denizione1.36Dato un semigruppoS, ), una congruenza`e unarelazione dequivalenza suSche soddisfa la seguente propriet`a:x, y S x yz S ((x z y z) (z x z y)).Esempio1.16NellEsempio 1.7 `e stata denita la relazione dequivalenza kdelleclassirestorispettoalladivisioneperk.`Efacileosservarechetalerelazione `eunacongruenza rispetto al semigruppo commutativo IN, +): infatti, sen km, abbiamoche l (n+l km+l) e, chiaramente, anche l +n kl +m. Viceversa, se l (n+l km+l) allora abbiamo, nel caso particolarel = 0,n km.Sinotichenelcasodisemigruppinoncommutativipossiamodenireanchecongruenze destre (sinistre), cio`e relazioni tali chex yz S(x z y z) (x yz S(z x = z y)).1.3. CARATTERISTICHEELEMENTARIDEILINGUAGGI 25Esempio1.17Dato un semigruppo S, ),una relazione dequivalenza denita nelmodo seguente,xRyz (x z = y z)`eunarelazionedi congruenzadestra. Infatti essa `echiaramenteunarelazionede-quivalenza, ed inoltre, poichexRyx z =y zper ogni z, abbiamo chexRy z (xz)R(yz). Daltra parte, se z (xz)R(yz) allora zz

(xzz

= yzz

)e quindi, assumendou = z z

abbiamo u (x u = y u) che per denizione implicaxRy.Dati un semigruppo S, ) e una congruenza C su S, denotiamo con SmodCoS/Clinsiemedelleclassi dequivalenzadellacongruenza. Sia[x] laclassedequivalenza dellelementox S: se deniamo [x] [y] = [x y], la strutturaS/C, ) `e un semigruppo, ed `e chiamato semigruppo quoziente. Inoltre, datoil monoide S, , 1), lastruttura S/C, , [1])`echiamatamonoidequoziente.Dato il gruppo S, , 1), se deniamo [x]1= [x1], abbiamo che la strutturaS/C, , 1) `e un gruppo, detto gruppo quoziente. Il numero di elementi di unastrutturaalgebrica(semigruppo, monoide, gruppo)ottenutacomestrutturaquoziente, viene chiamato indicedella struttura.Esempio1.18Consideriamoadesempioilsemigruppo ZZ, +)elacongruenza k(conk 2). Allora, per ogni x ZZ, la classe di equivalenza [x] `e data dallinsiemey ZZ [ i ZZ (x y)=ikdegli interi chedierisconodaxperunmultiplodi k. Il relativosemigruppoquoziente(ineetti ungruppoquoziente)`ecostituitodallinsiemeZZkdegli interi positivi minori o uguali ake dalloperazione + denitamodulok, come x, y, z ZZk(x +y) = zx +y = z ik, k ZZ.Esercizio1.20 Si consideri il gruppodei razionali Q, +, 0). Dimostrarechelare-lazioneaRba b ZZ`eunacongruenza. Denireinoltreil gruppoquozienteemostrarecheilsuoindicenon `enito.1.3 CaratteristicheelementarideilinguaggiFra le strutture matematiche utilizzate nellambito dellinformatica, i linguag-gi formali svolgonounruoloparticolarmenteimportante. Inquestasezioneintroduciamo alcuni concetti relativi ai linguaggi ed alle principali operazioniche nel seguito avremo occasione di utilizzare.1.3.1 Alfabeto, stringa, linguaggioDeniamo innanzitutto i concetti pi` u elementari di alfabeto e stringa.Denizione1.37Un insieme nito non vuoto di simboli (detti caratteri)prende il nome di alfabeto.26 CAPITOLO1. CONCETTIMATEMATICIDIBASEEsempio1.19Ad esempio 0, 1 `e lalfabeto binario, mentreA, . . . , Z, a, . . . , z, +, , , /, , ., :, ; , =,

, , ), (, ], [, 0, 1, . . . , 9oltre ai simboli spazio, virgola, parentesi graa aperta e parentesi graa chiusa,costituisce lalfabeto utilizzato nel linguaggio di programmazione Pascal.Se consideriamoi caratteri di unalfabetocome i generatori di unse-migruppo, possiamofareriferimentoal monoideliberocorrispondente(vediDenizione 1.33).Denizione1.38Dato un alfabeto , denotiamo come , , ) il monoidelibero denito su . Tale monoide `e chiamato anchemonoide sintattico. Glielementi di vengonodetti paroleo stringhe. Lelementovienedettoparola vuota. Loperazione : denita sul monoide `e chiamataconcatenazione e consiste nel giustapporre due parole di :xi1 . . . xin yj1 . . . yjm = xi1 . . . xinyj1 . . . yjm,conxi1, . . . , xin, yj1, . . . , yjm .Datounalfabetoedilmonoidesintatticodenitosudiessovalenatural-mente la propriet`a:x x = x = x.La concatenazione di due stringhe x e y `e frequentemente indicata omettendoil simbolo , cio`e scrivendoxy anzichex y.Conlanotazione [ x [indichiamolalunghezzadiunaparolax, ovveroilnumerodi caratteri chelacostituiscono. Chiaramente [ [=0. Si osserviinoltre che la concatenazione non gode della propriet`a commutativa e quindiin generale:x y ,= y x.Un caso particolare di concatenazione `e quello in cui la stringa viene con-catenata con se stessa: conxhsi denota la concatenazione dix con se stessaiteratah volte. Per convenzione conx0si intende la stringa vuota.Normalmente si rappresentano per convenzione i caratteri di con le primelettereminuscoledellalfabetolatinoeleparoledi conleultimelettere,sempre minuscole, dellalfabeto latino.Denizione1.39Dato un alfabeto , si deniscelinguaggio un qualsivogliasottoinsieme di .Si noti che poiche , un alfabeto `e a sua volta un linguaggio.Denizione1.40Si chiama linguaggio vuoto, e lo si indica con , illinguaggio che non contiene stringa alcuna.1.3. CARATTERISTICHEELEMENTARIDEILINGUAGGI 27Si noti che ,= .Esempio1.20Datolalfabeto a, b, linsieme anbn[ n 1`eil linguaggiocomposto da tutte le stringhe costituite dalla concatenazione di un certo numero dia, seguita dalla concatenazione dello stesso numero dib.Dataunastringax,risulter`ainteressanteconsiderarelastringaottenutain-vertendolordinedei caratteri di x. Pi` uformalmente, abbiamolaseguentedenizione.Denizione1.41Data una stringax, chiamiamoinversa (oriessa) dix lastringa x denita nel seguente modo: x =_x sex = ox = aa y sex = yaper ognia .Inne, dato un alfabeto , deniamo linsieme delle stringhe palindrome su come x[ x = x.1.3.2 Operazioni sulinguaggiDati due linguaggi L1 ed L2 si possono denire su essi varie operazioni: in par-ticolareintrodurremoinquestasezioneleoperazioni binariedi intersezione,unione e concatenazione (o prodotto), nonche quelle unarie di complementa-zioneediterazione. Intersezione, unioneecomplementazionesononormalioperazioni su insiemi, mentre concatenazione ed iterazione sono denite sullabase della struttura algebrica del monoide , , ).Denizione1.42L intersezione di due linguaggi L1 e L2 `e il linguaggio L1L2costituito dalle parole diL1e diL2, cio`eL1L2 = x [ x L1x L2.Denizione1.43L unione di due linguaggiL1eL2`e il linguaggioL1 L2costituito dalle parole appartenenti ad almeno uno fra L1 ed L2, cio`e L1L2 =x [ x L1 x L2.Si noti cheL1 = eL1 = L1.Denizione1.44Il complementodiunlinguaggioL1`eil linguaggioL1= L1costituitodalleparoleappartenentiamanonadL1, cio`eL1=x [ x , L1.Denizione1.45La concatenazione (o prodotto) di due linguaggi L1 e L2 `eil linguaggio L1L27delle parole costituite dalla concatenazione di una stringadiL1e di una stringa diL2, cio`eL1 L2 = x [ y1 L1 y2 L2(x = y1 y2) .7Siosserviche,ancheseperindicarelaconcatenazionetrastringheetralinguaggivieneadottatolostessosimbolo, ledueoperazionisonocomunquediversee, peraltro, ilcontestoconsentedievitareogniambiguit` a.28 CAPITOLO1. CONCETTIMATEMATICIDIBASESi noti cheL = L = L, e cheL = L = .Esempio1.21DatiL1 = an[ n 1 eL2 = bm[ m 1,L1 L2 = anbm[ n, m 1.Esempio1.22Dati L1=astro, fisio ed L2=logia, nomia, abbiamoche L1 L2`e costituitodalle stringhe astrologia, astronomia, fisiologiaefisionomia.Esercizio1.21 DimostrarechelaquintuplaT(), , , , )`eunsemianellononcommutativo.Ilconcettodipotenzaintesocomeiterazionedellaconcatenazionevieneesteso ai linguaggi mediante la seguente denizione.Denizione1.46LapotenzaLhdi un linguaggio `e denita comeLh= L Lh1, h 1con la convenzione secondo cuiL0= .Si noti che, in base alla suddetta convenzione, 0= . Con questa denizio-ne, linsieme delle stringhe di lunghezzah sullalfabeto si pu`o indicare conh.Denizione1.47Il linguaggioLdenito daL =_h=0Lhprende il nome dichiusura riessiva del linguaggio L rispetto alloperazione diconcatenazione,mentreloperatore prendeil nomedi iterazioneostelladi Kleene.Si noti che, dato un qualunque linguaggioL, L, e che = .Esempio1.23SeL = aa, alloraL = a2n[ n 0.Esempio1.24Dati i linguaggiL1 = bis edL2 = nonno, il linguaggioL1 L2contiene le stringhenonno,bisnonno,bisbisnonno, . . . .Denizione1.48Si indica conL+lachiusura (non riessiva) denita daL+=_h=1LhRisulta ovviamenteL = L+ .Esempio1.25SeL = aa, alloraL+= a2n[ n 1.Si noti cheleDenizioni 1.47e1.48sonocoerenti conquantospecicatonella Denizione 1.38. In particolare si noti che pu`o essere ottenuto comechiusura riessiva del linguaggio .1.3. CARATTERISTICHEELEMENTARIDEILINGUAGGI 291.3.3 Espressioni regolariLe considerazioni nora svolte relativamente ai linguaggi sono state eettuatesenzafornirealcunostrumentospecicodi descrizionedei linguaggi stessi.Nel seguito introdurremo vari formalismi per la rappresentazione di linguaggi:nella presente sezione introduciamo un primo strumento, di natura algebrica,che verr`a frequentemente utilizzato a tale scopo. Tale strumento `e costituitodalle cosiddette espressioniregolari e consente di descrivere tutti i linguaggiappartenenti a unimportante classe.Denizione1.49Dato un alfabeto e dato linsieme di simboli+,, (, ), , si denisceespressione regolare sullalfabeto una stringar ( +, , (, ), ., )+tale che valga una delle seguenti condizioni:1. r = 2. r 3. r = (s +t), oppurer = (st), oppurer = s, doves et sono espressioniregolari sullalfabeto .Comesi `edetto,leespressioniregolariconsentonodirappresentarelinguag-gi medianteunaopportunainterpretazionedei simboli chelecompongono.Nella Tabella 1.3 si mostra la corrispondenza tra unespressione regolare e illinguaggio che essa rappresenta. Per convenzione, se s e t sono due espressioniEspr. regolari Linguaggi a a(s +t) L(s) L(t)(st) L(s) L(t)s(L(s) )Tabella1.3Espressioni regolari ecorrispondenti linguaggi. L(r) denotaillinguaggio rappresentato dallespressione regolarer.regolari, al posto di (st) si pu`o scrivere (st). Inoltre, assumendo che il sim-bolo abbia precedenza sul simboloe questo abbia precedenza sul simbolo+, etenendocontodellassociativit`adi questeoperazioni, si possonospessoeliminare alcune parentesi.30 CAPITOLO1. CONCETTIMATEMATICIDIBASEEsempio1.26Lespressioneregolare_a + _b(cd)__denitasullalfabeto=a, b, c, d pu`o essere sostituita daa +bcd.Vadettocheancheperleespressioni regolari si pu`ointrodurrelapotenza,scrivendo ad esempio (r)3per indicare lespressione regolarerrr e la chiusura(nonriessiva) scrivendo(r)+per indicare r(r), dove r`eunaqualunqueespressione regolare.8Si noti che per rappresentare la stringa vuota pu`o essereutile a volte usare il simbolo nelle espressioni regolari, con lo scopo di indicareil linguaggio . Tuttavia ci`o non `e formalmente necessario in quanto, per lepropriet`a viste, abbiamo che il linguaggio rappresentato da `e esattamente.Esempio1.27Lespressione regolare (a +b)a rappresenta il linguaggioL((a +b)a) = L__a +b__ L(a)= _L(a +b)_ L(a)= _L(a) L(b)_ a= _a b_ a= a, b a= x [ x a, b+, x termina cona.Esempio1.28Postoc= 0, 1, . . . , 9, lespressioneregolarecherappresentai nu-meri reali nella forma ci1ci2. . . cin.cf1cf2. . . cfm (dove cij rappresenta la j-esima cifraprima del punto decimale, ecfklak-esima cifra dopo il punto decimale) `e_(1 + 2 +. . . + 9)(0 + 1 +. . . + 9) + 0_.(0 + 1 +. . . + 9)+.Nei capitoli seguenti si vedr`a che i linguaggi rappresentabili mediante espres-sioni regolari appartengonoadunaclassemoltoparticolare, dettaappuntoclassedeilinguaggiregolari , chegodedimoltepropriet`anotevoli, fracuilachiusura rispetto alle cinque operazioni denite allinizio della Sezione 1.3.2.Esercizio1.22 Determinarelespressioneregolareche, sullalfabeto a, b, deniscelinsiemedellestringheilcuiterzultimocarattere `eunab.Esercizio1.23Determinare il linguaggio denito dallespressione regolare a_(aa)b+(bb)a_b.Esercizio1.24 Sia data la mappa stradale (con tratti stradali a senso unico econtrassegnatidacaratteridellalfabeto)schematicamenteindicatainFigura1.6.Fornireunespressioneregolarechedeniscatutti i percorsi, anchepassanti pi` uvolteperunostessonodo,traAeB.8Tuttaviataliarricchimentinonaccrescono,come `eevidente,lapotenzadescrittivadelleespressioniregolari,masololalorosinteticit` a.1.3. CARATTERISTICHEELEMENTARIDEILINGUAGGI 31A Ba dfegcbFigura1.6 Mappa stradale (relativa allEsercizio 1.24).1.3.4 Cardinalit`adei linguaggiTrai problemi pi` ubasilari chedebbonoesserearontati nellinformaticavi`equellodi riconoscereseunastringaappartengaomenoadundetermina-to linguaggio, opportunamente denito. Ad esempio, quando un compilatoreanalizza un programma in linguaggio C o Pascal deve vericare che tale pro-gramma sia sintatticamente corretto, o, in altri termini, che la stringa costitui-ta dal programma stesso appartenga al linguaggio dei programmi C o Pascalsintatticamente corretti. Ebbene, il problema di riconoscere lappartenenza diuna stringa ad un linguaggio non pu`o essere sempre risolto mediante un algo-ritmo. Infatti, iconcettidenitiprecedentementecipermettonodivalutarelacardinalit`adellinsiemedi tutti i linguaggi deniti suundatoalfabeto, edi osservare,in modo intuitivo,lesistenza di linguaggi per i quali non esistealcun algoritmo di riconoscimento.Denizione1.50Datounalfabeto=a1, . . . , an, si denisce ordina-mento lessicograco delle stringhe di lordinamento< ottenuto stabilendoun(qualunque)ordinamentotrai caratteri di(conveniamo, senzaperditaalcunadi generalit` a, di modicarelanumerazionedei caratteri inmododaassicurare chea1< a2< . . . < an) e denendo lordinamento di due stringhex, y in modo tale chex 0) (n n0) (g(n) cf(n)) .1.4. NOTAZIONEASINTOTICA 33Se una funzione g(n) `e tale che g(n) O(f(n)) si ha quindi che asintoticamen-te, per valori sucientemente grandi, la funzione assume valori non superioria quelli assunti dalla funzione f(n), a meno di una costante moltiplicativa pre-ssata. In tal caso diciamo cheg(n) cresce alpi` ucomef(n). Con un abusodi notazione scriveremo ancheg(n) = O(f(n)).Denizione1.52Dataunafunzione f : ININ, lanotazione (f(n))denota linsieme delle funzioni:g [ (c > 0) (n0> 0) (n n0) (g(n) cf(n)) .Seg(n) (f(n)) si dice cheg(n) cresce almenocomef(n). Con un abusodi notazione si scrive ancheg(n) = (f(n)).Denizione1.53Dataunafunzione f : ININ, lanotazione(f(n))denota linsieme delle funzioni:g [ (c1> 0) (c2 c1) (n0> 0) (n n0)(c1f(n) g(n) c2f(n)) .Se g(n) (f(n)) si dice che g(n) e f(n) crescono nello stesso modo. Con unabuso di notazione si scrive ancheg(n) = (f(n)).Denizione1.54Date due funzionef, g : IN IN, con la notazioneg(n) =o(f(n)) indichiamo che:limng(n)f(n)= 0.Seg(n) = o(f(n)) diciamo cheg(n) `e un innitesimo rispetto af(n) o, equi-valentemente, chef(n) `e un innito rispetto ag(n). La stessa relazione pu`oessere espressa mediante la notazionef(n) = (g(n)).Valgono ovviamente le seguenti propriet`a:f(n) = O(g(n))g(n) = (f(n))f(n) = (g(n))g(n) = (f(n))f(n) = (g(n))_f(n) = O((g(n))__f(n) = (g(n))_.Come vedremo,la notazione asintotica viene utilizzata in particolare perrappresentareilcostodiesecuzionedeglialgoritmielacomplessit`adeipro-blemi. Nel seguito utilizzeremo tale notazione ancor prima di denire formal-menteil concettodi complessit`acomputazionale, perindicareil numerodipassi eseguiti daunalgoritmoedesprimerequindi, ancheinformalmente, ilsuocostodiesecuzione. Neldire,adesempio,cheunalgoritmohauncostoO(n2) per una stringa in input di n caratteri, intenderemo dire che esiste unaopportuna costante c tale che, per ogni n sucientemente grande, il numero di34 CAPITOLO1. CONCETTIMATEMATICIDIBASEpassi eseguiti dallalgoritmo su ogni stringa di lunghezzan `e minore o egualeacn2.Esercizio1.25 Esprimereconlenotazioni O, , eolandamentoasintoticodelleseguentifunzioni:f(n) = 3n2+ 2 log ng(n) = 2n + 5n4/3nCapitolo2LinguaggiformaliTrai concetti principali allabasedellinformatica, il concettodi linguaggiorivesteunruoloparticolarmenteimportante. Anchesedaunpuntodi vi-stamatematicounlinguaggio `esemplicementeuninsiemedistringhesuundatoalfabeto, nellambitodellinformaticasiamointeressati alinguaggi, ge-neralmente inniti,le cui stringhe sono caratterizzate da qualche particolarepropriet`a: adesempio, il linguaggiodei programmi C`ecostituitodatut-telestringhechesoddisfanolapropriet`adi poter essereanalizzatedauncompilatore C senza che venga rilevato alcun errore sintattico.Lostudioformaledei linguaggi `eunaparteimportantedellinformaticateoricaetrovaapplicazioneinvariedirezioni. Laprima,pi` uevidente, `eap-puntolostudiodellepropriet`asintattichedei programmi, cio`elostudiodeimetodi di denizionedellasintassi di unlinguaggiodi programmazione, deimetodi per la verica che un programma soddis le propriet`a sintattiche vo-lute e dei metodi di traduzione da un linguaggio ad un altro (tipicamente daun linguaggio di programmazione ad alto livello al linguaggio di macchina).Inoltre, al di l`adi questaimportanteapplicazione, lafamiliarit`aconiconcetti di generazione e riconoscimento di linguaggi `e importante in quantostringhe di caratteri aventi struttura particolare vengono frequentemente uti-lizzate, in informatica, per rappresentare vari aspetti relativi allelaborazionedidati,comead esempiosequenzedi operazionieseguite daunprogramma,sequenze di passi elementari eseguiti da una macchina, protocolli di comuni-cazione, sequenze di azioni eseguite nellinterazione con uninterfaccia utente,ecc.Inne, `eimportantetenerepresenteche,nellaformulazionedeiproblemitrattati mediante metodi algoritmici (come il calcolo di funzioni, la risoluzionedi problemi di ottimizzazione, ecc.)ci si riconduce frequentemente al problemastandard di decidere lappartenenza di una stringa ad un dato linguaggio: adesempio, anziche porsi il problema di calcolare una funzionef: IN IN, ci si36 CAPITOLO2. LINGUAGGIFORMALIpu`o porre il problema di riconoscere il linguaggio anbf(n)[ n 0.Ladenizionedi linguaggi si pu`oeettuaremediantestrumenti diversi.Un primo esempio di strumento formale per la denizione di linguaggi sono leespressioni regolari, gi`a incontrate in Sezione 1.3.3. Come vedremo in seguito,tuttavia, le espressioni regolari consentono di denire linguaggi di tipo partico-lare, con una struttura piuttosto semplice, e non sono idonee a rappresentarelinguaggi pi` u complessi, come ad esempio i linguaggi di programmazione.Un approccio alternativo `e il cosiddetto approccio generativo, dove si uti-lizzano opportuni strumenti formali, le grammatiche formali appunto, che con-sentono di costruire le stringhe di un linguaggio tramite un insieme pressatodi regole, dette regole di produzione.Altroapprocciodi interesse, inne, `equelloriconoscitivo, checonsistenellutilizzaremacchineastratte, detteautomi riconoscitori , chedenisconoalgoritmi di riconoscimento dei linguaggi stessi, vale a dire algoritmi che perun dato linguaggioL stabiliscono se una stringax appartiene aLo meno.2.1 GrammatichediChomskyIn generale, con il termine di grammatica si intende un formalismo che permet-te di denire un insieme di stringhe mediante limposizione di un particolaremetodo per la loro costruzione. Tale costruzione si eettua partendo da unastringaparticolareeriscrivendoviaviaparti di essasecondounaqualcheregola specicata nella grammatica stessa.Legrammaticheformali presentateinquestocapitolosonodenominateGrammatiche di Chomsky perche furono introdotte appunto dal linguistaNoamChomskyconloscopodi rappresentarei procedimenti sintattici ele-mentari che sono alla base della costruzione di frasi della lingua inglese. Puressendosi presto rivelate uno strumento inadeguato per lo studio del linguag-gio naturale, le grammatiche formali hanno un ruolo fondamentale nello studiodelle propriet`a sintattiche dei programmi e dei linguaggi di programmazione.Vediamo ora, in modo pi` u preciso, cos`e una grammatica formale e comesi caratterizzano le stringhe da essa generate.Denizione2.1Unagrammatica formale (`e una quadrupla( = VT, VN, P, S)in cui1. VT`e un insieme nito e non vuoto di simboli dettoalfabeto terminale,i cui elementi sono detti caratteri terminali, oterminali;2. VN`e un insieme nito e non vuoto di simboli, dettoalfabeto non termi-nale i cui elementi sono detti caratteri non terminali (onon terminali,ovariabili, ocategorie sintattiche);2.1. GRAMMATICHEDICHOMSKY 373. P`e una relazione binaria di cardinalit`a nita su(VT VN) VN (VT VN) (VT VN).P`e detta insieme delleregole di produzione (odelle produzioni, o delleregolesintattiche). Unacoppia , ) P,siindicageneralmenteconla notazione ;4. S VN`e dettoassioma ed `e il simbolo non terminale di inizio, ossia lacategoria sintattica pi` u generale.Si noti la presenza di almeno un carattere non terminale nel membro sinistrodi ogni produzione: le produzioni di una grammatica rappresentano le regolemediantelequaliunastringanoncompostatuttadicaratteriterminalipu`oveniretrasformata(riscritta)inunaltra. Illinguaggiogeneratodallagram-matica`elinsiemedellestringhecostituitedasoli terminali ai quali si pu`opervenirepartendodallassiomaeapplicandounasequenza, arbitrariamentelunga, di passi di riscrittura.Esempio2.1Siconsiderilagrammatica (= a, b, S, B, C, P, S), lecuiregoledi produzione sono1. S aS2. S B3. B bB4. B bC5. C cC6. C c.Con questa grammatica si possono generare le stringhe del linguaggioL(() = anbmch[ n 0, m, h 1.Ad esempio, per generare la stringaaabccc si deve applicare prima due volte la rego-la 1, poi la regola 2, poi la regola 4, poi due volte la regola 5 ed inne la regola 6. Sinoti che per generare la stringa non `e stata mai usata la regola 3.Normalmenteuninsiemedi produzioni aventi stessapartesinistra, del tipocio`e 1 2. . . n,viene convenzionalmente indicato, in maniera pi` u compatta, con la notazione 1 [ 2 [ . . . [ n.38 CAPITOLO2. LINGUAGGIFORMALIInoltre, lunioneVT VNvieneindicataconV . Ancoraperconvenzione, siusanolemaiuscoledellalfabetolatinoperdenotareicaratteridi VN,lemi-nuscole iniziali dellalfabeto latino per denotare i caratteri di VT, le minuscolenali per denotare stringhe di VTe le minuscole dellalfabeto greco per indicarestringhe diV.Denizione2.2Una regola del tipo , dove V VN V, prendeil nome di -produzione o-regola.Laderivazione`eil passoformaledi basecheconsentedi generarestringheutilizzando una grammatica.Denizione2.3Sia data una grammatica ( = VT, VN, P, S). Laderivazio-ne diretta (rispetto a () `e una relazione su (VVNV) V, rappresentataconil simbolo=Gecos` denita: lacoppia , ) appartieneallarelazio-ne, escriviamo=G(derivadirettamentedatramite ()seesistono V VN Ve, , Vtali che = , = e P.Denizione2.4Data una grammatica(, una derivazione (in() `e unasequenza di stringhe1, . . . , n Vtali che i 1, . . . , n 1i=Gi+1.Larelazionediderivabilit`a(rispettoa () `elachiusuratransitivaeriessivadella derivazione diretta: essa si rappresenta con la notazione=G. Si osserviche scrivendo =G esprimiamo lesistenza di (almeno) una derivazione da a.Denizione2.5Dataunagrammatica (,sidenisceforma di frase(in ()una qualunque stringa Vtale cheS=G.Denizione2.6Il linguaggio generato da una grammatica (`e linsiemeL(() =_x [ x VT S=Gx_.Il linguaggiogeneratodaunagrammaticaformale`edunqueuninsiemedistringhedi caratteri terminali, ognunadellequali si pu`oottenereapartiredallassioma mediante lapplicazione di un numero nito di passi di derivazionediretta. Equivalentemente, possiamodenireil linguaggiogeneratodaunagrammatica come linsieme di tutte e sole le forme di frase composte da solisimboli terminali.Quandorisulter`achiarodal contestoaquale grammaticaci riferiamo,anziche =Go=Gscriveremo semplicemente = o=.2.1. GRAMMATICHEDICHOMSKY 39`Ebenenotarechetalvoltasi scrivei=perindicarechelastringa`eottenibiledamediantelapplicazionedi i(omeno)passi di produzionediretta.Esempio2.2Si supponga di voler generare il linguaggioL = anbncn[ n 1.Atal ne si pu`o utilizzare una grammatica( in cui VT=a, b, c e VN=S, B, C, F, G e le regole diPsono le seguenti:S aSBCCB BCSB bFFB bFFC cGGC cGG .Per generare la stringaaabbcc si pu`o procedere come segue:S = aSBC= aaSBCBC= aaSBBCC= aabFBCC= aabbFCC= aabbcGC= aabbccG= aabbcc.Ci`o mostra cheS=aabbcc, ed in particolare cheSi=aabbcc per ognii 8.Come`efacileosservare, non`everocheogni sequenzadi derivazioni diretteconduce prima o poi ad una stringa del linguaggio generato dalla grammatica.Esempio2.3Sesi consideralagrammaticadellEsempio2.2, `efaciletrovareunasequenzadi produzioni chegeneraunastringaincui sonopresenti anchedei nonterminali ed alla quale non possono essere applicate ulteriori produzioni. Ad esempio,S = aSBC= aaSBCBC= aabFCBC= aabcGBC= aabcBC.40 CAPITOLO2. LINGUAGGIFORMALIPer lo stesso motivo possono esistere grammatiche che generano il linguaggiovuoto, che cio`e non generano alcuna stringa diVT.Esempio2.4La grammatica ( = a, b, S, A, P, S) con produzioniPS AbA Sagenera il linguaggio vuoto .Si osservi che tutti gli enunciati del tipo la grammatica (genera il linguag-gioL(doveLvienedescrittotramiteunapropriet`acaratteristica)spessointrodotti inquestovolumedovrebberoessere, almenoinlineadi principio,formalmentedimostrati provandochelagrammaticageneratutteesoleleparole del linguaggio.Esempio2.5Data la grammatica ( = a, b, c, S, A, P, S) con produzioniPS aSc [ AA bAc [ ,dimostriamo che (genera il linguaggioL = _anbmcn+m[ n, m 0_.Proviamo dapprima che L(() L. A tale scopo `e immediato vericare che tuttele forme di frase costruite da (sono del tipo akSck,k 0, oppure akbjAck+j,k 0 ej 0.Ne segue che ogni parola z generata da ( `e ottenuta tramite una derivazione del tipoSk=akSck1=akAckj=akbjAck+j1=akbjck+j= z.Ogni parola derivata dunque appartiene aL.ProviamooracheL L((). Atalescopobastaosservarecheogni stringadiz L`edel tipoanbmcn+mecheessavienegeneratada (attraversolaseguentederivazione:Sm=amScm1=amAcmn=ambnAcm+n1=ambncm+n= z.Esiste dunque in (una derivazione che costruiscez.Comesi`evistonellesempioprecedente, ladimostrazionedel fattocheunagrammatica genera un dato linguaggio pu`o essere eccessivamente tediosa, so-prattuttosesiconsideracheinmolticasi(comeaccadenellesempiostesso)tale propriet`a della grammatica si pu`o vericare facilmente in modo intuitivo.Per tale motivo,nel seguito,non forniremo pi` u dimostrazioni formali di tale2.1. GRAMMATICHEDICHOMSKY 41tipo e ci aderemo allintuizione del lettore, il quale potr`a comunque convin-cersi con facilit`a che le grammatiche date generano eettivamente i linguaggivoluti.Esercizio2.1 Datalagrammatica ( = a, S, I, F, M, P, S)conproduzioniPS a[ aa[ IaFaF Maa[ MaaFaM MaaIM Ia[ aa,provareche (generaillinguaggio_a2n[ n 0_.Esercizio2.2 Denire una grammatica che il linguaggio anbmcp[ n = mm = pedimostrarelasuacorrettezza.In generale uno stesso linguaggio pu`o essere generato da (innite)grammatiche diverse.Denizione2.7Due grammatiche (1e (2si diconoequivalenti seL((1) =L((2).Esercizio2.3DimostrarechelagrammaticaconproduzioniS aS [ belagrammaticaconproduzioniS b [ AbA Aa [ asonoequivalenti.Introducendo restrizioni sulla struttura delle produzioni si ottengono varitipi di grammatiche. Nel resto di questa sezione vedremo le caratteristiche ditali grammatiche e la classicazione di linguaggi cui esse danno luogo.2.1.1 Grammatichedi tipo0Legrammaticheditipo0, detteanchenonlimitate, denisconolaclassedilinguaggi pi` u ampia possibile.1In esse le produzioni sono del tipo pi` u generale: , V VN V, V.1Pi` uampianellambitodei linguaggi descrivibili congrammatiche. Esistonotuttavialinguaggi percui nonesisteunagrammaticacorrispondente. Questoaspettosar`atrattatonelCapitolo7.42 CAPITOLO2. LINGUAGGIFORMALISi noti che queste grammatiche ammettono anche derivazioni che accorcianoleformedi frase, comeadesempioquellechesi ottengonoapplicandole-produzioni.Esempio2.6Le produzioniS aSa [ aAb [ aAa [ aAa a [ aaAb b [ appartengono aduna grammatica di tipo 0. Come conseguenza immediata, lagrammatica considerata nellEsempio 2.2 risulta essere di tipo 0.Esempio2.7La grammatica( = a, b, S, A, P, S),in cuiP`eS aAbaA aaAbA ,`e anchessa una grammatica di tipo 0 e genera il linguaggioL = anbn[ n 1.I linguaggi generabili da grammatiche di tipo 0 si dicono linguaggi di tipo 0.2.1.2 Grammatichedi tipo1Questegrammatiche, detteanchecontestuali ocontext sensitive (CS), am-mettonoqualunqueregoladi produzionechenonriducalalunghezzadellestringhe, cio`e produzioni del tipo: , V VN V, V+, [ [[ [ .Esempio2.8Le produzioniS aSa [ aAb [ aAaaA aaAb aabappartengono ad una grammatica di tipo 1.I linguaggi generabili da grammatiche di tipo 1 si dicono linguaggiditipo1,o contestuali , o context sensitive(CS).Esempio2.9Come si `e potuto vedere, in base allEsempio 2.2, il linguaggioanbncn[ n 1`ecertamentedi tipo0. Lostessolinguaggiopu`ovenirgene-rato da una grammatica di tipo 1 equivalente avente le produzioniS aBSc [ abc,Ba aB,Bb bb. Dunque il linguaggio anbncn[ n 1 `e contestuale.2.1. GRAMMATICHEDICHOMSKY 43Il termine linguaggio contestuale, deriva dal fatto che, storicamente, questilinguaggi sono stati deniti da Chomsky come la classe dei linguaggi generabilida grammatiche aventi produzioni contestuali del tipo1A2 12, A VN, 1, 2 V, V+,in cui si esprime il fatto che la produzione A pu`o essere applicata solo seA si trova nel contesto 1, 2). Ad esempio, nella grammatica per il linguaggioanbncn[ n 1 riportata nellEsempio 2.9, la produzioneBb bb ha lastruttura suddetta, cio`e il carattereBpu`o essere rimpiazzato dal caratterebsolo se alla sua destra `e presente il contestob.Esercizio2.4 Mostrarechelegrammaticheconproduzioni contestuali possonoge-neraretuttiesoliilinguaggiditipo1.[Suggerimento: Ridursi a una grammatica con produzioni senza simboli terminali nel-leparti sinistreesostituireciascunaproduzionenonaventelastrutturacontestualesuddettaconuninsiemediproduzionicontestualiequivalente.]2.1.3 Grammatichedi tipo2Queste grammatiche, dette anche non contestuali o context free (CF), ammet-tono produzioni del tipo:A , A VN, V+cio`e produzioni in cui ogni non terminale A pu`o essere riscritto in una stringaindipendentemente dal contesto in cui esso si trova.Esempio2.10Il linguaggio generato dalla grammatica dellEsempio 2.7 pu`o esseregenerato anche dalla grammatica equivalente di tipo 2 con produzioni:S aSb [ ab.Esempio2.11Un esempio di grammatica non contestuale `e costituito dalla gram-maticache, apartire dallassioma E, generaespressioni aritmetiche di somme emoltiplicazioni in una variabilei, con le seguenti produzioni:E E +T [ TT T F [ FF i [ (E).I linguaggi generabili dagrammatichedi tipo2vengonodetti linguaggi ditipo 2o non contestuali o context free(CF).Esempio2.12Il linguaggio delle parentesi ben bilanciate `e di tipo 2. Esso pu`o esseregenerato dalla grammatica ( = (, ), S, P, S), dove P`e linsieme delle produzioniS ()S SSS (S).44 CAPITOLO2. LINGUAGGIFORMALIEsercizio2.5 Denire una grammatica non contestuale per generare tutte le stringhepalindrome, cio`equellecherisultanouguali selettedadestraversosinistraodasinistraversodestra.2.1.4 Grammatichedi tipo3Queste grammatiche, dette anche lineari destre o regolari , ammettonoproduzioni del tipo:A , A VN, (VT VN) VT.Il termine regolare deriva dal fatto che, come vedremo pi` uavanti (ve-di Sezione3.6, tali linguaggi sono rappresentabili per mezzo di espressioni rego-lari. Il termine lineare deriva dal fatto che al lato destro di ogni produzionecompare al pi` u un simbolo non terminale.I linguaggi generabili da grammatiche di tipo 3 vengono detti linguaggi ditipo 3o regolari .Esempio2.13La grammatica denita da( = a, b, S, P, S)in cuiPcontiene le produzioniS aSS b`e una grammatica di tipo 3 e genera il linguaggio regolareL = anb [ n 0.Esercizio2.6 Denire una grammatica regolare per il linguaggio delle stringhesullalfabeto a, bchecontengonounnumerodisparidia.Esercizio2.7 ConriferimentoallEsercizio1.24eallaFigura1.6,denireunagram-matica regolare che generi le stringhe corrispondenti a tutti i percorsi, anche passantipi` uvolteperunostessonodo,traAeB.In modo del tutto analogo,i linguaggi regolari si possono denire anchemediante grammatiche lineari sinistrecaratterizzate da regole del tipo:A , A VN, (VN VT) VT.Esempio2.14Come si `e visto nellEsercizio 2.3,il linguaggio anb [ n 0 pu`oanche essere generato attraverso le produzioniS Ab [ bA Aa [ a.Vedremo nel seguito (Esercizio 3.11) che per ogni grammatica lineare destrane esiste una lineare sinistra equivalente e viceversa.2.1. GRAMMATICHEDICHOMSKY 452.1.5 Gerarchiadi ChomskySi verica immediatamente che per ogni 0 n 2, ogni grammatica di tipon + 1 `e anche di tipon, e pertanto linsieme dei linguaggi di tipon contienetutti i linguaggi di tipo n+1, formando quindi una gerarchia, detta Gerarchiadi Chomsky. Peraltro `e possibile mostrare che il contenimento `e stretto, comeillustrato in Figura 2.1.Tipo 3Tipo 2Tipo 1Tipo 0Figura2.1 Relazioni tra i tipi di linguaggi.Denizione2.8Un linguaggioL viene dettostrettamente di tipon se esisteuna grammatica (di tipon che generaL e non esiste alcuna grammatica (

di tipom > n che possa generarlo.Esempio2.15Il linguaggioL = anbn[ n 1 pu`o essere generato sia dalla gram-matica dellEsempio 2.7, che `e di tipo 0, perche ammette -produzioni, sia dalla gram-matica dellEsempio 2.10 che `e una grammatica non contestuale, per cui il linguaggio`edi tipo2. Tuttavia`epossibiledimostrarechenonesistenessunagrammaticaditipo 3 che lo pu`o generare (vedi Teorema 3.5): pertanto esso `e strettamente di tipo 2.Le propriet`a di inclusione stretta delle varie classi di linguaggi, tra cui quellecitate nellesempio precedente, saranno arontate successivamente.Percomodit`adellettorelaclassicazionedellegrammatichevieneripor-tatanellaTabella2.1. Legrammaticheditipo3,lepi` upovere,permettonodi generarelinguaggi moltolimitati. Adesempio, conquestegrammatiche`epossibilegenerareil linguaggioL= anb [ n 0, mentrenonsi pu`ogenerare il linguaggioL = anbn[ n 0, per il quale, come vedremo nellaSezione 3.4, `e invece necessaria una grammatica di tipo 2.46 CAPITOLO2. LINGUAGGIFORMALITIPO PRODUZIONI DOVETIPO 0nonlimitate V VN V, VTIPO 1contestuali [ [[ [, V VN V, V+TIPO 2noncontestualiA A VN, V+TIPO 3regolariA A VN, (VT (VT VN))Tabella 2.1 Classicazione delle grammatiche secondo Chomsky.Le grammatiche noncontestuali consentono di generare strutture sin-tattiche anche piuttosto articolate come quelle utilizzate dai linguaggi diprogrammazione (vedi Sezione 2.4).Ovviamente le grammatiche di tipo 1 sono ancora pi` u potenti e permettonodi descriverelinguaggi ancorapi` ucomplessi, comeadesempioil linguaggioanbncn[ m 0, che `e strettamente di tipo 1.Esempio2.16La seguente grammatica contestuale genera il linguaggio ww[ w (a +b)+.S aAS[ bBS[ A0a[ B0b (2.1)Aa aAAb bABa aBBb bB(2.2)AA0 A0aBA0 A0bAB0 B0aBB0 B0b(2.3)A0 aB0 b(2.4)2.1. GRAMMATICHEDICHOMSKY 47Consideriamoadesempiounapossibile derivazione, inquestagrammatica, dellastringaabbabb:S = aAS = aAbBS = aAbBB0b= aAbB0bb = abAB0bb = abB0abb= abbabb.(2.5)Lultimo esempio verr`a utilizzato per mostrare come un linguaggio pu`o esseregenerato da grammatiche di tipo diverso.Esempio2.17Il linguaggioL = _(x#)+[ x =permutazione di a, b, c)_permette di generare stringhe costituite dalla concatenazione di un numero qualunque,maggioredi 0, di permutazioni dei terminali a, b, c, terminatedal carattere#.`Esemplice descrivere una grammatica di tipo 1 in grado di generare questo linguaggio:essa `e la grammatica( = a, b, c, #, S, A, B, C, P, S),dovePcontiene le produzioniS ABC#S[ ABC#AB BAAC CABC CBA aB bC c.Per lo stesso linguaggio si pu`o denire la seguente grammatica di tipo 2:(

= a, b, c, #, S, E, P

, S),doveP

contiene le produzioniS E#S[ E#E abc [ acb [ cba[ bac [ bca[ cab.Si pu`o inne trovare anche una grammatica regolare che genera lo stesso linguaggio,come la seguente:(

= a, b, c, #, S, R, X, Y, Z, X

, Y

, Z

, X

, Y

, Z

, P

, S),48 CAPITOLO2. LINGUAGGIFORMALIdoveP

contiene le produzioniS aX[ bY [ cZX bX

[ cX

X

cRX

bRY aY

[ cY

Y

cRY

aRZ aZ

[ bZ

Z

bRZ

aRR #S[ #.Come si vede, a parit`a di linguaggio, lutilizzazione di una grammatica di tipo pi` ualto pu`o comportare la necessit`a di un numero maggiore di produzioni.Esercizio2.8 Cosasuccederebbeseconsiderassimopermutazioni di 4, 5, . . . , nca-ratteri anziche3? Comevarierebbeil numerodelleproduzioni necessarienelletregrammatiche?2.2 Grammatichecon-produzioniInbasealledenizionidatenora,non `epossibilegenerarelastringavuotacon grammatiche di tipo 1, 2 o 3. Daltra parte in molti casi `e possibile genera-re linguaggi contenenti anche la stringa vuota senza ricorrere allintero poteregenerativo delle grammatiche di tipo 0. Come vedremo, tali linguaggi posso-noesseregeneratiapportandolievimodichealtipodiproduzioniammesseperlegrammatichenoncontestuali eregolari. Questemodicheconsistonosemplicemente nellaggiunta di opportune -produzioni. Inoltre, `e interessantevalutare limpatto determinato dallintroduzione di-produzioni anche per legrammatiche contestuali.Innanzi tuttopossiamomostrareche, datounqualunquelinguaggioditipo1, 2o3, `epossibilemodicarelagrammaticachelogenerainmododa ottenere lo stesso linguaggio arricchito della sola stringa vuota;a tal nebasta semplicemente limitare le -produzioni al solo assioma, procedendo comedescritto di seguito.Se una grammatica ( = VT, VN, P, S) di tipo 1, 2 o 3 genera un linguaggioL, per poter generare il linguaggio L `e suciente utilizzare la grammatica(

= VT, VN S

, P

, S

_,doveP

= P S

S

[ S P.2.2. GRAMMATICHECON-PRODUZIONI 49Esempio2.18Consideriamo le produzioni della grammatica ( = VT, VN, P, S), gi`aintrodotta nellEsempio 2.9,S aBSc [ abcBa aBBb bb.RisultaL(() = anbncn[ n 1.`Eimmediatovericarechelagrammatica(

= VT, VN S

, P

, S

) con produzioniP

S

aBSc [ abc [ S aBSc [ abcBa aBBb bbgenera anbncn[ n 0.Comesi pu`oosservare, le-produzioni si possonoancheaggiungerediretta-menteallassiomadellegrammatichedi tipo1, 2o3(senzaintrodurreunnuovoassioma, comefattosopra), senzachequestoabbiaconseguenzepar-ticolarmentesignicative, purchelassiomanonappaiamaiallatodestrodiunaproduzione. Ineetti,`einteressanteosservarechetalecondizione `ees-senziale per limitare le conseguenze dellinserimento di -produzioni. Infatti,consideriamo ad esempio la grammatica con produzioniS UbU ab [ Sche genera le stringhe del tipo abbb. Se aggiungiamo la -produzione S `eimmediatovericarechelanuovagrammaticanonsologeneralastringavuota, ma anche tutte le stringhe del tipobb.Esaminiamo ora, pi` u in generale, le conseguenze provocate dalla presenzaindiscriminata di -produzioni allinterno di una grammatica. A tal proposito,si pu`o mostrare che la situazione `e diversa a seconda che si trattino grammati-che di tipo 1, 2 o 3. Vediamo innanzi tutto come, nel primo caso, laggiunta noncontrollatadi -produzioniaumentiinmodosostanzialeilpoteregenerativodella grammatica.Esempio2.19Si consideri una grammatica( = VT, VN, P, S)cheabbiatutteproduzioni di tipo1tranneunasolaregoladel tipo con[ [[ [: siaessalaregolaAB C. Si pu`ocostruirealloralagrammatica(

= VT, VN H, P

, S) con produzioni o di tipo 1 o-produzioni, che rispetto a(ha un non terminale in pi` u ed un insieme di regole di produzioneP

:P

= P AB C AB CH, H .50 CAPITOLO2. LINGUAGGIFORMALIOsservando che alla singola derivazioneAB=GCcorrisponde la sequenza di deriva-zioniAB=G

CH=G

C, e che lintroduzione del simbolo non terminaleHnon estendelinsieme delle stringhe generabili, ne deriva cheL(() = L((

).Mediante una semplice generalizzazione dellesempio precedente possiamo di-mostrare il seguente teorema.Teorema2.1Data una grammatica( =VT, VN, P, S) di tipo 0, esisteuna grammatica(

, ottenuta estendendo con opportune -produzioni unagrammatica di tipo 1, equivalente a (.Dimostrazione. Lagrammatica (

= V

T, V

N, P

, S

)`ecaratterizzatada:V

T= VT, V

N= VNX, con X , VN, S

= S e P

ottenuto da P aggiungendola produzioneX e sostituendo ad ogni produzione con [ [>[[> 0 la produzione X . . . X. .|||| volte.`E semplice vericare che con la grammatica (

sono derivabili tutte e sole lestringhe diVTderivabili con la grammatica (. 2Nel casodi grammatichedi tipo2o3abbiamoinvecechelaggiuntaindi-scriminata di-produzioni non altera il potere generativo delle grammatiche.Infatti si pu`o dimostrare che data una grammatica del tipo suddetto estesa con-produzioni, ne possiamo sempre costruire una equivalente, dello stesso tipo,cheusa-produzioni soloapartiredallassioma(nel casocheappartengaal linguaggio da generare) o non ne usa aatto (in caso contrario). Vediamoinnanzi tutto, mediante due esempi, come ci`o sia possibile.Esempio2.20Nella grammatica regolare avente le produzioniS bX[ aBB cXX la produzione vuota si pu`o eliminare riscrivendo le produzioni nella formaS b [ aBB cin cui la-produzione `e completamente scomparsa.Esempio2.21Nella grammatica non contestualeS AB[ aB[ BA ab [ aBB cX[ XX 2.2. GRAMMATICHECON-PRODUZIONI 51la -produzione si pu`o far migrare verso lassioma sostituendola allindietro eottenendo prima le produzioniS AB[ aB[ BA ab [ aBB c [ e poi, ripetendo il procedimento, le produzioniS AB[ A[ aB[ a[ B[ A ab [ aB[ aB c.Non `e dicile fornire anche una dimostrazione formale di quanto detto.Teorema2.2Data una grammatica ( = VT, VN, P, S) il cui insieme di pro-duzioniPcomprende soltanto produzioni di tipo non contestuale e produzionivuote, esiste una grammatica non contestuale (

tale cheL((

) = L(() .Dimostrazione. Il primopassodelladimostrazioneconsistenel costruire(

= VT, VN, P

, S). A tale scopo determiniamo innanzi tutto linsiemeN VNdei simboli che si annullano, cio`e i non terminali da cui `e possibile derivare tramite (. Ci`o pu`o essere fatto applicando lAlgoritmo 2.1. Tale algoritmocostruisce unasequenzaN0, N1, . . . , Nk=Ndi sottoinsiemi di VN,ponendoinizialmenteN0 = A VN[ A P e costruendoNi+1a partire daNi nel modo seguente:Ni+1 = Ni _B VN[ (B P) ( N+i)_.Lalgoritmo termina quando Nk+1 = Nk,k 0. Si noti che L(() se e soloseS N. PercostruirelinsiemeP

delleproduzionidi (

sipu`oapplicareinputgrammatica ( = VT, VN, P, S);outputinsiemeN VNdei simboli che si annullano;beginN := A VN[ A P;repeatN :=N;N := N _B VN[ (B P) ( N+)_untilN= Nend.Algoritmo 2.1: Determina Simboli Annullabili52 CAPITOLO2. LINGUAGGIFORMALIlAlgoritmo2.2, il qualeesaminaciascunaproduzione A di P, conlesclusione delle-produzioni. Se nessun simbolo di si annulla lalgoritmoinserisce la produzione A in P

; altrimenti contiene k > 0 simboli chesi annullano. In tal caso lalgoritmo aggiunge a P

tutte le possibili produzioniottenutedaA eliminandodaunodei sottoinsiemi di simboli chesiannullano: isimbolidi chesiannullanosonoconsideraticonlapropriamolteplicit`a. Adesempio, se N= S, A, BedesisteinPlaproduzioneA BCBA, alloravengonoinseriteinP

leproduzioni A BCBA,A CBA, A BCA, A BCB, A CA, A CB, A BCe A C. Faeccezione, nel casok=[ [ (incui cio`etutti i simboli adestranellaproduzionesi annullano), il sottoinsiemedi cardinalit`a [ [, lacui eliminazione darebbe luogo ad una-produzione, che non viene aggiunta.Dunque, in corrispondenza alla produzioneA , lalgoritmo aggiungeaP

min2|| 1, 2k produzioni.La procedura viene ripetuta per ciascuna produzione non vuota di P. Perinputgrammatica ( = VT, VN, P, S), insiemeN VNdei simboli che si annullano;outputinsiemeP

delle produzioni di (

;beginP

:= ;foreachA Pcon ,= dobeginsia = Z1, . . . , Zt;J := i [ Zi N;foreachJ

2JdoifJ

,= 1, . . . , t thenbeginsiala stringa ottenuta eliminando da ogniZiconi J

;P

:=P

A endendend.Algoritmo 2.2: Elimina-produzioniprovare che L((

) = L(() basta mostrare, per induzione sulla lunghezzadella derivazione, che A VNe w V+T:A=Gw (w ,= A=G

w).Tale dimostrazione `e lasciata al lettore come esercizio (Esercizio 2.9). 2Si osservi che, nel caso in cui L(() contiene , si pu`o ottenere da (

una gram-matica equivalente a (tramite la semplice introduzione di una-produzionesullassioma di (

, applicando la t