Strumenti per la Definizione della Sintassi dei Linguaggi di Programmazione 1

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Strumenti per la Definizione della Sintassi dei Linguaggi di Programmazione 1"

Transcript

1 Strumenti per l Definizione dell Sintssi dei Linguggi di Progrmmzione 1 Docente: Luc Tesei Scuol di Scienze e Tecnologie Università di Cmerino Anno Accdemico 2012/ Queste note intendono coprire gli rgomenti dell prim prte del modulo di Progrmmzione 2012/2013, corso di Progrmmzione + Lbortorio, corso di Lure in Informtic, Università di Cmerino, sede di Cmerino. Alcuni esempi sono trtti dl libro Compilers: Principles, Techniques, nd Tools di Alfred V. Aho, Rvi Sethi e Jeffrey D. Ullmn, Addison-Wesley Pub

2 2

3 Indice 1 Linguggi formli Stringhe e linguggi Operzioni sulle stringhe Operzioni sui linguggi Espressioni su insiemi Automi stti finiti Automi non deterministici Automi finiti deterministici Costruzione dei sottoinsiemi Minimizzzione di un DFA Progettzione di un utom Induzione e ricorsione Ricorsione Costruzione induttiv Chimte ricorsive Definizioni per induzione Espressioni regolri Rgionmento induttivo Grmmtiche libere dl contesto Grmmtiche libere dl contesto Alberi di derivzione Scrittur di grmmtiche Ambiguità Associtività e precedenz degli opertori

4 4 INDICE

5 Cpitolo 1 Linguggi formli Comincimo con lcune nozioni di bse sui linguggi formli. Nei cpitoli successivi vedremo diversi formlismi per specificrli e trtteremo nche dell loro potenz espressiv. 1.1 Stringhe e linguggi Introducimo lcune convenzioni che servirnno d qui in poi. I termini lfbeto o clsse di crtteri denotno un qulsisi insieme finito di simboli. Ad esempio l insieme {0,1} è l lfbeto binrio. ASCII e Unicode sono esempi di lfbeti molto utilizzti nei computer. In genere useremo Σ (o in lcuni testi ed esercizi Λ) per denotre un lfbeto. Un string su un lfbeto è un sequenz finit di simboli presi dll lfbeto. Nell mbito dell teori dei linguggi i termini prol o frse sono sinonimi di string. Stringhe generiche verrnno nel seguito indicte con le vribili s,s,s,...,s 0,s 1,s 2,... oppure x,y,z,w,...,x,x,...,x 0,x 1,... L lunghezz di un string s verrà indict con s ed è il numero di simboli che costituiscono l sequenz s. Ad esempio, bnn è un string lung 6. L string vuot è denott con ǫ (o, in lcuni testi ed esercizi, λ) e h lunghezz 0. Ess è un strzione mtemtic che serve denotre un string tutti gli effetti, m che non contiene nessun crttere. L string vuot è utile e comod in molte definizioni ed è necessri per definire le stringhe, i linguggi e le loro operzioni come lgebre che hnno un loro teori mtemtic. I seguenti sono ltri termini usti frequentemente nel contesto delle stringhe e dei linguggi, con le reltive definizioni: Prefisso di s Un string ottenut togliendo zero o più simboli dll fine di s. Es. bn è prefisso di bnn. Suffisso di s Un string ottenut togliendo zero o più simboli dll test di e. Es. nn è suffisso di bnn. 5

6 6 CAPITOLO 1. LINGUAGGI FORMALI Sottostring di s Un string ottenut togliendo d s si un suo suffisso che un suo prefisso. Es. n è un sottostring di bnn. Si noti che ogni prefisso o suffisso di s è nche un sottostring di s (m non è vero il contrrio). Si noti nche che s stess è nche suo prefisso, suffisso e sottostring. Prefisso, suffisso e sottostring propri di s Un qulsisi string non vuot x che si, rispettivmente, un prefisso, un suffisso o un sottostring di s e tle che s x. Sottosequenz di s Un qulsisi string ottenut cncellndo zero o più crtteri, non necessrimente contigui, d s. Es. b è un sottosequenz di bnn. Il termine linguggio denot un qulsisi insieme (finito o infinito) di stringhe su un certo lfbeto fissto Σ. Quest definizione è molto generle: d esempio l insieme vuoto ( o {}) è un linguggio (chimto linguggio vuoto) secondo quest definizione. Un ltro linguggio prticolre è il linguggio {ǫ} (o {λ}), che contiene un sol string, l string vuot. Altri esempi possono essere: tutti i progrmmi Pscl sinttticmente ben formti o ddirittur tutte le frsi in itlino che sono grmmticlmente corrette. Tuttvi c è subito d notre che quest ultimo linguggio è molto difficile d definire precismente, mentre ltri linguggi non bnli possono essere definiti mtemticmente (come fremo noi con i linguggi di progrmmzione trmite le grmmtiche). Come ultim cos si noti che l definizione che bbimo dto non richiede che si ssocito nessun significto prticolre lle stringhe del linguggio. L disciplin che si occup dei metodi per dre significto lle stringhe di un linguggio viene chimt generlmente semntic. Vedremo uno di questi metodi nell second prte del corso. 1.2 Operzioni sulle stringhe Definimo un operzione fondmentle tr stringhe. Se x e y sono due stringhe, llor l conctenzione di x ed y, scritt come x y 1, è un string ottenut ttccndo y in fondo x. Es. x = buon e y = giorno x y = buongiorno. L conctenzione può essere vist come l nlogo del prodotto nell mbito delle stringhe. L elemento neutro per l conctenzione è l string vuot: ǫ s = s ǫ = s per ogni string s. Se pensimo ll conctenzione come d un prodotto, possimo definire l nlogo dell elevmento potenz come segue: s 0 = ǫ per ogni string s s i = s s i 1 per ogni string s e per ogni i > 0 1 Come per l moltipliczione fr numeri spesso il viene omesso.

7 1.3. OPERAZIONI SUI LINGUAGGI 7 Ad esempio otto 0 = ǫ, otto 1 = otto, otto 2 = ottootto, otto 3 = ottoottootto. Si noti, inoltre, che nche un singol letter è un string (lung 1) e quindi l elevmento potenz può essere usto nche in espressioni del tipo n. Specificndo il vlore di n ottenimo un string di tutte lung n: 0 = ǫ, 1 =, 2 =, 3 =, Operzioni sui linguggi Ci sono diverse importnti operzioni che possono essere pplicte i linguggi. Per qunto rigurd questo corso ci limiteremo considerre le seguenti: Unione L 1 L 2 = {s s L 1 o s L 2 } Conctenzione L 1 L 2 = {s 1 s 2 s 1 L 1 e s 2 L 2 } 2 Esponenzizione L 0 = {ǫ}, L i = L L i 1 se i > 0 Chiusur (o stell) di Kleene L = i=0 Li = L 0 L 1 L 2 L 3 Chiusur (o stell) positiv di Kleene L + = i=1 Li Esempio 1.1 Si L l insieme {A,B,...,Z,,b,...,z} e D l insieme {0,1,...,9}. L e D possono essere visti in due modi: come lfbeti finiti o come linguggi (finiti) composti d prole che sono tutte lunghe un crttere. Vedimo lcuni linguggi che possono essere definiti prtire d L e D trmite le operzioni che bbimo ppen introdotto: L D è l insieme delle lettere e delle cifre LD è l insieme di tutte le stringhe di lunghezz 2 formte d un letter seguit d un cifr L 4 contiene tutte le stringhe di lunghezz 4 che sono formte d lettere L è un insieme infinito di stringhe ognun delle quli h un lunghezz finit ed è compost d lettere. Questo linguggio contiene, per definizione, nche l string vuot ǫ. L(L D) è l insieme di tutte le stringhe di lunghezz strettmente mggiore di 0, che inizino con un letter e sono composte, dopo l prim letter, d cifre o lettere. D + è l insieme di tutte le stringhe di cifre formte d lmeno un cifr 2 Anche qui il è spesso omesso.

8 8 CAPITOLO 1. LINGUAGGI FORMALI Si noti che l stell di Kleene, in entrmbe le sue versioni, può, e lo srà spesso, essere pplict d lfbeti. Inftti gli lfbeti possono essere visti come linguggi molto semplici: insiemi finiti di stringhe di lunghezz 1. In questi csi, secondo l definizione, dto in generle un certo lfbeto non vuoto Σ, Σ rppresent tutte le stringhe di lunghezz finit, compres quell vuot, che si possono formre usndo i simboli di Σ. Σ è sempre un insieme infinito, m che contiene prole di lunghezz finit. Inoltre Σ + = Σ {ǫ}. Esempio 1.2 Si Σ = {0,1}. Si h che Σ = {ǫ,0,1,00,01,10,11,000,001,010,011,100,...} Σ + = {0,1,00,01,10,11,000,001,010,011,100,101,...} Si or Σ = {,b,c}. Si h che Σ = {ǫ,,b,c,,b,c,b,bb,bc,c,cb,cc,,b,c,b,bb,bc,...} Σ + = {,b,c,,b,c,b,bb,bc,c,cb,cc,,b,c,b,bb,bc,...} Trmite queste nuove nozioni possimo dre un definizione più precis di linguggio. Definizione 1.3 (Linguggio) Dto un lfbeto non vuoto Σ, un linguggio su Σ è un qulsisi sottoinsieme di Σ : L Σ. Abbimo già visto i linguggi bnli e {ǫ}. Un ltro linguggio bnle su Σ è Σ. 1.4 Espressioni su insiemi In quest sezione vedimo un modo per specificre mtemticmente lcuni linguggi formli. Questo tipo di notzione srà presente in tutto il corso. Un modo bnle di scrivere un linguggio è semplicemente quello di elencre le stringhe che lo compongono fr prentesi grffe. Questo metodo però è molto limitto, inftti può essere usto solo per scrivere linguggi finiti, cioè che contengono un numero finito di stringhe. In questo corso i linguggi che useremo sono invece qusi sempre infiniti. Il mezzo più generle per dre un specific precis di molti linguggi infiniti è rppresentto dlle espressioni su insiemi. Questo tipo di notzione è nturle poiché, effettivmente, i linguggi formli non sono ltro che insiemi di stringhe. Un espressione su insiemi non è ltro che l clssic notzione ust per rppresentre nliticmente gli elementi di un insieme:

9 1.4. ESPRESSIONI SU INSIEMI 9 {x U P(x)} doveu èununiversodioggetti dtoprioriep unpredicto, unproprietà, che crtterizz tutti e soli gli elementi che fnno prte dell insieme (cioè quegli x per cui P(x) è vero). Nel contesto dei linguggi formli l universo U è sempre Σ, dove Σ è l lfbeto dl qule si prendono i simboli per formre le prole del linguggio che si st definendo. Poiché Σ è spesso specificto preliminrmente e chiro dl contesto, spesso l universo viene sottinteso e l scrittur divent {x P(x)}. L proprietà P può venire specifict tutt dopo il simbolo, nche se spesso, specilmente nel cmpo dell definizione di linguggi, l struttur delle prole viene specifict przilmente nche prim del simbolo. Per specificre l struttur possimo usre i simboli di Σ, le operzioni su stringhe, le espressioni regolri (vedi Sezione 3.4.1), le operzioni sui linguggi e diverse vribili. Vedimo diversi esempi che illustrno i diversi modi di usre queste notzioni. L = { n bc n > 0} In questo cso inferimo che Σ = {,b,c} e che le prole del linguggio sono tutte quelle che inizino con un sequenz di lung lmeno 1 (n > 0) e che poi continuno esttmente con un b seguit d un c. Esempi di prole del linguggio: bc,bc,bc,bc,... Esempi di prole che non pprtengono l linguggio: ǫ,bc,bc,,b,... L = { n b c n n 0} In questo cso bbimo usto nche l espressione regolre b che è equivlente l linguggio {b} (vedi Sezione 3.4.1). Il significto dei due esponenti n è quello usule, cioè che in tutte le prole il numero di e di c deve essere lo stesso e mggiore o ugule zero (n 0). All interno delle e delle c c è un sequenz di b lung nche zero ({b} contiene sempre ǫ). Esempi di prole nel linguggio: ǫ (qundo n = 0 e b = ǫ), c,cc,bc,bcc,bbbbbcc,b,bccc,... Esempi di prole che non pprtengono l linguggio: b, bcc, bc, bbbccc, bccc,... L = { n (bb) m c k n,m 0,k > 0} Questo linguggio potrebbe essere scritto nche come (bb) c +3 o come { b 2m c k m 0,k > 0}. Le vribili n,m e k non sono legte l un ll ltr d nessun vincolo. Esempi di prole: bbc,bbc,c,ccc,bbbbccc,... 3 In tutti questi csi, e nche nel seguito, l sterisco e il +, opertori delle espressioni regolri (Sezione 3.4.1), vnno sempre intesi come l stell di Kleene o il + sul linguggio che contiene solo l string bse: (bb) = {bb}, c + = {c} +

