Laurea Specialistica in Informatica - Università di Ferrara [1]

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Laurea Specialistica in Informatica - Università di Ferrara 2008-2009 [1]"

Transcript

1

2 Laurea Specialistica in Informatica - Università di Ferrara [1] Macchine di Turing modello di calcolo introdotto dall ingegner Alan Turing nel 1936, per simulare il processo di calcolo umano rappresenta il primo tentativo di definizione di procedura effettiva e di programma eseguito in automatico da una macchina Una macchina di Turing è composta da: una unità di controllo a stati finiti, cioè controllata da una macchina a stati un nastro di lunghezza arbitraria suddiviso in celle: inizialmente contiene la sequenza di dati di input, sequenza di caratteri non vuoti, successivamente i dati prodotti dalla elaborazione. su e da ogni cella del nastro è possibile leggere e scrivere un solo dato alla volta da una testina di lettura e scrittura che si muove lungo il nastro in entrambe le direzioni possibili. Inizialmente, per convenzione, la testina si assume posizionata sul carattere più a sinistra del nastro.

3 Laurea Specialistica in Informatica - Università di Ferrara [2] Macchine di Turing Il comportamento di una macchina di turing è molto semplice: inizialmente la macchina si trova in uno stato detto iniziale la stringa di input è scritta sul nastro la testina è posizionata su una cella, per convenzione il carattere più a sinistra della stringa di input in base allo stato corrente della macchina di controllo ed al carattere letto o puntato dalla testina si determina lo stato successivo e si compiono le seguenti azioni: 1. legge, scrive o cancella il carattere dalla cella su cui è posizionata la testina 2. sposta la testina di una cella a destra o sinistra o lascia la testina ferma la macchina continua ad elaborare la stringa sul nastro ed a transire di stato finchè si ferma in uno stato per cui non è definita alcuna azione o raggiunge uno stato particolare denominato finale

4 Laurea Specialistica in Informatica - Università di Ferrara [3] Macchine di Turing Le macchine di Turing possono essere utilizzate: per calcolare funzioni, in questo caso vengono dette trasduttori per riconoscere o accettare stringhe su un alfabeto, in questo caso vengono dette riconoscitrici. Si noti che, le macchine di Turing riconoscitrici calcolano la funzione caratteristica dell insieme delle stringhe che appartengono al linguaggio che si vuole riconoscere. Esistono vari tipi di Macchine di Turing: singolo nastro mono traccia deterministiche singolo nastro multi traccia deterministiche multi nastro mono/multi traccia deterministtiche singolo/multi nastro mono/multi traccia NON deterministiche

5 Laurea Specialistica in Informatica - Università di Ferrara [4] Definizione Formale di una Macchine di Turing Definizione Una macchina di Turing (deterministica, singolo nastro) si definisce come una 6-upla M = (Σ, b/, K, δ, q 0, q f ) ove: Σ è l alfabeto, ovvero l insieme di caratteri che possono essere scritti e letti dal nastro b/ / Σ è una carattere speciale detto blank che rappresenta la situazione di cella non contenente alcun carattere K è l insieme finito e non vuoto di stati q 0 è lo stato iniziale q f è lo stato finale (possono essere definiti anche più di uno stato finale) δ è la funzione di transizione così definita: essendo Σ b/ = Σ b/. δ : (K q f ) (Σ b/ ) K (Σ b/ ) {d, s, i}

6 Laurea Specialistica in Informatica - Università di Ferrara [5] La funzione di transizione δ(q i, x) = (q j, y, v) si interpreta nel seguente modo: lo stato attuale della macchina è q i il carattere letto dalla cella puntata dalla testina è x la testina scrive il carattere y la macchina a stati transisce nello stato q j la testina si sposta nella direzione v, ove v può essere d = destra s = sinistra i = immobile

7 Laurea Specialistica in Informatica - Università di Ferrara [6] Configurazione di una Macchine di Turing Definizione Si definisce configurazione di una macchina di Turing una stringa s Σ b/ K Σ b/ del tipo s = a i1... a i n q r a j1... a j m, n 0, m 0 ove: Σ è l insieme di tutte le stringhe appartenenti all alfabeto Σ, il simbolo è l operatore di concatenazione sulle stringhe a i1... a i na j1... a j m rappresenta la porzione di nastro contenente caratteri diversi da b/, mentre il resto del nastro contiene solo il carattere b/ a j1 è il contenuto della cella puntata dalla testina q r è lo stato in cui si trova la macchina Configurazioni particolari sono quella iniziale e quella finale

8 Laurea Specialistica in Informatica - Università di Ferrara [7] Configurazione Iniziale e Finale di una MT Definizione Una configurazione s = xqy è detta iniziale se x = ɛ, q = q 0, y Σ + b/ Cioè una configurazione iniziale è una situazione in cui lo stato della macchina è q 0 e la testina si trovi posizionata sul primo carattere a sinistra della stringa di input (non vuota). Definizione Una configurazione s = xqy è detta finale se x Σ b/, q = q f, y Σ b/ Cioè una configurazione finale è una situazione in cui lo stato della macchina è q f contenuto del nastro e dalla posizione della testina. indipendentemente dal

9 Laurea Specialistica in Informatica - Università di Ferrara [8] Funzione di Transizione di una MT Data una configurazione c i una singola applicazione della funzione δ a c i permette di ottenere una nuova configurazione c j secondo le seguenti regole: δ(q r, a j1 ) = (q k, a h, d) significa compiere la seguente transizione di configurazione: a i1... a i n q r a j1... a j m 1 a i1... a i na h q k a j2... a j m δ(q r, a j1 ) = (q k, a h, s) significa compiere la seguente transizione di configurazione: a i1... a i n q r a j1... a j m 1 a i1... a i n 1 q k a i na h a j2... a j m δ(q r, a j1 ) = (q k, a h, i) significa compiere la seguente transizione di configurazione: a i1... a i n q r a j1... a j m 1 a i1... a i n q k a h a j2... a j m

10 Laurea Specialistica in Informatica - Università di Ferrara [9] Funzione di Transizione di una MT La funzione di transizione δ può essere rappresentata in due modi: tramite una matrice avente gli stati della MT sulle righe e i simboli dell alfabeto Σ sulle colonne tramite un grafo orientato i cui nodi sono gli stati della macchina di controllo e gli archi rappresentano le transizioni possibili. Ogni arco è etichettato con una tripla (a, b, v) ove a è il simbolo puntato dalla testina, b è il simbolo scritto e v la direzione di movimento. La funzione δ definisce il comportamento della macchina di Turing, cioè definisce le regole di transizione che permettono di passare da una configurazione ad un altra. Si noti che tali regole possono essere interpretate come regole di riscrittura del contenuto del nastro.

11 Laurea Specialistica in Informatica - Università di Ferrara [10] Computazione di una MT Definizione Una successione di configurazioni c 1,..., c n,..., eventualmente infinita, tale che c 1 è uno 1 stato iniziale e i, c i ci+1, definisce una computazione per la macchina di Turing. Usiamo la scrittura c i cj per denotare l esistenza di una computazione che da c i porta a c j tramite un numero finito, eventualmente 0, di transizioni. Ogni computazione può avere al più una configurazione finale, e una computazione infinita non ha configurazioni finali. Definizione Una computazione finita c 1,..., c n è detta massimale se non esiste una configurazione c tale che c n c. Ovvero, una computazione massimale si conclude o con una configurazione finale o con una configurazione in cui non è definita la funzione di transizione δ. Definizione Una computazione massimale c 1,..., c n è detta accentante se c n è uno stato finale Definizione Una computazione massimale c 1,..., c n è detta rifiutante se c n è uno stato NON finale

12 Laurea Specialistica in Informatica - Università di Ferrara [11] Linguaggio Riconosciuto da una MT Una MT può essere utilizzata per riconoscere o accettare un linguaggio L Σ. Definizione Data una macchina di Turing M = (Σ, b/, K, δ, q 0, q f ) diciamo che M riconosce o decide un linguaggio L Σ se e solo se per ogni stringa x Σ, stringa dell alfabeto, esiste una computazione massimale accettante o rifiutante per la macchina M: x Σ, q 0 x wqz, q = q f x L Cioè una MT riconosce un linguaggio L se per ogni stringa definita sull alfabeto Σ è in grado di stabilire se la stringa x appartiene o no al linguaggio L. Definizione Un linguaggio riconosciuto da una MT è detto T-decidibile Data una MT M NON è detto che esista un linguaggio L deciso da M, infatti per definizione ciò è possibile se e solo se M termina per ogni stringa x Σ

