Fondamenti di Informatica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Fondamenti di Informatica"

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

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

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere

Dettagli

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?

Turing 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

Dettagli

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Sommario 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

Dettagli

Principio di composizione delle MT

Principio di composizione delle MT Principio di composizione delle MT La definizioni date fanno riferimento a situazioni in cui la macchina sia capace di risolvere problemi singoli. E possibile far sì che macchine progettate per problemi

Dettagli

Macchine di Turing. Francesco Paoli. Istituzioni di logica, Francesco Paoli (Istituzioni di logica, ) Macchine di Turing 1 / 29

Macchine di Turing. Francesco Paoli. Istituzioni di logica, 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,

Dettagli

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Agenda } Introdurremo } il formalismo delle Macchine di Turing nelle varie versioni } la nozione di calcolabilità e di decidibilità 2 La

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Ma 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?

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

AUTOMA A STATI FINITI

AUTOMA A STATI FINITI Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Algoritmi e Complessità

Algoritmi 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

Dettagli

Fondamenti 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. 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

Dettagli

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande

Dettagli

L ELABORATORE ELETTRONICO

L 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

Dettagli

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice

Linguaggio universale, riduzioni, e teorema di Rice. Linguaggio universale, riduzioni, e teorema di Rice l linguaggio universale Il linguaggio universale L u e l insieme delle stringhe binarie che codificano una coppia (M,w) dove w L(M). Esiste una TM U, detta TM universale, tale che L u = L(U). U ha tre

Dettagli

Aniello Murano Problemi non decidibili e riducibilità

Aniello 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

Dettagli

Concetti di base sugli automi e sui linguaggi formali

Concetti 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

Dettagli

MODULO 07 LA MACCHINA DI TURING

MODULO 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

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di

Dettagli

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

L 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

Dettagli

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Scaletta. 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

Dettagli

L ELABORATORE ELETTRONICO!

L 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

Dettagli

Le parole dell informatica: algoritmo e decidibilità

Le 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

Dettagli

Corso di Linguaggi di Programmazione

Corso 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

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine

Dettagli

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

INFORMATICA. 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

Dettagli

Teoria della Calcolabilità!

Teoria 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

Dettagli

Elaboratore Elettronico

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 rre altri oggetti

Dettagli

Algoritmo per A. !(x) Istanza di B

Algoritmo 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

Dettagli

Macchine di TURING. Alan Mathison Turing ( )

Macchine di TURING. Alan Mathison Turing ( ) Macchine di TURING Alan Mathison Turing (1912 1954) Macchine di TURING Alan Mathison Turing (1912 1954) matematico, logico e crittanalista britannico, considerato uno dei padri dell informatica e uno dei

Dettagli

Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004

Informatica Teorica. Sezione Cremona + Como. Appello del 20 Luglio 2004 Informatica Teorica Sezione Cremona + Como Appello del 20 Luglio 2004 Coloro che recuperano la I prova risolvano gli esercizi e 2 tra quelli indicati qui sotto entro un ora. Coloro che recuperano la II

Dettagli

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI: 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

Dettagli

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Introduzione 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):

Dettagli

Elementi di Complessità Computazionale

Elementi 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

Dettagli

Teoria della Calcolabilità!

Teoria 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

Dettagli

ITLCC 2006/10/6 19:09 page 7 #3

ITLCC 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

Dettagli

Richiami 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. 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

Dettagli

Il calcolatore universale, origini e nuovi paradigmi

Il 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

Dettagli

LOGICA MATEMATICA PER INFORMATICA (A.A. 12/13)

LOGICA 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

Dettagli

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione 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

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Capitolo 1 Linguaggi e Macchine Astratte

Capitolo 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

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione 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

Dettagli

Macchina di Turing Universale

Macchina di Turing Universale Informatica Teorica 2010/2011 M.Di Ianni Macchina di Turing Universale Vogliamo definire una macchina di Turing U che, presi in input la descrizione di una macchina di Turing ad un nastro T ed un input

Dettagli

Concetti Introduttivi. Il Computer

Concetti 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

Dettagli

UNA GERARCHIA DI MACCHINE

UNA 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

Dettagli

La macchina di Turing

La 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

Dettagli

Altrimenti, 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.)

Altrimenti, 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

Dettagli

Aniello Murano Decidibilità delle teorie logiche