10 10 CAPITOLO 1. LINGUAGGI FORMALI L = { n b m c k n,m > 0,k = m+n} In questo cso le vribili n,m,k sono interdipendenti. Il vincolo k = m+n indic che l somm fr il numero di e il numero di b deve essere ugule l numero di c in ogni prol del linguggio. Esempi: bbbccccc, bcc, bbbbbcccccc,... Esempi di prole non del linguggio: c,bc,bb,cc,... L 1 = { n bc + n > 0} L = {dx n x L 1,n 0} Qui bbimo ustoun sottolinguggio L 1 perdefinireun ltro linguggio principle L. Il linguggio L h prole che comincino con un d seguit d un qulsisi prol del linguggio L 1 seguit su volt d un sequenz di nche vuot. Si noti che l vribile n in L 1 e quell in L non hnno nessun rpporto tr di loro, poiché hnno scope diverso, cioè il loro significto è circoscritto ll interno delle prentesi grffe di ognun delle due espressioni insiemistiche che le usno. Esempi: dbcccc, dbc, dbccc,... Non pprtenenti: ǫ, dbc, db, bc,... L = {s 1 ds 2 s k d k > 0,s i {,b,c} i {1,...,k}} Abbimo usto, in questo esempio, un sequenz numert di vribili che denotno stringhe (s i ) ognun delle quli può essere un string qulunque di un ltro linguggio, {,b,c} (potevmo usre nche un sottolinguggio come nell esempio precedente). Dto che k > 0 llor ll fine di ogni s i deve essere presente un d. Esempi di stringhe pprtenenti: bbcd, d, dddd, cdbbdbcbdbcd,... Esempi di stringhe non pprtenenti: bcc, bcdbc,... Infine, vedremo che spesso i linguggi che specificheremo sono divisi per csi, cioè il linguggio che voglimo descrivere risult dll unione di diversi linguggi componenti ognuno dei quli rppresent un cso. In questo cso è sufficiente utilizzre l normle unione insiemistic. Ad esempio: L = { n bc n > 0} {b n c n 0} {d + (c b) m m > 0} Si noti che l n del primo insieme e l n del secondo, ncor un volt, non hnno nessun rpporto: un qulsisi potrebbe essere rinomint senz cmbire il linguggio definito. Si noti inoltre che nell ultimo insieme bbimo usto l or delle espressioni regolri 4. Esempi di stringhe: bc,bc,c,dc,ddb,... 4 (c b) indic o un c o un b (vedi Sezione 3.4.1).

11 Cpitolo 2 Automi stti finiti In questo cpitolo definimo gli utomi stti finiti non deterministici e deterministici. Essi sono dei riconoscitori di stringhe di un certo linguggio. Dopo l definizione degli utomi vedremo un lgoritmo importnte: l costruzione dei sottoinsiemi per trsformre un utom non deterministico in deterministico. 2.1 Automi non deterministici Definimo l clsse degli utomi finiti non deterministici NFA (dll inglese Non-deterministic Finite Automt). Un NFA può essere specificto grficmente trmite un grfo diretto 1 in cui i nodi, disegnti come cerchi, vengono chimti stti (generlmente numerti), le frecce etichettte sono trnsizioni, lo stto inizile è il nodo che h un frecci entrnte (con opzionlmente scritto strt) e gli stti finli sono i nodi che hnno un doppi cerchitur. Ogni frecci deve essere etichettt d un simbolo di un lfbeto finito Σ o d un insieme di simboli di Σ. Le trnsizioni di quest ultimo tipo sono un bbrevizione che denot un insieme di trnsizioni, tutte con l stess sorgente e l stess destinzione, etichettte ognun con un simbolo diverso dell insieme. UnesempiodiNFAsitrovinFigur2.1. L utomh4stti: {0,1,2,3}, Σ = {,b}, lo stto inizile è 0 e l unico stto finle è lo stto 3. Le frecce rppresentno le trnsizioni: d esempio l frecci etichettt {, b} che prte dllo stto 0 e v nello stto 0 rppresent due trnsizioni: un etichettt con, l ltr con b, tli che entrmbe che prtono d 0 e ritornno in 0 (questo tipo di trnsizioni vengono chimte nche self-loop). Esiste un ltr trnsizione uscente dllo stto 0 ed etichettt con, m è divers dll precedente poiché lo stto di destinzione è 1. 1 Cioè un digrmm formto d diversi punti o nodi collegti d frecce. Se il grfo non è diretto llor i nodi sono collegti d semplici linee. 11

12 12 CAPITOLO 2. AUTOMI A STATI FINITI strt b b {,b} Figur 2.1: Un NFA. Più formlmente possimo definire gli NFA nel modo seguente. Si Σ un lfbeto finito. Definizione 2.1 (NFA) Un NFA su Σ è un tupl S,Σ,move,s 0,F dove: S è un insieme finito di stti Σ è l lfbeto dei simboli s 0 S è lo stto inizile F S è l insieme degli stti di ccettzione o stti finli move:(s Σ) (S) è un funzione che specific per ogni stto s e per ogni simbolo x di Σ le trnsizioni etichettte x dllo stto s d un insieme, nche vuoto, di stti di destinzione (c è un trnsizione per ogni stto di destinzione). Il simbolo (S), usto nell definizione, rppresent l operzione di powerset su un insieme S. Tle operzione restituisce un insieme contenente tutti i sottoinsiemi di S. Ad esempio: ({,b}) = {{},{},{b},{,b}}. Nell utom in Figur 2.1 S è l insieme {0,1,2,3}, Σ = {,b}, lo stto inizile è 0 e l unico stto finle è 3 (F = {3}). Le trnsizioni indicno che move(0, ) = {0, 1}. Inoltre move(0, b) = {0}, move(1, ) = {}, move(1,b) = {2}, move(2,) = {}, move(2,b) = {3} e move(3,) = move(3,b) = {}. Un NFA può riconoscere le stringhe di un certo linguggio. Per chirire in qule modo un NFA ccett un string definimo l nozione di cmmino etichettto. Definizione 2.2 (Cmmino etichettto) Si N = S,Σ,move,s 0,F un NFA. Un cmmino etichettto di lunghezz k 0 su N è un sequenz x s 0 x 1 x 2 x k 1 0 s1 s2 sk 1 s k dove: s 0 è lo stto inizile i {0,1,...,k 1}. s i+1 move(s i,x i )

13 2.1. AUTOMI NON DETERMINISTICI 13 L string x 0 x 1 x k 1 si chim string ssocit l cmmino ed è in generle un string di Σ. Se k = 0 llor il cmmino è costituito solo dllo stto inizile e l string ssocit è l string vuot ǫ. Si noti che un cmmino di lunghezz k consiste di un sequenz di k+1 stti dell utom ed h un string ssocit lung k. Definizione 2.3 (String ccettt) Si N = S,Σ,move,s 0,F un NFA. Un string α Σ è ccettt dll utom N se e solo se esiste un x cmmino etichettto s 0 x 1 x 2 x k 1 0 s1 s2 sk 1 s k su N tle che α è l string ssocit l cmmino e lo stto s k è uno stto finle (in formule s k F α = x 0 x 1 x k 1 ). Se lo stto inizile è nche di ccettzione llor nche l string vuot ǫ è ccettt dll utom. Possimo or introdurre l nozione di linguggio ccettto dll utom. Definizione 2.4 (Linguggio ccettto) Si N = S,Σ,move,s 0,F un NFA. Il linguggio ccettto dll utom è l insieme L(N) = {α Σ α è ccettt d N} Esempio 2.5 Considerimo l utom in Figur b 3 b è un cmmino etichettto l cui string ssocit è bb. Lo stto in cui il cmmino termin, 3, è nche uno stto finle e quindi quest string è ccettt dll utom. Essendo l utom non deterministico, tuttvi, esiste un ltro cmmino etichettto con l string precedente: b 0 b in questo cso lo stto 0 non è finle e quindi questo cmmino non port ll ccettzione dell string. Si noti che, comunque, l definizione richiede che ci si lmeno un cmmino etichettto che termin in uno stto finle per determinre se l string ssocit è ccettt o no. Considerimo l string bb per l qule esistono due cmmini etichettti: b 0 0 b b 1 2 b nessuno dei due cmmini è di ccettzione e quindi l string non è ccettt. Considerimo invece l string bc. In questo cso non esiste nessun cmmino etichettto che h quest string ssocit. Quindi sicurmente non è ccettt. Fcendo ltri esempi e considerndo l struttur dell utom è fcile convincersi che il linguggio ccettto è {sbb s {,b} }

14 14 CAPITOLO 2. AUTOMI A STATI FINITI strt 0 1 b b 2 c Figur 2.2: Un NFA. L costruzione di un cmmino etichettto per un dt string può essere vist come un lgoritmo di riconoscimento di stringhe. Ad esempio, supponimo che voglimo controllre se l string b f prte del linguggio ccettto dll utom di Figur 2.2. Prtimo dllo stto inizile e mntenimo un insieme di stti correnti. All inizio questo insieme è {0} dto che 0 è l unico stto in cui mi posso trovre ll inizio mentre sto cercndo di costruire un cmmino etichettto per l string b. Considerimo or il primo simbolo dell string:. A questo punto gurdimo quli sono gli stti in cui possimo ndre seguendo un trnsizione etichettt uscente d uno qulsisi degli stti correnti. L insieme degli stti che posso rggiungere con l prim è {0,1} poichè dllo stto 0 ci sono due trnsizioni uscenti etichettte con (move(0, ) = {0, 1}). Questo è il nuovo insieme di stti correnti. Eliminimo il primo simbolo dll string in esme e considerimo quello seguente: b. Aprtiredogni sttoin{0,1} controllimo inqulistti posso ndre seguendo trnsizioni etichettte con b. Si h che move(0,b) = {0,2} e move(1,b) = {}. Il nuovo insieme di stti correnti srà quindi {0,2}. Eliminimo il simbolo b e pssimo l successivo e ultimo:. Dto che move(0,) = {0,1} e move(2,) = {}, si h che il nuovo insieme degli stti correnti è {0,1}. A questo punto l string di input è stt lett tutt e non ci rimne che controllre se nell insieme di stti correnti si presente lmeno uno stto finle. Questo è vero poiché 1 è finle e quindi possimo concludere che l string b è ccettt dll utom. Un cmmino etichettto che port ll ccettzione dell string è il seguente: b 1 Considerimo invece l string c. A prtire d uno degli stti in {0} possimo rrivre, con un, nell insieme di stti {0, 1}. Eliminimo l prim e considerimo l c seguente. A questo punto si h che move(0,c) =

