2. Resumo
●
Notação O, Ω e Θ
●
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. Notação O, Ω e Θ
●
São utilizadas para denotar o
comportamento assintótico de uma função
4. Notação O, Ω e Θ
●
Notação O
– É usada para determinar um limite superior
assintótico.
●
f(n) ∈ O(g(n)) →
f(n) ∈ {h(n) | c,N:∃ ∀n≥N: h(n) ≤ cg(n)}
●
f(n) é limitada superiormente por g(n)
5. Notação O, Ω e Θ
●
Alguns autores usam f(x) = O(g(x))
●
Assim, também podemos afirmar que f(x)
= O(g(x)) se e somente se a∃ ∈ ℝ, a ≥ 0:
lim
x→∞
f ( x)
g(x)
≥a
6. Notação O, Ω e Θ
●
Observe que este limite pode ser igual a 0.
7. Notação O, Ω e Θ
●
Exemplos:
– 5n2+15 ∈ O(n2) → n∀ ≥4: 5n2+15 ≤ 6n2 (c=6, N=4)
– 5n2+15 ∈ O(n3) → n∀ ≥6: 5n2+15 ≤ n3 (c=1, N=6)
– n2 ∉ O(n) → c,N∄ : n∀ ≥N n2 ≤ cn
●
Suponha c,N, tais que n∃ ∀ ≥N n2 ≤ cn. Então n∀ ≥N n2-
cn ≤ 0. As soluções para n são 0 ≤ n ≤ c. Como n está
limitado entre 0 e c, ele não pode ser maior que
qualquer N. Contradição!
9. Notação O, Ω e Θ
●
Notação Ω
– É usada para determinar um limite inferior
assintótico.
●
f(n) ∈ Ω(g(n)) →
●
f(n) {h(n) | c,N: n∈ ∃ ∀ ≥N: h(n) ≥ cg(n)}
●
f(n) é limitada inferiormente por g(n)
10. Notação O, Ω e Θ
●
Alguns autores usam f(x) = Ω(g(x))
●
Assim, também podemos afirmar que f(x)
= Ω(g(x)) se e somente se a∃ ∈ ℝ, 0 < a
≤ ∞:
lim
x→∞
f ( x)
g(x)
=a
11. Notação O, Ω e Θ
●
Observe que este limite não pode ser igual
a 0.
14. Notação O, Ω e Θ
●
Notação Θ
– É usada para determinar uma igualdade
assintótica.
●
f(n) ∈ Θ(g(n)) s.s.s. f(n) ∈ O(g(n)) e f(n) ∈
Ω(g(n))
●
f(n) é assintoticamente equivalente a g(n)
15. Notação O, Ω e Θ
●
Alguns autores usam g(n) = Θ(f(n))
●
Assim, também podemos afirmar que f(x)
= Ω(g(x)) se e somente se a∃ ∈ ℝ, 0 < a
< ∞:
lim
x→∞
f ( x)
g(x)
=a
16. Notação O, Ω e Θ
●
Exemplos:
– 5n2+15 ∈ Θ(n2)
– 4n+1 ∈ Θ(n)
18. 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!
20. 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.
21. 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?
22. 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
24. 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 a
esquerda da sua posição atual
25. 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
26. Considerações MT de
várias fitas
●
Tempo de conversão da versão multifitas
para uma fita é O(n2)
– Por quê?
27. 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
28. 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.
29. 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.
30. 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.
31. 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=n2
+2n
32. 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
35. MTs não-determinísticas
b a B
q0
{(q1
,b,R)} {} {}
q1
{} {(q1
,a,R), (q2
,a,R)} {}
q2
{} {} {(q3
,B,R)}
q3
{} {} {}
36. 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.
39. MTs não-determinísticas
●
As NTMs possuem o mesmo poder de
reconhecimento de uma DMT. 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
40. 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
42. 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.
43. 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.
44. 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
45. 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
46. 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
47. 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)
48. 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.
54. 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