13 Laurea Specialistica in Informatica - Università di Ferrara [12] Linguaggio Accettato da una MT Definizione Data una macchina di Turing M = (Σ, b/, K, δ, q 0, q f ) diciamo che M accetta un linguaggio L Σ se e solo se per ogni stringa x L esiste una computazione massimale accettante per la macchina M, cioè L = {x Σ q 0 x wq f z} Una MT accetta un linguaggio L se per tutte le stringhe del linguaggio è in grado di stabilire tale appartenenza, cioè esiste una computazione massimale accettante. Non è in grado di dire nulla per tutte le stringhe non appartenenti al linguaggio. Definizione Un linguaggio accettato da una MT è detto T-semidecidibile Un linguaggio è T-decidibile è anche T-semidecidibile, ma il viceversa non è vero.

14 Laurea Specialistica in Informatica - Università di Ferrara [13] Macchine di Turing Trasduttori Definizione Data una macchina di Turing M = (Σ, b/, K, δ, q 0, q f ) ed una funzione f : Σ Σ, diremo che M calcola la funzione f se e solo se x Σ, f(x), f(x) = y q 0 x x b/ q f y Se x / Σ, oppure f(x), allora o la macchina termina in uno stato non finale o non termina. In generale: per funzioni arbitrarie f : D C ci si può ricondurre a MT operanti su stringhe. Ad esempio per funzioni f : N N si può pensare di usare la codifica unaria per rappresentare i numeri sul nastro per funzioni a più argomenti per esempio f : D 1 D 2 C si può pensare di codificare opportunamente le coppie d 1, d 2 con simboli da usare sul nastro, ad esempio codificare le coppie tramite la funzione di cantor e rappresentarle sul nastro in forma unaria

15 Laurea Specialistica in Informatica - Università di Ferrara [14] Macchine di Turing Multitraccia Definizione Una macchina di Turing multitraccia M ad m tracce è definita come una 6-upla ove la fuzione δ è definita come Σ, b/, K, δ, q 0, q f δ m : (K {q f }) Σ m b/ K Σm b/ {d, s, i} Quindi, una macchina di Turing multitraccia è in grado di scrivere e leggere caratteri vettoriali ma la testina si sposta contemporaneamente su tutte le tracce. Da un punto di vista fisico si può immaginare di avere una macchina composta da un nastro suddiviso in m tracce ed una singola testina. L uso di MT-multitraccia permette di avere maggior potere computazionale?

16 Laurea Specialistica in Informatica - Università di Ferrara [15] Macchine di Turing Multinastro Definizione Una macchina di Turing ad m nastri è definita da una 6-upla Σ, b/, K, δ m, q 0, q f ove Σ, b/, K, q 0, q f sono definiti come nel caso di una machina di Turing a singolo nastro e δ m è la funzione di transizione definita come: δ m : (K {q f }) Σ m b/ K Σm b/ {d, s, i}m cioè la funzione δ m definisce le transizione della MT su ogni nastro. Da un punto di vista fisico si può immaginare di avere una macchina composta da m nastri ed m testine, una per ogni nastro. L uso di MTM permette di avere un maggior potere computazionale?

17 Laurea Specialistica in Informatica - Università di Ferrara [16] Macchine di Turing NON Deterministiche Tutti i modelli di calcolo sinora esaminati sono tutti deterministici, cioè la transizione da un passo della computazione al successivo è sempre univocamente determinata. Ad esempio in una macchina a registri o in un linguaggio di programmazzione tipo mp le azioni da compiere sono univocamente determinate dalla semantica delle istruzioni. Il determinismo è un concetto molto vicino al modo di funzionamento dei calcolatori i quali ad ogni istante determinano lo stato successivo della computazione in base alla semantica della istruzione da eseguire. Si possono definire modelli di calcolo in cui si rilascia l univocità della funzione di transizione della computazione da un stato al successivo. Tali modelli prendono il nome di modelli non deterministici.

18 Laurea Specialistica in Informatica - Università di Ferrara [17] Macchine di Turing NON Deterministiche Una macchina di Turing non deterministica è definita da 6-upla: M = (Σ, b/, K, δ, q 0, q f ) ove la funzione di transizione δ è definita nel seguente modo: δ : (K {q f }) Σ b/ P(K Σ b/ {d, s, i}) Proprietà: da ogni configurazione si può transire in una o più configurazione simultaneamente ogni applicazione della funzione di transizione definisce più stati anzicchè uno solo. la configurazione successiva non è univocamente determinata, la computazione non è più rappresentabile da una successione lineare di configurazioni, ma mediante un albero di configurazioni. il grado di non determinismo corrisponde, dato una generica configurazione, al massimo numero di confgurazioni generate dalla funzione δ. Una MT non deterministica si comporta come se ad ogni passo instanziasse nuove MT, ognuna delle quali elabora una delle configurazione ottenute dalla funzione di transizione.

19 Laurea Specialistica in Informatica - Università di Ferrara [18] Esempio Sia L = {s {0, 1} s contenga un numero pari di 1}. La MT che riconosce il linguaggio L è la seguente: M = ({0, 1}, b/, {q 0, q 1, q 2 }, δ, q 0, q 2 ) ove la funzione di transizione δ è descritta dalla seguente matrice: δ b/ 0 1 q 0 q 2 b/i q 0 0d q 1 1d q 1 q 1 0d q 0 1d Algoritmo: la macchina scandisce la stringa da sinistra verso destra e transisce dallo stato q 0 allo stato q 1 e viceversa ogni volta che legge un 1, se quando si legge il carattere b/ (primo carattere b/ a destra della stringa) la macchina si trova nello stato q 0 allora si transisce nello stato finale q 2

20 Laurea Specialistica in Informatica - Università di Ferrara [19] Esempio Descrivere una MT che riconosca l insieme di parantesi bilanciate, ovvero stringhe del tipo: { (()), (), ((())) } Sia M = ({(, )}, b/, {q 0, q 1, q 2, q 3 }, δ, q 0, q f ) una MT ove la funzione di transizione δ è descritta dalla matrice: δ ( ) b/ q 0 q 1 b/d q f b/i q 1 q 1 (d q 1 )d q 2 b/s q 2 q 3 b/s q 3 q 3 (s q 3 )s q 0 b/d Algoritmo: La macchina di Turing sopra descritta scandisce la stringa di input da sinistra verso destra Lo stato q 0 cerca la prima parentesi (, appena la trova la cancella e transisce nello stato q 1 lo stato q 1 scandisce tutta la stringa fino a posizionarsi sull ultimo carattere più a destra e quindi transisce nello stato q 2 lo stato q 2 cerca la prima parentesi ), trovatala la cancella e transisce nello stato q 3 lo stato q 3 posizione la testina sul primo carattere più a sinistra e transisce nello stato q 0 a questo punto o la stringa è vuota e si transisce nello stato finale o si ricomincia.

21 Laurea Specialistica in Informatica - Università di Ferrara [20] Esempio Descrivere una MT per il riconoscimento delle stringhe palindrome definite sull alfabeto {a, b}. Si consideri la seguente MT M = ({a, b}, b/, {q 0, q a1, q a2, q a3, q b1, q b2, q b3 }, δ, q 0, q f ) La funzione di transizione δ è definita dalla seguente matrice: δ b/ a b q 0 q f b/i q a0 b/d q b0 b/b q a0 q a1 b/s q a0 ad q a0 bd q a1 q a2 b/s q a2 q 0 b/d q a2 as q a2 b/s q b0 q b1 b/s q b0 ad q b0 bd q b1 q b2 b/s q b2 q 0 b/d q b2 as q b2 b/s La MT appena descritta si comporta nel seguente modo: 1. stato q 0 : cancella il primo carattere della stringa 2. stato q x0 : posiziona la testina sull ultimo carattere della stringa di input 3. stato q x1 : cancella il carattere puntato dalla testina La MT nello stato q x1 si aspetta di leggere il carattere x altrimenti si ferma in uno stato non finale e non riconosce la stringa di input come appartenenete al linguaggio.