15 2.2. AUTOMI FINITI DETERMINISTICI 15 {} e move(1, c) = {}. Entrmbi sono vuoti. In un situzione come quest l utom si dice bloccto poiché non può ndre vnti costruire cmmini possibili per tutto l input. Ricordndo l definizione di string ccettt vedimo che in questo cso non esiste nessun cmmino etichettto per l string e che quindi l utom non ccett. Procedendo con ltre prove si può inferire che il linguggio ccettto dll utom in Figur 2.2 è {s n s {,b},n > 0} {sbc n s {,b},n 0} 2.2 Automi finiti deterministici L definizione di utom che bbimo dto è quell più generle, cioè quell di utom non deterministico. Dimo or un crtterizzzione degli utomi deterministici DFA (Deterministic Finite Automt). Definizione 2.6 (Autom deterministico) Un utom finito deterministico (DFA) è un tupl S,Σ,move,s 0,F dove: S è un insieme finito di stti. Σ è un lfbeto finito di simboli. move:(s Σ) {{}} {{s} s S} è un funzione di trnsizione tle che per ogni stto s S e per ogni simbolo x Σ l insieme degli stti move(s,x) o è vuoto oppure contiene un solo stto. s 0 S è lo stto inizile. F S è l insieme degli stti finli. Si noti che l unic differenz con l definizione di NFA è sull funzione di trnsizione move. Detto prole un utom è deterministico se d ogni stto non escono mi due trnsizioni etichettte con lo stesso simbolo. L nozione di cmmino etichettto e di ccettzione per un DFA è nlog quell di un NFA. Dto che in un DFA, dto uno stto e un simbolo, è possibile l più un trnsizione etichettt con quel simbolo, si h che per ogni string ccettt d un DFA esiste un unico cmmino etichettto con l string e che termin in uno stto finle. L lgoritmo di riconoscimento di un dt string è ugule quello di un NFA, m in questo cso d ogni psso l insieme degli stti correnti contiene uno ed un solo stto. Esempio 2.7 Considerimo l utom disegnto in Figur 2.3. Esso è un utom deterministico che ccett lo stesso linguggio dell utom di Figur 2.1, cioè {s bb s {,b} }. L unico cmmino di ccettzione per l string bb è

16 16 CAPITOLO 2. AUTOMI A STATI FINITI b b 0 b b Figur 2.3: Un utom deterministico b 3 b Il cmmino di ccettzione per l string bbb è: b b 3 b Nel cso degli utomi deterministici determinre se un string è ccettt o no è più semplice. Si possono verificre solo due csi: 1. L string non h nessun cmmino etichettto corrispondente. In questo cso non è ccettt. 2. L string h un cmmino etichettto e sppimo che è l unico. Bst gurdre l ultimo stto di tle cmmino: se è di ccettzione llor l string è ccettt, ltrimenti no. 2.3 Costruzione dei sottoinsiemi Gli utomi deterministici e quelli non deterministici hnno lo stesso potere espressivo. Questo signific che se un linguggio può essere ccettto d un NFA llor esiste nche un DFA che lo ccett, e vicevers. E chiro che l lgoritmo di riconoscimento di un cert string di un DFA è più immedito poichè non bisogn tener trcci di un insieme di stti (il cmmino di ccettzione, se esiste, è unico). D ltr prte, d un punto di vist di progettzione, il non determinismo rende più fcile scrivere un utom e/o determinre che tipo di linguggio ccett, oltre permettere di scrivere utomi più concisi. Bst d esempio gurdre i due utomi delle Figure 2.1 e 2.3 che ccettno lo stesso linguggio. Il primo è non deterministico nello stto 0 e specific in mnier nturle che si possono riconoscere o b in qulsisi numero ed ordine prim di pssre d un string finle obbligtori bb. Il secondo invece deve esplicitre un sort di bcktrcking, cioè gli stti devono tenere trcci dei vri csi possibili: l prim che incontr potrebbe

17 2.3. COSTRUZIONE DEI SOTTOINSIEMI 17 essere quell dell string finle obbligtori e quindi l utom entr nello stto 1. Se il simbolo seguente non è un b llor l utom continu ciclre nello stto 1. Nello stto 2, se il simbolo seguente non è l ultim b l utom ritorn nello stto 1 d spettre di leggere un ltr possibile cndidt d essere il primo simbolo dell string finle obbligtori. Infine nello stto 3 l utom deve ritornre nello stto 0 o 1 se ci sono ncor simboli b o, rispettivmente. Questo perchè i simboli letti precedentemente potrebbero essere il prefisso di un string che poi terminerà con l string finle obbligtori. In quest sezione formlizzimo un lgoritmo noto come costruzione dei sottoinsiemi (subset construction) che serve per costruire, prtire d un NFA dto, un DFA equivlente che simul il non determinismo, m è deterministico. Per specificre l lgoritmo useremo uno pseudo-codice in cui le strutture dti vere e proprie non srnno specificte (in ogni cso non è difficile implementre questi lgoritmi in un linguggio di progrmmzione: bst definire le opportune strutture dti e le vrie funzioni/procedure che specifichimo). Algoritmo 2.1 (Subset construction) Costruzione di un DFA prtire d un NFA. Linguggio: Pseudocodice. Input: Un utom non deterministico N. Output: Un utom deterministico equivlente D. Si {s 0 } l unico stto non mrcto di DSttes; while c e uno stto non mrcto T in DSttes do begin mrc T; for ech simbolo di input x Σ do begin U := move(t,x); if U non e in DSttes then begin ggiungi U, non mrcto, DSttes; end Dtrn(T,x) := U; end end lo stto inizile di D e {s 0 } gli stti finli di D sono tutti quelli che contengono lmeno uno stto finle di N

18 18 CAPITOLO 2. AUTOMI A STATI FINITI L lgoritmo è uno dei clssici lgoritmi di clcolo di un punto fisso (il clcolo di un insieme definito induttivmente) e h l proprietà di terminre sempre in un numero finito di pssi. In prtic prtimo d un insieme di stti DSttes contenente solo uno stto inizile non mrcto. Ad ogni psso selezionimo uno stto non mrcto d DSttes e ne clcolimo le trnsizioni uscenti ggiungendo DSttes, non mrcti, eventuli nuovi stti trovti. Prim o poi, dto che il numero di stti possibili è finito (il numero di elementi di (S) è 2 S, cioè due elevto l numero di elementi di S, che sono gli stti dell utom N e sono in numero finito per definizione) non ci srnno più stti non mrcti d considerre e l lgoritmo terminerà. Esso costruisce l funzione di trnsizione Dtrn simulndo, ttrverso insiemi di stti di N, i comportmenti di N in prllelo dovuti l non determinismo. All interno dell lgoritmo viene utilizzt l funzione move, che specifichimo mtemticmente: move:( (S) Σ) (S) tle che move(t,x) = s T move(s,x) In prtic si mettono in uno stesso insieme tutti gli stti rggiungibili con uno stesso simbolo x prtire d uno stto qulunque di T. Esempio 2.8 Considerimo come utom N di prtenz quello in Figur 2.1. Il linguggio ccettto, come sppimo, è {s bb s {,b} }. Applichimo l lgoritmo dell costruzione dei sottoinsiemi e trovimo il DFA D equivlente. Lo stto inizile di D è per definizione {0} poiché 0 è lo stto inizile di N. Chimimo questo insieme, per convenienz, A. A è il primo stto non mrcto che f prte di DSttes. All prim iterzione selezionimo per forz lo stto A e lo mrchimo. Clcolimo: move(a,) = {0,1} Chimimo questo nuovo stto B = {0,1} move(a,b) = {0} = A Con un b ritornimo nello stto inizile e con un ndimo un uno stto nuovo B (non si trov ttulmente in DSttes) che, seguendo l lgoritmo, v inserito non mrcto in DSttes. In generle, un funzione di trnsizione di un NFA o di un DFA può essere rppresentt, oltre che grficmente come bbimo visto, nche con un tbell in cui le righe sono gli stti e le colonne sono i simboli dell lfbeto. L cell d un rig T e d un colonn x dell tbell è l insieme di stti che risult d move(t,x).

19 2.3. COSTRUZIONE DEI SOTTOINSIEMI 19 L tbell che rppresent l prte di Dtrn clcolt fino questo punto è l seguente: Stto b Mrcto A = {0} B A Si B = {0, 1} No Procedimo scegliendo uno stto non mrcto. Anche quest volt l scelt obbligt è B e clcolimo: move(b,) = {0,1} = B move(b,b) = {0,2} Chimimo questo nuovo stto C = {0,2} Anche quest volt per il simbolo non è stto generto nessuno stto nuovo, mentre per b è stto generto il nuovo stto C che inserimo non mrcto in DSttes. L tbell przilmente costruit fino questo punto è l seguente: Stto b Mrcto A = {0} B A Si B = {0, 1} B C Si C = {0, 2} No Continundo d pplicre l lgoritmo si rriv generre un ulteriore stto D = {0,3} dopodiché non si generno più nuovi stti e l lgoritmo termin. L tbell finle è l seguente: Stto b Mrcto A = {0} B A Si B = {0, 1} B C Si C = {0, 2} B D Si D = {0, 3} B A Si L unico stto finle è D poiché è l unico che contiene uno stto finle di N, cioè 3. L utom è disegnto in Figur 2.4. Si noti che questo è lo stesso utom di Figur 2.3 meno di ridenominzione degli stti (0=A, 1=B, 2=C, 3=D). Per concludere osservimo che in tutte le cselle dell tbell dell esempio bbimo ottenuto un insieme di stti d inserire. Tuttvi questo non

20 20 CAPITOLO 2. AUTOMI A STATI FINITI b b b b A B C D Figur 2.4: L utom deterministico risultnte dll costruzione dei sottoinsiemi. si verific sempre: se ottenimo, per un cert csell, move(t, x) = {} llor signific che nell utom risultnte D, prtire dllo stto T, non c è nessun trnsizione uscente etichettt con x. Grficmente questo signific che non c è nessun frecci uscente d T con etichett x. Nell rppresentzione con un tbell si inserisce l insieme vuoto {} o si lsci l entrt vuot. 2.4 Minimizzzione di un DFA L fcilità di simulzione di un DFA rispetto quell di un NFA è compenst dl ftto che il DFA in genere h un numero mggiore di stti. È lecito chiedersi, in quest ottic, se è possibile, dto in certo DFA, trovrne uno equivlente, m che bbi un numero minore di stti. L rispost è sì, ed esiste un lgoritmo che trov un DFA equivlente d un DFA dto e tle che l utom risultto h un numero minimo di stti. Qui minimo si riferisce gli stti necessri per poter ccettre il linguggio ccettto dll utom di prtenz. Inoltre si h che l utom minimo è unico meno di rinominre gli stti (in ltre prole se trovo due utomi minimi esiste sempre un funzione bigettiv fr gli stti dei due che rispett tutte le trnsizioni). In questo corso non vedimo questo lgoritmo, m è bene spere che esiste l nozione di minimlità e di equivlenz di stti. Si osservi d esempio l utom deterministico di Figur 2.5. È fcile convincersi che nche questo utomccett illinguggio{s bb s {,b} }comequellorisultntedll costruzione dei sottoinsiemi in Figur 2.4. Il numero di stti di quest ultimo, però, è minore del numero di stti dell ltro. L lgoritmo di minimizzzione, prtendo dll utom con più stti, vrebbe riconosciuto che gli stti A e C sono equivlenti e li vrebbe unificti in un unico stto fornendo inoltre l dimostrzione, per come è costruito, che l utom di Figur 2.4 è minimo.

21 2.5. PROGETTAZIONE DI UN AUTOMA 21 b C b b strt A B b D b E Figur 2.5: Un utom deterministico per {s bb s {,b} }. 2.5 Progettzione di un utom In molti esercizi viene richiesto di scrivere un utom che ccetti un certo linguggio dto. Il linguggio può essere stto specificto si in mnier formle (con un espressione su insiemi o con un espressione regolre, Sezione 3.4.1) oppure in mnier informle trmite un descrizione prole e con l usilio di esempi. In entrmbi i csi, se si vuole ffrontre il problem prtendo col piede giusto, è bene ssicurrsi di ver cpito esttmente che tipo di linguggio viene richiesto. Se questo è vero si è sicurmente in grdo di scrivere lcune stringhe del linguggio e, soprttutto, di individure i csi prticolri : le stringhe più corte, quelle più nomle, quelle che hnno un struttur precis che si ripete, ecc. Qundo si è sicuri di ver compreso il linguggio si può pssre l progetto dell utom. In quest fse bisogn cercre di trovre un modo di combinre gli strumenti che ci dà l teori degli utomi per ottenere le stringhe richieste. A ben gurdre gli strumenti sono molto semplici: stti, trnsizioni con cui consentire o impedire (non mettendo l trnsizione) cmmini, stti di ccettzione e un form molto semplice di ricorsione che ci permette di iterre delle trnsizioni su un certo stto o su un certo ciclo di stti. Lprimcosdfreècercre ditrovreunlgoritmo concuisivogliono ccettre tutte e sole le stringhe del linguggio. Un errore tipico è quello di preoccuprsi di fr ccettre ll utom tutte le stringhe del linguggio e

