Upload
yuri-passos
View
48
Download
0
Embed Size (px)
Citation preview
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
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)
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:
limx→∞
f ( x)g (x )
≥a
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!
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)
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 ≤ ∞:
limx→∞
f ( x)g (x )
=a
Notação O, Ω e Θ
● Exemplos:– 5n2+15 ∈ Ω(n) → n∀ ≥4: 5n2+15 ≥ n (c=1,
N=4)
– 5n2+15 ∉ Ω(n3) → c,N∄ : n∀ ≥N 5n2+15 ≥ cn3
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)
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 < ∞:
limx→∞
f ( x)g (x )
=a
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
● 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
● 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
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á 2 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á 4 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á 6 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 células entre os marcadores de cada trilha.
Considerações MT de várias fitas● Como isto a distância máxima entrea as
células será 2n 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 (2n passos)
Considerações MT de várias fitas
– Outra vez da direita para à esquerda para modificar os símbolos de acordo com N (2n passos)
– Note que o sentido é da direita para esquerda. Como nesta etapa, N pode fazer escritas à esquerda ou à direita, o movimento oposto (ou seja, à direita) pode ser feito no máximo 2k passos, onde k é a quantidade de fitas.
Considerações MT de várias fitas● Temos que cada passo de N será
simulado em 2n + 2n + 2k = 4n + 2k passos de M. Isto é O(n).
● Então, n passos de N será simulado em O(n2) passos de M.
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
b a B
q0
{(q1,b,R)} {} {}
q1
{} {(q1,a,R), (q
2,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
● 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
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● 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● 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)
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.
MTs com fita semi-infinita
● Apenas o lado direito é infinito.● Possui menor poder de reconhecimento?