22 Laurea Specialistica in Informatica - Università di Ferrara [21] MT Trasduttori Vediamo adesso alcuni esempi di MT trasduttori, cioè che calcolano funzioni. Supponiamo di rappresentare i numeri in forma unaria, giustapposizione di n volte il carattere o il carattere 1. cioè ogni numero n è rappresentato dalla Esempio: rappresenta il numero naturale 1 rappresenta il numero naturale 4 n =... rappresenta il numero n

23 Laurea Specialistica in Informatica - Università di Ferrara [22] Esempio di MT Trasduttori Descrivere una MT che calcola la funzione n + m. Supponiamo che la testina sia posizionata sul primo carattere a sinistra della stringa di input. M = ({, +}, b/, {q 0, q 1, q 2 }, δ, q 0, q f ) La funzione di transizione δ è descritta dalla seguente matrice: δ + b/ q 0 q 0 d q 1 d q 1 q 1 d q 2 b/s q 2 q f b/i 1. scandisce la stringa da sinistra verso destra 2. sostituisce l occorrenza del carattere + con il carattere 3. cancella l ultimo carattere della stringa

24 Laurea Specialistica in Informatica - Università di Ferrara [23] Esempio di MT Trasduttori Descrivere una MT per il calcolo del predecessore. M = ({1}, b/, {q 0 }, δ, q 0, q f ) La funzione di transizione δ è rappresentata dalla seguente matrice: δ b/ 1 q 0 q f b/i possiamo descrivere una seconda MT che scandisce la stringa e cancella l ultimo carattere a destra δ b/ 1 q 0 q 1 b/d q 1 q 2 b/s q 1 1d q 2 q f b/i

25 Laurea Specialistica in Informatica - Università di Ferrara [24] Esempio di MT Trasduttori Descrivere una MT per il calcolo della funzione f(x) = 2x. Supponiamo che la testina sia posizionata sul primo carattere a sinistra della stringa di input diverso da b/. M = ({1}, b/, {q 0, q 1, q 2, q 3, q 4, q 5, q 6 }, δ, q 0, q f ) La funzione di transizione δ è definita dalla seguente matrice: δ b/ 1 q 0 q 0 b/d q 2 b/d q 1 q 0 b/d q 1 1s q 2 q 3 b/d q 2 1d q 3 q 4 1d q 3 1d q 4 q 5 1s q 5 q 6 b/s q 5 1s q 6 q f b/i q 1 1s

26 Laurea Specialistica in Informatica - Università di Ferrara [25] Un esempio di computazione è il seguente: 11 b/1b/ b/1b/1 b/1b/11 b/b/b/111 b/b/b/1111

27 Laurea Specialistica in Informatica - Università di Ferrara [26] Macchine di Turing Multi-traccia Una macchina di Turing multi-traccia consiste di un nastro suddiviso in tracce disposte in modo tale che la testina, con una singola operazione può accedere a tutte le celle di tutte le tracce in corrispondenza della testina. Possiamo considerare la macchina multi-traccia come una macchina che anzichè operare su simboli scalari opera su simboli vettoriali. Data una macchine di turing M m = (Σ, b/, K, δ m, q 0, q f ) multitraccia con m tracce si ha che: l alfabeto Σ = Σ 1... Σ m, ove ogni Σ i rappresenta l alfabeto di simboli della traccia i. Quindi un generico elemento (carattere) σ Σ sarà del tipo: σ = (σ 1,..., σ m ), 1 i m σ i Σ i. In particolare il simbolo (b/,..., b/) {z } m rappresenta il simbolo di blank dell alfabeto Σ b/. Poichè ogni elemento di Σ i può essere combinato con gli altri elementi di Σ j, per ogni j i, il numero di caratteri σ = (σ 1,..., σ m ) diversi che potranno comparire sul nastro saranno: Σ = Q m i=1 Σ i. la funzione di transizione δ m sarà una funzione del tipo: δ m : (K {q f }) Σ b/ K Σ b/ {d, s, i}, δ m (q i, σ) = (q j, σ ), σ, σ Σ b/

