Esercizi: Macchine di Turing
|
|
|
- Elisa Nicoletti
- 8 anni fa
- Visualizzazioni
Transcript
1 Informatica Teorica 2016/2017 M.Di Ianni Esercizi: Macchine di Turing 1 Problemi Problema 2.1: Sia L l insieme delle stringhe s = x 1 x 2...x n di lunghezza pari e tali che: x i {a,b}, per i = 1,...,n/2; x i {c,d}, per i = n/2 + 1,...,n; x i = a x n i+1 = c, per i = 1,...,n/2; x i = b x n i+1 = d, per i = 1,...,n/2. Esempio. Le stringhe abacdc e aabbddcc appartengono a L, mentre le stringhe abadc e aabbadddcc non appartengono a L. Definire una macchina di Turing deterministica che riconosca L. Problema 2.2: Sia k un valore costante (ad esempio, k = 5). Scegliere opportunamente un modello di macchina di Turing e progettare una macchina rispondente alle caratteristiche di tale modello che, ricevendo in input k parole binarie p 1 = x 11 x12...x 1n, p 2 = x 21 x22...x 2n,..., p k = x k1 xk2...x kn, tutte aventi la stessa lunghezza n (non costante), esegue su tali parole il controllo di parità orizzontale e verticale, ossia, calcola le due parole o e v definite come segue: o = o 1 o 2...o k, dove, per ogni i = 1,...,k o i = 1 se p i contiene un numero dispari di 1, o i = 0 altrimenti (controllo orizzontale); v = v 1 v 2...v n, dove, per ogni i = 1,...,n v i = 1 se la parola x 1i x2i...x ki contiene un numero dispari di 1, v i = 0 altrimenti (controllo verticale). Problema 2.3: Progettare una macchina di Turing che calcoli le due funzioni f : N N N e g : N N N di seguito descritte: f (n,k) = n k ; g(n,k) = n con k > 0. k Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 1
2 Problema 2.4: Siano Σ = {a,b} e L = {a n b 2n : n N} ove, ricordiamo, a n è la parola costituita dalla concatenazione di n caratteri a. Progettare una macchina di Turing che decide L. Problema 2.5: Sia T Σ una macchina di Turing definita sull alfabeto Σ = {a,b,c,d}. Derivare da T Σ una macchina T B, equivalente a T Σ, che opera sull alfabeto B = {0,1}. Nota: non viene richiesta la prova formale di equivalenza delle due macchine, è sufficiente limitarsi ad osservazioni intuitive. Problema 2.6: Sia k N una costante, e sia NT k una macchina di Turing non deterministica con grado di non determinismo pari a k. Definire una macchina di Turing non deterministica NT 2 con grado di non determinismo pari a 2 che sia equivalente a NT k. Problema 2.7: Sia T una macchina di Turing di tipo riconoscitore, ad un nastro, definita sull alfabeto {0, 1}. Definire una nuova macchina T 0, a due nastri e definita su un alfabeto opportunamente introdotto, che utilizza i soli stati interni q 0, q A e q R e che è equivalente a T. Suggerimento: utilizzare il secondo nastro di T 0 per memorizzare lo stato interno in cui si trova T. Problema 2.8: Sia Σ = {0,1,2,3,4,5,6,7,8,9} e sia x = x 1 x 2...x n una parola in Σ. Si consideri una caccia al tesoro in cui il tesoro, rappresentato dal numero intero 0, può esistere o meno e in cui la parola x contiene la catena di indizi che portano a scoprire il tesoro, se esiste, o a concludere che il tesoro non esiste nel caso contrario. In particolare il primo carattere x 1 di x (un intero compreso fra 0 e 9 oppure un ) è il primo indizio: se x 1 = 0 allora il tesoro è stato trovato, se x 1 = allora il tesoro non esiste, altrimenti il prossimo indizio della caccia al tesoro è nella posizione 1 + x 1 della parola x (ossia, il prossimo indizio è il carattere x 1+x1 ); in generale, se dopo un certo numero di passi non è ancora stato trovato il tesoro e non si è capito che esso non esiste, e, dunque, si è arrivati a leggere il carattere x i, allora: se x i = 0 allora il tesoro è stato trovato, se x i = allora il tesoro non esiste, altrimenti il prossimo indizio della caccia al tesoro è nella posizione i+x i della parola x (ossia, il prossimo indizio è il carattere x i+xi ). Si chiede, dunque, di progettare una macchina di Turing che, con input x Σ, decide se, in accordo alle regole appena descritte, x contiene il tesoro. Problema 2.9: Sia Σ = {a,b,c,d}. Si consideri la macchina di Turing T definita sull alfabeto Σ descritta dal seguente insieme di quintuple: q 0,a,a,q 1,d q 0,x,x,q R, f x Σ { } {a} q 1,b,b,q 2,d q 1,x,x,q R, f x Σ { } {b} q 2,x,x,q 2,d x Σ { } q 2,,,q 3,s q 3,d,d,q 4,s q 3,x,x,q R, f x Σ { } {d} q 4,c,c,q A, f q 4,x,x,q R, f x Σ { } {c}, dove q 0, q A e q R sono, rispettivamente gli stati iniziale, di accettazione e di rigetto di T. Dopo aver definito il linguaggio L Σ deciso da T, si trasformi T in una macchina T definita sull alfabeto {0,1} equivalente a T. Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 2
3 2 Soluzioni Soluzione del problema 2.1 Sia s = x 1 x 2...x n {a,b,c,d} n e σ(s) = y 1 y 2...y n {0,1} n la stringa binaria associata ad s secondo le regole seguenti: y i = 0 x i = a x i = c, per 1 i n; y i = 1 x i = b x i = d, per 1 i n. Segue dalle definizioni di L e di σ(s) che s L se e soltanto se σ(s) è una stringa palindroma. Pertanto, la macchina di Turing richiesta è una banale modifica di quella vista a lezione per il linguaggio PALINDROMIA: T è definita sull alfabeto {a,b,c,d, } ( è il carattere blank) e sull insieme degli stati Q = {q 0,q a,q b,q c,q d,q ind,q acc,q rig } in cui q 0 è lo stato iniziale, q acc lo stato finale di accettazione e q rig lo stato finale di rigetto. L insieme delle quintuple di T è il seguente (per chiarezza di notazione, indichiamo con dx e sx, rispettivamente, lo spostamento a destra e a sinistra della testina) 1. q 0,a,,q a,dx ; 2. q a,a,a,q a,dx, q a,b,b,q a,dx, q a,c,c,q a,dx, q a,d,d,q a,dx ; 3. q a,,,q c,sx ; 4. q c,c,,q ind,sx ; 5. q c,a,a,q rig, f, q c,b,b,q rig, f, q c,d,d,q rig, f, q c,,,q rig, f ; 6. q 0,b,,q d,dx ; 7. q b,a,a,q b,dx, q b,b,b,q b,dx, q b,c,c,q b,dx, q b,d,d,q b,dx ; 8. q b,,,q d,sx ; 9. q d,d,,q ind,sx ; 10. q d,a,a,q rig, f, q d,b,b,q rig, f, q d,c,c,q rig, f, q d,,,q rig, f ; 11. q ind,a,a,q ind,sx, q ind,b,b,q ind,sx, q ind,c,c,q ind,sx, q ind,d,d,q ind,sx ; 12. q ind,,,q 0,dx ; 13. q 0,,,q acc, f. Soluzione del problema 2.2 Viene utilizzata una macchina di Turing a k + 2 nastri a testine indipendenti: i primi k nastri contengono le k parole p 1, p 2,..., p k, sul nastro k + 1 viene scritta la parola o e sul nastro k + 2 viene scritta la parola v. La macchina opera in due fasi: durante la prima fase calcola la parola v e la scrive sul nastro k + 2, durante la seconda fase calcola la parola o e la scrive sul nastro k + 1. Inizialmente, i primi k nastri contengono l input, scritti a partire dalle cella di indica 0, la macchina si trova nello stato iniziale q 0 e le testine sono posizionate sulle celle di indice 0 dei rispettivi nastri. Descriviamo la prima fase, che utilizza gli stati q 0, q v0 2, qv1 2, qv0 3, qv1 3,..., qv0 k, qv1 k e q o 1. Nello stato q 0, se la testina del primo nastro legge 0 allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q v0 2 e Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 3
4 (soltanto) la testina del nastro 1 si muove a destra; se la testina del primo nastro legge 1 allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q v1 2 e (soltanto) la testina del nastro 1 si muove a destra: x 2,...,x k q 0,(0,x 2,...x k,, ),(0,x 2,...x k,, ),q v0 2,(d, f,..., f ) q 0,(1,x 2,...x k,, ),(1,x 2,...x k,, ),q v1 2,(d, f,..., f ). Poi, in generale, per i = 2,...,k 1: Infine, nello stato q v0 i, se la testina del nastro i legge 0 allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q v0 i+1 e (soltanto) la testina del nastro i si muove a destra; se la testina del nastro i legge 1 allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q v1 i+1 e (soltanto) la testina del nastro i si muove a destra; nello stato q v1 i, se la testina del nastro i legge 0 allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q v1 i+1 e (soltanto) la testina del nastro i muove a destra; se la testina del nastro i legge 1 allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q v0 i+1 e (soltanto) la testina del nastro i si muove a destra. nello stato q v0 k, se la testina del nastro k legge 0, allora tutte le testine tranne la k +2 riscrivono quello che hanno letto, la testina k + 2 scrive 0, la macchina entra nello stato q 0 e (soltanto) la testina del nastro k + 2 si muove a destra; se la testina del nastro k legge 1 allora tutte le testine tranne la k + 2 riscrivono quello che hanno letto, la testina k + 2 scrive 1, la macchina entra nello stato q 0 e (soltanto) la testina del nastro k + 2 si muove a destra; nello stato q v1 k, se la testina del nastro k legge 0, allora tutte le testine tranne la k +2 riscrivono quello che hanno letto, la testina k + 2 scrive 1, la macchina entra nello stato q 0 e (soltanto) la testina del nastro k + 2 si muove a destra; se la testina del nastro k legge 1 allora tutte le testine tranne la k + 2 riscrivono quello che hanno letto, la testina k + 2 scrive 0, la macchina entra nello stato q 0 e (soltanto) la testina del nastro k + 2 si muove a destra. La prima fase termina quando, nello stato q 0 la testina del nastro 1 legge : in questo caso, tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q 1 e le testine dei nastri 1,..., k si muovono a sinistra. La seconda fase utilizza gli stati q o 1, qo0 parola o, per i = 1,...,k: 1, qo1 1,..., qo k, qo0 k, qo1 k, qo k+1. Negli stati qo i, qo0 i, q o1 i viene calcolato il bit o i della nello stato q o i, se la testina del nastro i legge 0, allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q o0 i e (soltanto) la testina del nastro i si muove a sinistra; se la testina del nastro i legge 1, allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q o1 i e (soltanto) la testina del nastro i si muove a sinistra; nello stato q o0 i, se la testina del nastro i legge 0, allora tutte le testine riscrivono quello che hanno letto, la macchina rimane nello stato q o0 i e (soltanto) la testina del nastro i si muove a sinistra; se la testina del nastro i legge 1, allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q o1 i e (soltanto) la testina del nastro i si muove a sinistra; se la testina del nastro i legge allora tutte le testine tranne la k + 1 riscrivono quello che hanno letto, la testina k+1 scrive 0, la macchina entra nello stato q o i+1 e (soltanto) la testina del nastro k + 1 si muove a destra; nello stato q o1 i, se la testina del nastro i legge 0, allora tutte le testine riscrivono quello che hanno letto, la macchina rimane nello stato q o1 i e (soltanto) la testina del nastro i si muove a sinistra; se la testina del nastro i legge 1, allora tutte le testine riscrivono quello che hanno letto, la macchina entra nello stato q o0 i e (soltanto) la testina del nastro i si muove a sinistra; se la testina del nastro i legge allora tutte le testine tranne la k + 1 riscrivono quello che hanno letto, la testina k+1 scrive 1, la macchina entra nello stato q o i+1 e (soltanto) la testina del nastro k + 1 si muove a destra. Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 4
5 La parola o è stata calcolata e lo stato q o k+1 è lo stato finale. Soluzione del problema 2.3 Definiamo una macchina di Turing T a 4 nastri (a testine indipendenti) che calcola simultaneamente n k e n k come di seguito descritto: il nastro N 1 contiene l input n ed il nastro N 2 contiene l input k, ivi memorizzati in unario all inizio della computazione, preceduti e seguiti da ; il nastro N 3 è il nastro di lavoro e di output per la funzione n k, inizialmente vuoto, sul quale, al termine della computazione, si troverà il valore n k ; il nastro N 4 è il nastro di lavoro e di output per la funzione n k, inizialmente vuoto, sul quale, al termine della computazione, si troverà il valore n k. T utilizza gli stati q 0 (stato iniziale), q 1, q 2 e lo stato finale q F : q 0 (oltre ad essere stato iniziale) indica che sul nastro N 1 è stato letto un numero di 1 pari ad un multiplo di k, q 1 indica che sul nastro N 1 è stato letto un numero di 1 pari ad un multiplo di k più qualche ulteriore 1 (in numero inferiore a k), e q 2 indica che la scansione del nastro 2 è terminata avendo letto per ciascun 1 sul nastro N 2 un corrispondente 1 sul nastro N 1 (ossia, se la macchina entra per la h-esima volta nello stato q 2, allora n vale almeno hk) ed occorre riposizionare la testina di N 2 sul simbolo 1 più a sinistra. Il valore n k viene calcolato scrivendo un 1 sul nastro N 3 ogni volta che, nello stato q 0, viene letto un 1 sul nastro N 1 : questo significa che n è almeno un multiplo di k (perché la macchina è nello stato q 0 ) più 1 (perché viene letto un 1). Così, se n = hk + m, con m < k, al termine della scansione dell input, risultano scritti sul nastro N 3 h 1 più un eventuale ulteriore 1 se m > 0. Analogamente, il valore n k viene calcolato scrivendo un 1 sul nastro N 4 ogni volta che la macchina entra nello stato q 2 : questo significa che n è almeno un multiplo di k. Così, se n = hk + m, con m < k, al termine della scansione dell input, risultano scritti sul nastro N 4 h 1. Formalmente, le quintuple utilizzate sono: q 0,(1,1,, ),(1,1,1, ),q 1,(d,d,d, f ) q 0,(,1,, ),(,1,, ),q F,( f, f, f, f ) q 1,(1,1,, ),(1,1,, ),q 1,(d,d, f, f ) q 1,(1,,, ),(1,,,1),q 2,( f,s, f,d) q 1,(,1,, ),(,,, ),q F,( f, f, f, f ) q 1,(,,, ),(,,,1),q F,( f, f, f, f ) q 2,(1,1,, ),(1,1,, ),q 2,( f,s, f, f ) q 2,(1,,, ),(1,,, ),q 0,( f,d, f, f ) Soluzione del problema 2.4 La macchina T che decide L opera come di seguito descritto. Nello stato q 0, T legge il simbolo nella cella scandita dalla testina e, se tale simbolo è a, lo cancella, entra nello stato q a, raggiunge la fine della parola e, se gli ultimi due caratteri sono una coppia di b, li cancella e torna all inizio della parola. Se invece la parola termina con qualcosa di diverso, T entra nello stato di rigetto q R. Analogamente, se nello stato q 0 T legge b allora entra nello stato q R. Se, infine, nello stato q 0 T legge allora entra nello stato di accettazione q A (in quanto la parola input è la parola vuota, che appartiene ad L, oppure tutti i suoi caratteri sono stati cancellati). Formalmente, T è definita dalle quintuple Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 5
6 seguenti: q 0,a,,q a,destra q 0,b,b,q R, f ermo q 0,,,q A, f ermo (2.1) q a,a,a,q a,destra q a,b,b,q ab,destra q a,,,q R, f ermo (2.2) q ab,a,a,q R, f ermo q ab,b,b,q ab,destra q ab,,,q b,sinistra (2.3) q b,b,,q b1,sinistra gli altri casi non sono possibili (2.4) q b1,a,a,q R, f ermo q b1,b,,q 1,sinistra q b1,,,q R, f ermo (2.5) q 1,a,a,q 1,sinistra q 1,b,b,q 1,sinistra q 1,,,q 0,destra (2.6) Soluzione del problema 2.5 Data l equivalenza fra macchine di Turing ad un nastro e macchine di Turing che utilizzano più nastri, senza perdita di generalità possiamo assumere che T Σ sia una macchina ad un nastro. Innanzi tutto, fissiamo una codifica ρ : {a,b,c,d, } {0,1, } 2 dei simboli dell alfabeto di lavoro Σ di T Σ nell alfabeto di lavoro B di T B : scegliamo ρ(a) = 00 ρ(b) = 01 ρ(c) = 10 ρ(d) = 11 ρ( ) =. Codifichiamo, inoltre ogni simbolo eventualmente presente, o che scriveremo, all interno della stringa input di T Σ mediante una coppia di caratteri : ossia, il blank viene rappresentato in T B nella forma. Ciò premesso, presentiamo due soluzioni differenti al problema in questione, la prima delle quali definisce una macchina T B a due nastri a testine solidali, la seconda una macchina ad un solo nastro. Soluzione 1. La macchina T B proposta in questa soluzione è dotata di due nastri, N 1 ed N 2 sui quali vengono scritti, rispettivamente, il primo simbolo e il secondo simbolo della codifica binaria sopra descritta degli elementi di Σ { } che costituiscono l input: ad esempio, se l i-esimo carattere dell input di T Σ è il carattere c (ossia, la cella i-esima del nastro di T Σ al tempo t = 0 contiene il carattere c ), allora nella cella N 1 [i] viene scritto il simbolo 1 e nella cella N 2 [i] viene scritto il simbolo 0. Assumiamo, quindi, che, all istante iniziale, la codifica dell input di T Σ sia scritta sui due nastri di T B in accordo alla regola appena descritta. Mostriamo, ora, come derivare le quintuple di T B da quelle di T Σ ; cominciamo con l osservare che, per costruzione, se all istante iniziale la testina di T Σ legge un carattere σ Σ allora, all istante iniziale, le due testine di T B leggono i due bit b 1 (σ) e b 2 (σ) corrispondenti alla codifica di σ. Allora, per ogni quintupla di T Σ del tipo q 0,σ,τ,q 2,m, la macchina T B contiene la quintupla q 0,(b 1 (σ),b 2 (σ)),(b 1 (τ),b 2 (τ)),q 2,m. Intuitivamente, l osservazione appena fatta può essere generalizzata (la dimostrazione formale è non richiesta): se all istante t la testina di T Σ legge un carattere σ Σ allora, all istante t, le due testine di T B leggono i due bit b 1 (σ) e b 2 (σ) corrispondenti alla codifica di σ. Allora, per ogni quintupla di T Σ del tipo q 1,σ,τ,q 2,m, la macchina T B contiene la quintupla q 1,(b 1 (σ),b 2 (σ)),(b 1 (τ),b 2 (τ)),q 2,m. Soluzione 2. La macchina T B proposta in questa soluzione è dotata di un solo nastro sul quale viene scritta inizialmente la codifica binaria dell input di T Σ. Consideriamo, ora, una quintupla q 1,s 1,s 2,q 2,m di T Σ, con s 1 Σ e s 2 Σ { }, e trasformiamola in una serie di quintuple di T B. Mostriamo questa trasformazione nel caso particolare in cui s 1 = a, s 2 = b e m = S (gli altri casi sono analoghi, ricordando che il simbolo di T Σ è codificato in T B mediante ): q 1,0,0,q 0 1,D, q0 1,0,1,q0 2,S, q0 2,0,0,qsin,1 2,S, x {0,1} q sin,1 2,x,x,q 2,S Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 6
7 La prima quintupla sopra, a partire dallo stato q 1 verifica che il carattere letto possa essere il primo caratere della codifica di a: se questo è vero, entra nello stato q 0 1 (che tiene traccia dello stato di partenza q 1 e del carattere letto 0) e si muove a destra per controllare se il carattere successivo è proprio il secondo carattere della codifica di a; in tal caso, la seconda quintupla sopra inizia l esecuzione della quintupla q 1,s 1,s 2,q 2,m di T Σ scrivendo il secondo carattere di b (1), entrando nello stato q 0 2 (che tiene traccia del primo carattere di b che deve essere scritto nella cella immediatamente a sinistra e dello stato in cui dovrà entrare al termine della esecuzione della quintupla) e muovendosi a sinistra. La terza quintupla sopra, scrive il carattere 0 (il primo carattere della codifica di b, specificato all interno dello stato attuale q 0 2 ) e si prepara a spostare la testina a sinistra di due posizioni (perché il movimento della quintupla di T Σ è S) entrando nello stato q sin,1 2 e spostandosi a sinistra. Infine, la quarta quintupla, indipendentemente dal carattere letto, sposta la testina a sinistra ed entra nello stato q 2, predisponendosi a simulare un altra quintupla di T Σ. Consideriamo, infine, una quintupla q 3,,s,q 4,m di T Σ, con s Σ { }, e trasformiamola in una serie di quintuple di T B. Mostriamo questa trasformazione nel caso particolare in cui s 2 = c e m = D (gli altri casi sono analoghi): q 3,,,q 3,D, q 3,,0,q 1 4,S, q 1 4,,1,q des,1 4,D, x {0,1} q des,1 4,x,x,q 4,D La spiegazione di questo ultimo gruppo di quintuple è analoga a quella del gruppo precedente. Per affermare che T B simula T Σ, consideriamo la computazione T Σ (x), per una qualsiasi parola x Σ, e la computazione T B (ρ(x), dove ρ(x) è la codifica di x mediante ρ. Osserviamo, allora, che, per come abbiamo costruito le quintuple di T B, se ad un dato istante t 1 della computazione T Σ (x) 1 viene eseguita la quintupla q 1,s 1,s 2,q 2,m e che all istante t + 1 T Σ si trova nello stato q 2 e la sua testina è posizionata su una cella che contiene il carattere s Σ { }, allora all istante 4t della computazione T B (x) inizia l esecuzione delle quattro quintuple corrispondenti descritte sopra e all istante 4t + 4 T B si trova nello stato q 2 e la sua testina è posizionata su una cella che contiene il primo carattere della codifica di ρ(s) di s. Una dimostrazione formale di quanto affermato sopra richiede un semplice ragionamento induttivo che, comunque, non era necessario ai fini dell esame. Soluzione del problema 2.6 Indichiamo con Σ, con Q k, e con P k, rispettivamente, l alfabeto, l insieme degli stati, e l insieme delle quintuple che definiscono NT k. Poiché NT k è una macchina non deterministica, è possibile che, per qualche x Σ k e per qualche q Q k, P k contenga più di una quintupla i cui primi due elementi siano, rispettivamente, q e x. Indichiamo, dunque, per ogni x Σ k e per ogni q Q k, con P k (q,x) l insieme delle quintuple in P k i cui primi due elementi sono q e x (si osservi che tale insieme può essere vuoto). D altra parte, poiché il grado di non deteminismo di NT k è k, per ogni x Σ k e per ogni q Q k, P k k. Siano, dunque, x Σ e q Q k tali che P k (q,x) = q,x,x 1,q 1,m 1, q,x,x 2,q 2,m 2,... q,x,x h,q h,m h con h > 2 (e, ovviamente, h k). Ricordiamo che il significato dell insieme P k (q,x) di quintuple è il seguente: se la macchina si trova nello stato q e legge sul nastro il simbolo x allora deve eseguire o la quintupla q,x,x 1,q 1,m 1 o la quintupla q,x,x 2,q 2,m 2,... o la quintupla q,x,x h,q h,m h. Per ottenere lo stesso comportamento con una macchina che abbia grado di non determinismo 2, ragioniamo nel modo seguente: se la nuova macchina si trova nello stato q e legge sul nastro il simbolo x allora deve eseguire la quintupla q,x,x 1,q 1,m 1 oppure non deve eseguirla - ossia, deve eseguire un altra quintupla q,x,x,q 1 (x),ferma ; a questo punto, nello stato q 1 (x) e leggendo il simbolo x, deve eseguire la quintupla q 1 (x),x,x 2,q 2,m 2 oppure non deve eseguirla - ossia, deve eseguire un altra quintupla q,x,x,q 2 (x),ferma, e così via. Quanto appena descritto è illustrato in Figura 2.1: la parte (a) mostra il comportamento della macchina NT k quando si trova nello stato interno q e legge sul nastro il simbolo x (e, dunque, esegue una quintupla scelta in P k (q,x)), mentre la parte (b) mostra la sequenza di passi che devono essere eseguiti dalla macchina NT 2 per ottenere un un comportamento equivalente. 1 Assumiamo che la computazione inizi al tempo t = 1. Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 7
8 q,x q,x x 1,q 1,m 1 x 2,q 2,m 2 x h,q h,m h x 1,q 1,m 1 x 2,q 2,m 2 (a) x h 1,q h 1,m h 1 x h,q h,m h (b) Figura 2.1: Un passo non deterministico di grado h > 2 in (a) e gli h 1 passi non deterministici di grado 2 ad esso equivalenti in (b). Lo schema illustrato in Figura 2.1 può essere implementato in linguaggio PascalMinimo. A questo scopo, assumiamo. come di consueto, che lo stato interno della macchina sia memorizzato nella variabile q, il contenuto del nastro nell arrayn, la posizione della testina della variabile intera t e che il movimento della testina sia indicato da un intero in { 1,0,1}. Allora, il passo non deterministico di grado k è implementato nel seguente frammento di codice 1 scegli una quintupla q,n[t],x i,q i,m i nell insieme P k (q,n[t]: 2 N[t] x i ; 3 q q i ; 4 t t + m i ; mentre la sequenza di passi non deterministici di grado 2 è implementato nel seguente frammento di codice 1 i 1; scelta falso; 2 while (i P k (q,n[t] 1) scelta falso) do begin 3 scegli se eseguire la quintupla q,n[t],x i,q i,m i oppure no: 4 if (hai scelto di eseguire la quintupla q,n[t],x i,q i,m i ) then begin 5 N[t] x i ; 6 q q i ; 7 t t + m i ; 8 scelta vero; 8 end; 9 else i i + 1; 9 end; 10 if (scelta falso) then begin 11 N[t] x h ; 12 q q h ; 13 t t + m h ; 14 end. Definiamo, ora, formalmente, la macchina NT 2, il cui alfabeto di lavoro è ancora Σ ed il cui insieme degli stati Q 2 Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 8
9 contiene propriamente Q k. Indichiamo con P 2 l insieme delle quintuple di NT 2 e, per ogni x Σ k e per ogni q Q k, con P 2 (q,x) l insieme delle quintuple in P 2 i cui primi due elementi sono q e x. Se P k (q,x) = q,x,x 1,q 1,m 1, q,x,x 2,q 2,m 2,... q,x,x h,q h,m h e 2 < h k, allora introduciamo l insieme dei nuovi stati interni Q 2 (q,x) = {q 1 (q,x),...,q h 2 (q,x)} e definiamo l insieme P 2 (q,x) come costituito dalle quintuple seguenti: q,x,x 1,q 1,m 1 q,x,x,q 1(q,x),ferma q 1(q,x),x,x 2,q 2,m 2 q 1(q,x),x,x,q 2(q,x),ferma q 2(q,x),x,x 3,q 3,m 3 q 2(q,x),x,x,q 3(q,x),ferma q h 2 (q,x),x,x h 1,q h 1,m h 1 q h 2 (q,x),x,x h,q h,m h.... Se, invece P k (q,x) 2, allora definiamo P 2 (q,x) = P k (q,x) e Q 2 (q,x) = /0. Infine, poniamo P 2 = q Qk x ΣP 2 (q,x). Allora, per costruzione, per ogni q Q k e per ogni x Σ, il numero delle quintuple in P 2 (q,x) che iniziano con la stessa coppia stato-simbolo è al più 2. Infine, sempre per costruzione, Q 2 (q,x) Q 2 (q,x ) = /0 se q q o x x, e questo completa la prova che il grado di non determinismo di NT 2 è 2. Soluzione del problema 2.7 In quanto segue, descriviamo una macchina T 0 a due nastri a testine indipendenti. Poiché, come indicato nel suggerimento, il secondo nastro di T 0 contiene gli stati interni di T,, allora l alfabeto di lavoro di T 0 è {0,1} Q, dove Q è l insieme degli stati di Q. La macchina T 0, non avendo possibilità di cambiare stato (se non quando entra in uno stato finale), deve utilizzare il secondo nastro per tener traccia dei cambiamenti di stato di T, durante le sue computazioni, e per scegliere in base ad essi le quintuple da eseguire. All inizio della computazione, il nastro di T contiene l input x {0,1} e, quindi, corrispondentemente, il nastro 1 di T 0 contiene x e il nastro 2 è vuoto. Quando T esegue la prima quintupla, è possibile che essa cambi stato: in corrispondenza, quando T 0 esegue la prima quintupla, leggendo sul secondo nastro, scrive lo stato di arrivo della corrispondente quintupla di T sul secondo nastro. Formalmente: ad ogni quintupla q 0,a,b,q,m di T (con m {sinistra,fermo,destra e a,b {0,1}) corrisponde in T 0 la quintupla q 0,(a, ),(b,q ),q 0,(m,fermo). Successivamente, il contenuto del secondo nastro di T 0 sarà utilizzato per capire quale quintupla di T eseguire. Quindi, ad ogni quintupla q,a,b,q,m di T corrisponde in T 0 la quintupla q 0,(a,q),(b,q ),q 0,(m,fermo). Infine, quando T 0 legge sul nastro 2 lo stato q a o q R, entra nello stao corrispondente e termina: quindi, anche le seguenti due quintuple fanno parte delle istruzioni di T 0 q 0,(a,q A ),(a,q A ),q A,(fermo,fermo), per ogni a {0,1}. q 0,(a,q R ),(a,q R ),q R,(fermo,fermo), Soluzione del problema 2.8 Ad ogni passo, leggendo il carattere c nella cella scandita dalla testina, la macchina T che decide il problema deve operare come segue: Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 9
10 se c = 0, allora T entra nello stato di accettazione q A e termina; se c =, allora T entra nello stato di rigetto q R e termina; se c è un valore compreso fra 1 e 9, allora T sposta la sua testina a destra di c posizioni. Per eseguire quanto indicato nel terzo punto sopra, dotiamo T, oltre che dello stato iniziale q 0, dello stato di accettazione q A e dello stato di rigetto q R, degli stati q 1, q 2, q 3, q 4, q 5, q 6, q 7, q 8 e q 9 : quando T è nello stato q i, con 1 i 9, indipendentemente da quello che legge la sua testina, sposta la testina a destra di una posizione ed entra nello stato q i 1. Quindi, la macchina T è descritta dalle quintuple seguenti: q 0,0,0,q A, f erma, q 0,,,q R, f erma, q 0,i,i,q i f erma 1 i 9, q i,x,x,q i 1,destra 1 i 9, x {0,1,2,3,4,5,6,7,8,9} { }. Soluzione del problema 2.9 Il linguaggio L(T ), deciso dalla macchina T, è costituito dalle parole in Σ che iniziano con ab e terminano con cd ed è definito formalmente nel modo seguente L(T ) = {abxcd : x Σ }. Definiamo, innanzi tutto, una codifica χ : Σ {0,1} : sia, dunque, χ(a) = 00, χ(b) = 01, χ(c) = 10 e χ(d) = 11. La macchina T 01 definita sull alfabeto {0,1} che decide il linguaggio L(T ) codificato secondo la codifica χ utilizza l insieme di stati Q 01 = {q 0,q 0 (0),q 1,q 1 (0),q 2,q 3,q 3 (1),q 4,q 4 (0),q A,q R }, ove q 0 è lo stato iniziale, ed è descritta dal seguente insieme di quintuple: q 0,0,0,q 0 (0),d q 0,x,x,q R, f x {1, } q 0 (0),0,0,q 1,d q 0 (0),x,x,q R, f x {1, } q 1,0,0,q 1 (0),d q 1,x,x,q R, f x {1, } q 1 (0),1,1,q 2,d q 1 (0),x,x,q R, f x {0, } q 2,x,x,q 2,d x {0,1} q 2,,,q 3,s q 3,1,1,q 3 (1),s q 3,x,x,q R, f x {0, } q 3 (1),1,d,q 4,s q 3 (1),x,x,q R, f x {0, } q 4,0,0,q 4 (0),s q 4,x,x,q R, f x {1, }, q 4 (0),1,1,q A, f q 4 (0),x,x,q R, f x {0, }, Informatica Teorica, 2016/2017 Esercizi: Macchine di Turing 10
Macchina di Turing Universale
Informatica Teorica 2010/2011 M.Di Ianni Macchina di Turing Universale Vogliamo definire una macchina di Turing U che, presi in input la descrizione di una macchina di Turing ad un nastro T ed un input
Macchine di Turing: somma di due numeri
Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore
Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29
Macchine di Turing Francesco Paoli Istituzioni di logica, 2016-17 Francesco Paoli (Istituzioni di logica, 2016-17) Macchine di Turing 1 / 29 Alan M. Turing (1912-1954) Francesco Paoli (Istituzioni di logica,
Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza
Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere
Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd
Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Agenda } Introdurremo } il formalismo delle Macchine di Turing nelle varie versioni } la nozione di calcolabilità e di decidibilità 2 La
Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F
Macchina di Turing Nastro di Input...!!! a b b! b a! testina!!... s r s t q i Unità di Controllo q j Q S / D / F P Definizione Formale Una macchina di Turing deterministica è una sestupla
Principio di composizione delle MT
Principio di composizione delle MT La definizioni date fanno riferimento a situazioni in cui la macchina sia capace di risolvere problemi singoli. E possibile far sì che macchine progettate per problemi
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo
Esercizi di Fondamenti di Informatica per la sicurezza. Stefano Ferrari
Esercizi di Fondamenti di Informatica per la sicurezza tefano Ferrari 23 dicembre 2003 2 Argomento 1 Grammatiche e linguaggi Esercizi Es. 1.1 Definiti i linguaggi: L 1 = {aa, ab, bc, c} L 2 = {1, 22, 31}
Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl
Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare
Fondamenti di informatica Esercizi Svolti Macchine di Turing. Realizzati da: Roberto Quaranta Matr
Fondamenti di informatica Esercizi Svolti Macchine di Turing Realizzati da: Roberto Quaranta Matr. 449028 Macchina di Turing che calcola la funzione Max(x, y) Q= {q 0, q 1, q 2, q 3, q 4, q 5, q 6,q F
Macchine di TURING. Alan Mathison Turing ( )
Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei
Le Macchine di Turing
Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella
Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana /16
Esercizi di Matematica per la prova di ammissione alla Scuola Galileiana - 015/16 Esercizio 1 Per quali valori n Z \ {0} l espressione è un numero intero positivo? (n + 5)(n + 6) 6n Soluzione. Il problema
Esercizio su MT. Svolgimento
Esercizio su MT Definire una macchina di Turing deterministica M a nastro singolo e i concetti di configurazione e di transizione. Sintetizzare una macchina di Turing trasduttore che trasformi un numero
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing
Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo
Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.
Fondamenti di Informatica Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. 2011-2012 Algoritmo L algoritmo è una sequenza finita di istruzioni, mediante le quali un qualunque operatore
Codice Gray. (versione Marzo 2007)
Codice Gray (versione Marzo 27) Data una formula booleana con n variabili, per costruire una tavola di verità per questa formula è necessario generare tutte le combinazioni di valori per le n variabili.
La tesi di Church-Turing
ITLCC 2006/11/12 21:06 page 79 #3 Capitolo 5 La tesi di Church-Turing SOMMARIO Sebbene il concetto di algoritmo abbia avuto una lunga storia nel campo della matematica, il concetto formale di algoritmo
Informatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani ([email protected])
Il concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004
Informatica Teorica Sezione Cremona + Como Appello del 20 Luglio 2004 Coloro che recuperano la I prova risolvano gli esercizi e 2 tra quelli indicati qui sotto entro un ora. Coloro che recuperano la II
Precorsi di matematica
Precorsi di matematica Francesco Dinuzzo 12 settembre 2005 1 Insiemi Il concetto di base nella matematica moderna è l insieme. Un insieme è una collezione di elementi. Gli elementi di un insieme vengono
ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI
ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di
Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
Problemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
Dall algoritmo al programma
Dall algoritmo al programma Il concetto di algoritmo Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione In alcuni casi, lo stesso problema/computazione
Rappresentazione con i diagrammi di flusso (Flow - chart)
Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo
Compito A. Esercizio 1 (13 punti) Minimizzare l automa descritto dalla seguente tabella degli stati
Compito A Esercizio 1 (13 punti) Minimizzare l automa descritto dalla seguente tabella degli stati stato/input x=0 x=1 A B/0 A/0 B C/0 A/0 C B/0 D/1 D B/0 E/0 E B/0 D/1 Esercizio 2. (17 punti) Realizzare
Turing, i nastri e le macchine
Turing, i nastri e le macchine Giochiamo con i nastri Avete a disposizione un nastro diviso in sezioni rettangolari, che chiameremo caselle, ognuna delle quali può essere vuota oppure contenere la lettera
LEZIONE 2. ( ) a 1 x 1 + a 2 x a n x n = b, ove a j, b R sono fissati.
LEZIONE 2 2 Sistemi di equazioni lineari Definizione 2 Un equazione lineare nelle n incognite x, x 2,, x n a coefficienti reali, è un equazione della forma (2 a x + a 2 x 2 + + a n x n = b, ove a j, b
Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD
Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento
Elaborazione dell informazione
Elaborazione dell informazione Primo esempio Ricominciamo dai numeri (45 + 25) è definita rigorosamente Un primo calcolatore (a) Figura 1.1 Configurazione del pallottoliere (a) prima e (b) dopo l esecuzione
Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice
l linguaggio universale Il linguaggio universale L u e l insieme delle stringhe binarie che codificano una coppia (M,w) dove w L(M). Esiste una TM U, detta TM universale, tale che L u = L(U). U ha tre
AUTOMA A STATI FINITI
Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate
2. I numeri reali e le funzioni di variabile reale
. I numeri reali e le funzioni di variabile reale Introduzione Il metodo comunemente usato in Matematica consiste nel precisare senza ambiguità i presupposti, da non cambiare durante l elaborazione dei
Corso di Informatica di Base
Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere
BOOK IN PROGRESS MATEMATICA ALGEBRA PRIMO ANNO TOMO NR. 1
BOOK IN PROGRESS MATEMATICA ALGEBRA PRIMO ANNO TOMO NR. 1 SOMMARIO DEL TOMO 1 CAPITOLO 1: IL LINGUAGGIO DEGLI INSIEMI 1.1 Gli insiemi e la loro rappresentazione pag. 1 1. I sottoinsiemi pag. 6 1.3 Insieme
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE
ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine
NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE
NOTE SULLE FUNZIONI CONVESSE DI UNA VARIABILE REALE ROBERTO GIAMBÒ 1. DEFINIZIONI E PRIME PROPRIETÀ In queste note saranno presentate alcune proprietà principali delle funzioni convesse di una variabile
Linguaggi Regolari e Linguaggi Liberi
Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1
Aniello Murano Automi e Pushdown
Aniello Murano Automi e Pushdown 2 Lezione n. Parole chiave: Automi e PDA Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Calcolabilità, complessità e macchine computazionali
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
ALGEBRA 1 Secondo esonero 15 Giugno 2011 soluzioni
ALGEBRA 1 Secondo esonero 15 Giugno 2011 soluzioni (1) Verificare che l anello quoziente Z 5 [x]/(x 3 2) possiede divisori dello zero, e determinare tutti i suoi ideali non banali. Soluzione: Il polinomio
Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:
Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)
Sviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
Cosa si intende con stato
Il concetto di stato Cosa si intende con stato I una particolare configurazione delle informazioni di una macchina, che in qualche modo memorizza le condizioni in cui si trova, e che cambia nel tempo passando
Algoritmi e Principi dell Informatica
Algoritmi e Principi dell Informatica Appello del 2 Marzo 2015 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2 ore e 30 minuti. Chi deve sostenere solo il modulo di Informatica
Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi
Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare
Note per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
Reti Sequenziali. Reti Sequenziali. Corso di Architetture degli Elaboratori
Reti Sequenziali Reti Sequenziali Corso di Architetture degli Elaboratori Caratteristiche 1 Caratteristiche delle reti sequenziali Reti combinatorie: il valore in uscita è funzione (con il ritardo indotto
ALGEBRA I: SOLUZIONI QUINTA ESERCITAZIONE 9 maggio 2011
ALGEBRA I: SOLUZIONI QUINTA ESERCITAZIONE 9 maggio 2011 Esercizio 1. Usando l algoritmo euclideo delle divisioni successive, calcolare massimo comune divisore e identità di Bézout per le seguenti coppie
DAI NUMERI NATURALI AI NUMERI RAZIONALI
DAI NUMERI NATURALI AI NUMERI RAZIONALI 1. L insieme dei numeri naturali Nel sistema assiomatico ZF, l Assioma dell infinito stabilisce che: Esiste un insieme A, i cui elementi sono insiemi e tale che
Tipologie di macchine di Turing
Tipologie di macchine di Turing - Macchina di Turing standard - Macchina di Turing con un nastro illimitato in una sola direzione - Macchina di Turing multinastro - Macchina di Turing non deterministica
Automa a Stati Finiti (ASF)
Automa a Stati Finiti (ASF) E una prima astrazione di macchina dotata di memoria che esegue algoritmi Introduce il concetto fondamentale di STATO che informalmente può essere definito come una particolare
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 macchine di Turing a nastro singolo macchine di Turing multinastro macchine di Turing trasduttrici
Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi
Algoritmi e Strutture Dati - II modulo Soluzioni degli esercizi Francesco Pasquale 6 maggio 2015 Esercizio 1. Su una strada rettilinea ci sono n case nelle posizioni 0 c 1 < c 2 < < c n. Bisogna installare
Algoritmi e Principi dell Informatica
Algoritmi e Principi dell Informatica Appello del 20 Febbraio 2012 Chi deve sostenere l esame integrato (API) deve svolgere tutti gli esercizi in 2h e 30 Chi deve sostenere solo il modulo di Informatica
Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio
Appunti di informatica Lezione 3 anno accademico 2015-2016 Mario Verdicchio Numeri binari in memoria In un calcolatore, i numeri binari sono tipicamente memorizzati in sequenze di caselle (note anche come
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto
La codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE.
IL TEOREMA FONDAMENTALE DELL ARITMETICA: DIMOSTRAZIONE VELOCE. PH. ELLIA Indice Introduzione 1 1. Divisori di un numero. 1 2. Il Teorema Fondamentale dell Aritmetica. 2 3. L insieme dei numeri primi è
Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd
Fondamenti d Informatica: linguaggi formali Barbara Re, Phd Agenda } Introdurremo } La nozione di linguaggio } Strumenti per definire un linguaggio } Espressioni Regolari 2 Linguaggio } Da un punto di
Grammatiche Parse trees Lezione del 17/10/2012
Fondamenti di Programmazione A.A. 2012-2013 Grammatiche Parse trees Lezione del 17/10/2012 AUTILI MARCO http://www.di.univaq.it/marco.autili/ Riassunto lezione precedente Sintassi vs Semantica Stringhe,
INFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
RISOLUZIONE IN LOGICA PROPOSIZIONALE. Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine
RISOLUZIONE IN LOGICA PROPOSIZIONALE Giovanna D Agostino Dipartimento di Matemaica e Informatica, Università di Udine 1. Risoluzione Definitione 1.1. Un letterale l è una variabile proposizionale (letterale
M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA INSIEMI
M.P. Cavaliere ELEMENTI DI MATEMATICA E LOGICA MATEMATICA DISCRETA INSIEMI Assumiamo come primitivo il concetto di insieme e quello di appartenenza di un elemento a un insieme. La notazione x A indica
Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni [email protected] Programmazione prof. Domenico
RAPPRESENTAZIONE DELLE INFORMAZIONI
RAPPRESENTAZIONE DELLE INFORMAZIONI 1 RAPPRESENTAZIONE DELLE INFORMAZIONI Le informazioni gestite dai sistemi di elaborazione devono essere codificate per poter essere memorizzate, elaborate, scambiate,
Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini
Dispense del corso di Linguaggi di programmazione e laboratorio Linguaggi formali(versione non definitiva con diversi refusi) Francesco Sisini 04 Giugno 2014 Indice 0.1 Automi.................................
Logica proposizionale
Definire un linguaggio formale Logica proposizionale Sandro Zucchi 2013-14 Definiamo un linguaggio formale LP (che appartiene a una classe di linguaggi detti linguaggi della logica proposizionale) Per
Primi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
Richiami di Algebra di Commutazione
LABORATORIO DI ARCHITETTURA DEI CALCOLATORI lezione n Prof. Rosario Cerbone [email protected] http://digilander.libero.it/rosario.cerbone a.a. 6-7 Richiami di Algebra di Commutazione In questa
