Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione
|
|
- Bernadetta Corsi
- 7 anni fa
- Visualizzazioni
Transcript
1 Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l euazione x n + y n = z n ha una soluzione dove x, y e z sono interi. main() { } printf( hello, world\n ); Sappiamo ora che stampa hello, world con l input n = 2, e cicla per sempre su input n > 2. Ci sono voluti 3 anni per provarlo. stampa hello, world. Possiamo sperare di avere un programma che prova la correttezza di programmi? 1 2 Modifichiamo H 1 in modo che prenda P and I come un singolo input. Questo significa che P prende se stesso come input. L ipotetico programma H che testa hello, world Otteniamo il programma H 2 : Supponiamo che H esista. P H 2 yes hello, world I Hello-world tester yes P H no Diamo H 2 come input ad H 2. Modifichiamo il comando di stampa di no di H in hello, world. Otteniamo il programma H 1 H 2 H 2 yes hello, world I P H 1 yes hello, world Se H 2 stampa yes, avrebbe dovuto stampare hello, world. Se H 2 stampa hello, world, avrebbe dovuto stampare yes. 3 4
2 Problemi indecidibili Problemi per cui non c e nessun programma che li possa risolvere. Problema: appartenenza di una stringa ad un linguaggio. Quindi H 2 non puo esistere. Quindi neanche H puo esistere. Quindi il problema affrontato e indecidibile. Il numero di linguaggi diversi su un alfabeto non e numerabile. I programmi (stringhe finite su un alfabeto) sono numerabili: li ordino per lunghezza, e poi lessicograficamente primo programma, secondo programma, ecc. Quindi esistono infinitamente piu linguaggi che programmi. Quindi devono esistere problemi indecidibili (Godel 1931). 5 Riduzioni Dato un problema P 1 indecidibile, dobbiamo scoprire se P 2 e decidibile o no. Supponiamo lo sia. Allora esiste un algoritmo che risponde si se la stringa in input appartiene a P 2, altrimenti risponde no. Supponiamo allora di sapere costruire una stringa di P2 da una stringa di P 1, e una stringa non in P 2 da una stringa non in P 1. Allora abbiamo costruito un algoritmo che decide se una stringa e in P 1 o no, il che e impossibile perche P 1 e indecidibile. Quindi P 2 e indecidibile. 6 La macchina di Turing (Turing, 1936)... Finite control X 2 X i X n X 1 Una TM fa una mossa in funzione del suo stato, e del simbolo sotto la testina di lettura del nastro. In una mossa, una TM 1. cambia stato 2. scrive un simbolo del nastro nella cella sotto la testina 3. muove la testina di una cella verso destra o verso sinistra... 7
3 Una macchina di Turing deterministica e una 7-tupla dove M = (Q,Σ,Γ, δ,,, F), Q e un insieme finito di stati, Σ e un insieme finito di simboli di input, Descrizioni istantanee Una T M cambia configurazione dopo ogni mossa. Usiamo le descrizioni istantanee (ID) per descrivere le configurazioni. Una ID e una stringa della forma Γ e un insieme finito di simboli di nastro, dove X 1 X 2 X i 1 X i X i+1 X n δ e una funzione di transizione da Q Γ a Q Γ {L, R}, 1. e lo stato della TM e lo stato iniziale, Γ e il simbolo blank, e F Q e l isieme di stati finali. 2. X 1 X 2 X n e la porzione non-blank del nastro 3. La testina e sopra il simbolo i-esimo 8 9 Le mosse e il linguaggio di una TM Useremo M per indicare una mossa di M da una configurazione ad un altra. Supponiamo δ(, X i ) = (p, Y, L). Allora X 1 X 2 X i 1 X i X i+1 X n M X 1 X 2 px i 1 Y X i+1 X n Se δ(, X i ) = (p, Y, R), abbiamo Una TM per { n 1 n : n 1} M = ({, 1, 2, 3, 4 }, {,1}, {,1, X, Y, }, δ,,, { 4 }) dove δ e data dalla tabella seguente 1 X Y ( 1, X, R) ( 3, Y, R) 1 ( 1,, R) ( 2, Y, L) ( 1, Y, R) 2 ( 2,, L) (, X, R) ( 2, Y, L) 3 ( 3, Y, R) ( 4,, R) 4 Possiamo rappresentare M con il seguente diagramma di transizione X 1 X 2 X i 1 X i X i+1 X n M X 1 X 2 X i 1 Y px i+1 X n Indichiamo la chiusura riflessiva e transitiva di M con M. Una TM M = (Q,Σ,Γ, δ,,, F) accetta il linguaggio L(M) = {w Σ : w M αpβ, p F, α, β Γ } Start Y / Y / Y Y Y / / / X 1 / Y 1 2 X / / 3 4 Y X Y / / Y 1 11
4 Una TM con output Accettazione per arresto La seguente TM calcola m n = max(m n,) 1 ( 1,, R) ( 5,, R) 1 ( 1,, R) ( 2,1, R) 2 ( 1,1, L) ( 2,1, R) ( 4,, L) 3 ( 3,, L) ( 3,1, L) (,, R) 4 ( 4,, L) ( 4,, L) ( 6,, R) 5 ( 5,, R) ( 5,, R) ( 6,, R) 6 Il diagramma di transizione e Una TM si arresta se entra in uno stato guardando un simbolo di nastro X e non ci sono mosse possibili, cioe δ(, X) non e definita. Se una TM accetta una stringa, possiamo assumere che si arresti (basta rendere indefinito δ(, X) per ogni accettante). Se non accetta, non possiamo fare in modo che si arresti. Start / / 1 / 1 / 1 / / 1 3 / 1 / 1 Linguaggi ricorsivi: esiste una TM che si arresta su ogni stringa (sia accettata che no). 1 / / 5 6 / 4 / Linguaggi ricorsivamente enumerabili: esiste una TM che si arresta se la stringa e accettata. / 1 / / 1 / Problema decidibile: esiste una TM che si arresta sempre Altri modelli di TM Estensioni: piu nastri, non-determinismo. Restrizioni: nastro illimitato solo a destra, diviet di sostituire un simbolo del nastro con, nastro come stack. Tutti i modelli sono euivalenti: accettano i linguaggi ricorsivamente enumerabili (tesi di Church, 1936). TM multinastro Tante testine uanti sono i nastri. All inizio, stato iniziale e input sul primo nastro, con testina all estrema sinistra dell input. Tutti gli altri nastri con celle vuote (), e testine in posizioni ualsiasi. In una mossa: nuovo stato, scrittura su ogni nastro (sotto la testina), mossa a destra o a sinistra per ogni testina (indipendenti)
5 Da TM multinastro a TM mononastro TM M1 con k nastri TM M2 con un nastro con 2k tracce. Ogni cella del nastro di M2 contiene un elemento fatto da 2k elementi dell alfabeto di nastro di M1. k tracce replicano i k nastri di M1, le altre k tracce contengono marcatori che indicano le posizioni delle k testine di M1. In una mossa, M2 simula una mossa di M1: scorre il nastro guardando dove sono i marcatori e legge i simboli corrispondenti nel nastro, poi scrive sopra i marcatori e i simboli e sposta i mascatori a destra o a sinistra. Quindi, le TM multinastro, come uelle mononastro, accettano tutti e soli i linguaggi ricorsivamente enumerabili. 16 Tempo di esecuzione Tempo di esecuzione di TM M su input w: numero di passi che M compie prima di fermarsi. Se non si ferma tempo infinito. Complessita in tempo di M: funzione T(n) che da il massimo tempo su tutti gli input di lunghezza n. Esempi: lineare, polinomiale, esponenziale,... Per simulare n mosse di M1, M2 ha complessita O(n 2 ). 17 TM non deterministiche Dati uno stato e un simbolo di nastro, la funzione di transizione da un insieme di triple: (nuovo stato, simbolo da scrivere, direzione dello spostamento). La TM ne sceglie una. Linguaggio accettato: insieme di stringhe per cui c e una seuenza di mosse che porta ad uno stato finale. TM non deterministiche e TM deterministiche accettano gli stessi linguaggi. TM e computer Da TM a computer: basta avere sempre memoria da aggiungere, per simulare il nastro infinito. Da computer a TM: vari nastri (memoria, contatore istruzione, indirizzo di memoria, file di input, nastro ausiliario), controllo finito per eseguire una istruzione dopo l altra leggendo e scrivendo i nastri. Differenza di tempo tra computer e TM: polinomiale. La TM puo simulare n passi di un computer in O(n 3 ) passi
6 Linguaggi ricorsivamente enumerabili D ora in poi: calcolatore = macchina di Turing L e ricorsivamente enumerabile se L = L(M) per una TM M. M si ferma se accetta una stringa, ma potrebbe non fermarsi se non la accetta. Consideriamo il linguaggio formato dalle coppie (M, w) tali che: M e una TM (cofidicata in binario) con alfabeto {,1} Se uesto problema e indecidibile, allora lo e anche il problema in cui una TM puo avere ualunue alfabeto. Primo passo: codificare una TM come una stringa di e 1. w e una stringa di e 1 M accetta w 2 Codice per una TM Possiamo associare ad ogni stringa binaria w il numero intero 1w, cosi enumeriamo le stringhe: ǫ e la prima stringa, la seconda, 1 la terza, la uarta, 1, la uinta,... Codice per una TM Per rappresentare M = (Q, {,1},Γ, δ, 1,, F } come una stringa binaria, dobbiamo assegnare interi agli stati, simboli di nastro, e direzioni L e R: Ordinamento per lunghezza, con stringhe lunghe uguali ordinate lessicograficamente. Supponiamo che gli stati siano 1, 2,..., r. Stato iniziale 1, stato finale 2. Simbolo w i per la stringa i-esima Vogliamo fare la stessa cosa anche per le TM: vogliamo rappresentare ogni TM come una stringa binaria. Cosi possiamo parlare della i-esima TM M i. Supponiamo che i simboli di nastro siano X 1, X 2,..., X s. Inoltre: = X 1, 1 = X 2, = X 3. L = D 1 e R = D
7 Codice per una TM Per la funzione di transizione: se δ( i, X j ) = ( k, X l, D m ), la codifica e i 1 j 1 k 1 l 1 m (mai due 1 consecutivi). Per un intera TM: codici per tutte le transizioni, separati da 11: C 1 11C C n 1 11C n Esempio: M = ({ 1, 2, 3 }, {,1}, {,1, }, δ, 1,, { 2 }) δ e definita da: δ( 1,1) = ( 3,, R), δ( 3,) = ( 1,1, R), δ( 3,1) = ( 2,, R), δ( 3, ) = ( 3,1, L). Codici per le regole di transizione: Codice per M: Anche altri codici, elencando le transizioni in ordine diverso. 23 Codici e TM Data una TM M, abbiamo associato un intero i: M e la i-esima TM, scritta M i. Molti interi non corrispondono a nessuna TM. Esempio: 111 o 111. Se w i non e un codice valido, allora diciamo che M i e la TM che si arresta subito per ualunue input (un solo stato e nessuna transizione). Quindi L(M i ) =. 24 Il linguaggio di diagonalizzazione Il linguaggio di diagonalizzazione L d e l insieme delle stringhe w i tali che w i L(M i ). Tutte le stringhe w tali che M con codice w non accetta w. Matrice con TM sulle righe e stringhe sulle colonne la diagonale corrisponde a stringhe w i e TM M i. Le stringhe di L d corrispondono agli della diagonale. E possibile che la diagonale complementata sia una riga? No, perche la diagonale complementata e in disaccordo con ogni riga in almeno una posizione. Linguaggi ricorsivi L e ricorsivo se L = L(M) per una TM M tale che: se w L, allora M la accetta (e si arresta) se w L, allora M non la accetta ma si arresta. Problema (dell accettazione di L): decidibile se L e ricorsivo, altrimenti indecidibile. L d non puo essere accettato da nessuna TM
8 Classi di linguaggi ricorsivi = decidibili = M si arresta sempre Proprieta dei linguaggi ricorsivi Teorema 9.3: Se L e ricorsivo, anche L e ricorsivo. ricorsivamente enumerabili = M si arresta se accetta non ricorsivamente enumerabili. Esempio: L d. Prova: Se L e ricorsivo, esiste M che si arresta sempre. Modifichiamo M in M in modo che M accetti uando M non accetta, e viceversa. Anche M si arresta sempre e accetta L. Allora L e ricorsivo. Conseguenza: se L e RE, ma L non e RE, allora L non puo essere ricorsivo L e L Dove possono stare L e L? Proprieta dei linguaggi RE Teorema 9.4: Se L e L sono RE, allora L e ricorsivo. Prova: Sia L = L(M 1 ) e L = L(M 2 ). Costruiamo M che esegue in parallelo (due nastri, due testine) M 1 e M 2. Se l input e in L, M 1 lo accetta e si ferma, uindi anche M accetta e si ferma. Se l input non e in L, allora M 2 lo accetta e si ferma, uindi M lo rifiuta ma si ferma. Quindi M si ferma in ogni caso. sia L che L ricorsivi ne L ne L sono RE L e RE ma non ricorsivo, e L non e RE L e RE ma non ricorsivo, e L non e RE Non e possibile che un linguaggio sia ricorsivo e l altro sia RE o neanche RE (teorema 9.3). Non e possibile che siano entrambi RE ma non ricorsivi (teorema 9.4). 29 3
Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili
Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili roblemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa quello che ci aspettiamo. E facile
DettagliLinguaggio 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
DettagliCapitolo 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
DettagliMacchine 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,
DettagliCapitolo 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
DettagliAUTOMI A PILA. M.P. Schutzenberger
UTOMI PIL Introdotti da. G. Oettinger in utomatic Syntactic nalysis and the pushdown store Proc. Symp. pplied Math., 1961 e da M.P. Schutzenberger in Context free languages and pushdown automata Information
DettagliLinguaggi 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
DettagliLa macchina universale
La macchina universale Una immediata conseguenza della dimostrazione è la seguente Corollario il linguaggio L H = {M (w) M rappresenta una macchina di Turing che si ferma con input w} sull alfabeto {0,1}*
DettagliAutomi a pila. Automi a pila
utomi a pila Un automa a pila (PDA) e in pratica un ǫ-nfa con una pila. In una transizione un PDA: 1 Consuma un simbolo di input. 2 Va in un nuovo stato (o rimane dove e ). 3 Rimpiazza il top della pila
DettagliMODULO 07 LA MACCHINA DI TURING
MODULO 07 LA MACCHINA DI TURING Nel 1936 Alan Turing presenta una definizione di computabilità basata sull osservazione del comportamento di un agente umano che sta eseguendo un calcolo (algoritmo) con
DettagliITLCC 2006/10/6 19:09 page 7 #3
ITLCC 2006/10/6 19:09 page 7 #3 Capitolo 2 Macchine di Turing SOMMARIO In questo capitolo introdurremo il modello di calcolo proposto dal logico matematico inglese Alan Turing, in un suo famoso articolo
DettagliFondamenti 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
DettagliProprieta dei Linguaggi regolari
Proprieta dei Linguaggi regolari Pumping Lemma. Ogni linguaggio regolare soddisfa il pumping lemma. Se qualcuno vi presenta un falso linguaggio regolare, l uso del pumping lemma mostrera una contraddizione.
DettagliAlgoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014
Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti
DettagliLinguaggi Regolari e Linguaggi Liberi
Linguaggi Regolari e Linguaggi Liberi Potenza espressiva degli automi Potenza espressiva delle grammatiche 9/11/2004 Programmazione - Luca Tesei 1 Linguaggi Regolari Tutti i linguaggi che possono essere
DettagliELEMENTI 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
DettagliAppunti 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 (liverani@mat.uniroma3.it)
DettagliLa 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
DettagliTipologie 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
DettagliELEMENTI 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
DettagliUNA GERARCHIA DI MACCHINE
ELEMENTI DI PROGRAMMAZIONE a.a. 2015/16 UNA GERARCHIA DI MACCHINE UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine di Turing Macchine di
DettagliLa 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
DettagliAniello 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
DettagliEspressioni regolari
spressioni Regolari Un FA (NFA o DFA) e una macchina a stati finiti che riconosce linguaggi regolari. Una espressione regolare e un modo dichiarativo (o algebrico) per descrivere un linguaggio regolare.
DettagliMacchina 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
DettagliCapitolo 1 Linguaggi e Macchine Astratte
Università degli Studi di Bologna Scuola di Ingegneria e Architettura Capitolo 1 Linguaggi e Macchine Astratte Corso di Laurea Magistrale in Ingegneria Informatica Anno accademico 2014/2015 Prof. ENRICO
DettagliTEORIA DELLA COMPUTAZIONE 2
TEORIA DELLA COMPUTAZIONE 2 A.A. 2009/2010 Caputo Luca Cimmino Giovanni Costante Luca Davino Cristiano Di Giacomo Ivan Ferri Vincenzo Fierro Nunzio Palo Umberto Pepe Valeriano Vitale Pasquale Sommario
DettagliIl codice di Sarngadeva
Matematica - Musica Il codice di Sarngadeva È oggi riconosciuto da molti (vedi, ad esempio, Knuth [3]) come diverse nozioni combinatorie di base (quali il sistema binario, il triangolo di Tartaglia-Pascal,
DettagliLe 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
DettagliMacchine di Turing. a n B B. Controllo Finito
Macchine di Turing Il modello standard di macchina di Turing era un controllo finito, un nastro di input, diviso in celle, e una testina che prende in considerazione una cella del nastro alla volta. Il
DettagliIl 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
DettagliPermutazioni. 1 Introduzione
Permutazioni 1 Introduzione Una permutazione su un insieme di n elementi (di solito {1, 2,...,n}) è una funzione biiettiva dall insieme in sé. In parole povere, è una regola che a ogni elemento dell insieme,
DettagliMacchine 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
DettagliCodice 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.
DettagliCostruzione di espressioni regolari 4
ostruzione di espressioni regolari 4 Indicando con d uno dei possibili digits {,, 2,,9} --possiamo esprimere il sotto linguaggio dei digits come d = ( + + 2 +.. + 9) Quale linguaggio produce l espressione:
Dettaglicontrollo stringa a a b a b b c c b a b x y z pila di memoria
Gli automi a pila Dagli automi finiti iti agli automi a pila Possiamo ottenere un automa a pila a partire da un automa finito (così come l abbiamo definito in precedenza), attraverso l introduzione di
DettagliVarianti Macchine di Turing
Varianti Macchine di Turing Esistono definizioni alternative di macchina di Turing. Chiamate Varianti. Tra queste vedremo: MdT a più nastri e MdT non deterministiche. Mostriamo: tutte le varianti ragionevoli
DettagliInformatica 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
DettagliInformatica 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
Dettagliacuradi 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
DettagliRisolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:
Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da: http://it.wikipedia.org/wiki/al-khwarizmi Un
Dettagli2. Algoritmi e Programmi
12 2. Algoritmi e Programmi Dato un problema, per arrivare ad un programma che lo risolva dobbiamo: individuare di cosa dispongo: gli input; definire cosa voglio ottenere: gli output; trovare un metodo
Dettagli3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi
0.1.1.1 Definire un algoritmo 1. Con il termine algoritmo si intende: a) il software utilizzato in un calcolatore b) l elenco finito di istruzioni necessario per risolvere un problema c) un elaboratore
DettagliForma Normale di Chomsky
2. Eliminazione delle produzioni unitarie Forma Normale di Chomsky Una produzione si dice unitaria se è della forma A! B. Le produzioni unitarie in pratica consistono in una ridenominazione di variabili,
DettagliAltrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)
Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica
DettagliL AUTOMA ESECUTORE L AUTOMA ESECUTORE
L AUTOMA ESECUTORE Metodo Risolutivo (algoritmo) Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto DATI Esecutore RISULTATI cioè capace di interpretare un linguaggio (linguaggio
DettagliSommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP
Sommario Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP I conjecture that there is no good algorithm for the traveling salesman problem. My reasons are the same
DettagliDispense 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.................................
DettagliLaurea Specialistica in Informatica - Università di Ferrara 2008-2009 [1]
Laurea Specialistica in Informatica - Università di Ferrara 2008-2009 [1] Macchine di Turing modello di calcolo introdotto dall ingegner Alan Turing nel 1936, per simulare il processo di calcolo umano
DettagliL AUTOMA ESECUTORE L AUTOMA ESECUTORE
L AUTOMA ESECUTORE DATI Esecutore Metodo Risolutivo (algoritmo) RISULTATI Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio
DettagliConcetti fondamentali
Concetti fondamentali elemento insieme sequenza tutto si riconduce a questi insieme: esempi {,3,5,7,9} insieme dei numeri dispari positivi minori di dieci {Antonio, Beatrice, Carlo, Daria} insieme dei
DettagliLa Macchina RAM Shepherdson e Sturgis (1963)
La Macchina RAM Shepherdson e Sturgis (963) Nastro di ingresso.......... PROGRAM COUNTER Nastro di uscita PROGRAMMA ACCUMULATORE UNITA' ARITMETICA............... 2 3 4 M E M O R I A Formato delle Istruzioni
DettagliLe grammatiche formali
Le grammatiche formali Il carattere generativo dei sistemi linguisticii i Consideriamo i la seguente frase: Un gatto rincorre il topo Non facciamo difficoltà a riconoscere che si tratta di una frase sintatticamente
DettagliNote del corso di Calcolabilità e Linguaggi Formali - Lezione 5
Note del corso di Calcolabilità e Linguaggi Formali - Lezione 5 Alberto Carraro 23 novembre 2011 DAIS, Universitá Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Macchine di Turing Le Macchine d
DettagliCorso 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
DettagliInformatica Generale Homework di Recupero 2016
Informatica Generale Homework di Recupero 016 docente: Ivano Salvo Sapienza Università di Roma Gruppo 1 Esercizio 1.1 Scrivere un programma C che presi in input due interi positivi a ed b (a, b > 0) calcola
DettagliTeoria della Complessità Computazionale. Accettazione/riconoscimento di linguaggi in tempo/spazio
Teoria della Complessità Computazionale. Obiettivo: classifcare i problemi (risolubili con algoritmi) in base alle risorse di calcolo che richiedono per essere risolti. Risorse: tempo e spazio (memoria)
DettagliAniello Murano Decidibilità delle teorie logiche
Aniello Murano Decidibilità delle teorie logiche 11 Lezione n. Parole chiave: Teorie logiche Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Prefazione Nelle lezioni
Dettagli1 Definizione di sistema lineare omogeneo.
Geometria Lingotto. LeLing1: Sistemi lineari omogenei. Ārgomenti svolti: Definizione di sistema lineare omogeneo. La matrice associata. Concetto di soluzione. Sistemi equivalenti. Operazioni elementari
DettagliTi piacciono le riviste di meccanica? Settant anni di macchine di Turing
Ti piacciono le riviste di meccanica? Settant anni di macchine di Turing Francesco Belardinelli 30 agosto 2005 Indice 1 Algoritmi e procedure effettive 2 1.1 Che cosa è un algoritmo?........................
DettagliUniversità degli Studi di Udine. 1 Automi e Linguaggi. Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni
Università degli Studi di Udine Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni 1 Automi e Linguaggi 1. Sia dato p N, p > 0 dimostri che il linguaggio è regolare. L p = { a 0 a 1... a
DettagliPROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica G=(V n,v t
PROLOG E ANALISI SINTATTICA DEI LINGUAGGI Quando si vuole definire in modo preciso la sintassi di un linguaggio si ricorre a una grammatica Una grammatica permette di stabilire se una sequenza di simboli
DettagliGiovanna Carnovale. October 18, Divisibilità e massimo comun divisore
MCD in N e Polinomi Giovanna Carnovale October 18, 2011 1 Divisibilità e massimo comun divisore 1.1 Divisibilità in N In questa sezione introdurremo il concetto di divisibilità e di massimo comun divisore
DettagliProblema: 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
DettagliLaboratorio di Algoritmi e Strutture Dati
Il problema Laboratorio di Algoritmi e Strutture Dati Docenti: M. Torelli, S. Aguzzoli Appello del settembre 2007 Progetto Daltonismo Consegna entro il 24 settembre 2007 Gli abitanti di una remota isola
DettagliLinguaggi regolari e automi a stati finiti
utomi a stati finiti Gli automi a stati finiti sono usati come modello per Software per la progettazione di circuiti digitali. Analizzatori lessicali di un compilatore. Ricerca di parole chiave in un file
Dettaglix1 + 2x 2 + 3x 3 = 0 nelle tre incognite x 1, x 2, x 3. Possiamo risolvere l equazione ricavando l incognita x 1 x 1 = 2x 2 3x 3 2r 1 3r 2 x 2 x 3
Matematica II -..9 Spazio delle soluzioni di un sistema lineare omogeneo.. Consideriamo l equazione lineare omogenea nelle tre incognite x, x, x 3. x + x + 3x 3 = Possiamo risolvere l equazione ricavando
DettagliAlgoritmi e soluzione di problemi
Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)
DettagliLOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)
LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13) DISPENSA N. 4 Sommario. Dimostriamo il Teorema di Completezza per il Calcolo dei Predicati del I ordine. 1. Teorema di Completezza Dimostriamo il Teorema
DettagliFondamenti di Informatica Programma dettagliato del corso e appunti integrativi del libro di testo consigliato Anno Accademico
acoltà di ngegneria Università di irenze Corso di Laurea in ngegneria Meccanica ondamenti di nformatica Programma dettagliato del corso e appunti integrativi del libro di testo consigliato Anno Accademico
DettagliINSIEMI E RELAZIONI. 1. Insiemi e operazioni su di essi
INSIEMI E RELAZIONI 1. Insiemi e operazioni su di essi Il concetto di insieme è primitivo ed è sinonimo di classe, totalità. Sia A un insieme di elementi qualunque. Per indicare che a è un elemento di
DettagliNote del corso di Calcolabilità e Linguaggi Formali - Lezione 6
Note del corso di Calcolabilità e Linguaggi Formali - Lezione 6 Alberto Carraro 30 novembre DAIS, Universitá Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Funzioni Turing-calcolabili Finora abbiamo
DettagliL algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013
L algoritmo AKS Seminario per il corso di Elementi di Algebra Computazionale Oscar Papini 22 luglio 2013 Test di primalità Come facciamo a sapere se un numero n è primo? Definizione (Test di primalità)
DettagliLaboratorio di Informatica. Esercitazione su algoritmi e diagrammi di flusso
Laboratorio di Informatica Esercitazione su algoritmi e diagrammi di flusso Algoritmi, programmi e dati Algoritmo = insieme di istruzioni che indicano come svolgere operazioni complesse su dei dati attraverso
DettagliGara Matematica. Dipartimento di Matematica Ulisse Dini. Viale Morgagni 67/a Firenze. Soluzioni edizione 2011
Gara Matematica Dipartimento di Matematica Ulisse Dini Viale Morgagni 67/a - 50134 Firenze Soluzioni edizione 011 Esercizio 1. Determinare tutti gli interi positivi non nulli n che sono uguali alla somma
DettagliPARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson
DettagliEsercizi 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}
DettagliAnno 4 Matrice inversa
Anno 4 Matrice inversa 1 Introduzione In questa lezione parleremo della matrice inversa di una matrice quadrata: definizione metodo per individuarla Al termine della lezione sarai in grado di: descrivere
DettagliIntroduzione al Linguaggio C Corso di Informatica Laurea in Fisica
Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Dai flow-chart ai linguaggi... Abbiamo imparato ad usare uno strumento formale i flowchart per
DettagliAutoma deterministico con prospezione 1. < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R. se a Gui(X α) senza spostamento della testina.
Automa deterministico con prospezione 1 < {q}, Σ, Σ V, δ, q, S, Φ > δ(a, X) = α R δ(a, a) = ε se a Gui(X α) senza spostamento della testina con spostamento della testina Grammatica 1S ( S ) 2S [ S ] 3S
DettagliIntroduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo.
Capitolo 3 Il campo Z n 31 Introduzione Introduciamo ora un altro campo, formato da un numero finito di elementi; il campo delle classi resto modulo n, con n numero primo 32 Le classi resto Definizione
DettagliProgrammazione dinamica
Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione
DettagliRappresentazione dell Informazione
Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo
Dettagli01 - Elementi di Teoria degli Insiemi
Università degli Studi di Palermo Scuola Politecnica Dipartimento di Scienze Economiche, Aziendali e Statistiche Appunti del corso di Matematica 01 - Elementi di Teoria degli Insiemi Anno Accademico 2015/2016
DettagliLIMITI DI FUNZIONI. c Paola Gervasio - Analisi Matematica 1 - A.A. 16/17 Limiti di funzioni cap3a.pdf 1
LIMITI DI FUNZIONI c Paola Gervasio - Analisi Matematica 1 - A.A. 16/17 Limiti di funzioni cap3a.pdf 1 Intorni Def. Siano 0 R e r R +. Chiamiamo intorno di centro 0 e raggio r l intervallo aperto e limitato
Dettagliy 5z = 7 y +8z = 10 +3z = 3
Sistemi lineari Sistemi lineari in tre incognite; esempi tipici Tre equazioni incognite x, y, z Consideriamo il seguente sistema di tre equazioni lineari nelle tre x 2y +6z = 11 x +3y 11z = 18 2x 5y +20z
Dettagli10 dicembre Soluzione esame di geometria - Ingegneria gestionale - a.a COGNOME... NOME... N. MATRICOLA...
10 dicembre 003 - Soluzione esame di geometria - Ingegneria gestionale - a.a. 003-004 COGNOME.......................... NOME.......................... N. MATRICOLA............. La prova dura 3 ore. ISTRUZIONI
Dettagli8. Completamento di uno spazio di misura.
8. Completamento di uno spazio di misura. 8.1. Spazi di misura. Spazi di misura completi. Definizione 8.1.1. (Spazio misurabile). Si chiama spazio misurabile ogni coppia ordinata (Ω, A), dove Ω è un insieme
DettagliEsercizi sui sistemi di equazioni lineari.
Esercizi sui sistemi di equazioni lineari Risolvere il sistema di equazioni lineari x y + z 6 x + y z x y z Si tratta di un sistema di tre equazioni lineari nelle tre incognite x, y e z Poichè m n, la
DettagliDefinizione di Grammatica
Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla ( VN, VT, P, S ) dove: V N e l insieme dei simboli non
DettagliMACCHINE DI TURING defnizione formale del concetto astratto di algoritmo accettare riconoscimento parziale di tutti i linguaggi di tipo 0
MACCHINE DI TURING La macchina di Turing è un automa con testina di scrittura/lettura su un nastro "potenzialmente" illimitato. In ogni istante la macchina si trova in uno stato appartenente ad un insieme
DettagliMacchine 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
DettagliSTRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER
1 STRUTTURA E LOGICA DI FUNZIONAMENTO DEL COMPUTER Un computer e una macchina che riceve in ingresso delle informazioni, le elabora secondo un determinato procedimento e produce dei risultati che vengono
DettagliCorso di Analisi Numerica
Corso di Laurea in Ingegneria Informatica Corso di 3 - PROBLEMI DI INTERPOLAZIONE Lucio Demeio Dipartimento di Scienze Matematiche 1 Interpolazione: Polinomio di Lagrange 2 3 Introduzione Problemi di interpolazione
DettagliSommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript
Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript 1 Il Problema computazionale È computazionale
DettagliCorso di Linguaggi e Traduttori 1 AA GRAMMATICHE
Corso di Linguaggi e Traduttori 1 AA 2004-05 GRAMMATICHE 1 Definizione di Grammatica Formalmente definiamo un grammatica G mediante una quadrupla V, V, P S ( ) N T, dove: V N e l insieme dei simboli non
DettagliMoltiplicazione. Divisione. Multipli e divisori
Addizione Sottrazione Potenze Moltiplicazione Divisione Multipli e divisori LE QUATTRO OPERAZIONI Una operazione aritmetica è quel procedimento che fa corrispondere ad una coppia ordinata di numeri (termini
DettagliDipendenza e indipendenza lineare
Dipendenza e indipendenza lineare Luciano Battaia Questi appunti () ad uso degli studenti del corso di Matematica (A-La) del corso di laurea in Commercio Estero dell Università Ca Foscari di Venezia campus
DettagliDebug di un programma
Debug di un programma Col termine Debug si intende una fase di sviluppo del software, nella quale si cerca di eliminare gli errori dal programma Due tipi di errori: Errori sintattici, rilevati sempre dal
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è una list c) v
Dettagli