28 Laurea Specialistica in Informatica - Università di Ferrara [27] Equivalenza MT-multi-traccia e MT-singola-traccia La testina della macchina di Turing multi-traccia punta al carattere σ = b 1. ( 3 7 5

29 Laurea Specialistica in Informatica - Università di Ferrara [28] Equivalenza MT-multi-traccia e MT-singola-traccia Teorema Una Macchine di Turing singolo nastro multi-traccia M m con m tracce può essere simulata da una macchina di Turing singolo nastro mono-traccia M. Dimostrazione Sia M m = (Σ, b/, K, δ m, q 0, q f ) la macchina di Turing multitraccia, ove Σ = Σ 1... Σ m. Si definisca una MT singola traccia M = (Λ, b/, K, δ, q 0, q f ) tale che: Λ = Σ 1... Σ m cioè, la cardinalità dell alfabeto Λ è pari al prodotto delle cardinalità degli alfabeti delle singole tracce. Si definisca inoltre, una funzione iniettiva ϕ : Σ Λ che associ ad ogni simbolo di Σ un simbolo di Λ (poichè Λ Σ è possibile definire una tale funzione). La funzione di transizione δ sarà definita in modo tale che in corrispondenza di una transizione δ m (q i, σ) = (q j, σ, v) della macchina M m, la macchina M esegua la transizione: δ(q i, λ) = (q j, λ, v), λ = ϕ(σ), λ = ϕ(σ ) L alfabeto su cui opera la macchina singola traccia M è un alfabeto in cui ogni simbolo rappresenta la codifica di un vettore di simboli dell alfabeto della macchina multi-traccia M m.

30 Laurea Specialistica in Informatica - Università di Ferrara [29] Macchine di Turing Multi-nastro Definizione Una macchina di Turing M (m) ad m nastri è definita da una 6-upla M (m) = (Σ, b/, K, δ (m), q 0, q f ) ove Σ, b/, K, q 0, q f sono definiti come nel caso di una machina di Turing a singolo nastro e δ (m) è la funzione di transizione definita come: δ m : (K {q f }) Σ m b/ K Σm b/ {d, s, i}m cioè la funzione δ (m) definisce le transizione della MT su ogni nastro. Da un punto di vista fisico si può immaginare di avere una macchina composta da m nastri ed m testine, una per ogni nastro. La MT in base allo stato interno ed ai caratteri letti dalle testine decide in quale stato interno transire, quali caratteri scrivere sul nastro e come spostare le testine. Una machina di Turing multi-nastro può essere simulata da una macchina di Turing singolo-nastro multitraccia.

31 Laurea Specialistica in Informatica - Università di Ferrara [30] Equivalenza MT-Multinastro e MT-singolo-nastro Figure 1: Macchina di Turing singolo nastro multitraccia che simula una Macchina di Turing multinastro

32 Laurea Specialistica in Informatica - Università di Ferrara [31] Equivalenza MT-Multinastro e MT-singolo-nastro Figure 2: Struttura del nastro di una MT-multitraccia che simula MT-multinastro (Z 0 = b/)

33 Laurea Specialistica in Informatica - Università di Ferrara [32] Equivalenza MT-Multinastro e MT-singolo-nastro Figure 3: Nastro iniziale di una MT-multitraccia che simula MT-multinastro (Z 0 = b/)

34 Laurea Specialistica in Informatica - Università di Ferrara [33] Equivalenza MT-Multinastro e MT-singolo-nastro Teorema Sia data una macchina di Turing M (k) con k nastri, allora esiste una macchina di Turing M a singolo nastro che la simula. Dimostrazione Sia M (k) la MT multi nastro così definita M (k) = (Σ, b/, K, q 0, F, δ) ove supponiamo per ogni nastro i, 1 i k che l alfabeto usato sia Σ i. Costruiamo una MT singolo nastro, avente 2k tracce, definita nel seguente modo: M = (Σ, b/, K, q 0, F, δ ) ove l alfabeto Σ è definito come: Σ = {b/, } Σ 1... {b/, } Σ k cioè, è composto di k coppie di simboli (λ i, σ i ) di cui λ i {b/, } e σ i Σ i per ogni 1 i k. Il nastro di M risulta allora composto nel seguente modo: i, 1 i k, la traccia pari di indice 2i contiene la stringa presente sul nastro di indice i i, 1 i k, la traccia dispari di indice 2i 1 contiene una stringa composta del solo simbolo rappresentante la posizione della testina del nastro di indice i

35 Laurea Specialistica in Informatica - Università di Ferrara [34] All inizio della computazione supponiamo che il nastro di M sia configurato nel seguente modo: la traccia 1 contiene una stringa con il solo simbolo in corrispondenza del primo carattere a sinistra della traccia 2 la traccia 2 contiene la stringa di input della macchina M (k) i, 2 i k le tracce pari di indice 2i contengono solamente il simbolo b/ i, 2 i k le tracce dispari di indice 2i 1 contengono solamente il simbolo in corrispondenza del simbolo più a sinistra della traccia 2, cioè quella contenente la stringa di input della macchina multi-traccia M (k) Per simulare la funzione di transizione di δ (k) della MT multi-nastro M, la funzione di transizione δ deve riscrivere 2k simboli, uno per traccia. Quindi, in particolare, per simulare una transizione del tipo: deve eseguire i seguenti passi: δ (k) (q i, a i1,..., a ik ) = (q j, a j1,..., a jk, d 1,..., d k ) 1. rintracciare le posizione dei k simboli rappresentanti le posizione delle k testine della macchina M (k) nello stato q i 2. riscrivere i k simboli puntati dalle testine dei k nastri 3. posizionare i k simboli nella posizione delle testine della macchine M (k) nello stato q j 4. transire di stato

36 Laurea Specialistica in Informatica - Università di Ferrara [35] Quindi ad ogni passo di M (k), la macchina M deve eseguire un numero di passi proporzionale alla distanza, in termini di numero di celle, tra i due simboli più lontani. Ad ogni passo i simboli possono al più allontanarsi di 2 celle, quindi dopo t passi, nel caso pessimo, si saranno allontanati di 2t celle. Quindi se la macchina multi-nastro M (k) singolo-nastro M per simularla sarà: compie t passi, il numero di passi eseguiti dalla macchina Σ t i=1 2i = 2Σt i=1 i = 2t(t+1) 2 = t 2 + t = O(t 2 ) Per quanto riguarda la dimensione dell alfabeto Σ, osserviamo che quella dell alfabeto dei nastri dispari è 2, mentre quella dei nastri pari, per ogni nastro i è Σ i. Quindi, la dimensione dell alfabeto Σ usato da M sarà pari al prodotto di tutte le cardinalità degli alfabeti dei singoli nastri: Q k i=1 2 Σ i = O((max Σ i ) k ) Quindi una MT multinastro può essere simulata da una MT singolo-nastro multi-traccia in un tempo quadratico usando un alfabeto di cardinalità esponenziale nel numero dei nastri.

37 Laurea Specialistica in Informatica - Università di Ferrara [36] Macchine di Turing NON Deterministiche Una macchina di Turing non deterministica è definita da 6-upla: M = (Σ, b/, K, δ, q 0, q f ) ove la funzione di transizione δ è definita nel seguente modo: δ : (K {q f }) Σ b/ P(K Σ b/ {d, s, i}) cioè da ogni configurazione si può transire in una o più configurazione simultaneamente. La configurazione successiva non è univocamente determinata e la computazione non è più una successione di configurazioni ma secondo un albero di configurazioni. Il grado di non determinismo corrisponde, dato una generica configurazione, al massimo numero di confgurazioni generate dalla funzione δ. Una MT non deterministica si comporta come se ad ogni passo instanziasse nuove MT, ognuna delle quali elabora una delle configurazione diverse prodotte dalla funzione di transizione δ.

38 Laurea Specialistica in Informatica - Università di Ferrara [37] Macchine di Turing NON Deterministiche Esempio: Definire una macchina di Turing non deterministica che riconosca le stringhe del tipo xaa con x {a,b}. Sia M la macchina di Turing non-deterministica definita nel seguente modo: M = ({a, b}, b/, {q 0, q 1 }, δ, q 0, q f ) ove la funzione δ è definita dalla seguente matrice: δ a b b/ q 0 (q 0, a, d), (q 1, a, d) (q 0, b, d) q 1 (q 2, a, d) q 2 (q f, b/, i) Esercizio: scrivere la computazione sulla stringa abbabaa.

39 Laurea Specialistica in Informatica - Università di Ferrara [38] Macchine di Turing NON Deterministiche Definizione Dato un alfabeto Σ, una stringa x Σ computazione accettante di M. è accettata dalla macchina M se esiste una Definizione Dato un alfabeto Σ, una stringa x Σ è rifiutata dalla macchina M se tutte le computazione di M sono rifiutanti. Osservazioni: Si osservi che i due concetti sono molto asimettrici tra di loro: il primo, richiede che esista almeno una computazione accettante, quindi, se abbiamo a disposizione una soluzione è facile certificarla come tale. viceversa, una stringa è rifiutata se tutte le possibili computazioni sono rifiutanti e questo può essere molto più difficile da verificare.

40 Laurea Specialistica in Informatica - Università di Ferrara [39] Equivalenza MTND e MT deterministiche Teorema Per ogni MTND M esiste una MT deterministica M (3) deterministica a 3 nastri equivalente. Dimostrazione La simulazione della macchine di Turing non deterministica M tramite una deterministica M (3) si ottiene visitando l albero delle computazione di M utilizzando l algoritmo di visita breadth first. NB: la visita non può essere fatta in modo depth first poichè visitando un ramo corrispondente ad una computazione infinita, l algoritmo di visita non terminerebbe. Ad ogni passo di computazione di M si possono generare al massimo d scelte, ove d è il grado di non determinismo della macchina M. Supponiamo di numerare con numeri compresi tra 1 e d le scelte derivanti dalla funzione di transizione di M. In tal modo ogni computazione potrà essere identificata come una sequenza di numeri compresi tra 1 e d, ognuno dei quali identifica una delle possibili d scelte generate dalla funzione di transizione di M. Non tutte le combinazioni saranno valide poichè non è detto che ad ogni passo la funzione di transizione generi esattamente d scelte. Dopo i passi di computazione della macchina M, quindi esistono al più d i stringhe di lunghezza i che rappresentano particolari computazioni di M.

41 Laurea Specialistica in Informatica - Università di Ferrara [40] Si supponga quindi di organizzare la macchina M (3) nel seguente modo: il primo nastro contiene la stringa di input il secondo nastro contiene, per ogni passo di computazione i di M, stringhe di lunghezza i, corrispondenti a sequenze di numeri compresi tra 1 e d. Fissato i il numero di stringhe sarà al più d i. il terzo nastro eseguirà la simulazione vera e propria La simulazione avviene secondo il seguente algoritmo: 1. i 1 passo di computazione di M, si generano sul nastro 2 tutte le stringhe di lunghezza i, corrispondenti a possibili sequenze di scelte per computazioni di lunghezza i. La generazione delle stringhe avviene una alla volta. 2. per ogni sequenza di lunghezza i: (a) si copia il contenuto del nastro 1 sul nastro 3 (b) si scandisce il nastro 2, e per ogni j, indice di una possibile scelta, si applica la j-esima scelta di δ al nastro 3 Se esiste un cammino di lunghezza l che porta la macchina M in uno stato finale, allora esiste sicuramente una fase di calcolo di M (3) che percorre tale cammino. Se viceversa tale cammino non esiste allora anche M (3) non raggiungerà mai lo stato finale.

42 Laurea Specialistica in Informatica - Università di Ferrara [41] Ad ogni passo j della computazione di M, la MT M (3) compie un numero di passi pari alla lunghezza del cammino (j) per il numero dei cammini (d j ), ovvero: j d j Se la macchina M termina in k 0 passi, allora la macchina M (3) esegue al più un numero di passi pari a: Σ k j=1 j dj O(kd k ) Quindi una MTND può essere simulata da una MT deterministica multi-nastro in un tempo esponenziale nel numero dei passi della macchine non deterministica.

43 Laurea Specialistica in Informatica - Università di Ferrara [42] Riduzione delle Macchine di Turing Le macchine di Turing possono essere ulteriolmente semplificate senza perdere potere computazionale. Infatti, valgono i seguenti teoremi. Teorema Data una MT M = (Σ, b/, K, q 0, q f, δ) esiste una MT M con nastro semi-infinito equivalente ad M. Dimostrazione Costruiamo una macchina M macchina M sulla prima e terza traccia. a 3 tracce piegando, idealmente, in due il nastro della Sulla seconda traccia invece i simboli e indicheranno la posizione della testina della macchina M, e in particolare se si trova nella parte semi-infinita destra o sulla parte semi-infinita sinistra. Teorema Data una MT M = (Σ, b/, K, q 0, q f, δ) esiste una una MT M = (Σ, b/, K, q 0, q f, δ ) equivalente ad M tale che Σ = 1. Dimostrazione Intuitivamente, possiamo codificare qualunque carattere, e rappresentare la codifica in forma unaria. Quindi possiamo costruire una macchina di Turing M che simula la macchina M ed avente Σ = 1.

44 Laurea Specialistica in Informatica - Università di Ferrara [43] Macchina di Turing Universale È possibile descrivere una MT con una stringa di caratteri e fornire tale descrizione come input ad un altra macchina di Turing. Ad esempio è possibile descrivere la funzione di transizione di una MT mediante sequenza di quintuple del tipo: q i σ i q j σ j d j corrispondenti alla transizione δ(q i, σ i ) = (q j, σ j, d j ). Quindi una MT può essere descritta mediante sequenze di quintuple del tipo: #q i?σ i?q j?σ j?d j # ove, i caratteri # e? fanno da separatori. La descrizione di una MT può quindi essere passata come input sul nastro di un altra macchina di Turing, la Macchina di Turing Universale, che ne simula il comportamento.

45 Laurea Specialistica in Informatica - Università di Ferrara [44] Macchina di Turing Elementari Un altro modo classico di descrivere le MT mediante una stringa è quello di usare la proprietà che ogni MT può essere realizzata tramite composizione di MT-elementari. Ovvero, date due macchine di Turing M e M, la composizione di MM é una macchina di Turing in cui lo stato iniziale è quello della macchina M, lo stato finale è quello della macchina M, e lo stato finale della macchine M coincide con quello iniziale della macchina M. Definizione Si definiscono MT-elementari le seguenti macchine definite sull alfabeto Σ = {1}: NB: la macchine M 0 è stata introdotta solo per associarla agli stati finali di una MT

46 Laurea Specialistica in Informatica - Università di Ferrara [45] Esempio Esempio: Definire tramite composizione di macchine elementari una MT W che copia una stringa s {1}, ovvero che realizza la computazione q 0 b/xb/ b/xq F b/x, x {1} La descrizione di una MT tramite macchine elementari e salti condizionati è detta sequenza linearizzata delle MT. NB: la condizione dell arco deve essere valutata dopo aver eseguito la macchina elementare sorgente dell arco. Esercizio: definire tramite composizione di macchine elementari una MT per il calcolo della somma di due numeri in forma unaria.

47 Laurea Specialistica in Informatica - Università di Ferrara [46] Macchina di Turing Elementari Le macchine di Turing elementari permettono di ottenere il seguente risultato: Teorema Ogni MT è rappresentabile come sequenza linearizzata di MT-elementari. (senza dimostrazione) Sia, inoltre, δ la MT definita in modo tale che qualunque sia il carattere letto, 1 o b/, lo inverte e sposta a destra la testina. Allora è possibile dimostrare il seguente teorema: Teorema Le MT-elementari possono essere descritte tramite composizione delle macchine δ, s, M 0, cioè usando solo 3 tipi di MT e salti condizionati sul carattere 1. Figure 4: Macchine elementare δ e linearizzazione delle macchine destra e blank Esercizio: definire in modo analogo la macchina.

48 Laurea Specialistica in Informatica - Università di Ferrara [47] Descrizione linearizzata di Macchine di Turing Se ogni macchina di Turing è descrivibile mediante composizione di 3 macchine elementari, possiamo codificare le 3 macchine elementari, e rappresentare una sequenza linearizzata con una parola c M sull alfabeto {1, b/}. Innanzitutto, possiamo osservare che la macchina elementare M 0 descrizione di una MT facendo le seguenti ipotesi: può essere sempre eliminata dalla se compare nel mezzzo di una descrizione, poichè non esegue alcuna operazione per definizione, può essere eliminata si assume per convenzione che sia sempre presente alla fine di una descrizione Possiamo quindi rappresentare una sequenza linearizzata di macchine δ, s con salti condizionati a 1 tramite un codice c M nel seguente modo: la MT elementare s è codificata tramite il carattere 1 la MT elementare δ è codificata tramite il carattere 11 un salto condizionato sul simbolo 1, all istruzione n è codificata con la sequenza di 1 n+3 i codici delle istruzioni sono separati dal carattere b/ la sequenza 111 definisce la fine della sequenza di istruzioni (HALT)

49 Laurea Specialistica in Informatica - Università di Ferrara [48] Macchina di Turing Universale Sapendo descrivere le MT tramite stringhe di caratteri rappresentanti MT-elementari possiamo enunciare il seguente teorema: Teorema Una MT U = (Σ, b/, K, δ, q 0, q f ) si dice Macchina di Turing Universale se essa calcola una funzione u : Σ n+1 Σ tale che, data una qualunque codifica c M di una MT M = (Σ, b/, K, δ, q 0, q f ) che calcola la funzione m : (Σ n Σ ), u(c M, x 1,..., x m ) = m(x 1,..., x n ) Una MT-universale è quindi in grado di simulare il calcolo di ogni altra MT. La dimostrazione del teorema può essere fatta osservando che: possiamo restringerci, senza perdere di generalità, a MT M aventi alfabeto Σ = {1} (Σ b/ = {1, b/}) ogni M T può essere descritta tramite composizione di 2 sole MT-elementari normalizzate con salti a 1 che possono essere opportunamente codificate usando l alfabeto Σ = {1, b/} i valori di input possono essere rappresentati in forma unaria La macchina U può quindi leggere la codifica della macchina M e simularne il comportamento sull input x 1,..., x n.

50 Laurea Specialistica in Informatica - Università di Ferrara [49] Halting Problem Teorema Data una MT M = (Σ, b/, K, q 0, q f, δ), sia c M {1, b/} la sua codifica. La funzione h(c M, x) = j 1 se M termina su input x 0 se M NON termina su input x non è T-calcolabile. Dimostrazione Supponiamo per assurdo che la MT H che calcola la funzione h sia T-calcolabile. Possiamo allora costruire una MT H che calcola la funzione h definita nel seguente modo: h (c M ) = j 1 se M termina su input x = cm 0 se M NON termina su input x = c M H è quindi la macchina che verifica se una MT termina quando le viene fornito in input il suo codice. Se H esiste, possiamo quindi costruire una ulteriore macchina H che prende in input c M e calcola la funzione j h 0 se h (c (c M ) = M ) = 0 undef altrimenti H termina con con 0 se H si ferma con 0, e cicla indefinitivamente se H si ferma con 1.

51 Laurea Specialistica in Informatica - Università di Ferrara [50] Calcoliamo allora h (c H ), cioè il valore di H quando le viene fornito come input il suo stesso codice: h (c H ) = j 0 se h (c H ) = 0 undef se h (c H ) = 1 quindi, ricordando che: h (c M ) = j 1 se M termina su input cm 0 se M NON termina su input c M si deduce che: h (c H ) = 0 h (c H ) = 0 H h (c H ) = undef h (c H ) = undef h (c H ) = 1 H h (c H ) = 0 Poichè, in ogni caso abbiamo una contraddizione concludiamo che l ipotesi per cui la funzione h sia T-calcolabile è falsa. Quindi, la MT H non è calcolabile.

52 Laurea Specialistica in Informatica - Università di Ferrara [51] Halting Problem Il problema della terminazione ha come implicazione il fatto che NON è possibile costruire un perfetto sistema di debugging che sia in grado di determinare se un programma termini o meno sull input dato Si osserva che il problema della fermata pur non essendo decidibile è semi-decidibile, cioè il predicato h(c M, x) = j 1 undef se M termina su input x se M NON termina su input x è T-calcolabile. Infatti basta eseguire la computazione.

Esercizio su MT. Svolgimento

Esercizio su MT. Svolgimento Esercizio su MT Definire una macchina di Turing deterministica M a nastro singolo e i concetti di configurazione e di transizione. Sintetizzare una macchina di Turing trasduttore che trasformi un numero

Dettagli

Varianti Macchine di Turing

Varianti Macchine di Turing Varianti Macchine di Turing Esistono definizioni alternative di macchina di Turing. Chiamate Varianti. Tra queste vedremo: MdT a più nastri e MdT non deterministiche. Mostriamo: tutte le varianti ragionevoli

Dettagli

Appunti sulla Macchina di Turing. Macchina di Turing

Appunti sulla Macchina di Turing. Macchina di Turing Macchina di Turing Una macchina di Turing è costituita dai seguenti elementi (vedi fig. 1): a) una unità di memoria, detta memoria esterna, consistente in un nastro illimitato in entrambi i sensi e suddiviso

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