22 22 CAPITOLO 2. AUTOMI A STATI FINITI non preoccuprsi di non fre ccettre stringhe che non sono nel linguggio. Un ltro errore tipico è quello di costruire l utom seguendo lcuni esempi di stringhe e non l definizione di tutto il linguggio: in questo cso l utom risultnte di solito ccett tutte le stringhe di esempio, m non ne ccett ltre che sono comunque nel linguggio. Per evitre questi problemi è bene seguire un metodologi che guidi ll soluzione. L prim rccomndzione di quest metodologi è quell di prtire dgli stti per elborre un lgoritmo. Gli stti di un utom possono strrre qulunque tipo di informzione, qulunque livello di dettglio. Si può decidere, quindi, di rppresentre con uno stto un qulsisi situzione. Dopo questo primo psso, tenendo ben presente i diversi significti che si sono dti i diversi stti dell utom, si rccomnd di pssre scrivere le trnsizioni tr di essi in mnier coerente con l logic dell lgoritmo che si è pensto. Il tocco finle è riconoscere gli stti di ccettzione. Fccimo lcuni esempi clssici per illustrre quest metodologi. Si consideri il seguente problem: costruire un utom che ccetti tutte e sole le stringhe di {0,1} che hnno un numero pri di occorrenze del simbolo 1. Per prim cos riflettimo sul linguggio. Zero è d considerrsi numero pri e quindi sicurmente l utom deve ccettre tutte le stringhe che contengono zero occorrenze del simbolo 1, cioè che contengono solo simboli 0. In prticolre può ccettre nche l string vuot ǫ poiché quest contiene sicurmente zero occorrenze del simbolo 1. Delle stringhe che invece contengono qulche simbolo 1 osservimo subito che non ci import come sono dislocti questi 1 ll interno dell stess. In prticolre, essi potrebbero essere tutti ttccti oppure occorrere qu e là fr diversi simboli 0 messi picere. Non è questo che ci interess: ci interess l prità del numero delle loro occorrenze. Avendo, in questo modo, inqudrto per bene il linguggio possimo pssre cercre un lgoritmo per l ccettzione delle stringhe descritte. Il ftto che le occorrenze del simbolo 0 non influenzno l nostr decisione sull ccettzione o no dell string ci induce pensre che sicurmente, in qulsisi stto si trovi l utom, possimo inserire un trnsizione uscente etichettt con 0. Questo signific che l ver logic dell utom deve essere bst solo sulle occorrenze dei simboli 1. Mettimoci nei pnni dell utom che riceve un string in ingresso e deve decidere se ccettrl o no. Pensimo ll lgoritmo che potrebbe seguire. Possimo pensre che ll prim occorrenz di un simbolo 1 l utom deve ricordre quest informzione in un certo stto poiché questo signific che, per il momento, c è un numero dispri (1) di occorrenze di simboli 1. Quindi, se l string si conclude qui, o l limite dopo lcune occorrenze del simbolo 0, non possimo ccettrl. Comunque l string potrebbe non essere termint e quindi l utom deve poter continure gurdre i prossimi simboli in ingresso.

23 2.5. PROGETTAZIONE DI UN AUTOMA 23 Ad un eventule occorrenz successiv di un simbolo 1 l utom dovrà di nuovo ricordre l cos poiché, se dopo l prim occorrenz il numero di simboli 1 er dispri, or il numero di simboli 1 è pri e quindi, llo stto ttule delle cose, l string può essere ccettt. Dobbimo fre in modo che questo vveng se l string si conclude qui oppure se si conclude dopo un certo numero di occorrenze di soli simboli 0. Se l string continu, questo punto, ci ritrovimo nell situzione inizile: se rriv un simbolo 1 bisogn cmbire stto e ricordre che ttulmente l string non può essere ccettt. E se rriv un 1 successivmente l utom deve di nuovo cmbire lo stto e ricordre che ttulmente l string può essere ccettt. A questo punto è chir l logic dell lgoritmo: si oscill tr i due stti fino qundo l string non termin e quel punto si gurd lo stto in cui si è per decidere se ccettre o no. Formlizzimo quest ide con gli strumenti che ci dnno gli utomi. Innnzitutto, ll luce dell nostr ide, definimo due stti p e d. Lo stto p ricord l informzione: fino questo momento l string di ingresso contiene un numero pri di simboli 1 mentre lo stto d ricord l informzione: fino questo momento l string di ingresso contiene un numero dispri di simboli 1. All inizio, qundo l utom non h ncor letto nessun simbolo dell string in ingresso, vle l enuncito ssocito llo stto p poiché zero occorrenze di 1 sono un numero pri. Pertnto p è il cndidto perfetto per essere lo stto inizile dell utom. Pssimo definire le trnsizioni fr questi stti stndo bene ttenti preservre l logic degli stessi, cioè fre in modo che l informzione d essi ssocit rimng sempre ver. Esminimo l situzione stto per stto. Considerimo lo stto p e mettimoci nei pnni dell utom che legge il primo simbolo dell string che gli è rimst d nlizzre. Assumimo per costruzione che l informzione ssocit llo stto si ver e impegnmoci scrivere le trnsizioni in modo tle che resti ver. Siccome l lfbeto Σ è l insieme {0,1} l utom può prevedere zero, un o più 2 trnsizioni uscenti dllo stto d etichettte con 0 o 1. Considerimo il simbolo 0. Abbimo detto che l occorrenz di tle simbolo non cmbi niente rispetto ll logic degli stti. In prticolre, in questo cso, si vede benissimo che l informzione ssocit p, cioè fino questo momento l string di ingresso contiene un numero pri di simboli 1, non è influenzt dll occorrenz ttule di un simbolo 0, che comunque può occorrere libermente. Pertnto ci srà un trnsizione uscente d p etichettt con 0 e lo stto di destinzione deve essere per forz p stesso! Diversmente, inftti, l utom dovrebbe ndre in d sserendo erronemen- 2 Ad esempio se l utom è non deterministico.

24 24 CAPITOLO 2. AUTOMI A STATI FINITI 1 p d Figur 2.6: L utom costruito per riconoscere stringhe con prità di 1. te di ver letto un numero dispri di 1. Non c è bisogno di ltre trnsizioni etichettte con 0. Considerimo il simbolo 1. Sppimo che nche 1 può occorrere libermente in qulsisi punto dell string in ingresso, m ogni volt che occorre lo stto dell utom deve cmbire. Stimo ssumendo di trovrci nello stto p e quindi, con l trnsizione etichettt 1, dobbimo ndre in d. Si noti che l logic degli stti è rispettt perché l informzione ssocit llo stto d è ver dopo l esecuzione di quest trnsizione (questo perché noi stimo ssumendo che l informzione ssocit p si ver prim dell trnsizione). Per qunto rigurd lo stto p non ci sono ltre considerzioni d fre. Per lo stto d si fnno gli stessi rgionmenti considerndo, però, che quest volt si prte dll ssunzione che sino stti letti un numero dispri di 1. Quindi, ll occorrenz di 0, come in p, l utom non cmbi stto, m ll occorrenz di 1 l utom deve ritornre in p per preservre l logic degli stti. Rimngono solo d definire, questo punto, gli stti finli. È chiro che in questo utom l unico stto che può essere considerto di ccettzione è p. Questo perché l consegn dice che l utom deve ccettre solo le stringhe con un numero pri di 1 e p è proprio lo stto in cui questo è sempre vero. Si noti che, in generle, ssegnre uno stto s come di ccettzione non implic che un utom che si trov in s non poss continure leggere un string in ingresso e continure quindi costruire un cmmino. È essenzile invece ccertrsi che se l utom si ferm in uno stto di ccettzione llor l string lett fino quel momento si sempre un string del linguggio ssegnto. Nel nostro esempio questo è vero perchè unvolt che l utom è entrto nello stto p l string lett fino quel momento può essere sicurmente ccettt. L string inoltre può continure con diverse occorrenze di simboli 0 e rimnere sempre un string del linguggio ssegnto. Solo leggendo un 1 si cmbi stto e si potrà ccettre l string solo se proseguendo, ll fine, si ritornerà in p. L utom che bbimo costruito è rffigurto in Figur 2.6.

25 2.5. PROGETTAZIONE DI UN AUTOMA i Figur 2.7: L utom costruito per stringhe senz 1 consecutivi. Fccimo un ltro esempio. Supponimo di voler scrivere un utom che ccetti il linguggio, sempre sull lfbeto {0, 1}, di tutte le stringhe che non contengono mi due simboli 1 consecutivi. Di nuovo ci v bene qulunque string di soli simboli 0 e quindi nche l string vuot. Per qunto rigurd i simboli 1 essi di nuovo possono occorrere in qulunque posizione, m mi due volte di seguito. Per poter relizzre questo vincolo possimo pensre di ricordre negli stti qul è l ultimo simbolo che è stto letto nell string di ingresso. Essendoci solo due simboli, creimo due stti: lo stto 0 che ricord l informzione: l ultimo simbolo letto è 0 e lo stto 1 cui è ssocit l informzione: l ultimo simbolo letto è 1. Come stto inizile, però, nessuno dei due v bene poiché entrmbi presuppongono che ci si un simbolo letto precedentemente. Non c è problem: possimo crere tutti gli stti che voglimo e quindi ne creimo uno, chimimolo i, che serve solo fre d stto inizile. Adesso costruimo le trnsizioni di conseguenz. Dllo stto inizile i prtirà un trnsizione etichettt con 0 verso lo stto 0 e un etichettt con 1 verso lo stto 1. In questo modo l informzione sugli stti divent ver l primopssodell utom. Fccimo inoltre in modoche nonci si l possibilità di ritornre nello stto i (questo perché l bbimo costruito solo come stto inizile e un uso diverso potrebbe confondere l nostr progettzione). Nello stto 0 non ci sono vincoli su qule simbolo può occorrere. Ciò signific che c è un trnsizione uscente etichettt con 0 ed un etichettt con 1. Per rispettre l logic degli stti, ovvimente, l prim deve ritornre nello stto 0 mentre l second deve ndre nello stto 1. Nello stto 1 bisogn esprimere il vincolo ssegnto dl linguggio. In generle sppimo che un utom ccett un string se e solo se riesce costruire per ess lmeno un cmmino che termin in uno stto di ccettzione. Pertnto bbimo due modi per non fre ccettre un string d un utom: fre in modo che tutti i suoi cmmini terminino in uno stto

26 26 CAPITOLO 2. AUTOMI A STATI FINITI non di ccettzione oppure impedire l costruzione di un cmmino per l string. In questo cso utilizzimo l second possibilità: semplicemente impedimo ll utom di costruire cmmini per stringhe che hnno due simboli 1 consecutivi. Per fr questo bst non mettere nessun trnsizione uscente dllo stto 1 etichettt con 1. Per il simbolo 0 invece inserimo l trnsizione uscente e, per rispettre l logic degli stti, quest trnsizione deve ritornre nello stto 0. Mnc solo l specific degli stti finli. In questo cso qulunque string che bbi un cmmino sull utom v bene poiché bbimo escluso tutte e sole le stringhe non ccettbili impedendo ll utom di costruire cmmini per esse. Quindi tutti gli stti sono di ccettzione. L utom è disegnto in Figur 2.7. Si noti che, d un punto di vist di ottimizzzione, lo stto i è inutile poiché perfettmente equivlente llo stto 0. Pertnto srebbe possibile scrivere un utom per lo stesso linguggio con soli due stti. Non essendo stto richiesto un utom minimo non ci dobbimo preoccupre di questo spetto. L utom con lo stto inizile i in più v benissimo.