Aniello 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

Dettagli

Informatica, Algoritmi, Linguaggi

Informatica, 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

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

Parte I.5 Cenni alla computazione

Parte 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

Dettagli

Informatica 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 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

Dettagli

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi

Lezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare

Dettagli

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

CORSO 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ì

Dettagli

La tesi di Church-Turing

La tesi di Church-Turing ITLCC 2006/11/12 21:06 page 79 #3 Capitolo 5 La tesi di Church-Turing SOMMARIO Sebbene il concetto di algoritmo abbia avuto una lunga storia nel campo della matematica, il concetto formale di algoritmo

Dettagli

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl Approfondimento 2.1 Non è questo il testo dove trattare esaurientemente queste tecniche semantiche. Ci accontenteremo di dare un semplice esempio delle tecniche basate sui sistemi di transizione per dare

Dettagli

Capitolo 8: Teoria della complessitá

Capitolo 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á

Dettagli

Università degli Studi di Udine. 1 Automi e Linguaggi. Prova Scritta di Fondamenti dell Informatica II Alcune Soluzioni

Università 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

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

Fondamenti 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 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

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica 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

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica 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

Dettagli

e Algoritmi Marco Piastra Intelligenza Artificiale I Soddisfacibilità

e 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

Dettagli

Corso di Linguaggi di Programmazione + Laboratorio

Corso 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

Dettagli

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

L 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

Dettagli

2. I numeri reali e le funzioni di variabile reale

2. I numeri reali e le funzioni di variabile reale . I numeri reali e le funzioni di variabile reale Introduzione Il metodo comunemente usato in Matematica consiste nel precisare senza ambiguità i presupposti, da non cambiare durante l elaborazione dei

Dettagli

Macchine di Turing: somma di due numeri

Macchine di Turing: somma di due numeri Informatica Teorica 2/2 M.Di Ianni Macchine di Turing: somma di due numeri Vogliamo definire una macchina di Turing che, presi in input due numeri n e m espressi in notazione binaria, calcola il valore

Dettagli

Logica proposizionale

Logica 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

Dettagli

Macchina di Turing ... !!... !!! a b b! b a! Nastro di Input. testina. s t q i. s r. Unità di Controllo q j S / D / F

Macchina di Turing ... !!... !!! 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

Dettagli

La macchina universale

La 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}*

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 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

Dettagli

Fondamenti dell informatica

Fondamenti 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

Dettagli

Lez. 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 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

Dettagli

Appunti su Indipendenza Lineare di Vettori

Appunti 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

Dettagli

Correttezza (prima parte)

Correttezza (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

Dettagli

Linguaggi Regolari e Linguaggi Liberi

Linguaggi Regolari e Linguaggi Liberi Linguaggi Regolari e Linguaggi Liberi Linguaggi regolari Potere espressivo degli automi Costruzione di una grammatica equivalente a un automa Grammatiche regolari Potere espressivo delle grammatiche 1

Dettagli

Funzioni calcolabili e linguaggi decidibili

Funzioni 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

Dettagli

Struttura del calcolatore

Struttura 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

Dettagli

Aniello Murano Automi e Pushdown

Aniello Murano Automi e Pushdown Aniello Murano Automi e Pushdown 2 Lezione n. Parole chiave: Automi e PDA Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009 Calcolabilità, complessità e macchine computazionali

Dettagli

Rappresentazione dei numeri interi in un calcolatore

Rappresentazione 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

Dettagli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE 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

= < < < < < 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

Dettagli

Alcune 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 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

Dettagli

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Algoritmo. Algoritmo funzionale. Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof.ssa Enrica Gentile Informatica e Comunicazione Digitale a.a. 2011-2012 Algoritmo L algoritmo è una sequenza finita di istruzioni, mediante le quali un qualunque operatore

Dettagli

Costruzione di espressioni regolari 4

Costruzione 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:

Dettagli

L ELABORATORE ELETTRONICO

L 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

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi 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

Dettagli

Aritmetica dei Calcolatori Elettronici

Aritmetica 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

Dettagli

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Scienza 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.

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 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

Dettagli

Logica 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 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

Dettagli

Appunti di informatica. Lezione 7 anno accademico Mario Verdicchio

Appunti 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

Dettagli

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 8

Note 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

Dettagli

Sommario 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. 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