Tipologie di macchine di Turing

Tipologie di macchine di Turing Tipologie di macchine di Turing - Macchina di Turing standard - Macchina di Turing con un nastro illimitato in una sola direzione - Macchina di Turing multinastro - Macchina di Turing non deterministica

Dettagli

Le Macchine di Turing

Le Macchine di Turing Le Macchine di Turing Come è fatta una MdT? Una MdT è definita da: un nastro una testina uno stato interno un programma uno stato iniziale Il nastro Il nastro è infinito suddiviso in celle In una cella

Dettagli

x u v(p(x, fx) q(u, v)), e poi

x u v(p(x, fx) q(u, v)), e poi 0.1. Skolemizzazione. Ogni enunciato F (o insieme di enunciati Γ) è equisoddisfacibile ad un enunciato universale (o insieme di enunciati universali) in un linguaggio estensione del linguaggio di F (di

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

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

Note del corso di Calcolabilità e Linguaggi Formali - Lezione 6 Note del corso di Calcolabilità e Linguaggi Formali - Lezione 6 Alberto Carraro 30 novembre DAIS, Universitá Ca Foscari Venezia http://www.dsi.unive.it/~acarraro 1 Funzioni Turing-calcolabili Finora abbiamo

Dettagli

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili

Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili Macchine di Turing, problemi ricorsivi e ricorsivamente enumerabili roblemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa quello che ci aspettiamo. E facile

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante: Sommario Macchine a stati finiti M. Favalli Engineering Department in Ferrara 4 Sommario (ENDIF) Analisiesintesideicircuitidigitali / 35 (ENDIF) Analisiesintesideicircuitidigitali 2 / 35 4 Le macchine

Dettagli

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO Macchine a stati finiti 1 G. MARSELLA UNIVERSITÀ DEL SALENTO Introduzione Al più alto livello di astrazione il progetto logico impiega un modello, la cosiddetta macchina a stati finiti, per descrivere

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il concetto di Algoritmo e di Calcolatore Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Cos

Dettagli

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007 Sommario Macchine a stati finiti M. Favalli 5th June 27 4 Sommario () 5th June 27 / 35 () 5th June 27 2 / 35 4 Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Dettagli

L interesse nella macchina di Turing

L interesse nella macchina di Turing Aniello Murano Macchina di Turing universale e problema della fermata 6 Lezione n. Parole chiave: Universal Turing machine Corso di Laurea: Informatica Codice: Email Docente: murano@ na.infn.it A.A. 2008-2009

Dettagli

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali

Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,

Dettagli

I sistemi di numerazione

I sistemi di numerazione I sistemi di numerazione 01-INFORMAZIONE E SUA RAPPRESENTAZIONE Sia dato un insieme finito di caratteri distinti, che chiameremo alfabeto. Utilizzando anche ripetutamente caratteri di un alfabeto, si possono

Dettagli

Capitolo 7: Teoria generale della calcolabilitá

Capitolo 7: Teoria generale della calcolabilitá Capitolo 7: Teoria generale della calcolabilitá 1 Differenti nozioni di calcolabilitá (che seguono da differenti modelli di calcolo) portano a definire la stessa classe di funzioni. Le tecniche di simulazione

Dettagli

La Macchina RAM Shepherdson e Sturgis (1963)

La Macchina RAM Shepherdson e Sturgis (1963) La Macchina RAM Shepherdson e Sturgis (963) Nastro di ingresso.......... PROGRAM COUNTER Nastro di uscita PROGRAMMA ACCUMULATORE UNITA' ARITMETICA............... 2 3 4 M E M O R I A Formato delle Istruzioni

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

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

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010 elementi di teoria dei grafi anno acc. 2009/2010 Grafi semplici Un grafo semplice G è una coppia ordinata (V(G), L(G)), ove V(G) è un insieme finito e non vuoto di elementi detti vertici o nodi di G, mentre

Dettagli

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1) Un insieme è una collezione di oggetti. Il concetto di insieme è un concetto primitivo. Deve esistere un criterio chiaro, preciso, non ambiguo, inequivocabile,

