Extensões e Restrições
de MTs
Yuri Tavares dos Passos
Resumo
●
Extensões de Mts
– Máquinas com múltiplas fitas
– MTs não-determinísticas
●
Restrições de Mts
– MTs sem uso de caractere branco
– MTs com fita infinita para somente um lado
Múltiplas fitas
●
Utilização de várias fitas para um
controlador
●
Cada fita possui uma cabeça de leitura
própria
– Não confundir com múltiplas trilhas!
Múltiplas fitas
Múltiplas fitas
●
A função δ será definida como:
– δ: Q x Гn
→ Q x Гn
x {L,R,S}n
●
S representa o estado estacionário: a
cabeça i não move.
Múltiplas fitas
●
Uma MT de múltiplas fitas N é uma
generalização da MT de uma fita M,
quando n = 1.
– Assim, L(M) ⊆ L(N)
●
Mas a linguagem de uma MT N pode ser
implementada por um MT de uma fita
apenas?
Múltiplas fitas
●
Considere uma fita com 2n trilhas
●
Para cada fita de N, você considera que
uma trilha será usada para marcar e outra
para escrever
Múltiplas fitas
Múltiplas fitas
●
Cada movimento de N será simulado em
M da seguinte forma:
– Toda vez que houver um movimento na fita i
de N, marque este ponto na fita 2i-1 e use a
fita 2i para escrita ou leitura de um símbolo.
– M memoriza quantos marcadores existem à
esquerda da sua posição atual.
●
Assim, pelo armazenamento no estado, apenas
símbolos de 0 a k são necessários.
●
Com isso, N sabe se deve continuar indo para
esquerda ou para direita para ler mais trilhas.
Múltiplas fitas
– Isto pode ser feito pelo controle, armazenando
além do estado, esta quantidade.
● Q = {q0
,...,qk
}x{0,...,n}
– Pelo estado, M sabe qual serão as escritas e
leituras feitas por cada cabeça de leitura
Considerações MT de
várias fitas
●
Tempo de conversão da versão multifitas
para uma fita é O(n2
)
– Por quê?
Considerações MT de
várias fitas
●
Considere M a MT de uma fita e N a de
várias fitas.
●
Para n movimentos de N, os marcadores
de M não podem estar a mais de 2n
células
Considerações MT de
várias fitas
●
Considere os seguintes movimentos de N
com duas fitas para exemplificar:
– 1º passo de N: uma fita vai para esquerda e outra
para a direita:
●
Em M haverá 1 células entre os marcadores de cada
trilha.
– 2º passo de N: uma fita vai para esquerda e outra
para a direita:
●
Em M haverá 3 células entre os marcadores de cada
trilha.
Considerações MT de
várias fitas
– 3º passo de N: uma fita vai para esquerda e
outra para a direita:
●
Em M haverá 5 células entre os marcadores de
cada trilha.
– ...
– n-ésimo passo de N: uma fita vai para
esquerda e outra para a direita:
●
Em M haverá 2n-1 células entre os marcadores de
cada trilha.
Considerações MT de
várias fitas
●
Como isto a distância máxima entre as
células será 2n+1 a MT M (de uma fita)
deverá mover duas vezes entre os
marcadores
– Uma vez da esquerda para direita para
encontrar e memorizar onde estão todos os
marcadores.
Considerações MT de
várias fitas
●
Então, n passos de N será simulado em
O(n2
) passos de M.
N M faz no
máximo
M faz um total
de no máximo
1 3 3
2 5 3+5
3 7 3+5+7
4 9 3+5+7+9
... ... ...
n 2n + 1
∑
i=1
n
2i+1=n
2
+2n
Exercício
●
Escreva um pseudo-código para a
conversão acima e calcule a complexidade
do seu algoritmo.
MTs não-determinísticas
●
Difere da versão determinísticas apenas
na função δ
– δ: Q x Г → 2Q x Г x {L,R}
● δ(q,a) = {(q1
,a1
,D1
), (q2
,a2
,D2
), …, (qk
,ak
,Dk
)}
●
O não-determinísmo indica a ideia de que
não há apenas um movimento a ser feito a
cada leitura da fita
MTs não-determinísticas
●
NTM: Nondeterministic Turing Machine
●
DTM: Deterministic Turing Machine
MTs não-determinísticas
>
MTs não-determinísticas
b a B
>q0
{(q1
,b,R)} {} {}
q1
{} {(q1
,a,R), (q2
,a,R)} {}
q2
{} {} {(q3
,B,R)}
*q3
{} {} {}
MTs não-determinísticas
●
A aceitação de uma palavra w é feita
quando existir algum caminho que leve do
estado inicial a um estado final utilizando
w na fita como entrada.
MTs não-determinísticas
●
baa
MTs não-determinísticas
●
bab
MTs não-determinísticas
●
As NTMs possuem o mesmo poder de
reconhecimento de uma DTM. Basta
considerá-las como uma NTM que usam
conjuntos unitários.
●
Resta saber se o contrário é verdade
– Para isto deve-se provar que uma DTM pode
simular o reconhecimento de uma NTM
Conversão NTM para
DTM
●
A DTM usará duas fitas
●
A primeira fita guarda a sequência de IDs
atuais na NTM simulada.
●
A segunda fita é usada para rascunho
Conversão NTM para
DTM
Conversão NTM para
DTM
●
Os passos da DTM serão:
– Verifica o simbolo lido na ID atual e o
movimento a se fazer na NTM. Se o estado
atual for de aceitação, a DTM aceita.
– Caso contrário, se o movimento tem k
resultados na NTM, a DTM armazena k cópias
da ID atual na sua fita de fila, utilizando a fita
de rascunho para esta cópia.
Conversão NTM para
DTM
– A DTM modifica cada uma das k IDs novas de
acordo com os movimentos que a NTM faria.
– Depois disso ela volta para a ID marca,
apaga a marca e move a marca para a
próxima ID à direita. Em seguida repete o
primeiro passo.
●
A quantidade de IDs na fita de fila é:
– 1 + m + m2
+ … + mn
Conversão NTM para
DTM
●
Onde m é o tamanho do maior conjunto de
movimentos que um estado pode realizar
para algum símbolo e n é quantidade de
movimentos da NTM
●
Este somatório resulta em no máximo nmn
IDs
Conversão NTM para
DTM
●
Mas também existem passos a serem feitos
para cada nmn
IDs:
– Cada uma das IDs serão copiadas para o rascunho
– Para cada ID, existem uma mudança de estado
– Para cada ID existe uma movimentação de fita
proporcional a seu tamanho
– etc.
●
Este valor acaba sendo proporcional aos
movimentos da DTM
Complexidade de tempo
de uma NTM
●
Usando a conversão de NTM para DTM
nota-se a NTM executa muito mais rápido
que a DTM
– Proporcional a nmn
– Ou seja, tempo de conversão da NTM para
DTM é O(nmn
)
Exercício
●
Escreva um pseudo-código para a
conversão acima e calcule a complexidade
do seu algoritmo.
Considerações
●
Tempo de execução é o número de etapas
que uma TM executa sobre uma entrada
de tamanho n
●
A complexidade de tempo é a função T(n)
que denota o tempo de execução máximo
●
Se a MT não aceitar ela poderá usar um
tempo infinito.
Considerações
●
Problemas normais possuem T(n)
polinomial enquanto que os difíceis T(n)
exponencial
MTs restritas
●
MTs sem uso de caractere branco
●
MTs com fita infinita para somente um lado
MT sem caractere branco
●
Não possuir branco diminui o poder de
reconhecimento?
MTs com fita semi-infinita
●
Apenas o lado direito é infinito.
●
Possui menor poder de reconhecimento?
MTs com fita semi-infinita
Referência
●
[1] HOPCROFT, John E.; ULLMAN, Jeffrey
D.; MOTWANI, Rajeev. Introdução à teoria
de autômatos, linguagens e computação.
[Rio de Janeiro]: Campus, c2003. p. 328-
352
●
Imagens da versão em inglês

