Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
a.a. 2015/16
UNA GERARCHIA
DI
MACCHINE
Andrea Prevete, UNINA2 2016
LE MACCHINE COMBINATORIE
Una macchina combinatoria formalmente
definita da una tripla:
<I, O, ft>
ft
dove
I = insieme finito dei simboli di ingresso
O = insieme finito dei simboli di uscita
ft: I -> O (funzione di trasferimento)
Esempio: le porte logiche e le funzioni in genere (half
adder, full adder, etc)
Andrea Prevete, UNINA2 2016
LE MACCHINE COMBINATORIE
Esempio:
z = AND(x, y)
Dove x, y, z sono variabili booleane (0, 1).
Vogliamo che z=1 sse x=y=1.
Avremo:
I={(0,0) (0,1) (1,0) (1,1)}
O={0, 1}
ft:
0
1
1
1
0
1
LE MACCHINE COMBINATORIE
Esempio:
x
y
HALF-ADDER
s
r
0
1
0
1
LE MACCHINE COMBINATORIE
Risolvere problemi con una macchina
combinatoria comporta enumerare in modo
esplicito tutte le possibili configurazioni
dingresso, e indicare in corrispondenza il
valore di uscita.
Essendo un dispositivo puramente
combinatorio inadatto a risolvere problemi
che richiedono una memoria interna
(riconoscimento di sequenze, somme di
numeri forniti in successione, etc.)
Andrea Prevete, UNINA2 2016
dove
I = insieme finito dei simboli di ingresso
O = insieme finito dei simboli di uscita
S = insieme finito degli stati
fu: I x S -> O (funzione di uscita)
fsp: I x S -> S (funzione di stato prossimo)
Andrea Prevete, UNINA2 2016
0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0
^
^
^
0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0
I={0, 1}
O={0, 1}
S={s0, s1}
S
fu:
s0
s1
0
1
0
1
O
0
1
0
0
fps:
s0
s1
S+1
s1
0
0
1
s0
s0
s1
0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0
^
^
^
0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0
O:
0/0
1/1
S0
S1
0/0
1/0
dove
I = insieme finito dei simboli di ingresso
O = insieme finito dei simboli di uscita
S = insieme finito degli stati
fu: S -> O (funzione di uscita)
fsp: I x S -> S (funzione di stato prossimo)
Andrea Prevete, UNINA2 2016
0 0 0 0 1 1 1 0 0 0 0 1 0 1 1 0 0 0 0
^
^
^
0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0
1
S0/0
0
S01/1
0
Andrea Prevete, UNINA2 2016
S11/0
S00/1
S01
S10
S11
S/1
0
1
S0
1
S00
0
1
0
S1
1
S11
1
LE MACCHINE DI TURING
Le macchine di Turing consentono di superare il suddetto limite della memoria.
Esistono di esse numerose formalizzazioni tutte equivalenti dal punto di vista della
potenza computazionale.
In una versione fra le pi semplici ma molto intuitiva una macchina di Turing pu
essere pensata come
- Una memoria lineare potenzialmente infinita (..la metafora del nastro illimitato)
- Un insieme Q di quadruple del tipo:
- (si al ak sj)
TM
LE MACCHINE DI TURING
Risolvere un problema con la MdT significa
quindi:
definire una opportuna rappresentazione dei
dati iniziali sul nastro
definire la parte di controllo, cio linsieme
delle quadruple, in modo da rendere disponibile
sul nastro, alla fine del computo, una
rappresentazione della soluzione.
Andrea Prevete, UNINA2 2016
LE MACCHINE DI TURING
Consideriamo il
seguente insieme di
quadruple:
s1
NOP
s1
s1
s1
NOP
s1
s2
s2
s2
s2
0
0
NOP
s3
s3
s3
NOP
s3
s3
s3
NOP
1
NOP
s2
s4
s4
LE MACCHINE DI TURING
QUESTO E IL GRAFO DI TRANSIZIONE
0,1 / NOP / +
S1
1/0/-
/ NOP / 0/1/-
S3
/ NOP / +
S2
/1
S4
LE MACCHINE DI TURING
s2
1 0 1 1
s2
1 0 1 1
1 0 1 0
1 0 1 1
1 0 0 0
s1
s2
s1
s3
1 0 1 1
s3
s1
1 0 1 1
1 0 1 1
s1
1 1 0 0
1 1 0 0
s4
1 1 0 0
LE MACCHINE DI TURING
Esistono macchine pi potenti delle
Macchine di Turing?
TESI DI CHURCH-TURING
Non esiste alcun formalismo capace di
risolvere una classe di problemi pi
ampia di quella risolta da una Macchina
di Turing.
Andrea Prevete, UNINA2 2016
LE MACCHINE DI TURING
Per esempio, si dimostra facilmente che una macchina di Turing multinastro non pu fare,
calcolare, riconoscere niente pi di quanto non
possa fare, calcolare, riconoscere
una macchina mononastro.
TM
LE MACCHINE DI TURING
0100011000etc
1etc
0100011000etc
1etc
0100011000etc
1etc
0100011000etc
1etc
0100011000etc
1etc
0100011000etc
1etc
0100011000etc
1etc
0100011000etc
1etc
0100011000etc
1etc
LE MACCHINE DI TURING
Una volta definita la parte di controllo, una MdT
in grado di risolvere un dato problema.
E specifica per quel problema.
possibile pensare ad una Macchina di Turing
Universale, applicabile cio a qualsiasi
problema risolubile?
Andrea Prevete, UNINA2 2016
LE MACCHINE DI TURING
Finora, lalgoritmo realizzato da una MdT era
cablato nella macchina (DOVE??)
E se invece fosse sul nastro, e la
macchina se lo andasse a prendere?
Come dovrebbe essere strutturata una
simile MdT?
Avremmo una Macchina di Turing
Universale
Andrea Prevete, UNINA2 2016
LE MACCHINE DI TURING
Dovrebbe essere una Macchina di Turing la
cui parte di controllo (cio l algoritmo cablato
.. quindi linsieme delle quadruple!) consista nel
leggere dal nastro una descrizione dello
specifico algoritmo richiesto.
Una tale macchina pu essere adattata per
risolvere un qualunque problema (risolubile)
senza modifiche alla sua struttura.
E, quindi, una macchina programmabile!
Andrea Prevete, UNINA2 2016
LE MACCHINE DI TURING
Cosa richiede questo?
Saper descrivere lalgoritmo richiesto.
E per descrivere lalgoritmo?
Occorre un linguaggio...
e una macchina che lo interpreti.
Conclusione:
la Macchina Universale di Turing linterprete
di un linguaggio!
Andrea Prevete, UNINA2 2016
LE MACCHINE DI TURING
MACCHINA DI TURING UNIVERSALE
La UTM modella il concetto di elaboratore di
uso generale (general purpose):
una macchina che va a cercare
le istruzioni da svolgere
le interpreta...
e le esegue.
Andrea Prevete, UNINA2 2016
fetch
decode
execute
LE MACCHINE DI TURING
In sintesi
leggere / scrivere un
simbolo dal / sul nastro
corrisponde a:
transitare in un nuovo
stato interno
THE END