Dettagli

1 Applicazioni Lineari tra Spazi Vettoriali

1 Applicazioni Lineari tra Spazi Vettoriali 1 Applicazioni Lineari tra Spazi Vettoriali Definizione 1 (Applicazioni lineari) Si chiama applicazione lineare una applicazione tra uno spazio vettoriale ed uno spazio vettoriale sul campo tale che "!$%!

Dettagli

Macchine di Turing. a n B B. Controllo Finito

Macchine di Turing. a n B B. Controllo Finito Macchine di Turing Il modello standard di macchina di Turing era un controllo finito, un nastro di input, diviso in celle, e una testina che prende in considerazione una cella del nastro alla volta. Il

Dettagli

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

CONCETTO DI LIMITE DI UNA FUNZIONE REALE CONCETTO DI LIMITE DI UNA FUNZIONE REALE Il limite di una funzione è uno dei concetti fondamentali dell'analisi matematica. Tramite questo concetto viene formalizzata la nozione di funzione continua e

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere;

un nastro di carta prolungabile a piacere e suddiviso in celle vuote o contenenti al più un unico carattere; Algoritmi 3 3.5 Capacità di calcolo Il matematico inglese Alan Turing (1912-1954) descrisse nel 1936 un tipo di automi, oggi detti macchine di Turing, e fornì una della prime definizioni rigorose di esecuzione

Dettagli

Corrispondenze e funzioni

Corrispondenze e funzioni Corrispondenze e funzioni L attività fondamentale della mente umana consiste nello stabilire corrispondenze e relazioni tra oggetti; è anche per questo motivo che il concetto di corrispondenza è uno dei

Dettagli

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete. Le equazioni Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete. Definizione e caratteristiche Chiamiamo equazione l uguaglianza tra due espressioni algebriche,

Dettagli

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

1. PRIME PROPRIETÀ 2

1. PRIME PROPRIETÀ 2 RELAZIONI 1. Prime proprietà Il significato comune del concetto di relazione è facilmente intuibile: due elementi sono in relazione se c è un legame tra loro descritto da una certa proprietà; ad esempio,

Dettagli

Algoritmi e strutture dati. Codici di Huffman

Algoritmi e strutture dati. Codici di Huffman Algoritmi e strutture dati Codici di Huffman Memorizzazione dei dati Quando un file viene memorizzato, esso va memorizzato in qualche formato binario Modo più semplice: memorizzare il codice ASCII per

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio

Appunti di informatica. Lezione 2 anno accademico 2015-2016 Mario Verdicchio Appunti di informatica Lezione 2 anno accademico 2015-2016 Mario Verdicchio Sistema binario e logica C è un legame tra i numeri binari (0,1) e la logica, ossia la disciplina che si occupa del ragionamento

Dettagli

Matematica generale CTF

Matematica generale CTF Successioni numeriche 19 agosto 2015 Definizione di successione Monotonìa e limitatezza Forme indeterminate Successioni infinitesime Comportamento asintotico Criterio del rapporto per le successioni Definizione

Dettagli

Applicazioni lineari