27 Cpitolo 3 Induzione e ricorsione In questo cpitolo introducimo due nozioni centrli per questo corso e per l informtic in generle. 3.1 Ricorsione L induzione e l ricorsione sono due concetti strettmente legti. Un definizione viene dett ricorsiv se l oggetto che si vuole definire compre nche nell espressionechedovrebbedefinirlo. Èchirocheun espressionedelgenere deve essere dt molto ccurtmente, poiché può definire effettivmente qulcos solo nel cso in cui suggerisce un costruzione induttiv. L esempio clssico di definizione ricorsiv è quell dell definizione dell funzione fttorile. L funzione fttorile ftt deve prendere un certo numero nturle n e restituire il numero risultnte dll moltipliczione di tutti inumerid1n(ncompreso). Quindi, desempio,ftt(4) = = 24. Nel cso in cui n si ugule zero l definizione introduce per convenzione che ftt(0) = 1. Questo risult comodo per dre le definizioni e rispett nche certe logiche in tluni contesti mtemtici. L funzione ftt è spesso definit in questo modo: { 1 se n = 0 ftt(n) = n ftt(n 1) se n > 0 Si cpisce subito, semplicemente leggendo il testo, che l definizione è ricorsiv: destr dell equzione compre il simbolo ftt che è proprio l oggetto che stimo definendo. M llor come è possibile che quest definizione si ben post? In effetti quest equzione potrebbe non vere nessun soluzione (cioè potrebbe non esistere nessun funzione mtemtic fr numeri nturli che, sostituit ftt nell equzione, rend ver l uguglinz). Però in questo cso un soluzione c è e possimo clcolrl costruttivmente! Questo ccde tutte le volte che si dà un definizione ricorsiv corrett. 27

28 28 CAPITOLO 3. INDUZIONE E RICORSIONE Per convincersi dell bontà dell definizione bst seguirne l semplice logic: se dobbimo clcolre il fttorile di zero sppimo che esso è sempre 1 per convenzione. Invece, se n è mggiore di zero, il suo fttorile è l moltipliczione di n per n 1, per n 2, e così vi fino 1 (che, non cso, è nche il fttorile di zero). M il risultto di n 1 n 2 1 è esttmente il fttorile di n 1. Cosicché bst semplicemente dire che per clcolre il fttorile di n bst moltiplicre n per il fttorile di n 1. A questo punto possimo spingerci oltre quest considerzione intuitiv e cercre di cpire esttmente come l definizione funzioni e vedere precismente ciò che viene definito. In ltre prole cerchimo di descrivere rigorosmente in che modo l soluzione, cioè l funzione ftt, può essere clcolt. 3.2 Costruzione induttiv Lo strumento che possimo utilizzre per trovre l soluzione che ci interess è l induzione o costruzione, che dir si vogli. Un definizione ricorsiv corrett contiene sempre lmeno un cso bse. Un cso bse rppresent un punto di prtenz per inizire un costruzione. Nturlmente possono esserci più csi bse, nel qul cso bbimo un insieme di punti di prtenz. Un cso bse si riconosce fcilmente: nell su definizione non viene usto l oggetto che si st definendo, m viene dto direttmente un risultto. Nel nostro cso c è un unico cso bse che ci dice che qundodobbimo clcolre il fttorile di zero, l rispost è 1. Per comodità rppresentimo l funzione ftt che voglimo clcolre come un insieme di coppie di numeri nturli. Ogni coppi (n,m) in questo insieme rppresent il ftto che ftt(n) = m. Per vere l nostr soluzione dobbimo ottenere un insieme in cui ci si un e un sol coppi (n,m) per tutti gli n nturli. Nturlmente questo è un insieme infinito, m vedremo che il ftto che si definito induttivmente ci dà l possibilità di clcolrlo in mnier incrementle esttmente fino l punto che ci serve in prtic (cioè clcolre il fttorile di un certo numero n dto). Ogni costruzione induttiv prte di csi bse e procede per pssi successivi costruendo soluzioni przili che diventno sempre più grndi d ogni psso. Nel nostro esempio bbimo un solo cso bse che ci dice che l coppi (0, 1) deve essere inclus nell insieme che rppresent l funzione ftt poiché dice chirmente che ftt(0) = 1. Quindi l primo psso, senz ver ftto niente di più che leggere l definizione e trovre i csi bse bbimo clcolto l soluzione przile {(0,1)} Entrimo desso nell logic del cosiddetto psso induttivo o psso di costruzione. Innnzitutto dobbimo formlmente riconsiderre i csi bse e

29 3.2. COSTRUZIONE INDUTTIVA 29 considerre l soluzione przile ottenut nel psso precedente (c è sempre lmeno un psso precedente questo). L soluzione przile che bbimo ttulmente è {(0, 1)} che coincide con l informzione ottenut dl cso bse e che, bbimo detto, indic ftt(0) = 1. Dobbimo quindi gurdre i csi induttivi dell definizione. Nel nostro esempio bbimo solo un cso induttivo che ci dice che ftt(n) = n ftt(n 1). Come possimo utilizzre quest informzione vendo disposizione l nostr soluzione przile? Attulmente conoscimo solo ftt(0) e possimo quindi concludere, sostituendo nell definizione n con il vlore 1, un sol cos in più: cioè che ftt(1) = 1 ftt(1 1) = 1 ftt(0) = 1 1 = 1. E quindi l nostr soluzione przile è umentt! Attulmente è l insieme {(0,1),(1,1)} Il psso induttivo deve essere ripetuto fino che non si giunge ll soluzione totle. Nel nostro cso sppimo che l soluzione è un insieme infinito e che quindi c è bisogno di un numero infinito di pssi per rrivrci. Questo non succede sempre: se l oggetto che si st definendo ricorsivmente è finito llor prim o poi l soluzione przile smette di crescere d ogni psso. In ltre prole si rriv d un cert soluzione przile per cui, pplicndo i pssi induttivi in tutti i modi possibili, non si ottiene nessun nuov informzione. Ciò signific che quell prticolre soluzione przile è l soluzione finle che stvmo cercndo 1. Fccimo ncor lcuni pssi induttivi. A prtire d {(0, 1),(1, 1)} possimo inferire di nuovo si l coppi (0,1) dl cso bse si l coppi (1,1) dll coppi (0, 1). Questo, però, non ument l soluzione przile. Dll coppi(1, 1) viene invece fuori qulcos di nuovo: ftt(2) = 2 ftt(2 1) = 2 ftt(1) = 2 1 = 2. L nuov soluzione przile è {(0,1),(1,1),(2,2)} Al psso successivo si può rigenerre tutt l soluzione przile che vevmo più un nuovo elemento, prtire dll coppi (2,2): ftt(3) = 3 ftt(3 1) = 3 ftt(2) = 3 2 = 6. L nuov soluzione przile è {(0,1),(1,1),(2,2),(3,6)} Ci si può fcilmente convincere che ndndo vnti meccnicmente in questomododogni pssoggiungimo sempreesolo uncoppinuov (n+ 1,(n+1) m) se l psso precedente vevmo ggiunto l coppi (n,m). L soluzione finle si trov dopo un numero infinito di pssi. Esiste un teori mtemtic che ssicur che ess esiste. Questo però solo se l definizione è 1 L teori mtemtic che descrive tutto questo processo ci dice che l soluzione che si trov si nel cso finito che in quello infinito è quell minim. Potrebbero cioè, in certi csi, esistere ltre soluzioni.

30 30 CAPITOLO 3. INDUZIONE E RICORSIONE dt in mnier corrett, in modo cioè d suggerire un processo costruttivo crescente nlogo quello che bbimo visto. Vedimo un esempio in cui il processo costruttivo viene specificto in mnier errt: { 1 se n = 0 foo(n) = n foo(n+1) se n > 0 Osservimo l definizione ricorsiv dell funzione foo. Qule processo di costruzione suggerisce? Possimo provre prtire come per ftt dll coppi (0,1) che viene dt dl cso bse. Nel psso induttivo però non simo in grdo di dedurre niente di nuovo dll soluzione przile {(0, 1)}: per ottenere foo(1) inftti dovremmo conoscere già un coppi (2, m), che invece non c è! Quindi dobbimo subito fermrci e dichirre che il mssimo che bbimo potuto ricvre è foo(0) = 1. L obiettivo di definire un funzione foo per tutti i numeri nturli non è stto rggiunto. Quello che bbimo definito è un funzione przile che dà un vlore solo per zero. 3.3 Chimte ricorsive Nturlmente possimo scrivere un progrmm che clcol l funzione ftt per ogni numero nturle. Bst fr eseguire l progrmm l costruzione che bbimo visto fino d rrivre d ottenere l coppi (n,ftt(n)). Tuttvi, il processo che bbimo descritto risult molto inefficiente: d ogni psso si devono riclcolre molte cose che già si sono clcolte precedentemente. In reltà bsterebbe clcolre ogni volt solo l coppi nuov! Vedimo quindi un modo più efficiente di pplicre le definizioni ricorsive. Le definizioni ricorsive, oltre ll interpretzione costruttiv che bbimo descritto finor, hnno sempre nche un ltr possibile interpretzione che possimo chimre dll lto verso il bsso. Nell interpretzione costruttiv inftti noi prtimo dl bsso (di csi bse) per costruire psso dopo psso un qulcos che, ll fine, diventerà l oggetto definito induttivmente. In molti csi però, come d esempio per il cso del fttorile in cui l obiettivo è essere cpci di clcolre un vlore prtire d un dto numero n, è conveniente dottre un visione divers in cui l definizione ricorsiv suggerisce un scomposizione in problemi più piccoli. Cerchimo di spiegre questo modo di vedere dottndo sempre l esempio del fttorile. Considerimo l stess definizione di ftt dt sopr come il punto di prtenz di un lgoritmo che debb risolvere il problem di clcolre il fttorile di un certo numero n dto in input. Quli sono i pssi dell lgoritmo suggeriti dll definizione? Provimo fre un esempio ponendo l input n = 3. Per cpire bene in che modo possimo fre il clcolo, e in che modo viene poi ftto effettivmente di progrmmi eseguibili, dobbimo pensre

Linguaggi di Programmazione Corso C. Parte n.5 Automi a Stati Finiti. Nicola Fanizzi

Linguaggi di Programmazione Corso C. Parte n.5 Automi a Stati Finiti. Nicola Fanizzi Linguggi di Progrmmzione Corso C Prte n.5 Automi Stti Finiti Nicol Fnizzi (fnizzi@di.uni.it) Diprtimento di Informtic Università degli Studi di Bri Automi Stti Finiti Dto un lfeto X, un utom stti finiti

Dettagli

Linguaggi di Programmazione e Compilatori I Appello del 9/7/2004

Linguaggi di Programmazione e Compilatori I Appello del 9/7/2004 Linguggi di Progrmmzione e Compiltori I Appello del 9/7/ Scrivere in stmptello COGNOME e NOME su ogni foglio consegnto e sul testo, che v consegnto insieme l compito. Not Nel testo le espressioni regolri

Dettagli

Trasduttori a Stati Finiti

Trasduttori a Stati Finiti Trsduttori Stti Finiti Un Trsduttore Stti Finiti Deterministici è definito dll 7-pl - Alfeto di Ingresso (Alfeto terminle) K- Insieme degli stti δ -funzione (przile) di trnsizione

Dettagli

Automi a stati finiti

Automi a stati finiti Automi stti finiti Diprtimento di Elettronic e Informzione Politecnico di Milno 17 mrzo 2017 Modelli operzionli Un semplice modello di clcolo I modelli operzionli di clcolo sono definiti come mcchine strtte

Dettagli

, x 2. , x 3. è un equazione nella quale le incognite appaiono solo con esponente 1, ossia del tipo:

, x 2. , x 3. è un equazione nella quale le incognite appaiono solo con esponente 1, ossia del tipo: Sistemi lineri Un equzione linere nelle n incognite x 1, x 2, x,, x n è un equzione nell qule le incognite ppiono solo con esponente 1, ossi del tipo: 1 x 1 + 2 x 2 + x +!+ n x n = b con 1, 2,,, n numeri

Dettagli

2 x = 64 (1) L esponente (x) a cui elevare la base (2) per ottenere il numero 64 è detto logaritmo (logaritmo in base 2 di 64), indicato così:

2 x = 64 (1) L esponente (x) a cui elevare la base (2) per ottenere il numero 64 è detto logaritmo (logaritmo in base 2 di 64), indicato così: Considerimo il seguente problem: si vuole trovre il numero rele tle che: = () L esponente () cui elevre l bse () per ottenere il numero è detto ritmo (ritmo in bse di ), indicto così: In prticolre in questo

Dettagli

Esercizi di Informatica Teorica

Esercizi di Informatica Teorica 03-utomi--stti-finiti-0 Esercizi di Informtic Teoric Automi stti finiti Autom stti finiti (ASF) richimi utom stti finiti ASF = dove Σ = {σ, σ 2,, σ n } è un lfeto (finito) di input K= {, q,,

Dettagli

Esercizi di Informatica Teorica Pumping lemma e proprietà di

Esercizi di Informatica Teorica Pumping lemma e proprietà di 04-pumping-lemm-regolri-01 Esercizi di Informtic Teoric Pumping lemm e proprietà di chiusur per i linguggi regolri 1 Pumping lemm per linguggi regolri richimi pumping lemm: se L è un linguggio regolre

Dettagli

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 curdi Luc Cio e Wlter Didimo Esercizi di Informtic teoric - Luc Cio e Wlter Didimo 1 utomi stti finiti utomi stti finiti non deterministici utomi e grmmtiche regolri notzioni sul livello degli esercizi:(*)fcile,

Dettagli

CORSO ZERO DI MATEMATICA

CORSO ZERO DI MATEMATICA UNIVERSITÀ DEGLI STUDI DI PALERMO FACOLTÀ DI ARCHITETTURA CORSO ZERO DI MATEMATICA ESPONENZIALI E LOGARITMI Dr. Ersmo Modic ersmo@glois.it www.glois.it POTENZA CON ESPONENTE REALE Definizione: Dti un numero

Dettagli

POTENZA CON ESPONENTE REALE

POTENZA CON ESPONENTE REALE PRECORSO DI MATEMATICA VIII Lezione ESPONENZIALI E LOGARITMI E. Modic mtemtic@blogscuol.it www.mtemtic.blogscuol.it POTENZA CON ESPONENTE REALE Definizione: Dti un numero rele > 0 ed un numero rele qulunque,

Dettagli

Integrale Improprio. f(x) dx =: Osserviamo che questa definizione ha senso dal momento che per ogni y è ben definito l integrale b

Integrale Improprio. f(x) dx =: Osserviamo che questa definizione ha senso dal momento che per ogni y è ben definito l integrale b Integrle Improprio In queste lezioni riprendimo l teori dell integrzione in un vribile, l ide è di estendere l integrle definito nche in csi in cui l funzione integrnd o l intervllo di integrzione non

Dettagli

a cura di Luca Cabibbo e Walter Didimo

a cura di Luca Cabibbo e Walter Didimo cur di Luc Cio e Wlter Didimo Esercizi di Informtic teoric - Luc Cio e Wlter Didimo 1 pumping lemm proprietà di chiusur dei linguggio regolri notzioni sul livello degli esercizi: (*) fcile, (**) non difficile

Dettagli

Equazioni. Definizioni e concetti generali. Incognita: Lettera (di solito X) alla quale e possibile sostituire dei valori numerici

Equazioni. Definizioni e concetti generali. Incognita: Lettera (di solito X) alla quale e possibile sostituire dei valori numerici Equzioni Prerequisiti Scomposizioni polinomili Clcolo del M.C.D. e del m.c.m. tr polinomi P(X) = 0, con P(X) polinomio di grdo qulsisi Definizioni e concetti generli Incognit: Letter (di solito X) ll qule

Dettagli

Corso di Automi e Linguaggi Formali Gennaio- Marzo 2003

Corso di Automi e Linguaggi Formali Gennaio- Marzo 2003 Corso di Automi e Linguggi Formli Gennio- Mrzo 2003 Docente: Frncesc Rossi, frossi@mth.unipd.it Corso di Automi e Linguggi Formli Gennio-Mrzo 2002 p.1/37 Dti del corso 5 crediti circ 40 ore in ul Orrio:

Dettagli

Laurea triennale in Scienze della Natura a.a. 2009/2010. Regole di Calcolo

Laurea triennale in Scienze della Natura a.a. 2009/2010. Regole di Calcolo Lure triennle in Scienze dell Ntur.. 2009/200 Regole di Clcolo In queste note esminimo lcune conseguenze degli ssiomi reltivi lle operzioni e ll ordinmento nell insieme R dei numeri reli. L obiettivo principle

Dettagli

Automi e Linguaggi Formali

Automi e Linguaggi Formali Propriet dei linguggi liberi d contesto utomi e Linguggi Formli Propriet dei linguggi liberi d contesto emplificzione - CFG possono essere semplificte - e L e CFL llor l su grmmtic h un form specile Pumping

Dettagli

11. Rango di una matrice.

11. Rango di una matrice. Rngo di un mtrice Considerimo un mtrice di tipo m n d elementi reli rppresentt nel modo seguente: A = (m-) m (m-) m (m-) m (m-) m (n-) (n-) (n-) (m-),(n-) m(n-) n n n (m-)n mn Per ogni i =,,,, (m-), m,

Dettagli

1 Espressioni polinomiali

1 Espressioni polinomiali 1 Espressioni polinomili Un monomio è un espressione letterle in un vribile x che contiene un potenz inter (non negtiv, cioè mggiori o uguli zero) di x moltiplict per un numero rele: x n AD ESEMPIO: sono

Dettagli

1 Equazioni e disequazioni di secondo grado

1 Equazioni e disequazioni di secondo grado UNIVERSITÀ DEGLI STUDI DI ROMA LA SAPIENZA - Fcoltà di Frmci e Medicin - Corso di Lure in CTF 1 Equzioni e disequzioni di secondo grdo Sino 0, b e c tre numeri reli noti, risolvere un equzione di secondo

Dettagli

a cura di Luca Cabibbo e Walter Didimo

a cura di Luca Cabibbo e Walter Didimo cur di Luc Cio e Wlter Didimo Esercizi di Informtic teoric - Luc Cio e Wlter Didimo 1 espressioni regolri e grmmtiche regolri proprietà decidiili dei linguggi regolri teorem di Myhill-Nerode notzioni sul

Dettagli

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 curdi Luc Cio e Wlter Didimo Esercizi di Informtic teoric - Luc Cio e Wlter Didimo 1 pumping lemm proprietà di chiusur dei linguggio regolri notzioni sul livello degli esercizi:(*)fcile, (**) non difficile

Dettagli

5.4 Il teorema fondamentale del calcolo integrale

5.4 Il teorema fondamentale del calcolo integrale Esercizi 5.3. Si f : R R un funzione continu, e supponimo che f bbi sintoti obliqui per ±. Provre che f è uniformemente continu in R.. Esibire un funzione f : R R limitt e di clsse C, m non uniformemente

Dettagli

Capitolo 6. Integrali di funzioni di una variabile

Capitolo 6. Integrali di funzioni di una variabile Cpitolo 6 Integrli di funzioni di un vribile Ci si pone il problem del riuscire misurre l re di figure il cui contorno non è costituit d segmenti. 6. L integrle definito Si f : [, b] R R un funzione limitt

Dettagli

11. Rango di una matrice.

11. Rango di una matrice. Rngo di un mtrice Considerimo un mtrice di tipo m n d elementi reli rppresentt nel modo seguente: A = (m-) m (m-) m (m-) m (m-) m (n-) (n-) (n-) (m-),(n-) m(n-) n n n (m-)n mn Per ogni i =,,,, (m-), m,

Dettagli

Non Determinismo. Dipartimento di Elettronica e Informazione Politecnico di Milano. 21 marzo 2017

Non Determinismo. Dipartimento di Elettronica e Informazione Politecnico di Milano. 21 marzo 2017 Non Determinismo Diprtimento di Elettronic e Informzione Politecnico di Milno 21 mrzo 2017 Modelli operzionli non deterministici Modelli deterministici vs. modelli non deterministici Solitmente, un lgoritmo

Dettagli

UNITA 13. GLI ESPONENZIALI

UNITA 13. GLI ESPONENZIALI UNITA. GLI ESPONENZIALI. Le potenze con esponente intero, rzionle e rele.. Le proprietà delle potenze.. Equzioni esponenzili che si riconducono ll stess bse. 4. L funzione esponenzile. 5. Il grfico dell

Dettagli

Calcolo integrale in due e più variabili

Calcolo integrale in due e più variabili Clcolo integrle in due e più vribili 9 dicembre 2010 1 Definizione di integrle Il primo psso st nell definizione e determinzione dell integrle per funzioni due vribili prticolrmente semplici: le funzioni

Dettagli

Introduzione alle disequazioni algebriche

Introduzione alle disequazioni algebriche Introduzione lle disequzioni lgebriche Giovnni decide di fre ttività fisic e chiede informzioni due plestre. Un plestr privt chiede un quot d iscrizione nnu di 312, più 2 per ogni ingresso. L plestr comunle

Dettagli

SPAZI VETTORIALI. 1. Spazi e sottospazi vettoriali

SPAZI VETTORIALI. 1. Spazi e sottospazi vettoriali SPAZI VETTORIALI 1. Spzi e sottospzi vettorili Definizione: Dto un insieme V non vuoto e un corpo K di sostegno si dice che V è un K-spzio vettorile o uno spzio vettorile su K se sono definite un operzione

Dettagli

Algoritmi e Complessità

Algoritmi e Complessità Algoritmi e Complessità Università di Cmerino Corso di Lure in Informtic (tecnologie informtiche) III periodo didttico Docente: Emnuel Merelli Emil:emnuel.merelli@unicm.it Lezione Algoritmi e Complessità

Dettagli

B8. Equazioni di secondo grado

B8. Equazioni di secondo grado B8. Equzioni di secondo grdo B8.1 Legge di nnullmento del prodotto Spendo che b0 si può dedurre che 0 oppure b0. Quest è l legge di nnullmento del prodotto. Pertnto spendo che (-1) (+)0 llor dovrà vlere

Dettagli

SUGLI INSIEMI. 1.Insiemi e operazioni su di essi

SUGLI INSIEMI. 1.Insiemi e operazioni su di essi SUGLI INSIEMI 1.Insiemi e operzioni su di essi Il concetto di insieme è primitivo ed è sinonimo di clsse, totlità. Si A un insieme di elementi qulunque. Per indicre che è un elemento di A scriveremo A.

Dettagli

2 Generalità sulle matrici

2 Generalità sulle matrici 2 Generlità sulle mtrici 21 Definizione e csi prticolri Definizione 21 Mtrice n m Un mtrice n m è un tbell rettngolre di n righe e m colonne i cui elementi sono numeri reli (o complessi) indicizzti con

Dettagli

13 - Integrali Impropri

13 - Integrali Impropri Università degli Studi di Plermo Fcoltà di Economi Diprtimento di Scienze Economiche, Aziendli e Sttistiche Appunti del corso di Mtemtic 3 - Integrli Impropri Accdemico 25/26 M. Tumminello, V. Lcgnin,

Dettagli

Scheda per il recupero 2

Scheda per il recupero 2 Sched A Ripsso Sched per il recupero Numeri rzionli e introduzione i numeri reli Definizioni principli DOMANDE RISPOSTE ESEMPI Che cos è un frzione? Qundo un frzione si dice ridott i minimi termini? Un

Dettagli

Determinanti e caratteristica di una matrice (M.S. Bernabei & H. Thaler

Determinanti e caratteristica di una matrice (M.S. Bernabei & H. Thaler Determinnti e crtteristic di un mtrice (M.S. Bernbei & H. Thler Determinnte Il determinnte può essere definito solmente nel cso di mtrici qudrte Per un mtrice qudrt 11 (del primo ordine) il determinnte

Dettagli

{ 1, 2,3, 4,5,6,7,8,9,10,11,12, }

{ 1, 2,3, 4,5,6,7,8,9,10,11,12, } Lezione 01 Aritmetic Pgin 1 di 1 I numeri nturli I numeri nturli sono: 0,1,,,4,5,6,7,8,,10,11,1, L insieme dei numeri nturli viene indicto col simbolo. } { 0,1,,, 4,5,6,7,8,,10,11,1, } L insieme dei numeri

Dettagli

C PITOLO 2. nalisi Lessicale

C PITOLO 2. nalisi Lessicale C PITOLO 2 nlisi Lessicle Il compito dell fse di nlisi lessicle è quello di fornire uno strem di token prtire dll sequenz di crtteri che rppresent il progrmm che si vuole compilre. Lo strem di token prodotto

Dettagli

{ 3 x y=4. { x=2. Sistemi di equazioni

{ 3 x y=4. { x=2. Sistemi di equazioni Sistemi di equzioni Definizione Un sistem è un insieme di equzioni che devono essere verificte contempornemente, cioè devono vere contempornemente le stesse soluzioni. Definimo grdo di un sistem il prodotto

Dettagli

corrispondenza dal piano in sé, che ad ogni punto P del piano fa corrispondere il punto P' in

corrispondenza dal piano in sé, che ad ogni punto P del piano fa corrispondere il punto P' in Cpitolo 5 Le omotetie 5. Richimi di teori Definizione Sino fissti un punto C del pino ed un numero rele. Si chim omoteti di centro C e rpporto ( che si indic con il simolo O, ) l corrispondenz dl pino

Dettagli

fattibile con le tecniche elementari che imparerai in seguito. Ad esempio il polinomio

fattibile con le tecniche elementari che imparerai in seguito. Ad esempio il polinomio Scomposizione di un polinomio in fttori Scomporre in fttori primi un polinomio signific esprimerlo come il prodotto di due più polinomi non più scomponibili Ad esempio 9 = ( 3) fttore 1 ( + 3) fttore +

Dettagli

Integrali impropri in R

Integrali impropri in R Integrli impropri in Flvino Bttelli Diprtimento di Scienze Mtemtiche Università Politecnic delle Mrche Ancon Integrli impropri Indichimo con = {1, 2, 3,...} l insieme dei numeri nturli, con 0 = {0, 1,

Dettagli

Corso di Analisi: Algebra di Base. 4^ Lezione. Radicali. Proprietà dei radicali. Equazioni irrazionali. Disequazioni irrazionali. Allegato Esercizi.

Corso di Analisi: Algebra di Base. 4^ Lezione. Radicali. Proprietà dei radicali. Equazioni irrazionali. Disequazioni irrazionali. Allegato Esercizi. Corso di Anlisi: Algebr di Bse ^ Lezione Rdicli. Proprietà dei rdicli. Equzioni irrzionli. Disequzioni irrzionli. Allegto Esercizi. RADICALI : Considerto un numero rele ed un numero intero positivo n,

Dettagli

Esponenziali e logaritmi

Esponenziali e logaritmi Esponenzili e ritmi ESPONENZIALI Potenze con esponente rele L potenz è definit: se > 0, per ogni R se 0, per tutti e soli gli R se < 0, per tutti e soli gli Z Sono definite: ( ) ( ) ( ) 7 7 Non sono definite:

Dettagli

7. Derivate Definizione 1

7. Derivate Definizione 1 7. Derivte Il concetto di derivt è importntissimo e molto nturle. Per vere un esempio concreto, penste l moto di un mcchin: se f(t) è l funzione che esprime qunt strd vete percorso fino d un certo istnte

Dettagli

La scomposizione in fattori dei polinomi

La scomposizione in fattori dei polinomi Progetto Mtemtic in Rete L scomposizione in fttori dei polinomi Scomporre in fttori un polinomio signific scriverlo come prodotto di polinomi di grdo inferiore. Esempio: ( )( ) Osservimo che l uguglinz,

Dettagli

Integrali dipendenti da un parametro e derivazione sotto il segno di integrale.

Integrali dipendenti da un parametro e derivazione sotto il segno di integrale. 1 Integrli dipendenti d un prmetro e derivzione sotto il segno di integrle. Considerimo l funzione f(x, t) : A [, b] R definit nel rettngolo A [, b], essendo A un sottoinsieme perto di R e [, b] un intervllo

Dettagli

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1

acuradi Luca Cabibbo e Walter Didimo Esercizi di Informatica teorica - Luca Cabibbo e Walter Didimo 1 curdi Luc Cio e Wlter Didimo Esercizi di Informtic teoric - Luc Cio e Wlter Didimo 1 espressioni regolri e grmmtiche regolri proprietà decidiili dei linguggi regolri teorem di Myhill-Nerode notzioni sul

Dettagli

Minimi quadrati e problemi di distanza minima

Minimi quadrati e problemi di distanza minima Minimi qudrti e problemi di distnz minim Considerimo un mtrice rettngolre B, con elementi b ij, i 1,..., n, j 1,..., m, con m < n (quindi, più righe che colonne. Voglimo risolvere il sistem linere (1 Bx

Dettagli

Matematica II. Un sistema lineare è un sistema di m equazioni lineari (cioè di primo grado) in n incognite x 1,, x n :

Matematica II. Un sistema lineare è un sistema di m equazioni lineari (cioè di primo grado) in n incognite x 1,, x n : Mtemtic II. Generlità sui sistemi lineri Un sistem linere è un sistem di m equzioni lineri (cioè di primo grdo) in n incognite,, n : n n b b m mn n m (*) Un soluzione del sistem linere è un n-upl di numeri

Dettagli

stringhe sull alfabeto Σ in cui a a b si alternano, iniziando da a e terminando con b.

stringhe sull alfabeto Σ in cui a a b si alternano, iniziando da a e terminando con b. Corso di Linguggi Formli e Automi Anno Accdemico 2014 2015 Prof. Giovnni Pighizzini Esercizi Vri Esercizio 1 Si Σ = {, }. Costruite un utom che ccetti il linguggio costituito d tutte le stringhe sull lfeto

Dettagli

ESERCIZIO DI ASD DEL 27 APRILE 2009

ESERCIZIO DI ASD DEL 27 APRILE 2009 ESERCIZIO DI ASD DEL 27 APRILE 2009 Dimetro Algoritmi. Ricordimo che un grfo non orientto, ciclico e connesso è un lero. Un lero può essere pensto come lero rdicto un volt che si si fissto un nodo come

Dettagli

Il calcolo letterale

Il calcolo letterale Progetto Mtemtic in Rete Il clcolo letterle Finor imo studito gli insiemi numerici (espressioni numeriche). Ν, Ζ, Q, R ed operto con numeri In mtemtic però è molto importnte sper operre con le lettere

Dettagli

FONDAMENTI DI PROGRAMMAZIONE (A,B,C,D) Appello del 25/06/2002 Soluzioni proposte

FONDAMENTI DI PROGRAMMAZIONE (A,B,C,D) Appello del 25/06/2002 Soluzioni proposte FONDAMENTI DI PROGRAMMAZIONE (A,B,C,D) Appello del 25/06/2002 Soluzioni proposte ESERCIZIO 1 (5 punti) Si Λ =, b, c. Descrivere un utom che riconosce il seguente linguggio su Λ : L = s 1... s n n 1, s

Dettagli

- Appunti di Matematica 1 Licei Umanistici - - I polinomi - Polinomi

- Appunti di Matematica 1 Licei Umanistici - - I polinomi - Polinomi Polinomi Un polinomio è un somm lgeric di monomi. Esempio: ; c sono polinomi. ; I vri monomi che compongono il polinomio si chimno termini del polinomio. Un monomio può nche essere considerto come un polinomio

Dettagli

RAPPRESENTAZIONE GRAFICA DELLA PARABOLA a ( ) { } f con, è la parabola di equazione y = ax + bx + c. Vogliamo disegnarla. 2

RAPPRESENTAZIONE GRAFICA DELLA PARABOLA a ( ) { } f con, è la parabola di equazione y = ax + bx + c. Vogliamo disegnarla. 2 APPENDICE 1 AL CAPITOLO 3: RAPPRESENTAZIONE GRAFICA DELLA PARABOLA Per 0 l insieme,y / y = + + c, grfico dell funzione f = + + c { } f con, è l prol di equzione y = + + c Voglimo disegnrl non è difficile

Dettagli

Prova scritta del 28 febbraio Risultati

Prova scritta del 28 febbraio Risultati LINGUGGI E COMPILTORI COMPILTORI Prov scritt del 28 febbrio 2011 Risultti MRTINELLI 18 D EPIFNIO 20 BOINO 24 DELÌU 27 VINO 27 PIETRELLI 23 NDREOCCI 30 DI SCHINO 20 ROMEO 24 MERCURI 27 NICOLIELLO 21 HIB

Dettagli

Linguaggi e Traduttori Tempo: 2 ore

Linguaggi e Traduttori Tempo: 2 ore Linguggi e Trduttori Tempo: 2 ore Esercizio (3 punti) Prof. Mrco Gvnelli 2 luglio 28 i consideri il linguggio L = { n b c n n > } { k c k b k > }. i scriv un grmmtic non mbigu che gener il linguggio L;

Dettagli

Anno 2. Potenze di un radicale e razionalizzazione

Anno 2. Potenze di un radicale e razionalizzazione Anno Potenze di un rdicle e rzionlizzzione Introduzione In quest lezione impreri utilizzre le ultime due tipologie di operzioni sui rdicli, cioè l potenz di un rdicle e l rdice di un rdicle. Successivmente

Dettagli

Vediamo quindi l elenco dei limiti fondamentali, il cui risultato daremo per noto d ora in avanti e lo utilizzeremo ogni volta che sarà necessario.

Vediamo quindi l elenco dei limiti fondamentali, il cui risultato daremo per noto d ora in avanti e lo utilizzeremo ogni volta che sarà necessario. . I iti fondmentli Non bisogn pensre l clcolo di un ite come se si trttsse dvvero di eseguire un operzione mtemtic: in reltà non esiste lcun lgoritmo. L procedur si regge invece su questi due pilstri:

Dettagli

3. Funzioni iniettive, suriettive e biiettive (Ref p.14)

3. Funzioni iniettive, suriettive e biiettive (Ref p.14) . Funzioni iniettive, suriettive e iiettive (Ref p.4) Dll definizione di funzione si ricv che, not un funzione y f( ), comunque preso un vlore di pprtenente l dominio di f( ) esiste un solo vlore di y

Dettagli

FUNZIONI CONTINUE A TRATTI E LORO INTEGRALI

FUNZIONI CONTINUE A TRATTI E LORO INTEGRALI FUNZIONI CONTINUE A TRATTI E LORO INTEGRALI Considerimo un funzione f : I R, dove I è un intervllo di R. Si c un punto interno I in cui f è discontinu. Diremo che c è un punto di discontinuità di prim

Dettagli

George Boole ( )

George Boole ( ) Mtemtic Alger di Boole Cpitolo 5 Ivn Zivko George Boole (1815-1864) Mtemtico inglese del dicinnovesimo secolo, ffrontò in modo originle prolemi di logic. Le sue teorie trovno forte ppliczione un secolo

Dettagli

Si noti che da questa definizione segue che il punto C è il punto medio del segmento PP'. Figura 1

Si noti che da questa definizione segue che il punto C è il punto medio del segmento PP'. Figura 1 APITOLO 3 LE SIMMETRIE 3. Richimi di teori Definizione. Si dto un punto del pino; si chim simmetri centrle di centro (che si indic con il simbolo s ) l corrispondenz dl pino in sé che d ogni punto P del

Dettagli

Note del corso di Laboratorio di Programmazione e Calcolo: Integrazione numerica

Note del corso di Laboratorio di Programmazione e Calcolo: Integrazione numerica Corso di lure in Mtemtic SAPIENZA Università di Rom Note del corso di Lbortorio di Progrmmzione e Clcolo: Integrzione numeric Diprtimento di Mtemtic Guido Cstelnuovo SAPIENZA Università di Rom Indice Cpitolo

Dettagli

APPENDICE B. Sintesi Modulare (Modular Synthesis)

APPENDICE B. Sintesi Modulare (Modular Synthesis) APPENDICE B Sintesi Modulre (Modulr Synthesis) Nell modellizzzione di un impinto complesso, è opportuno costruire il modello trmite modelli componenti di minore complessità, identificti nell impinto fisico.

Dettagli

Il calcolo letterale

Il calcolo letterale Il clcolo letterle Finor imo studito gli insiemi numerici espressioni numeriche. Ν, Ζ, Q, R ed operto con numeri In mtemtic però è molto importnte sper operre con le lettere e sviluppre le regole di quello

Dettagli

Il calcolo letterale

Il calcolo letterale Appunti di Mtemtic Il clcolo letterle Finor imo studito gli insiemi numerici espressioni numeriche. Ν, Ζ, Q, R ed operto con numeri In mtemtic però è molto importnte sper operre con le lettere e sviluppre

Dettagli

INTEGRAL IMPROPRI. C.d.L in Fisica Lecce, a.a. 2011/ Le definizioni... pag Criteri di integrabilità... pag Esercizi... pag.

INTEGRAL IMPROPRI. C.d.L in Fisica Lecce, a.a. 2011/ Le definizioni... pag Criteri di integrabilità... pag Esercizi... pag. INTEGRAL IMPROPRI (Cosimo De Mitri). Le definizioni... pg.. Criteri di integrbilità... pg. 6 3. Esercizi... pg. C.d.L in Fisic Lecce,.. / INTEGRALI IMPROPRI (C. De Mitri). Le definizioni I concetti di

Dettagli

SOLUZIONE PROBLEMA 1. Punto 1 Osserviamo anzitutto che la funzione

SOLUZIONE PROBLEMA 1. Punto 1 Osserviamo anzitutto che la funzione SOLUZIONE PROBLEMA 1 Punto 1 Osservimo nzitutto che l funzione g(x) = (x b)e,-,. è continu e derivbile in R in qunto composizione di funzioni continue e derivbili. Per discutere l presenz di punti di mssimo

Dettagli

LINGUAGGI FORMALI Esercizi

LINGUAGGI FORMALI Esercizi LINGUAGGI FORMALI Esercizi PPPPPP Nicol Fnizzi LINGUAGGI DI PROGRAMMAZIONE Corso di Informtic T.P.S. Diprtimento di Informtic Università di Bri Aldo Moro [2014/01/28-13:30:23] [ 2 / 14 ] Indice 1 Introduzione

Dettagli

Esercizi svolti Limiti. Prof. Chirizzi Marco.

Esercizi svolti Limiti. Prof. Chirizzi Marco. Cpitolo II Limiti delle funzioni di un vribile Esercizi svolti Limiti Prof. Chirizzi rco www.elettrone.ltervist.org 1) Verificre che risult: = Dobbimo provre che per ogni ε positivo, rbitrrimente piccolo,

Dettagli

Problemi 24/11/ ) = n=

Problemi 24/11/ ) = n= Problemi /11/006 Problem 1 Clcolre l somm dei primi n numeri nturli elevti l cubo: Si di l rispost in funzione di n 1 3 + 3 + 3 3 + + n 3 k 3 Problem Semplificre il prodotto 1 + 1 ) 1 + 1 ) 1 + 1 ) 1 +

Dettagli

a cura di Luca Cabibbo e Walter Didimo

a cura di Luca Cabibbo e Walter Didimo cur di Luc Cbibbo e Wlter Didimo Esercizi di Informtic teoric - Luc Cbibbo e Wlter Didimo 1 richimi teorici sulle grmmtiche di Chomsky esercizi vri esercizi su grmmtiche ed espressioni regolri esercizi

Dettagli

Integrali su intervalli illimitati Criteri di convergenza 1 Integrali di funzioni non limitate Criteri di convergenza 2 Altri integrali impropri

Integrali su intervalli illimitati Criteri di convergenza 1 Integrali di funzioni non limitate Criteri di convergenza 2 Altri integrali impropri Clcolo integrle Integrli su intervlli illimitti Criteri di convergenz Integrli di funzioni non limitte Criteri di convergenz 2 Altri integrli impropri 2 2006 Politecnico di Torino Definizione Considerimo

Dettagli

Il lavoro di una forza

Il lavoro di una forza Il lvoro di un forz Definizione Nello svolgimento che segue, ci limiteremo lvorre in due dimensioni, su un pino. L grn prte dei risultti che troveremo potrà essere estes immeditmente e senz difficoltà

Dettagli

Unità Didattica N 3 Le inequazioni. Unità Didattica N 3 Le inequazioni

Unità Didattica N 3 Le inequazioni. Unità Didattica N 3 Le inequazioni 9 ) Proprietà delle disuguglinze fr numeri reli reltivi ) Inequzioni e loro proprietà ) Inequzioni rzionli intere di primo grdo d un incognit 4) Segno del trinomio di secondo grdo : T = c 5) Inequzioni

Dettagli

Osserviamo che per trovare le costanti A e B possiamo anche ragionare così: se moltiplichiamo l equazione x + 1 (x + 2)(x + 3) = A.

Osserviamo che per trovare le costanti A e B possiamo anche ragionare così: se moltiplichiamo l equazione x + 1 (x + 2)(x + 3) = A. 88 Roberto Turso - Anlisi 2 Osservimo che per trovre le costnti A e B possimo nche rgionre così: se moltiplichimo l equzione + ( + 2)( + 3) = A + 2 + B + 3 per + 2, dopo ver semplificto, ottenimo + + 3

Dettagli

(da dimostrare); (da dimostrare).

(da dimostrare); (da dimostrare). Proprietà delle trsposte Sino, K m,n e si K, llor vlgono le seguenti relzioni: 1) ( )= 2) (+)= + 3) ()= (d dimostrre); (d dimostrre). (dimostrt di seguito); DIM. 2): Devo dimostrre che l mtrice ugule ll

