Modello di Automa (Q, I, U, t, w) Q: insieme finito di stati interni q: qÎQ I: insieme finito di ingressi i: i Î I U: insieme finito di uscite uÎU t: funzione di transizione t: QxI®Q w: funzione di uscita t: QxI®U
Esempio di Automa Ascensore Il piano in cui si trova: stato del sistema Piano verso cui si deve spostare: ingresso
Esempio di Automa Ingressi: PT, P1, P2 Stati interni: QT, Q1, Q2 Uscite: UT, U1, U2,STOP
Modello Concettuale di Automa Q T, w I U
Esempio di Automa R1 RT R2 P1/stop P1/A1 PT/stop PT/AT P2/A2 P1/A1
Automi a stati finiti come traduttori di linguaggi 0/1 0/0 Q0 Q1 1/1 1/0 Nega un numero in complemento a due
Automi a stati finiti come riconoscitori di linguaggi Lettera Q0 Q1 Lettera Cifra Identificatori del C++ primo secondo Ind1 VarMia nome_23 _temp S23l3 Inizio_File
Pattern Recognition (Riconoscimento di Sequenze) Sacrilegious abstemious facetious ... Si ASF No
Riconoscimento di Patterns i = 0, ..., 5 aeiou l-a l-e l-i i a e S0 S1 S2 i S5 S4 S3 u o l-u l-o
Riconoscimento di Patterns Si No c int findChar(char *word, int i, char c) { while( (word[i] != c) && (word[i] != '\0') ) i++; } if(A[i] == c) return 1; else return 0; Ricerca Sequenziale
Riconoscimento di Patterns int controllaPar(char *word) { i=0; /* Stato iniziale */ if( findChar(word, i, 'a') ) /* Stato 1 */ if( findChar(word, i, 'e') ) /* Stato 2 */ if( findChar(word, i, 'i') ) /* Stato 3 */ if( findChar(word, i, 'o') ) /* Stato 4 */ if( findChar(word, i, 'u') ) /* Stato 5 */ return 1; } return 0;
Contatore modulo k Mealy q0 q1 q2 q3 I U 0/0 0/0 0/0 0/0 1/0 1/0 1/0 1 1 1 1 U 1 {I, U, Q, t, w} I = {0, 1} U = {0, 1} Q = {q0, q1, q2, q3} Mealy 0/0 0/0 0/0 0/0 1/0 1/0 1/0 q0 q1 q2 q3 1/1
Moore Progettare un automa che fornisca l’uscita in corrispondenza di £ 500 I = {100, 200} U = {0, 1} La macchina non da resto Moore - Mealy a a/B S0/A S1/B S0 S1
Mealy - Moore a/A S0 S1 a/A a/B b/B b/B b/B a/B S2 S3 b/A Mealy
Mealy - Moore S0/- S1/A S3/A S0/A S1/B S2/B S3/B a b a a b b a a a a b
Mealy - Moore 200 100 100 0/0 100/0 200/0 200 100 200 100 100 300/0 400/0 500/1 200 200
Mealy - Moore a a/B b a b a a b/B a/A b/B a/C a/B b b/B b b/C Moore S0/A S1/B S0 S1 b a b a a b/B a/A b/B a/C a/B b b/B S2/B S3/ S2 S3 b b/C
Modello di Von Neumann unità controllo unità ingresso unità memoria uscita unità aritmetica
Blaise Pascal: macchina per contare Prima macchina calcolatrice (1600) ovvero… la raffinatezza degli orologi del ‘600
Macchina analitica: prima macchina programmabile Magazzino Mulino Controllo Apparato di ingresso Apparato di uscita
Hollerith Il censimento del 1880… IBM Konrad Zuse 1936 Z1 Howard Aiken 1944 Harward Mark1
Babbage P=P0*OL Controllo P0 OL P 1 1)… 2)… 3)… 4)… 2 3
Macchina di Turing Insieme di simboli, detto alfabeto, che possono occupare le varie caselle del nastro L’insieme degli stati interni della macchina L’insieme dei movimenti, o operazioni elementari, che la macchina può compiere Il modello di automa a stati finiti è generico e non precisa la natura degli ingressi e uscite E non consente di individuare un insieme di possibili azioni elaborative. La MDT è un particolare automa per la quale sono definiti l’insieme degli ingressi e delle uscite come insieme Di simboli ed è definito un apposito meccanismo di lettura e scrittura effettuati su un meccanismo ideale (testina) che opera su un speciale nastro continuo In particolare MDT è composta da: Una memoria Una testina lettrura scrittura Capacità di compiere azioni elaborative Un dispositivo di controllo che per ciascuna coppia (stato,simbolo letto) cambia stato ed esegue azioni elaborative
Macchina di Turing Testina Può muoversi verso destra (D) Può muoversi verso sinistra (S) Può leggere Può scrivere Può cancellare
Macchina di Turing Simbolo letto - stato interno Simbolo da lasciare sul nastro - nuovo stato da assumere - spostamento
Macchina di Turing Operazione 3+2
Macchina di Turing .................................... 1 0, S1 (0, S1, D) S1 .................................... 1 1, S1 (0, S2, D) S1 .................................... 1 1, S2 (1, S2, D) S2 .................................... 1 1, S2 (1, S2, D) S2 .................................... 1 0, S2 (1, S3, D) S3 .................................... 1 1, S3 stop S3 ....................................