Applicazioni lineari Applicazioni lineari Esempi di applicazioni lineari Definizione. Se V e W sono spazi vettoriali, una applicazione lineare è una funzione f: V W tale che, per ogni v, w V e per ogni a, b R si abbia f(av

Dettagli

Luigi Piroddi piroddi@elet.polimi.it

Luigi Piroddi piroddi@elet.polimi.it Automazione industriale dispense del corso 10. Reti di Petri: analisi strutturale Luigi Piroddi piroddi@elet.polimi.it Analisi strutturale Un alternativa all analisi esaustiva basata sul grafo di raggiungibilità,

Dettagli

Prodotto libero di gruppi

Prodotto libero di gruppi Prodotto libero di gruppi 24 aprile 2014 Siano (A 1, +) e (A 2, +) gruppi abeliani. Sul prodotto cartesiano A 1 A 2 definiamo l operazione (x 1, y 1 ) + (x 2, y 2 ) := (x 1 + x 2, y 1 + y 2 ). Provvisto

Dettagli

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione

Dettagli

Lezioni di Matematica 1 - I modulo

Lezioni di Matematica 1 - I modulo Lezioni di Matematica 1 - I modulo Luciano Battaia 16 ottobre 2008 Luciano Battaia - http://www.batmath.it Matematica 1 - I modulo. Lezione del 16/10/2008 1 / 13 L introduzione dei numeri reali si può

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0

4 3 4 = 4 x 10 2 + 3 x 10 1 + 4 x 10 0 aaa 10 2 10 1 10 0 Rappresentazione dei numeri I numeri che siamo abituati ad utilizzare sono espressi utilizzando il sistema di numerazione decimale, che si chiama così perché utilizza 0 cifre (0,,2,3,4,5,6,7,8,9). Si dice

Dettagli

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI

CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI CAPITOLO 16 SUCCESSIONI E SERIE DI FUNZIONI Abbiamo studiato successioni e serie numeriche, ora vogliamo studiare successioni e serie di funzioni. Dato un insieme A R, chiamiamo successione di funzioni

Dettagli

LE FUNZIONI A DUE VARIABILI

LE FUNZIONI A DUE VARIABILI Capitolo I LE FUNZIONI A DUE VARIABILI In questo primo capitolo introduciamo alcune definizioni di base delle funzioni reali a due variabili reali. Nel seguito R denoterà l insieme dei numeri reali mentre

Dettagli

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio Il Concetto Intuitivo di Calcolatore Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini I Problemi e la loro Soluzione Problema: classe

Dettagli

Indice. 1 Introduzione alle Equazioni Differenziali 1 1.1 Esempio introduttivo... 1 1.2 Nomenclatura e Teoremi di Esistenza ed Unicità...

Indice. 1 Introduzione alle Equazioni Differenziali 1 1.1 Esempio introduttivo... 1 1.2 Nomenclatura e Teoremi di Esistenza ed Unicità... Indice 1 Introduzione alle Equazioni Differenziali 1 1.1 Esempio introduttivo............................. 1 1.2 Nomenclatura e Teoremi di Esistenza ed Unicità.............. 5 i Capitolo 1 Introduzione

Dettagli

Le macchine di Turing

Le macchine di Turing Le macchine di Turing Alan Turing (1912-1954) 1954) Il problema della decisione i L Entscheidungsproblem [il problema della decisione] è risolto se si conosce una procedura che permette di decidere la

Dettagli

3 GRAFICI DI FUNZIONI