Dettagli

Esercizi di Informatica Teorica

Esercizi di Informatica Teorica 6-myhill-nerode- Esercizi di Informtic Teoric Linguggi regolri: espressioni regolri e grmmtiche, proprietà decidiili e teorem di Myhill-Nerode Teorem di Myhill-Nerode richimi teorem si L un linguggio sull

Dettagli

Appunti di Matematica 1 - I polinomi - Polinomi. I vari monomi che compongono il polinomio si chiamano termini del polinomio.

Appunti di Matematica 1 - I polinomi - Polinomi. I vari monomi che compongono il polinomio si chiamano termini del polinomio. ppunti di Mtemtic Polinomi Un polinomio è un somm lgebric di monomi. Esempio: b ; y y ; b c sono polinomi. I vri monomi che compongono il polinomio si chimno termini del polinomio. Un monomio può nche

Dettagli

Richiami sui vettori. A.1 Segmenti orientati e vettori

Richiami sui vettori. A.1 Segmenti orientati e vettori A Richimi sui vettori Richimimo lcune definizioni e proprietà dei vettori, senz ssolutmente pretendere di drne un trttzione mtemticmente complet. Lvoreremo sempre in uno spzio crtesino (euclideo) tre dimensioni,

Dettagli

Integrali definiti (nel senso di Riemann)