04-Extensoes de MTs.pdf

  • 1.
    Extensões e Restrições deMTs Yuri Tavares dos Passos
  • 2.
    Resumo ● Extensões de Mts –Máquinas com múltiplas fitas – MTs não-determinísticas ● Restrições de Mts – MTs sem uso de caractere branco – MTs com fita infinita para somente um lado
  • 3.
    Múltiplas fitas ● Utilização devárias fitas para um controlador ● Cada fita possui uma cabeça de leitura própria – Não confundir com múltiplas trilhas!
  • 4.
  • 5.
    Múltiplas fitas ● A funçãoδ será definida como: – δ: Q x Гn → Q x Гn x {L,R,S}n ● S representa o estado estacionário: a cabeça i não move.
  • 6.
    Múltiplas fitas ● Uma MTde múltiplas fitas N é uma generalização da MT de uma fita M, quando n = 1. – Assim, L(M) ⊆ L(N) ● Mas a linguagem de uma MT N pode ser implementada por um MT de uma fita apenas?
  • 7.
    Múltiplas fitas ● Considere umafita com 2n trilhas ● Para cada fita de N, você considera que uma trilha será usada para marcar e outra para escrever
  • 8.
  • 9.
    Múltiplas fitas ● Cada movimentode N será simulado em M da seguinte forma: – Toda vez que houver um movimento na fita i de N, marque este ponto na fita 2i-1 e use a fita 2i para escrita ou leitura de um símbolo. – M memoriza quantos marcadores existem à esquerda da sua posição atual. ● Assim, pelo armazenamento no estado, apenas símbolos de 0 a k são necessários. ● Com isso, N sabe se deve continuar indo para esquerda ou para direita para ler mais trilhas.
  • 10.
    Múltiplas fitas – Istopode ser feito pelo controle, armazenando além do estado, esta quantidade. ● Q = {q0 ,...,qk }x{0,...,n} – Pelo estado, M sabe qual serão as escritas e leituras feitas por cada cabeça de leitura
  • 11.
    Considerações MT de váriasfitas ● Tempo de conversão da versão multifitas para uma fita é O(n2 ) – Por quê?
  • 12.
    Considerações MT de váriasfitas ● Considere M a MT de uma fita e N a de várias fitas. ● Para n movimentos de N, os marcadores de M não podem estar a mais de 2n células
  • 13.
    Considerações MT de váriasfitas ● Considere os seguintes movimentos de N com duas fitas para exemplificar: – 1º passo de N: uma fita vai para esquerda e outra para a direita: ● Em M haverá 1 células entre os marcadores de cada trilha. – 2º passo de N: uma fita vai para esquerda e outra para a direita: ● Em M haverá 3 células entre os marcadores de cada trilha.
  • 14.
    Considerações MT de váriasfitas – 3º passo de N: uma fita vai para esquerda e outra para a direita: ● Em M haverá 5 células entre os marcadores de cada trilha. – ... – n-ésimo passo de N: uma fita vai para esquerda e outra para a direita: ● Em M haverá 2n-1 células entre os marcadores de cada trilha.
  • 15.
    Considerações MT de váriasfitas ● Como isto a distância máxima entre as células será 2n+1 a MT M (de uma fita) deverá mover duas vezes entre os marcadores – Uma vez da esquerda para direita para encontrar e memorizar onde estão todos os marcadores.
  • 16.
    Considerações MT de váriasfitas ● Então, n passos de N será simulado em O(n2 ) passos de M. N M faz no máximo M faz um total de no máximo 1 3 3 2 5 3+5 3 7 3+5+7 4 9 3+5+7+9 ... ... ... n 2n + 1 ∑ i=1 n 2i+1=n 2 +2n
  • 17.
    Exercício ● Escreva um pseudo-códigopara a conversão acima e calcule a complexidade do seu algoritmo.
  • 18.
    MTs não-determinísticas ● Difere daversão determinísticas apenas na função δ – δ: Q x Г → 2Q x Г x {L,R} ● δ(q,a) = {(q1 ,a1 ,D1 ), (q2 ,a2 ,D2 ), …, (qk ,ak ,Dk )} ● O não-determinísmo indica a ideia de que não há apenas um movimento a ser feito a cada leitura da fita
  • 19.
    MTs não-determinísticas ● NTM: NondeterministicTuring Machine ● DTM: Deterministic Turing Machine
  • 20.
  • 21.
    MTs não-determinísticas b aB >q0 {(q1 ,b,R)} {} {} q1 {} {(q1 ,a,R), (q2 ,a,R)} {} q2 {} {} {(q3 ,B,R)} *q3 {} {} {}
  • 22.
    MTs não-determinísticas ● A aceitaçãode uma palavra w é feita quando existir algum caminho que leve do estado inicial a um estado final utilizando w na fita como entrada.
  • 23.
  • 24.
  • 25.
    MTs não-determinísticas ● As NTMspossuem o mesmo poder de reconhecimento de uma DTM. Basta considerá-las como uma NTM que usam conjuntos unitários. ● Resta saber se o contrário é verdade – Para isto deve-se provar que uma DTM pode simular o reconhecimento de uma NTM
  • 26.
    Conversão NTM para DTM ● ADTM usará duas fitas ● A primeira fita guarda a sequência de IDs atuais na NTM simulada. ● A segunda fita é usada para rascunho
  • 27.
  • 28.
    Conversão NTM para DTM ● Ospassos da DTM serão: – Verifica o simbolo lido na ID atual e o movimento a se fazer na NTM. Se o estado atual for de aceitação, a DTM aceita. – Caso contrário, se o movimento tem k resultados na NTM, a DTM armazena k cópias da ID atual na sua fita de fila, utilizando a fita de rascunho para esta cópia.
  • 29.
    Conversão NTM para DTM –A DTM modifica cada uma das k IDs novas de acordo com os movimentos que a NTM faria. – Depois disso ela volta para a ID marca, apaga a marca e move a marca para a próxima ID à direita. Em seguida repete o primeiro passo. ● A quantidade de IDs na fita de fila é: – 1 + m + m2 + … + mn
  • 30.
    Conversão NTM para DTM ● Ondem é o tamanho do maior conjunto de movimentos que um estado pode realizar para algum símbolo e n é quantidade de movimentos da NTM ● Este somatório resulta em no máximo nmn IDs
  • 31.
    Conversão NTM para DTM ● Mastambém existem passos a serem feitos para cada nmn IDs: – Cada uma das IDs serão copiadas para o rascunho – Para cada ID, existem uma mudança de estado – Para cada ID existe uma movimentação de fita proporcional a seu tamanho – etc. ● Este valor acaba sendo proporcional aos movimentos da DTM
  • 32.
    Complexidade de tempo deuma NTM ● Usando a conversão de NTM para DTM nota-se a NTM executa muito mais rápido que a DTM – Proporcional a nmn – Ou seja, tempo de conversão da NTM para DTM é O(nmn )
  • 33.
    Exercício ● Escreva um pseudo-códigopara a conversão acima e calcule a complexidade do seu algoritmo.
  • 34.
    Considerações ● Tempo de execuçãoé o número de etapas que uma TM executa sobre uma entrada de tamanho n ● A complexidade de tempo é a função T(n) que denota o tempo de execução máximo ● Se a MT não aceitar ela poderá usar um tempo infinito.
  • 35.
    Considerações ● Problemas normais possuemT(n) polinomial enquanto que os difíceis T(n) exponencial
  • 36.
    MTs restritas ● MTs semuso de caractere branco ● MTs com fita infinita para somente um lado
  • 37.
    MT sem caracterebranco ● Não possuir branco diminui o poder de reconhecimento?
  • 38.
    MTs com fitasemi-infinita ● Apenas o lado direito é infinito. ● Possui menor poder de reconhecimento?
  • 39.
    MTs com fitasemi-infinita
  • 40.
    Referência ● [1] HOPCROFT, JohnE.; ULLMAN, Jeffrey D.; MOTWANI, Rajeev. Introdução à teoria de autômatos, linguagens e computação. [Rio de Janeiro]: Campus, c2003. p. 328- 352 ● Imagens da versão em inglês