Fondamenti di Informatica
|
|
- Clemente Costa
- 6 anni fa
- Visualizzazioni
Transcript
1 Fondamenti di Informatica Università di Camerino Corso di Laurea in Informatica
2 Teoria della computabilità La teoria della computabilità tratta della definizione formale del concetto di calcolo meccanico. Alcuni importanti formalismi che hanno storicamente condizionato la teoria e l applicazione dei calcolatori sono: Le macchine di Turing Gli schemi ricorsivi di Kleene e McCarthy I sistemi di Post
3 Teoria della computabilità cont. Uno dei principali risultati della teoria della computabilità è la completa identità delle classi di problemi risolubili nei diversi formalismi. Oggi si ritiene che ogni procedimento di calcolo, purché completamente specificato, sia traducibile in uno qualsiasi dei formalismi. L equivalenza dei formalismi si basa sulla Tesi di Church e la Tesi di Turing Conseguenza Molte proprietà relative, ad esempio, alle macchine di Turing si estendono immediatamente ad un qualsiasi linguaggio di programmazione
4 Il termine Algoritmo Il termine Algoritmo significa procedimento di calcolo, deriva dal termine latino algorismus che a sua volta deriva dal nome del matematico usbeco Abu Ja far Mohammed ibn-musa al- Khowarismi, vissuto nel IX secolo d.c.
5 Che cosa è un Algoritmo Un algoritmo è una qualsiasi procedura computazionale ben definita (con un numero finito di regole che conduce al risultato dopo un numero finito di operazioni) che prende un insieme di valori, come input e produce un insieme di valori come output.
6 Perché parliamo di Algoritmi La teoria degli algoritmi ha iniziato a stabilizzarsi agli inizi del XX secolo, mentre le tecniche di progettazione di algoritmi, di correttezza e efficienza si sono evolute nella seconda metà del XX secolo, grazie alla diffusione dei calcolatori elettronici. Ovunque si impieghi un calcolatore elettronico occorrono algoritmi corretti e efficienti che ne utilizzino al massimo le possibilità Esempi di algoritmi corretti e efficienti: controllo dei voli aerei regolazione reattori nucleari reperimento d informazioni da archivi smistamento di comunicazioni telefoniche gioco degli scacchi controllo della produzione di una catena di montaggio sistemi di puntamento di missili
7 Correttezza e Efficienza Un algoritmo si dice corretto se, per ogni istanza di input, si ferma con l output corretto Un algoritmo corretto risolve il problema computazionale dato Un algoritmo efficiente risolve il problema computazionale il più velocemente possibile e organizza i dati in modo da usare il minor spazio di memoria possibile
8 Algoritmi & Programmi Gli algoritmi vengono descritti tramite programmi, che si avvalgono di istruzioni e costrutti dei linguaggi di programmazione per essere eseguiti da calcolatori elettronici Le proprietà degli algoritmi sono fondamentali, generali e robuste da essere indipendenti dalle caratteristiche di specifici linguaggi di programmazione o dai limiti imposti dai calcolatori elettronici a
9 Metodi Formali I metodi per l analisi della correttezza degli algoritmi I metodi per l analisi dell efficienza degli algoritmi
10 Definizione di algoritmo Idea empirica Discutiamo le caratteristiche che deve avere un algoritmo partendo dall idea empirica che ne abbiamo: a) Il programma P deve essere di lunghezza finita b) Ci deve essere un agente di calcolo C, capace di eseguire le istruzioni c) L agente di calcolo C ha a disposizione una memoria dove immagazzina i risultati intermedi per poi utilizzarli nelle fasi successive del calcolo d) Il calcolo avviene per passi discreti e) Il calcolo non è probabilistico
11 Il programma P deve essere di lunghezza finita Ogni algoritmo che sia definibile in pratica, deve essere ricavabile da una quantità finita di informazioni. Esempio Calcolatore con 10 istruzioni-macchina programmato per calcolare l espansione decimale di. Il punto a) è soddisfatto se si considera tale calcolatore come programmato dall algoritmo di lunghezza finita che, dato n, permette di calcolare l n-esima cifra di.
12 Il calcolo avviene per passi discreti Il punto d) viene soddisfatto se C non ha a disposizione nessun meccanismo di calcolo analogico Il calcolo non è probabilistico Il punto e) è soddisfatto se la modalità di esecuzione del calcolo non è associata a nessuna legge di probabilità
13 Definizione di algoritmo Caratteristiche discutibili Altre caratteristiche associabili ad un algoritmo sono più discutibili come: f) Non deve esserci alcun limite finito alla lunghezza dei dati di ingresso g) Non deve esserci alcun limite alla quantità di memoria disponibile h) Deve esserci un limite finito al numero e alla complessità delle istruzioni eseguibili da C i) Sono ammesse esecuzioni con un numero di passi illimitato j) Sono ammesse esecuzioni con un numero di passi infinito (cioè esecuzioni che non terminano mai)
14 Non deve esserci alcun limite finito alla lunghezza dei dati di input Ad esempio somma di n numeri deve essere possibile per un qualsiasi n Non deve esserci alcun limite finito alla quantità di memoria disponibile Ad esempio la moltiplicazione di 2 n x 2 n = 2 2n deve poter essere calcolabile per ogni n
15 Deve esserci un limite al numero e alla complessità delle istruzioni eseguibili da C Questa condizione è essenziale alla intrinseca finitezza richiesta al nostro sistema formale e quindi deve chiaramente essere soddisfatta. Ciò implica che il numero di celle indirizzabili direttamente con una istruzione-macchina dovrà essere finito. Quindi la memoria illimitata al punto g) non potrà essere tutta indirizzabile direttamente. Ridursi ad indirizzare una cella. Sono ammesse esecuzioni con un numero di passi illimitato Esempio moltiplicazione, il numero di passi cresce al crescere del numero di cifre dei fattori. Si potrà pensare a semplici funzioni della lunghezza dei dati come limiti superiori al numero di passi ammissibili
16 Algoritmi & Funzioni Sia S un sistema formale, cioè un linguaggio in cui descrivere i nostri algoritmi, più un certo meccanismo di esecuzione. Un algoritmo A definisce quindi una funzione f A avente come dominio l insieme dei possibili dati di input e come codominio l insieme dei possibili risultati. f si dice calcolabile se esiste un algoritmo A tale che f = fa
17 Esistono algoritmi per tutte le funzioni? Se per alcuni valori dei dati iniziali X un algoritmo non termina, la funzione f A sarà non definita per quei valori. Una funzione che può essere non definita per alcuni valori è detta parziale. Una funzione definita per tutti i valori è detta totale Si noti come ad ogni algoritmo A di S é associata una funzione f=f A, la stessa funzione f può essere associata a più di un algoritmo: f=f A =f A Sia A S l insieme di tutti i possibili algoritmi in S, l insieme F S = {f A A A S } F S è detto l insieme delle funzioni calcolabili in S
18 Alcune nozioni di logica Completezza: Un sistema formale si dice completo se tutte e sole le verità esprimibili nel linguaggio del sistema sono dimostrabili all interno del sistema stesso. Coerenza: Un sistema formale si dice coerente, se non è possibile ottenere nel sistema una dim. di A e una di non A
19 Il Teorema di incompletezza di Gödel Gödel logico austriaco nel 1931 affermò che Per ogni formalizzazione coerente dell aritmetica, esistono verità aritmetiche che non possono essere dimostrate, all interno del sistema formale nel quale l aritmetica è rappresentabile o più informalmente L aritmetica non è completamente formalizzabile Esistono proposizioni matematiche di cui non è possibile dimostrare che siano vere o false.
20 L aritmetizzazione La tecnica usata per dimostrare il teorema di Gödel è particolarmente interessante per noi oggi Si tratta infatti di un metodo che trasformava tutti i simboli e i termini usati nel sistema formale della logica in numeri naturali, in particolare numeri primi
21 Un altra nozione di logica la decidibilità Un sistema formale è decidibile se esiste un metodo che in un numero finito di passi permette di riconoscere, per ogni formula espressa nel linguaggio del sistema, se è un teorema del sistema o non lo è. Un metodo, quindi, che stabilisca in linea di principio se esiste una dimostrazione per quella formula o no.
22 Il problema della decidibilità Dopo i risultati di Gödel, restava da risolvere il problema della decisione, che nella formulazione di Turing era posto in questi termini: è possibile avere un metodo meccanico che in un numero finito di passi permetta di riconoscere se una formula espressa nel linguaggio di un sistema formale è o non è un teorema del sistema?
23 Macchina di Turing Alan Turing introdusse la nozione di MdT nel 1936 come definizione matematica precisa del concetto intuitivo di funzione effettivamente calcolabile per dimostrare l esistenza di problemi indecidibili (tra cui quello della validità logica) Alan Turing pubblicò nel 1936 l articolo: On Computable Numbers with an Application to the decision problem. L idea era di avere una macchina astratta che potesse effettuare ogni tipo di calcolo su numeri e simboli
24 Macchina di Turing Turing nel 1939 definì così il risultato teorico: Si affermò che una funzione è effettivamente calcolabile se i suoi valori possono essere trovati attraverso un metodo puramente meccanico". Possiamo prendere alla lettera questa asserzione, intendendo per metodo puramente meccanico, un processo che può essere portato a termine da una macchina. E' possibile dare una descrizione matematica delle strutture di queste macchine.
25 Che vuol dire metodo meccanico? Secondo Turing un metodo meccanico è una procedura eseguita da un dispositivo meccanico, cioè da una macchina Per dimostrare che questo metodo meccanico non esisteva per alcuni problemi, Turing doveva inventare una macchina più generale possibile e mostrare che nemmeno questa era adatta allo scopo
26 Ma che cos è una macchina di calcolo? E difficile dare una definizione precisa di macchina di calcolo Per Turing è: Lo strumento più generale che si può usare per effettuare calcoli ma I calcoli sono solo manipolazione di simboli allora La macchina è lo strumento più generale e più elementare in grado di manipolare simboli
27 Una macchina universale Durante la primavera del 1936, Turing inventò la macchina più generale mai concepita, e probabilmente mai concepibile. Il dispositivo era dotato solo di: un nastro bidimensionale diviso in quadrati di lunghezza finita ma illimitata un dispositivo per la lettura, scrittura, eliminazione di simboli e spostamento sul nastro una tavola di istruzioni comprensibile alla macchina che indicava tutte le attività da svolgere senza ambiguità e tutti gli stati in cui la macchina poteva trovarsi
28 Lo schema di una MdT Dispositivo di lettura/scrittura/cancellazione spostamento sul nastro secondo la tavola delle istruzioni
29 Il risultato ottenuto da Turing 1. Turing dimostrò che, se un compito era eseguibile da una macchina, allora era simulabile da una MdT 2. Turing dimostrò che esistono calcoli che non possono essere effettuati, manipolazioni di simboli che non vanno a buon fine, procedure che non hanno mai termine anche per una MdT 3. Il problema della decisione è uno dei calcoli che non è possibile effettuare con una MdT
30 La MdT è una macchina astratta La MdT è un dispositivo astratto, non deve essere realizzabile in pratica E una macchina nella quale non vengono presi in considerazione i vincoli spazio-temporali: Dimensioni della memoria Tempo di calcolo Spazio di calcolo Realizzazione fisica
31 MdT: descrizioni istantanee 1. Un ingresso finito, cioè un nastro con un numero finito di simboli diversi dal bianco; 2. La posizione della testina di lettura e scrittura 3. Lo stato della macchina 1., 2. e 3. costituiscono la Descrizione Istantanea (DI) iniziale della Mdt Una descrizione Istantanea della MdT è Finale se nella matrice funzionale non esiste configurazione successiva
32 Introduzione al Modello formale Sia S = {s 0, s n } un alfabeto finito di simboli Q = {q 0, q m } un alfabeto finito rappresentante gli stati, M = {D, S} l insieme dei simboli rappresentante gli spostamenti a destra e sinistra, sia s 0 S il simbolo speciale che denota il bianco. La configurazione di una MdT ad ogni istante (DI) è definita specificando la stringa di simboli sul nastro, la posizione della testina e lo stato della macchina. Questa configurazione può venire rappresentata come una stringa infinita di simboli s 0 s 0 s i1 s i2 s i3 s ik-1 q r s ik s if s 0 s 0 di cui solo un numero finito è diverso da s 0. Il simbolo q r che compare nella stringa specifica lo stato di controllo della macchina e la posizione della testina (si conviene che il simbolo puntato sia quello a destra di q r )
33 MdT: descrizioni istantanee Se S* è l insieme di tutte le sequenze finite di simboli appartenenti ad S, allora una generica stringa s 0 s 0 s i1 s i2 s i3 s ik-1 q r s ik s if s 0 s 0 Potrà essere rappresentata schematicamente con qs dove, S*, q Q e s S, s rappresenta il simbolo in lettura. Una stringa qs sarà quindi una DI della MdT
34 MdT: comportamento La Matrice Funzionale rappresenta il comportamento della MdT s j dove: le righe rappresentano gli stati interni q 0, q 1,, q m q i s k q r x t le colonne rappresentano i simboli di ingresso s 0, s 1,, s n.b Mf(q i, s j ) rappresenta l azione che deve essere eseguita dalla macchina nel caso in cui si trovi nello stato q i e legga il simbolo s j. Un passo <s k q r x t > consiste nelle seguenti tre operazioni: 1. scrivere un altro simbolo s k ; 2. modificare lo stato in q r ; 3. spostarsi sul nastro a destra o a sinistra di una casella, a seconda che x t = DESTRA o x t = SINISTRA. In particolare s j può essere uguale a s k, e q i può essere uguale a q r cioè lo stato e il valore contenuti nella casella possono non essere modificati. Casella bianca, termine calcolo.
35 MdT: comportamento In generale il comportamento di una MdT è descritto da una quintupla che descrive la trasformazione di una DI nella successiva. Ogni trasformazione corrisponde ad un passo della computazione Ogni quintupla è del tipo: q i s j s ij q ij x ij q i,q ij Q, s i,s ij S, x ij M. I primi due simboli rappresentano una possibile situazione in cui la macchina si trova, Gli ultimi tre rappresentano l azione che la macchina deve intraprendere in corrispondenza di tale situazione: cioè la macchina sostituisce nella stringa il simbolo q i con il simbolo q ij, il simbolo s j con il simbolo s ij e sposta q ij di una posizione a destra o a sinistra secondo il valore contenuto in x ij. Esempio: q i s j s ij q ij D s 0 s 0 s 1 s 2 s 3 s j-1 q i s i s k s 0 s 0 s 0 s 0 s 1 s 2 s 3 s j-1 s ij q ij s k s 0 s 0 q i s j s ij q ij S s 0 s 0 s 1 s 2 s 3 s j-1 q i s i s k s 0 s 0 s 0 s 0 s 1 s 2 s 3 q ij s j-1 s ij s k s 0 s 0
36 Modello matematico della MdT DEF. 1: Una MdT Z è una terna (Q, S, P) in cui: Q è un insieme finito (l insieme degli stati) S è un insieme finito (l insieme dei simboli, un elemento è detto bianco e indicato con s 0 ) P è un sottoinsieme di QxSxSxQx{S,D}, l insieme delle quintuple di Z, ed ha la proprietà che non ci sono due quintuple con i primi due elementi uguali.
37 Relazione - Introduciamo la relazione - fra DI (Descrizioni Istantanee) di una MdT, che vale quando la seconda DI rappresenta la configurazione ottenuta in un passo da quella rappresentata dalla prima DI DEF. 2: Sia Z=(Q,S,P) una MdT. La relazione - è definita come segue: qs - s q se qss q D P sqs - q ss se qss q S P
38 Computazione di MdT Z DEF. 3: Una computazione massimale della MdT è una sequenza finita z 0 - z 1 -z z m di DI di Z, tale che z m è una DI finale, cioè se z m = qs, allora nessuna quintupla in P inizia con q s ; ed inoltre z j - z j+1 per 0 j m-1. Se facciamo partire Z da una configurazione iniziale z 0, allora o Z si fermerà, nel qual caso z 0 definisce univocamente la computazione massimale della quale z 0 è primo elemento, o Z non si fermerà mai, nel qual caso Z non ha alcuna computazione massimale di cui z 0 è primo elemento.
39 Chiusura transitiva c1 c2... ci ci+1... Usiamo la chiusura riflessiva e transitiva di, indicata con *, per denotare la relazione tra due configurazioni c e c' che esprime l'esistenza di una computazione che da c porta a c tramite un numero finito (eventualmente 0) di transizioni c * c
40 MdT Un ulteriore definizione di MdT è la seguente: Def. Macchina di Turing: M=<S,b,Q,q 0,F,d> S alfabeto di simboli b carattere speciale, spazio bianco (blank) Q insieme finito di stati q 0 stato iniziale F insieme di stati finali d funzione di transizione (parziale) d: : Q (S {b}) Q (S {b}) {d,s,i} d,s,i indicano spostamento a destra, a sinistra e immobilita' della testina Sb = S {b}
41 Computazione massimale Def. Una computazione c1 c2... cn e' massimale se non esiste una DI c tale che cn c NOTA BENE. Una computazione massimale si conclude o con una DI o con una DI finale (lo stato è finale) o con una DI in cui non e' definita la funzione di transizione
42 Computazione massimale Def. Una computazione massimale <c0, c1,..., cn> e' accettante se c 0 e' iniziale e c n e' finale. Def. Una computazione massimale <c0, c1,..., cn> e' rifiutante se c 0 e' iniziale e c n non e' finale. Convenzioni. Computazione accettante: responso affermativo Computazione rifiutante: responso negativo Computazione infinita: nessun responso
43 Algoritmo & MdT 1-5 requisiti 1. Il programma P deve essere di lunghezza finita 2. Ci deve essere un agente di calcolo C, capace di eseguire le istruzioni 3. L agente di calcolo C ha a disposizione una memoria dove immagazzina i risultati intermedi per poi utilizzarli nelle fasi successive del calcolo 4. Il calcolo avviene per passi discreti 5. Il calcolo non è probabilistico 1. L insieme di quintuple, o la matrice funzionale, della MdT costituisce un insieme finito di istruzioni. 2. La MdT è l agente di calcolo che esegue le istruzioni di cui al punto La MdT può utilizzare il nastro per memorizzare i risultati intermedi 4. La MdT opera in modo discreto 5. La MdT opera in modo deterministico, in quanto ad ogni condizione corrisponde una sola azione
44 Algoritmo & MdT 6-10 requisiti 6. Non deve esserci alcun limite finito alla lunghezza dei dati di ingresso 7. Non deve esserci alcun limite alla quantità di memoria disponibile 8. Deve esserci un limite finito al numero e alla complessità delle istruzioni eseguibili da C 9. Sono ammesse esecuzioni con un numero di passi illimitato 10. Sono ammesse esecuzioni con un numero di passi infinito (cioè esecuzioni che non terminano mai) 6. Non esiste nessuna limitazione sulla lunghezza delle stringhe di ingresso, in quanto il nastro è illimitato 7. Il nastro della MdT costituisce una memoria di capacità non limitata 8. Le operazioni che la MdT può eseguire sono molto semplici, quindi di complessità finita 9. Non esiste nessun limite sul numero di istruzioni che vengono eseguite durante una computazione, in quanto non esiste alcun limite al numero di volte che una quintupla può essere usata 10. Poiché esistono DI iniziali che non danno origine ad alcuna computazione mass. Ciò significa che la corrispondente sequenza di DI è infinita.
45 Calcolabilità Il modello di calcolo delle Macchine di Turing (TM) puo essere utilizzato sia per risolvere problemi di decisione (o accettazione), sia per calcolare funzioni (parziali) su S*.
46 Funzioni Calcolabili mediante MdT Ad ogni MdT Z può essere facilmente associata la funzione calcolata da Z, una volta che siano fissata una convenzione consistente sia per la codifica dei dati iniziali che del risultato finale. Esempio, data f: N n N una codifica degli argomenti potrebbe essere b b 1 b 2 b b n b b Dove i rappresenta la codifica binaria dell argomento i-mo. Il risultato finale f(x 1, x n ) potrebbe invece essere rappresentato dal numero binario che si trova alla destra della testina alla fine della computazione.
47 Funzioni calcolabili Def. Macchina di Turing trasduttrice: ogni configurazione finale e' del tipo xbqy, dove x e' il contenuto del nastro all'inizio della computazione Def. Una macchina trasduttrice calcola la funzione f se per tutte e sole le x nel dominio di definizione di f esiste q Q tale che: q 0 x * xbqf(x) Def. Una funzione (parziale) f per la quale esiste una macchina di Turing che la calcola e' detta calcolabile secondo Turing (T-calcolabile).
48 Esempio MT che calcola f(x) = x per x {0,1}*. M=<{0,1},b,Q,q 0,{q 6 },d> Configurazione iniziale: q Configurazione finale: bq rimpiazza il carattere piu' a sinistra (0 o 1) con una X o, rispettivamente, con una Y Y (stato q 0 ) si muove a destra verso il primo b (stati q 1 e q 2 ) si muove a destra verso il secondo b e scrive 0 o, rispettivamente, 1 Y b1 (stati q 3 e q 4 ) si muove a sinistra verso la X (o la Y) e la rimpiazza con 0 (1) (stato q 5 ) si muove di una cella a destra sul carattere successivo (stato q 0 ) se in questo ultimo passo trova b allora termina (stato q 6 )
49 Decidibilità Def. M=<S,b,Q,q 0,F,d> riconosce (decide) un linguaggio L se per ogni x S* esiste q Q tale che q 0 x * q con (S b )* e (S b ) + e la computazione corrispondente e' massimale, x L se e solo se q F Def. Un linguaggio riconosciuto da una macchina di Turing e' detto decidibile. Nota: Con S + denotiamo l'insieme delle stringhe non vuote. Pertanto S * = S + {stringa vuota}
50 Nota 1 Non e' detto che una macchina di Turing possa sempre riconoscere un linguaggio
51 ACCETTAZIONE DI LINGUAGGI Informalmente: Una macchina di Turing M riconosce un linguaggio L se per ogni x S*, M e in grado di stabilire se x L o no Una macchina di Turing M accetta un linguaggio L se per tutte e sole le x L, M e in grado di stabilire tale appartenenza, ma se x L, M non garantisce un comportamento prestabilito. Utilizzeremo lo stato finale (gli stati finali) per esprimere che la stringa data in input appartiene al linguaggio.
52 Semi-decidibilità Def. M=<S,b,Q,q 0,F,D> accetta un linguaggio L se per tutte e sole le x L esiste q F tale che q 0 x * q con (S b )* e (S b ) + In altre parole: Un linguaggio L e' accettato da una macchina di Turing M se: con (S b )*, (S b ) +. L = L(M) = {x x S* q 0 x * q q F} Def. Un linguaggio accettato da una macchina di Turing e' detto semidecidibile.
53 Nota 2 Se un linguaggio e' decidibile e' anche semidecidibile.
54 MdT generalizzate Possibili varianti della MdT: Variazione del numero degli stati Variazione del numero dei simboli dell alfabeto Aumento del numero di testine Aumento del numero dei nastri multidimensionali
55 Equivalenza di MdT La dimostrazione di equivalenza di una MdT modificata con quella di base si basa sul fatto che la MdT di base permette di esprimere qualsiasi operazione che può essere espressa in una MdT modificata. Concretamente ciascuna dimostrazione cercherà una MdT ordinaria che simuli effettivamente il comportamento della MdT di cui vogliamo mostrare l equivalenza
56 MT NONDETERMINISTICHE (MdT ND ) Def. Macchina di Turing non deterministica: M=<S,b,Q,q0,F, N > S alfabeto di simboli b carattere speciale, spazio bianco Q insieme finito di stati q0 stato iniziale F insieme di stati finali N funzione parziale di transizione N : Q S b P(Q S b {d,s,i}) La macchina di Turing non deterministica puo' eseguire piu' transizioni
57 Equivalenza tra MT e MdT ND Le MdT ND sono piu' "efficienti" ma non piu' potenti computazionalmente delle MT Teorema. Data una macchina non deterministica M con grado di non-determinismo d esiste una MT M' equivalente che simula k passi di M in O(kd k ) passi
58 CALCOLABILITA' SECONDO TURING (T-CALCOLABILITA') Le macchine di Turing ci consentono di definire linguaggi decidibili o semidecidibili funzioni (totali o parziali) calcolabili
59 Tesi di Church Contemporaneamente a Turing anche Alonzo Church ha introdotto un concetto di calcolabilita' ( -definibilita') basato su un sistema formale ( - calcolo). Tale sistema e' stato dimostrato equivalente, dallo stesso Turing. Cio' ha permesso di formulare la cosiddetta Tesi di Church-Turing: "Ogni funzione computabile con qualunque approccio formale e' T-computabile" Tutti i formalismi definiti successivamente hanno confermato la Tesi di Church-Turing.
60 Macchina di Turing universale E' possibile descrivere una macchina di Turing con una stringa di caratteri e fornire tale descrizione come input ad un'altra macchina di Turing. Esistono vari modi di descrivere una macchina di Turing con una stringa: possiamo fornire la sequenza delle quintuple che costituiscono la funzione di transizione ##d1##d2##... ##dn in cui e' presente la quintupla qi# j#qh# k#t1 se e solo se esiste la regola di transizione (qi,sj)=(qh, k, tl); possiamo sfruttare il fatto che ogni macchina di Turing puo' essere realizzata come composizione di alcune macchine elementari e fornire la descrizione di una macchina come sequenza di tali macchine.
61 Macchina di Turing universale Sia DM la descrizione della macchina M. Teorema. Esiste una macchina di Turing U, con stato iniziale (detta macchina di Turing universale) q 0U, che, data una qualunque descrizione D M, realizza la computazione q 0U D M #x * q fu, con q fu stato finale, se e solo se la macchina M, con stato iniziale q 0, realizza la computazione q 0 x * q f, con q f stato finale. Dim. La macchina non fa che eseguire una per una le trasformazioni richieste dalle quintuple della macchina M contenute in D M. Al termine cancella dal nastro la descrizione D M.
62 La MdT è una macchina simulatrice La MdTU emula il comportamento delle altre MdT attraverso una tavola di istruzioni, inserita nella macchina come se fossero i suoi dati La MdTU è perciò una macchina virtuale La MdTU è l insieme di struttura e tavola di istruzioni: Hardware + Software
63 IL PROBLEMA DELLA TERMINAZIONE (HALTING PROBLEM) Dimostriamo ora l'esistenza di una funzione che non e' calcolabile con una MT. Assumiamo che le macchine di Turing siano macchine ad un nastro, deterministiche con alfabeto S={0,1}.
64 HALTING PROBLEM (1) Data una MT M=<S,b,Q,q 0,F, > sia D M la codifica di M in S. Per x S* definiamo il predicato della terminazione h(d M,x) =1 se M con input x termina =0 se M con input x non termina Teorema. Il predicato della terminazione delle macchine di Turing non e' T-calcolabile. NOTA BENE. Invece e' T-calcolabile il predicato: h(d M,x) =1 se M con input x termina = indefinito, altrimenti
65 HALTING PROBLEM (2) Dim. Supponiamo che il predicato sia calcolabile, esista cioe' una macchina di Turing H che calcola h. Costruiamo la macchina H' che calcola il predicato h'(d M ) =1 se M con input D M termina =0 se M con input D M non termina H' non e' altro che la composizione di due macchine: la prima con input D M fornisce D M bd M, la seconda e' la macchina H che prende in input e calcola il predicato della terminazione. In altre parole H' e' la macchina che verifica se una MT termina quando le viene fornito in input il proprio codice. Possiamo ora costruire una nuova macchina H" che prende in input D M e calcola la funzione: h"(d M ) =0 se h'(d M ) = 0 =indefinito altrimenti H", cioe', termina con 1 se H' si e' fermata con 0 e si mette a ciclare, se H' si e' fermata con 1 Cosa accade ora se calcoliamo h"(d H "): h"(d H ") =indefinita se h"(dh") e' definita =0 se h"(d H ") e' indefinita In ogni caso abbiamo una contraddizione. Quindi non puo' esistere la macchina H.
66 Problemi ricorsivamente insolubili Le funzioni non calcolabili mediante MdT sono associate a problemi che si dicono Ricorsivamente Insolubili Esempi di problemi ricorsivamente insolubili: 1. Decidere se per ogni x, x è una funzione costante o no; 2. Decidere se per ogni x e z, z appartiene al codominio di x ; 3. Decidere se per ogni x1 e x2 x1 = x2 ; 4. Esempi di problemi per i quali è impossibile dimostrare la insolubilità ricorsiva: 1. Ultimo teorema di Fermat (decidere se esistono 4 interi x,y,z, e n con n>2, t.c. x n + y n = z n 2. Il problema dei 4 colori (decidere se sono sufficienti 4 colori per colorare i nodi di un grafo piano in modo tale che due nodi adiacenti non abbiano mai lo stesso colore) 3.
Algoritmi e Strutture Dati
Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il
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
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
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
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
DettagliPrincipio 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
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,
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
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
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
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
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)
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
DettagliAlgoritmi e Complessità
Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it Lezione 2 Teoria
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
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
DettagliL ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
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
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
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
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
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
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
DettagliScaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1
Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 23 27 novembre 2013
DettagliL ELABORATORE ELETTRONICO!
L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
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
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. 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
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
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
DettagliElaboratore Elettronico
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri oggetti
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
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
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
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
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
DettagliIntroduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione
Sommario Problemi e soluzioni Definizione informale di algoritmo e esempi Proprietà degli algoritmi Input/Output, Variabili Algoritmi senza input o output 1 2 Problema Definizione (dal De Mauro Paravia):
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
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
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
DettagliRichiami di Matematica. 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica.
Richiami di Matematica 1. Insiemi, relazioni, funzioni. 2. Cardinalitá degli insiemi infiniti e numerabilitá. 3. Notazione asintotica. Insiemi Definizioni di base Dato un insieme A: x A: elemento x appartenente
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
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
DettagliRappresentazione dei numeri interi in un calcolatore
Corso di Calcolatori Elettronici I A.A. 2012-2013 Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica
DettagliSviluppo 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
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
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
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
DettagliConcetti Introduttivi. Il Computer
Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta
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 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
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
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
DettagliInformatica, Algoritmi, Linguaggi
Elementi di Informatica e Applicazioni Numeriche T Informatica, Algoritmi, Linguaggi Cos'è l'informatica? Che cos'è l'informatica? Cos'è l'informatica? Che cos'è l'informatica? Dell'informatica possiamo
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
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
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
DettagliLezione 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
DettagliCORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì
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
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
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á
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
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
DettagliFondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a
Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi Roberto Basili a.a. 2006-2007 2007 Informatica Col termine Informatica si intende attualmente l insieme delle discipline scientifiche
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
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
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
DettagliCorso di Linguaggi di Programmazione + Laboratorio
Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un
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
Dettagli2. 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
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
DettagliLogica proposizionale
Logica proposizionale Proposizione: frase compiuta che è sempre o vera o falsa. Connettivi Posti in ordine di precedenza: not, and, or, implica, doppia implicazione Sintassi Le proposizioni sono costituite
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
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}*
DettagliLez. 5 La Programmazione. Prof. Salvatore CUOMO
Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente
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
DettagliLez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1
Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli
DettagliAppunti su Indipendenza Lineare di Vettori
Appunti su Indipendenza Lineare di Vettori Claudia Fassino a.a. Queste dispense, relative a una parte del corso di Matematica Computazionale (Laurea in Informatica), rappresentano solo un aiuto per lo
DettagliCorrettezza (prima parte)
Fondamenti di informatica Oggetti e Java (prima parte) Capitolo 16 ottobre 2015 1 Contenuti Introduzione alla correttezza dei programmi specifica di un programma correttezza di un programma verifica di
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
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
DettagliStruttura del calcolatore
Mondo esterno Dati di ingresso Calcolatore Dati di uscita Mondo esterno Il calcolatore elabora dei dati di ingresso per ottenere dati in uscita In linea di principio, ma non solo, il compito svolto da
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
DettagliRappresentazione dei numeri interi in un calcolatore
Corso di Calcolatori Elettronici I Rappresentazione dei numeri interi in un calcolatore Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle
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
Dettagli= < < < < < Matematica 1
NUMERI NATURALI N I numeri naturali sono: 0,1,2,3,4,5,6,7,8,9,10,11,12,13,... L insieme dei numeri naturali è indicato con la lettera. Si ha cioè: N= 0,1,2,3,4,5,6,7,.... L insieme dei naturali privato
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
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
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:
DettagliL ELABORATORE ELETTRONICO
L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti
DettagliSistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli
DettagliAritmetica dei Calcolatori Elettronici
Aritmetica dei Calcolatori Elettronici Prof. Orazio Mirabella L informazione Analogica Segnale analogico: variabile continua assume un numero infinito di valori entro l intervallo di variazione intervallo
DettagliScienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.
Esistono varie definizioni: Informatica Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione.
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
DettagliLogica e Informatica: cosa i calcolatori possono e non possono fare. Simone Martini
Logica e Informatica: cosa i calcolatori possono e non possono fare Simone Martini Dipartimento di Scienze dell Informazione Alma Mater Studiorum Università di Bologna 1 io Simone Martini Professore di
DettagliAppunti di informatica. Lezione 7 anno accademico Mario Verdicchio
Appunti di informatica Lezione 7 anno accademico 2016-2017 Mario Verdicchio L algoritmo di Euclide per l MCD Dati due numeri A e B, per trovare il loro MCD procedere nel seguente modo: 1. dividere il maggiore
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
DettagliSommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo
Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione
Dettagli