Integrali definiti (nel senso di Riemann) Integrli definiti (nel senso di Riemnn) Problem: cos è l re di un figur pin? come clcolrl? Grficmente concetto intuitivo ed evidente. Tecnicmente ci sono definizioni e formule d hoc per le figure elementri.

Dettagli

Capitolo 5. Integrali. 5.1 Integrali di funzioni a gradinata

Capitolo 5. Integrali. 5.1 Integrali di funzioni a gradinata Cpitolo 5 Integrli 5.1 Integrli di funzioni grdint Un concetto molto semplice m di fondmentle importnz per l trttzione dell integrle di Riemnn è quello di divisione di un intervllo [, b]. In sostnz si

Dettagli

1 Integrale delle funzioni a scala

1 Integrale delle funzioni a scala INTEGRALE DELLE FUNZIONI DI UNA VARIABILE Teori di Riemnn 1 Integrle delle funzioni scl (1.1) Definizione Si dice suddivisione di un intervllo chiuso e limitto [, b] un sottoinsieme {,..., n } di [, b]

Dettagli

Corso di Modelli Matematici in Biologia Esame del 22 Gennaio 2018

Corso di Modelli Matematici in Biologia Esame del 22 Gennaio 2018 Corso di Modelli Mtemtici in Biologi Esme del Gennio 08 Scrivere chirmente in test ll elborto: Nome Cognome numero di mtricol Risolvere tutti gli esercizi Tempo disposizione: DUE ORE E MEZZA Non e consentito