3 GRAFICI DI FUNZIONI 3 GRAFICI DI FUNZIONI Particolari sottoinsiemi di R che noi studieremo sono i grafici di funzioni. Il grafico di una funzione f (se non è specificato il dominio di definizione) è dato da {(x, y) : x dom

Dettagli

Sommario. 1 Realizzazione del STG. Introduzione. 1 traduzione delle specifiche informali in specifiche formali (STG o

Sommario. 1 Realizzazione del STG. Introduzione. 1 traduzione delle specifiche informali in specifiche formali (STG o Sommario Sintesi di macchine a stati finiti 1 Realizzazione del ST M. avalli 2 utoma minimo di SM completamente specificate 6th June 2007 3 Ottimizzazione di SM non completamente specificate Sommario ()

Dettagli

10. Insiemi non misurabili secondo Lebesgue.

10. Insiemi non misurabili secondo Lebesgue. 10. Insiemi non misurabili secondo Lebesgue. Lo scopo principale di questo capitolo è quello di far vedere che esistono sottoinsiemi di R h che non sono misurabili secondo Lebesgue. La costruzione di insiemi

Dettagli

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0.

L espressione torna invece sempre vera (quindi la soluzione originale) se cambiamo contemporaneamente il verso: 1 < 0. EQUAZIONI E DISEQUAZIONI Le uguaglianze fra espressioni numeriche si chiamano equazioni. Cercare le soluzioni dell equazione vuol dire cercare quelle combinazioni delle lettere che vi compaiono che la

Dettagli

A i è un aperto in E. i=1

A i è un aperto in E. i=1 Proposizione 1. A è aperto se e solo se A c è chiuso. Dimostrazione. = : se x o A c, allora x o A = A o e quindi esiste r > 0 tale che B(x o, r) A; allora x o non può essere di accumulazione per A c. Dunque

Dettagli

Lezione 9: Cambio di base

Lezione 9: Cambio di base Lezione 9: Cambio di base In questa lezione vogliamo affrontare uno degli argomenti piu ostici per lo studente e cioè il cambio di base all interno di uno spazio vettoriale, inoltre cercheremo di capire

Dettagli

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA Francesco Bottacin Padova, 24 febbraio 2012 Capitolo 1 Algebra Lineare 1.1 Spazi e sottospazi vettoriali Esercizio 1.1. Sia U il sottospazio di R 4 generato dai

Dettagli

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26

Teoria in sintesi 10. Attività di sportello 1, 24 - Attività di sportello 2, 24 - Verifica conclusiva, 25. Teoria in sintesi 26 Indice L attività di recupero 6 Funzioni Teoria in sintesi 0 Obiettivo Ricerca del dominio e del codominio di funzioni note Obiettivo Ricerca del dominio di funzioni algebriche; scrittura del dominio Obiettivo

Dettagli

Esercizi su lineare indipendenza e generatori

Esercizi su lineare indipendenza e generatori Esercizi su lineare indipendenza e generatori Per tutto il seguito, se non specificato esplicitamente K indicherà un campo e V uno spazio vettoriale su K Cose da ricordare Definizione Dei vettori v,,v

Dettagli

Vincere a testa o croce

Vincere a testa o croce Vincere a testa o croce Liceo Scientifico Pascal Merano (BZ) Classe 2 Liceo Scientifico Tecnologico Insegnante di riferimento: Maria Elena Zecchinato Ricercatrice: Ester Dalvit Partecipanti: Jacopo Bottonelli,

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0

LEZIONE 23. Esempio 23.1.3. Si consideri la matrice (si veda l Esempio 22.2.5) A = 1 2 2 3 3 0 LEZIONE 23 231 Diagonalizzazione di matrici Abbiamo visto nella precedente lezione che, in generale, non è immediato che, data una matrice A k n,n con k = R, C, esista sempre una base costituita da suoi

Dettagli

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE LE SUCCESSIONI 1. COS E UNA SUCCESSIONE La sequenza costituisce un esempio di SUCCESSIONE. Ecco un altro esempio di successione: Una successione è dunque una sequenza infinita di numeri reali (ma potrebbe

Dettagli

Reti sequenziali sincrone

Reti sequenziali sincrone Reti sequenziali sincrone Un approccio strutturato (7.1-7.3, 7.5-7.6) Modelli di reti sincrone Analisi di reti sincrone Descrizioni e sintesi di reti sequenziali sincrone Sintesi con flip-flop D, DE, T

Dettagli

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente Funzioni In matematica, una funzione f da X in Y consiste in: 1. un insieme X detto dominio di f 2. un insieme Y detto codominio di f 3. una legge che ad ogni elemento x in X associa uno ed un solo elemento

Dettagli

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo Cenni su algoritmi, diagrammi di flusso, strutture di controllo Algoritmo Spesso, nel nostro vivere quotidiano, ci troviamo nella necessità di risolvere problemi. La descrizione della successione di operazioni

Dettagli

Complessità Computazionale

Complessità Computazionale Complessità Computazionale Analisi Algoritmi e pseudocodice Cosa significa analizzare un algoritmo Modello di calcolo Analisi del caso peggiore e del caso medio Esempio di algoritmo in pseudocodice INSERTION

Dettagli

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a)

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a) ESERCIZIO1 PREMESSA Per risolvere problemi spesso esistono delle regole che, dai dati del problema, permettono di calcolare o dedurre la soluzione. Questa situazione si può descrivere col termine regola(,

Dettagli

Cos è un Calcolatore?

Cos è un Calcolatore? Cos è un Calcolatore? Definizione A computer is a machine that manipulates data according to a (well-ordered) collection of instructions. 24/105 Riassumendo... Un problema è una qualsiasi situazione per

Dettagli

Intelligenza Artificiale

Intelligenza Artificiale Intelligenza Artificiale Esercizi e Domande di Esame Tecniche di Ricerca e Pianificazione Esercizi Griglia Si consideri un ambiente costituito da una griglia n n in cui si muove un agente che può spostarsi

Dettagli

Esercizio 1. Esercizi 5. Esercizio 3. Esercizio 2 CICLI

Esercizio 1. Esercizi 5. Esercizio 3. Esercizio 2 CICLI Esercizi 5 Esercizio 1 Realizzare una funzione che, chiesto all utente un numero intero pari a N, ricavi e stampi a video tutte le terne pitagoriche con i cateti minori o uguali ad N. CICLI Una terna pitagorica

Dettagli

STRUTTURE ALGEBRICHE

STRUTTURE ALGEBRICHE STRUTTURE ALGEBRICHE Operazioni in un insieme Sia A un insieme non vuoto; una funzione f : A A A si dice operazione binaria (o semplicemente operazione), oppure legge di composizione interna. Per definizione

Dettagli

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero

Dettagli

Nozione di algoritmo. Gabriella Trucco

Nozione di algoritmo. Gabriella Trucco Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere

Dettagli

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI 119 4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI Indice degli Argomenti: TEMA N. 1 : INSIEMI NUMERICI E CALCOLO

Dettagli

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione

2.1 Definizione di applicazione lineare. Siano V e W due spazi vettoriali su R. Un applicazione Capitolo 2 MATRICI Fra tutte le applicazioni su uno spazio vettoriale interessa esaminare quelle che mantengono la struttura di spazio vettoriale e che, per questo, vengono dette lineari La loro importanza

Dettagli

Informazione analogica e digitale

Informazione analogica e digitale L informazione L informazione si può: rappresentare elaborare gestire trasmettere reperire L informatica offre la possibilità di effettuare queste operazioni in modo automatico. Informazione analogica

Dettagli

Algoritmi e diagrammi di flusso

Algoritmi e diagrammi di flusso Algoritmi e diagrammi di flusso Un algoritmo può essere descritto come una sequenza finita ed ordinata di operazioni che descrivono la soluzione di un problema. Per sequenza finita si intende che un algoritmo

Dettagli

Soluzioni del giornalino n. 16

Soluzioni del giornalino n. 16 Soluzioni del giornalino n. 16 Gruppo Tutor Soluzione del Problema 1 Soluzioni corrette ci sono pervenute da : Gianmarco Chinello, Andrea Conti, Simone Costa, Marco Di Liberto, Simone Di Marino, Valerio

Dettagli

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme

Per lo svolgimento del corso risulta particolarmente utile considerare l insieme 1. L insieme R. Per lo svolgimento del corso risulta particolarmente utile considerare l insieme R = R {, + }, detto anche retta reale estesa, che si ottiene aggiungendo all insieme dei numeri reali R

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1 I CODICI 1 IL CODICE BCD 1 Somma in BCD 2 Sottrazione BCD 5 IL CODICE ECCESSO 3 20 La trasmissione delle informazioni Quarta Parte I codici Il codice BCD

Dettagli

Sommario. Linguaggi formali: motivazioni, definizione ed esempi operazioni su parole e linguaggi

Sommario. Linguaggi formali: motivazioni, definizione ed esempi operazioni su parole e linguaggi Sommario Linguaggi formali: motivazioni, definizione ed esempi operazioni su parole e linguaggi 1 Tipi di problemi Nelle teorie della calcolabilità e della complessità si considerano problemi di decisione,

Dettagli

ALGEBRA DELLE PROPOSIZIONI

ALGEBRA DELLE PROPOSIZIONI Università di Salerno Fondamenti di Informatica Corso di Laurea Ingegneria Corso B Docente: Ing. Giovanni Secondulfo Anno Accademico 2010-2011 ALGEBRA DELLE PROPOSIZIONI Fondamenti di Informatica Algebra

Dettagli

risulta (x) = 1 se x < 0.

risulta (x) = 1 se x < 0. Questo file si pone come obiettivo quello di mostrarvi come lo studio di una funzione reale di una variabile reale, nella cui espressione compare un qualche valore assoluto, possa essere svolto senza necessariamente

Dettagli

USO DI EXCEL CLASSE PRIMAI

USO DI EXCEL CLASSE PRIMAI USO DI EXCEL CLASSE PRIMAI In queste lezioni impareremo ad usare i fogli di calcolo EXCEL per l elaborazione statistica dei dati, per esempio, di un esperienza di laboratorio. Verrà nel seguito spiegato:

Dettagli

LEZIONE 16. Proposizione 16.1.2. Siano V e W spazi vettoriali su k = R, C. Se f: V W

LEZIONE 16. Proposizione 16.1.2. Siano V e W spazi vettoriali su k = R, C. Se f: V W LEZIONE 16 16.1. Applicazioni lineari iniettive e suriettive. Ricordo le seguenti due definizioni valide per applicazioni di qualsiasi tipo ϕ: X Y fra due insiemi. L applicazione ϕ si dice iniettiva se

Dettagli

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare

Dettagli

Progettazione di un Database

Progettazione di un Database Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di

Dettagli

11010010 = 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210

11010010 = 1*2^7 + 1*2^6 + 0*2^5 + 1*2^4 + 0*2^3 + 0*2^2 + 1*2^1 + 0*2^0 = 210 Il sistema BINARIO e quello ESADECIMALE. Il sistema di numerazione binario è particolarmente legato ai calcolatori in quanto essi possono riconoscere solo segnali aventi due valori: uno alto e uno basso;

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

EasyPrint v4.15. Gadget e calendari. Manuale Utente

EasyPrint v4.15. Gadget e calendari. Manuale Utente EasyPrint v4.15 Gadget e calendari Manuale Utente Lo strumento di impaginazione gadget e calendari consiste in una nuova funzione del software da banco EasyPrint 4 che permette di ordinare in maniera semplice

Dettagli

EQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6

EQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6 EQUAZIONI DIFFERENZIALI.. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x log t (d) x = e t x log x (e) y = y 5y+6 (f) y = ty +t t +y (g) y = y (h) xy = y (i) y y y = 0 (j) x = x (k)

Dettagli

Programmazione dinamica

Programmazione dinamica Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)

Dettagli

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c Caratteristiche MATLAB Linguaggio di programmazione orientato all elaborazione di matrici (MATLAB=MATrix LABoratory) Le variabili sono matrici (una variabile scalare equivale ad una matrice di dimensione

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T3 1-Sottoprogrammi 1 Prerequisiti Tecnica top-down Programmazione elementare 2 1 Introduzione Lo scopo di questa Unità è utilizzare la metodologia di progettazione top-down

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

CRITERI DI CONVERGENZA PER LE SERIE. lim a n = 0. (1) s n+1 = s n + a n+1. (2) CRITERI PER LE SERIE A TERMINI NON NEGATIVI

CRITERI DI CONVERGENZA PER LE SERIE. lim a n = 0. (1) s n+1 = s n + a n+1. (2) CRITERI PER LE SERIE A TERMINI NON NEGATIVI Il criterio più semplice è il seguente. CRITERI DI CONVERGENZA PER LE SERIE Teorema(condizione necessaria per la convergenza). Sia a 0, a 1, a 2,... una successione di numeri reali. Se la serie a k è convergente,

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli