Principio di composizione delle MT
|
|
- Rosina Valentini
- 6 anni fa
- Visualizzazioni
Transcript
1 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 elementari possano essere combinate in modo da svolgere compiti più complessi. Intuitivamente, è possibile far subentrare ad una macchina A che si arresta un altra macchina B a seconda del simbolo osservato nello stato finale della macchina A. Ogni macchina può essere vista come un dispositivo capace di risolvere un problema dato avendo al suo interno il programma di macchina cablato. Volendo fare il parallelo con i moderni calcolatori è come se il programma fosse memorizzato in una memoria ROM.
2 Esempio di composizione Vengono messe assieme le macchine relative all esempio 2 e all esempio 3. Esempio2! q 0 q 1 q q D q # 1 q 0 1 D q # 2 q 0 2 D q ## 3 q 0 3 D q ## 4 q 0 4 D q # 5 q 0 5 D qqq q # 6 q 0 6 D qq # 7 q 0 7 D q q # 8 q 0 8 D qq q q # # 9q 0 9 D q # 0 S " S q 1 q # 1 q 0 a D "Sq 2 S Esempio3! q 0 q 1 q 2 " D Dq 0 q 1 "Dq 2 S D * " q # S D Contatore di una sequenza di caratteri Lo stato di stop della prima macchina viene convertito nello stato iniziale della seconda. Eventualmente si procede ad una ridenominazione degli stati. Somma di due numeri, separati dal carattere *, dati come sequenza di caratteri
3 Esempio di composizione! q 0 q 1 q 2 q 3 q 4 q 5 Macchina che accetta due serie di sbarre separate da un carattere *, ne calcola la somma e trasforma la somma come numero decimale. 0 D q # 1 q 3 1 D q # 2 q 3 2 D q # 3 q 3 3 D q # 4 q 3 La macchina inizia la sua computazione sommando sequenze di caratteri separati dal carattere *. Lo stato di stop, individuato dalla coppia con (q 0, *) attiva la scansione della stringa di caratteri per poterli contare 4 D q # 5 q 3 5 D q # 6 q 3 6 D q # 7 q 3 7 D q # 8 q 3 8 D q # 9 q 3 9 D q # 0 S " D Dq 0 q 1 S q 4 q # 1 q 3 "Dq 2 S D D "Sq 5 S * " q 3 S D
4 Tesi di Church-Turing Il principio di Composizione rende possibile la costruzione di macchine che risolvono problemi di notevole complessità. Ipotesi fondamentale della Teoria degli Algoritmi. Tutti gli algoritmi possono essere formulati sotto forma di matrici funzionali e quindi eseguiti dalla corrispondente macchina di Turing. L ipotesi non si riferisce solo agli algoritmi già scoperti, ma anche a tutti quelli che si potranno scoprire nel futuro. Questa ipotesi risulta indimostrabile in quanto alla nozione (vaga) di tutti gli algoritmi corrisponde la nozione (matematica) di Macchina di Turing. Tuttavia 1. Tutti gli algoritmi conosciuti possono essere espressi come matrici funzionali 2. Tutte le definizioni formali di algoritmo (Algoritmi normali di Markov, Funzioni ricorsive di Kleene e Godel etc.) arrivano alle stesse conclusioni.
5 Teorema di Jacopini-Bohm In particolare, il Teorema di Jacopini-Bohm (1966) mostra che ogni funzione calcolabile con una macchina di Turing è anche calcolabile con un programma scritto in un linguaggio che compone sottoprogrammi con tre operatori: - esecuzione sequenziale di due sottoprogrammi ( ; ) - scelta dell esecuzione tra due sottoprogrammi a seconda del valore di una condizione booleana (if then else) - esecuzione ripetuta di un sottorogramma fino a che una variabile booleana è vera (while ) Questo teorema implica che tutti i normali linguaggi di programmazione sono TURING-EQUIVALENT, hanno cioè la stessa potenza espressiva delle Macchine di Turing.
6 Macchina di Turing Universale Per le Macchine di Turing viste fino ad ora si fa l implicita assunzione che siano dispositivi hardware in cui il programma (la matrice funzionale) è cablato al loro interno. E possibile tuttavia costruire una macchina U (Macchina di Turing Universale) capace di accettare in ingresso una macchina di Turing M con il proprio input w e simularne l esecuzione. Cioè: U( M w ) = M(w) M(w) è una stringa che rappresenta il risultato della Macchina M sull ingresso w. In altre parole il comportamento della macchina universale U è tale che essa si ferma se e solo se M si ferma sul input w. La macchina di Turing Universale si comporta analogamente ad un qualunque computer attuale nel senso che accetta in input una stringa M, w che è assimilabile perciò all usuale programma seguito dai propri dati di ingresso. Occorre tuttavia precisare in che modo si possa codificare una Macchina di Turing sul nastro.
7 (Una) codifica di una Macchina di Turing L obiettivo è quello di esprimere in una stringa binaria ogni possibile macchina di Turing. Lo schema di codifica potrebbe essere il seguente: Simbolo Codice s 0 1 s 1 11 s s n 1 n+1! 1 n+2 Codifica dei simboli di nastro (la potenza si riferisce alla concatenazione dei simboli) q 0 1 q q Y 1 n+2 Codifica degli stati S 1 D 1 1 F Codifica degli spostamenti
8 Esempio di Codifica Macchina che accetta stringhe che iniziano con 0 oppure con 11 Si definisce una funzione di codifica EN(x) che codifica il simbolo codice simbolo x.! q q q Una transizione " Dq " q 1!(q, x) = (y, d, q ) 0 i j 0 q q 11 Y 1 con q Dq q q Y Y d #{S,D,F} e x, y #{0,1, "} S 1 D 11 viene codificata nel seguente modo F 111 EN(q i ) 0 EN(x) 0 EN(y) 0 EN(d) 0 EN(q j )
9 Esempio di codifica cont Pertanto le quattro transizioni indicate nella matrice funzionale sono così codificate!(q 0, ") = (",D,q 1 ) !(q 1,0) = 0, F, q Y !(q 1,1) = (1,D,q 2 ) !(q 2,1) = 1, F, q Y simbolo codice q 0 1 q 1 11 q q Y 1111 S 1 D 11 F 111 Si fa la convenzione che due transizioni siano separate tra di loro dalla coppia 00 e che l inizio e la fine della stringa di codifica della matrice di transizione sia rappresentata da 000, pertanto: Ne deriva che, ad esempio se vogliamo attivare la macchina M con un input 11, la stringa: non è altro che la stringa M w, che può essere interpretata come la macchina con matrice funzionale M applicata alla stringa di input 11.
10 Enumerazione di Macchine di Turing - Il sistema di codifica di una macchina di Turing ci porta a dire che queste possono essere enumerate, cioé è possibile costruire una corrispondenza tra le stringhe binarie che rappresentano le macchine di Turing e i naturali. - E sempre possibile mettere in relazione ciascuna macchina con il proprio input o, detto in altre parole, tutte le stringhe di input accettate dalla MT costituiscono il linguaggio riconosciuto dalla macchina stessa. L(Mj) = { w #! " q 0 w $ * x q y con q# Z } M w wk.... ws Mi.. Mj Una volta enumerate tutte le stringhe wi di! ", per ogni Mj è possibile definire il suo vettore caratteristico cioé un vettore che ha un 1 in corrispondenza delle stringhe wi che sono accettate dalla macchina Mj e che appartengono quindi al linguaggio L(Mj ).
11 Problema della terminazione TEOREMA: E indecidibile dire se una macchina di Turing termina la sua computazione La dimostrazione si fa per assurdo. Sia H una Macchina di Turing che risolve il problema, ciò significa che: 1. L input di H è costituito dalla stringa M w 2. Una stringa è accettata da H se la computazione di M termina altrimenti la stringa è rifiutata "M""w" H M si ferma con input w M non si ferma con input w HALT/accettazione HALT/rigetto A partire da H si costruisce la macchina H che effettua le stesse computazioni di H eccetto che H cicla indefinitivamente se H termine in uno stato di accettazione. L idea per la costruzione di H è quella di creare una macchina che si ferma se la macchina di input non si ferma e non si ferma se la macchina di input si ferma. Ciò si può facilmente ottenere se ad esempio si addizionano ad H transizioni che muovono la testina indefinitivamente a destra se H raggiunge lo stato di accettazione.
12 Problema della terminazione cont. "M""w" H' M si ferma con input w M non si ferma con input w LOOP HALT/rigetto Il passo successivo è quello di combinare la macchina H con una macchina Copia che sia capace di replicare il suo input. M COPIA "M "M" D H' M si ferma con input M M non si ferma con input M LOOP HALT/rigetto La macchina D accetta in input una matrice funzionale ne crea una copia e fornisce la coppia M M in ingresso ad H la cui esecuzione da parte di H produce la stringa M(M) ovvero il risultato della M applicata a se stessa.
13 Problema della terminazione cont. Poiché è possibile codificare ogni macchina di Turing come stringa binaria anche la macchina D può essere codificata e data in input a D stessa. D COPIA "D" "D" D H' D si ferma con input D D non si ferma con input D LOOP HALT/rigetto Si ha contraddizione in quanto la macchina D si ferma se si verifica la condizione che D non si ferma sull input D. Oppure D non si ferma se D si ferma sull input D.
14 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}* è un linguaggio non ricorsivo [e quindi non decidibilie]. L H in altre parole è costituito dalle stringhe che rappresentano una MT seguita dall input da essa accettato ovvero che corrispondono ai valori 1 del vettore caratteristico della MT. Tuttavia è possibile dimostrare il seguente Teorema: il linguaggio L H è ricorsivamente enumerabile [e quindi semidecidibile]. Sapendo perciò che un linguaggio ricorsivo è anche ricorsivamente numerabile si avrà l importante risultato: Corollario: la classe dei linguaggi ricorsivi è contenuta in modo proprio nella classe dei linguaggi ricorsivamente enumerabili ovvero L R! L RE La dimostrazione del teorema si basa su una macchina universale che lavora secondo il seguente schema "M""w" U M si ferma con input w M non si ferma con input w Accettazione Loop In sintesi si deve dimostrare che la macchina universale U simula perfettamente ogni altra Macchina di Turing
15 Ricorsiva enumerabilità di L H La dimostrazione verrà fatta con una macchina a tre nastri. Nel nastro 1 verrà codificato l input mentre il nastro 3 verrà usato per effettuare la simulazione dell esecuzione della macchina M. Una computazione della macchina U viene ad essere definita nel seguente modo: 1. Se la stringa di input non è della forma M w, U si muove indefinitivamente verso destra. 2. Viene ricopiata la stringa w sul nastro 3, la testina viene quindi riposizionata a sinistra al primo carattere, cosicché sul nastro 3 viene ad essere definita la configurazione iniziale di una computazione di M con input w. 3. viene scritto sul nastro 2 lo stato q 0 (il simbolo 1 nella nostra codifica) 4. Passo di simulazione. La transizione di M viene determinata dal simbolo x scandito sul nastro 3 e lo stato q i codificato sul nastro 2. a) Viene scandito il nastro 1 alla ricerca della coppia EN(q i ) EN (x) se tale transizione non esiste U si ferma e accetta l input (configurazione finale). b) Assunto che il nastro 1 contenga la transizione EN(q i ) 0 EN(x) 0 EN(y)0 EN(d) 0 EN(q j ) i) EN(q i ) è rimpiazzato da EN(q j ) sul nastro 2 ii) il simbolo y è scritto sul nastro 3 iii) la testina del nastro 3 è mossa nella direzione specificata da d 5. si ripete il passo di simulazione (punti 4 e 5) La simulazione della macchina U accetta stringhe in L H mentre per stringhe in {0,1}* - L H cicla indefinitivamente. Poiché L H = L(U) L H è ricorsivamente enumerabile essendo ricorsivamente enumerabile L(U).
16 Indecidibilità del Linguaggio di diagonalizzazione Ld = { wi! "* wi! L(Mi} Teorema il linguaggio Ld è non ricorsivamente enumerabile Ld = tutte le stringhe wi tali che wi non è in L(Mi) M Mi Mj w Supponiamo wj ws Ld = L(M) per una macchina M, allora deve esistere una Macchina di Turing nella enumerazione ovvero un indice i che individua la macchina M i che riconosce w i! L d se wi! Ld allora Mi accetta wi pertanto per definizione di Ld wi non è in Ld poiché Ld contiene solo stringhe wj tale che Mj non accetta wj - se wi! Ld allora Mi non accetta wi pertanto per definizione di Ld wi è in Ld Evidentemente si ha contraddizione poiché wi non può essere o non essere in Ld
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
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}*
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
DettagliMa il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione
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?
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
DettagliTeoria della Calcolabilità!
Teoria della Calcolabilità!! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.!! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
DettagliInformatica 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
DettagliConcetti di base sugli automi e sui linguaggi formali
Concetti di base sugli automi e sui linguaggi formali Andrea Burattin 18 marzo 2005 Sommario Piccolo insieme di concetti sul funzionamento degli automi (a stati finiti, a pila,...), delle grammatiche libere
DettagliTuring cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?
STORIA DELLE CONOSCENZE SCIENTIFICHE SULL UOMO E SULLA NATURA a.a. 2016 2017 Prof. Roberto Giuntini, PhD. Introduzione alla storia dell intelligenza artificiale e della robotica Modulo II: Le macchine
DettagliFondamenti di Informatica per la Sicurezza a.a. 2008/09. Automi. Stefano Ferrari. Unautomaastatifinitièunmodellomatematico caratterizzato da:
Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Automi Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università degli Studi di Milano
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,
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
DettagliSommario Codifica dei dati Macchina Astratta Definizioni Esempi
Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali
DettagliTeoria della Calcolabilità!
Teoria della Calcolabilità! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici
DettagliLa macchina di Turing
La macchina di Turing (Esercitazione) I. Frosio AIS Lab. frosio@dsi.unimi.it 1/32 Cosa è la macchina di Turing? Algoritmo: sequenza di istruzioni elementari che termina in un numero finito di passi; Macchina
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 2 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 09 Marzo 2010 Controlli automatici
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
DettagliAniello Murano Problemi non decidibili e riducibilità
Aniello Murano Problemi non decidibili e riducibilità 8 Lezione n. Parole chiave: Riduzione Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Overview Nelle lezioni
DettagliInformatica Teorica. Appunti della lezione su tesi di Church-Turing e problemi indecidibili
Informatica Teorica Appunti della lezione su tesi di Church-Turing e problemi indecidibili Tesi di Church- Turing Nel 1936, Church propone di assimilare il conce:o informale di computabilità con il conce:o
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
DettagliMacchine 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
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
DettagliIl calcolatore universale, origini e nuovi paradigmi
Il calcolatore universale, origini e nuovi paradigmi Lucia Pomello Università degli studi di Milano Bicocca Dipartimento di Informatica, Sistemistica e Comunicazione 24 febbraio 2017 L evoluzione dell
DettagliParte I.5 Cenni alla computazione
Parte I.5 Cenni alla computazione Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 14, 2015 Elisabetta Elisabetta Ronchieri I Concetti
DettagliProblemi, 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
DettagliIntroduzione 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
DettagliMacchina 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
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:
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
DettagliFondamenti dell informatica
Fondamenti dell informatica Macchine a registri Rosario Culmone rosario.culmone@unicam.it 9/4/2008 UNICAM - p. 1/24 Modello di calcolo basato sui calcolatori Le macchine a registri (RAM: Random Access
DettagliIntroduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software
Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell
DettagliAlcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica
Alcune Tracce dei Precedenti Esami del Dottorato di Siena in Logica Matematica ed Informatica Teorica Raccolti e curati da Luca Spada Indice 1 Temi 1 1.1 Logica Matematica.......................... 1 1.2
DettagliMatlab. Istruzioni condizionali, cicli for e cicli while.
Matlab. Istruzioni condizionali, cicli for e cicli while. Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica 17 marzo 2016 Alvise Sommariva Introduzione 1/ 18 Introduzione Il
DettagliIl 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
DettagliELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)
1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano
DettagliNote del corso di Calcolabilità e Linguaggi Formali - Lezione 8
Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8 Alberto Carraro DAIS, Università Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Insiemi e predicati ricorsivi e ricorsivamente enumerabili
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)
DettagliProblemi senza soluzione
Problemi senza soluzione La Tesi di Church-Turing Nelle lezioni precedenti abbiamo visto il modello di calcolo delle macchine di Turing, caratterizzato da: assunzioni molto semplici operazioni di base
DettagliFunzioni calcolabili e linguaggi decidibili
Informatica Teorica 2012/2013 M.Di Ianni Funzioni calcolabili e linguaggi decidibili Abbiamo definito i concetti di accettabilità e decidibiltà di un linguaggio, che sono correlati al modello di macchina
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
DettagliLe parole dell informatica: algoritmo e decidibilità
Le parole dell informatica: algoritmo e decidibilità Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico dell Informatica
Dettagliin termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
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
DettagliDispensa di Informatica II.1
ALGORITMI La dispensa di seguito proposta si pone come tutorial per poter porre le basi per la realizzazione di algoritmi che poi potranno eventualmente essere sviluppati in moduli software con metodologia
DettagliMacchine 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
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
Dettaglie Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità
Intelligenza Artificiale I Soddisfacibilità e Algoritmi Marco Piastra Intelligenza Artificiale I - A.A. 2010- Soddisfacibilità e Semantic Tableau [1] Problemi e decidibilità (automatica) Problema Un problema
DettagliCapitolo 8: Teoria della complessitá
Capitolo 8: Teoria della complessitá 1 La Teoria della calcolabilitá considera aspetti qualitativi della soluzione di problemi. Distingue il calcolabile dal non calcolabile. La Teoria della complessitá
DettagliEsempio stringhe palindrome 1
Esempio stringhe palindrome 1 Automa per il riconoscimento del linguaggio L = {w c w R } A = < {s,f}, {a,b,c}, {a,b},!, s, { f } > con! che contiene le transizioni: 1. (( s, a, " ), (s, a)! [ push a] 2.
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
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
DettagliLinguaggi e Ambienti di Programmazione
Linguaggi e Ambienti di Programmazione Principi e tecniche diffuse che si incontrano spesso nelle applicazioni dell informatica. Compilatori Editor di struttura: riceve in input una sequenza di comandi
DettagliDescrizione delle operazioni di calcolo. Espressioni costanti semplici
Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette
DettagliPROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
DettagliFondamenti 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
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
DettagliElementi di Complessità Computazionale
Elementi di Complessità Computazionale Ultima modifica 23.06.2004 Il problema Esiste una misura oggettiva per valutare l'efficienza di un algoritmo? In che relazione sono gli input di un 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
DettagliALGORITMI: PROPRIETÀ FONDAMENTALI
ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse
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.
DettagliAlgoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato
Algoritmi, Strutture Dati e Programmi : Dati e Tipi di Dato Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Dati: Variabili e Costanti Un algoritmo (e il programma che ne è rappresentazione)
DettagliAniello Murano Space Complexity
Aniello Murano Space Complexity Lezione n. Parole chiave: Space Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Definizione Space- complexity Definizione: Sia M un
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
DettagliAUTOMA 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
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
DettagliINFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)
INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell
DettagliInformatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande / VERSIONE 1
Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 17/01/2014/ Foglio delle domande/ VERSIONE 1 1) L approccio con cui si studia un sistema focalizzandosi solo sul rapporto tra input e output si chiama
DettagliTeoria della computazione
Teoria della computazione Dipartimento di Elettronica e Informazione Politecnico di Milano 18 aprile 2017 Cosa possiamo calcolare? Quali problemi siamo in grado di risolvere? Con un certo tipo di formalismo
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
Dettagli401 PREDICATI RICORSIVI PRIMITIVI
401 PREDICATI RICORSIVI PRIMITIVI Corso di Informatica Teorica - modulo 2 Prof. Settimo Termini 1 Breve richiamo Un predicato su un insieme S è una funzione totale P su S tale che a S si ha: P(a) = VERO
DettagliForme Normali. Forma normale di Chomsky. E caratterizzata da regole di due tipi. A! BC dove A, B, C $ V N A! a con a $ V T. Forma normale di Greibach
Forme Normali A partire da una grammatica Context-free G è sempre possibile costruire una grammatica equivalente G ovvero L(G) = L(G ) che abbiano le produzioni in forme particolari, dette forme normali.
DettagliMODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio
ECDL MODULO 1 Prof. Onofrio Greco Modulo 1 Concetti di base dell ICT Modulo 2 Uso del Computer e Gestione dei File Modulo 3 - Elaborazione testi Modulo 4 Foglio Elettronico Modulo 5 Uso delle Basi di Dati
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 3.1 MACCHINE A REGISTRI 1 (RAM: Random Access Machines) Introdotte da Shepherdson
DettagliSui Linguaggi Regolari: Teorema di Kleene - Pumping Lemm
Sui Linguaggi Regolari: Teorema di Kleene - Pumping Lemma N.Fanizzi - V.Carofiglio 6 aprile 2016 1 Teorema di Kleene 2 3 o 1 o 3 o 8 Teorema di Kleene Vale la seguente equivalenza: L 3 L FSL L REG Dimostrazione.
DettagliAlgoritmo per A. !(x) Istanza di B
Riduzioni polinomiali Una funzione f: T*!T* è detta computabile in tempo polinomiale se esiste una macchina di Turing limitata polinomialmente che la computi. Siano L 1 e L 2 " T* due linguaggi. Una funzione
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
DettagliUniversità degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale
Università degli Studi di Brescia INFORMATICA Concetto di Algoritmo Docente: Marco Sechi E mail: marco.sechi@unibs.it Vers. 21/08/2016.A050917* Dipartimento di Ingegneria Meccanica e Industriale DIPARTIMENTO
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
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
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
DettagliInformatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi
Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive
DettagliDall 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
DettagliLezione 1: problemi, modelli di calcolo, algoritmi
Lezione : problemi, modelli di calcolo, algoritmi Miriam Di Ianni 3 gennaio 0 Problemi e algoritmi Cosa è un problema come lo conosciamo: un insieme di dati ed una domanda. Esempio. La somma delle lunghezze
DettagliAniello Murano Problemi decidibili e non decidibili
Aniello Murano Problemi decidibili e non decidibili 7 Lezione n. Parole chiave: Decidibilità Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Overview In questa lezione
DettagliProgetto e analisi di algoritmi
Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento
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,
DettagliLinguaggi 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
DettagliFondamenti di Informatica. Computabilità e Macchine di Turing. Prof. Franco Zambonelli Gennaio 2011
Fondamenti di Informatica Computabilità e Macchine di Turing Prof. Franco Zambonelli Gennaio 2011 Letture Consigliate: Roger Penrose, La Mente Nuova dell Imperatore, Sansoni Editrice. Martin Davis, Il
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
DettagliDati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base
Dati e Algoritmi I (Pietracaprina) Esercizi sulle Nozioni di Base Dati e Algoritmi I (Pietracaprina): Esercizi 1 Problema 1. Sia T una stringa arbitraria di lunghezza n 1 su un alfabeto Σ. È sempre possibile
DettagliCostruzione dell insieme dei Follow
Costruzione dell insieme dei Follow E! T E - T E E! + T E - T E " T! F T T! *F T " F! (E) i Per evitare che alcuni insiemi siano vuoti si aggiunge per default il simbolo speciale $ che demarca la fine
DettagliCapitolo 7: Teoria generale della calcolabilitá
Capitolo 7: Teoria generale della calcolabilitá 1 Differenti nozioni di calcolabilitá (che seguono da differenti modelli di calcolo) portano a definire la stessa classe di funzioni. Le tecniche di simulazione
DettagliReti combinatorie. Reti combinatorie (segue)
Reti combinatorie Sommatore Sottrattore Reti sequenziali Generatore di sequenze Riconoscitore di sequenze Reti combinatorie PROGRAMMAZIONE Il programmatore riporta le istruzioni che il calcolatore dovrà
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)
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
DettagliAppunti 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
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
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
DettagliEsercizio 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
Dettagli