Dettagli

Sistemi di equazioni algebriche lineari. Una equazione algebrica lineare in n incognite si presenta nella forma:...

Sistemi di equazioni algebriche lineari. Una equazione algebrica lineare in n incognite si presenta nella forma:... Sistemi di equzioni lgebriche lineri Un equzione lgebric linere in n incognite si present nell form: 1 1+ 2 2 +... + n n = b dove ( 1, 2,... n ) rppresentno le incognite, 1, 2,... n sono i coefficienti

Dettagli

Equazioni 1 grado. Definizioni Classificazione Risoluzione Esercizi

Equazioni 1 grado. Definizioni Classificazione Risoluzione Esercizi Equzioni grdo Definizioni Clssificzione Risoluzione Esercizi Mteri: Mtemtic Autore: Mrio De Leo Definizioni Prendimo in esme le due espressioni numeriche 8 entrmbe sono uguli 7, e l scrittur si chim uguglinz

Dettagli

Funzioni razionali fratte

Funzioni razionali fratte Funzioni rzionli frtte Per illustrre l medizione che AlNuSet fornisce per lo studio delle funzioni rzionli frtte, inizimo con il considerre l funzione f ( ) l vrire del prmetro. L su rppresentzione nell

Dettagli

Integrali de niti. Il problema del calcolo di aree ci porterà alla de nizione di integrale de nito.

Integrali de niti. Il problema del calcolo di aree ci porterà alla de nizione di integrale de nito. Integrli de niti. Il problem di clcolre l re di un regione pin delimitt d gr ci di funzioni si può risolvere usndo l integrle de nito. L integrle de nito st l problem del clcolo di ree come l equzione

Dettagli

CALCOLO NUMERICO. Francesca Mazzia. Integrazione. Dipartimento Interuniversitario di Matematica. Università di Bari

CALCOLO NUMERICO. Francesca Mazzia. Integrazione. Dipartimento Interuniversitario di Matematica. Università di Bari CALCOLO NUMERICO Frncesc Mzzi Diprtimento Interuniversitrio di Mtemtic Università di Bri Integrzione 1 Integrzione Problem: pprossimre integrli definiti del tipo: f(x)dx, Sceglimo n + 1 punti nell intervllo

Dettagli

Strumenti Matematici per la Fisica

Strumenti Matematici per la Fisica Strumenti Mtemtici per l Fisic Strumenti Mtemtici per l Fisic Approssimzioni Notzione scientific (o esponenzile) Ordine di Grndezz Sistem Metrico Decimle Equivlenze Proporzioni e Percentuli Relzioni fr

Dettagli

Lezioni di Ricerca Operativa. Corso di Laurea in Informatica ed Informatica Applicata. Università di Salerno. Lezione n 3

Lezioni di Ricerca Operativa. Corso di Laurea in Informatica ed Informatica Applicata. Università di Salerno. Lezione n 3 Lezioni di Ricerc Opertiv Corso di Lure in Informtic ed Informtic pplict Richimi di lgebr vettorile: - Mtrici ed Operzioni tr mtrici - Invers di un mtrice Lezione n - Risoluzione di un sistem di equzioni

Dettagli

Appunti di Matematica 1 - Numeri razionali - I numeri razionali. Le frazioni

Appunti di Matematica 1 - Numeri razionali - I numeri razionali. Le frazioni Appunti di Mtemtic I numeri rzionli Le frzioni Definimo un frzione come il rpporto di due numeri interi cioè n n, d Ζ con d 0 d in cui il numero scritto sopr ll line di frzione viene chimto numertore e

Dettagli

Esercizi. q a b s s Tabella delle transizioni di D 0

Esercizi. q a b s s Tabella delle transizioni di D 0 Esercizi E1. Considerimo l AFD D 0 su Σ = {, } l cui tell delle trnsizioni è qui di seguito riportt. q s s 1 1 2 3 2 2 3 3 3 3 Tell delle trnsizioni di D 0 Lo stto di prtenz di D 0 è s mentre gli stti

Dettagli

Unità 3 Metodi particolari per il calcolo di reti

Unità 3 Metodi particolari per il calcolo di reti Unità 3 Metodi prticolri per il clcolo di reti 1 Cos c è nell unità Metodi prticolri per il clcolo di reti con un solo genertore Prtitore di tensione Prtitore di corrente Metodi di clcolo di reti con più

Dettagli

Lezione 1 Insiemi e numeri

Lezione 1 Insiemi e numeri Lezione Insiemi e numeri. Nozione di insieme, sottoinsieme, pprtenenz Con l prol insieme intendimo un collezione di oggetti detti suoi elementi. Ogni insieme è denotto con lettere miuscole e i suoi elementi

Dettagli

Integrali impropri di funzioni di una variabile

Integrali impropri di funzioni di una variabile Integrli impropri di funzioni di un vribile. Le funzioni continue Considerimo nel seguito un delle piú importnti ppliczioni del teorem di uniforme continuitá delle funzioni continue su intervlli chiusi

Dettagli