You are on page 1of 37

Unidade I

ASPECTOS TEÓRICOS
DA COMPUTAÇÃO

Profa. Miryam de Moraes


Linguagens e dispositivos
reconhecedores

 As linguagens regulares são geradas


pelas gramáticas regulares e são
reconhecidas pelos autômatos finitos.
 As linguagens livres de contexto são
geradas pelas gramáticas de mesmo nome
e reconhecidas pelos autômatos de pilha.
 As linguagens recursivas e as linguagens
recursivamente enumeráveis são
reconhecidas pela máquina de Turing.
Máquina de Turing

Início da fita
entrada b: branco
de entrada

> 1 2 ... b b ...

cursor

Controle finito

Função de
transição
Definição formal da máquina de
Turing

 M = (Q, A, , g, q0, >, b, F)


 Q é o conjunto finito não vazio de
estados.
 A é o alfabeto de entrada, formado por
um conjunto não vazio de símbolos.
  é o conjunto finito e não vazio de
símbolos que podem ser lidos e/ou
escritos na fita de trabalho.   A.
 q0Q é o estado inicial.
 F  Q é o conjunto de estados finais.
Definição formal da máquina de
Turing

 “>“ , “>“ A, é o símbolo que indica a


primeira posição da fita de entrada. Não
pode ser gravado em nenhuma outra
posição da fita.
 b , b  A: preenche todas as posições
à direita da cadeia de entrada da fita.
 g é a função parcial de transição.
 g: Q  2Q  {E,D}
 Observação: “E”, “D” indicam o
movimento do cursor para a esquerda e
para a direita.
Exemplo

 Seja a máquina de Turing T, em que:


Q = {q0, qf}
A = {0, 1}
 = {0, 1, #}
F = {qf}
 Ainda, a função de transição g é tal que:
g(q0, >) = (q0, >, D)
g(q0, 0) = (q0,1, D)
g(q0,
( 0 1) = ((q0,
0 0,
0 D)
g(q0, b) = (qf ,#, E)
Exemplo

> 0 1 > 0 1 > 1 1


  
q0 q0 q0

> 1 0 > 1 0 #
 
q0 qf
Interatividade

Assinale a alternativa que não diz respeito à


máquina de Turing.
a) O cursor de acesso à fita de entrada pode
se deslocar livremente sobre a fita de
trabalho.
b) Apresenta a fita de entrada ilimitada à
direita.
c) Sempre, para qualquer que seja o
conteúdo da fita de entrada e qualquer
que seja a unidade de função de transição.
d) Conjunto finito de estados.
e) Fita de entrada passível de ser lida e
escrita.
Exemplo: MT reconhecedora da
Linguagem L = {an bn}

 Seja a máquina de Turing MT, tal que:


 Q = {q0, q1, q2, q3, qf}
 A = {a,b}
  = {a, b, A, B}
 q0 é o estado inicial e qf é o estado final.
 , representa espaço em branco.
 Ainda, tem-se que:
g(q0, >) = (q0, >, D)
g(q0,
( 0 a)) = ((q1,
1 AA, D)
g(qo, B) = (q3, B, D)
g(q0, )= (qf, , D)
Exemplo: MT reconhecedora da
Linguagem L = {an bn}

g(q1, a) = (q1, a, D)
g(q1, b) = (q2, B, E)
g(q1, B)= (q1, B, D)
g(q2, a) = (q2, a, E)
g(q2, A) = (q0, A, D)
g(q2, B)= (q2, B, E)
g(q3, B) = (q3, B, D)
g(q3, ) = (qf, , D)
Exemplo: MT reconhecedora da
Linguagem L = {an bn}

> a a b b  ...
q0

> a a b b  ...
q0

> A a b b  ...
q1

> A a b b  ...
q1
Exemplo: MT reconhecedora da
Linguagem L = {an bn}

> A a B b  ...
q2

> A a B b  ...
q2

> A a B b  ...
q0

> A A B b  ...
q1
Exemplo: MT reconhecedora da
Linguagem L = {an bn}

A A B b  ...
q1

> A A B B  ...
q2

> A A B B  ...
q2

> A A B B  ...
q0
Exemplo: MT reconhecedora da
Linguagem L = {an bn}

> A A B B  ...
q3

> A A B B  ...
q3

> A A B B   ...

qf
Interatividade

Assinale a alternativa incorreta:


a) As Máquinas de Turing (MT) são
dispositivos reconhecedores.
b) Máquinas de Turing são dispositivos
aceitadores.
c) Máquinas de Turing não reconhecem
linguagens mais complexas que as livres
de contexto.
d) É possível gravar símbolos na fita de
entrada de uma máquina de Turing.
Turing
e) O cursor de uma máquina de Turing
pode se movimentar à esquerda.
Método ou procedimento

 Um método, ou procedimento, M, que é


empregado para se obter um resultado
desejado é denominado “efetivo” ou
mecânico e deve ser descrito em um
número finito de instruções exatas (cada
instrução sendo expressa por um número
finito de símbolos).
 Se M não apresentar erros, deve produzir
o resultado desejado em um número finito
de etapas.
 M pode ser realizado por um ser humano
sem o auxílio de uma máquina, ou seja,
empregando apenas “lápis e papel”.
Algoritmo

“Informalmente, um algoritmo é
qualquer procedimento computacional que
recebe como entrada um ou mais valores e
produz como saída um ou mais valores.
Um algoritmo é, portanto, uma sequência de
etapas computacionais que transformam
valores de entrada para valores de saída.”
(CORMEN e LEISERSON, “Algoritmos”)
Hipótese de Turing Church

“As máquinas de Turing são versões formais


de algoritmos e nenhum procedimento
computacional é considerado um algoritmo a
não ser que possa ser apresentado na forma
de uma máquina de Turing.”
(José Neto, J.)
 Estabelece-se, assim, a equivalência
entre máquinas de Turing e algoritmos.
 Uma função da teoria dos números é
computável por um algoritmo se, e
somente se, for computável por Turing.
Máquinas de Turing como
calculadora de funções

 Representação unária.
 I é a representação do número inteiro 0.
In é a representação do número inteiro
n – 1, n >1.
 Exemplo: a função Incrementa,
Incrementa a saber:
f(n) = n + 1 se n  0 e
f(n) é indefinida para n < 0.
Tem-se:
g(q0 >) = (q0
g(q0, (q0, >,
> D)
G(q0, I) = (q0, I, D)
G(q0, ) = (qf, I, D)
Incrementa

> I     ...
q0

> I     ...
q0

> I     ...
q0

> I I    ...
qf
Incrementa

> I I I   ...
q0

> I I I   ...
q0

Em uma configuração, tal que o cursor se


posiciona para leitura do último símbolo “I”
da cadeia de entrada,, no estado q0,
q , tem-se:
Incrementa

> I I I   ...
q0

> I I I   ...
q0

> I I I I  ...
qf
Máquinas equivalentes

 Múltiplas trilhas.
 Múltiplas fitas.
 Múltiplos cursores.
 Fita ilimitada em ambos os sentidos.
 Transições que deslocam o cursor um
número variável de posições.
 Transições sem leitura ou gravação de
símbolos.
Interatividade

Para se aumentar o poder computacional da


máquina de Turing, deve-se:
a) Adicionar múltiplas trilhas.
b) Multiplicar o número de cursores.
c) Torná-la
Torná la multidimensional
multidimensional.
d) Acrescentar ao modelo uma memória
organizada em pilha.
e) Há provas formais que demonstram
que o dispositivo da MT com fita infinita
possui exatamente o poder computacional
de qualquer outra versão estendida.
Máquinas de Turing não
determinísticas

 A função de transição g remete para o não


determinismo inerente aos dispositivos
aceitadores apresentados.
 Dada uma mesma combinação de estado
corrente e de símbolo na fita de trabalho, é
possível especificar múltiplas transições.
Exemplo:
 g(q1, a) = (q1, b, D)
 g(q1, a) = (q2, b, D)
 g(q1, a) = (q3, b, D)
 g(q1, a) = (q2, b, E)
Máquina de Turing universal

 Uma máquina de Turing Universal é uma


máquina de Turing capaz de simular
qualquer outra apropriadamente
codificada.
 “Processa programas que são
codificações de máquinas de Turing.”
(Ramos, Vega e Neto, 2009).
 Simula a máquina descrita e produz
como resultado o mesmo resultado que a
máquina simulada produziria.
 É universal, pois é capaz de executar
qualquer algoritmo.
Ordenação lexicográfica

É possível especificar uma máquina de


Turing através de uma descrição passível de
ser a entrada de outra Máquina de Turing. A
seguinte convenção pode ser adotada:
 Cada estado distinto da máquina de
Turing é nomeado por uma cadeia
constituída do símbolo q, que deve ser
sucedido por uma cadeia de símbolos do
alfabeto binário.
 Cada símbolo da cadeia de entrada é
nomeado por uma cadeia constituída
do símbolo “a” e sucedido por uma cadeia
de símbolos do alfabeto binário.
Ordenação lexicográfica

Os estados e os símbolos da cadeia de


entrada devem ser ordenados. Pode-se, por
convenção, ordená-los em ordem
lexicográfica crescente de tal forma que:
 o estado inicial é o primeiro e os estados
de aceitação são os últimos;
 os símbolos especiais são os primeiros na
seguinte ordem: (branco, início de fita (·),
movimento à esquerda (E) e movimento à
direita (D));
 “M” é um conjunto de quádruplas,
obtidas a partir da função de transição g
de M e deve ser ordenada em
ordem lexicográfica crescente.
Ordenação lexicográfica: exemplo

 Inicia-se por g(q0, branco) e o estado de


aceitação deverá ser o último estado da
ordenação.
Exemplo: seja uma MT M, tal que:
Q = {q0, q1, qf}
A = {b, >, x}
F = {qf}
q0 é o estado inicial;
b representa
p “branco”.
A função de transição é dada como se segue:
Ordenação lexicográfica: exemplo

estado Símbolo de g
entrada
q0 x (q1, b)
q0 b (qf, b)
q0  (q0, D))
q1 x (q0, x)
q1 b (q0, D)
q1  (q1, D)

 “M” = (q00, a100, q01, a000),


(q00, a000, q11, a000), (q00, a001,
q00, a011), (q01, a100, q00, a011),
(q01, a000, q00, a011),
(q01, a001, q01, a011).
Tipos de linguagens (revisão)

 Linguagem regular.
 Linguagem livre de contexto.
 Linguagem recursiva.
 Linguagem sensível a contexto.
 Linguagem recursivamente enumerável.
 É provado que existem linguagens que
não são recursivamente enumeráveis.
Linguagem não recursivamente
enumerável (Menezes, P. B.)

 Seja o alfabeto A = {a, b}


 É possível codificar todas as máquinas de
Turing como uma palavra sobre o alfabeto
A, de tal forma que cada código
represente uma única máquina de Turing
Ti .
 A linguagem: L = {Xi | Xi não é aceita por
Ti} não é recursivamente enumerável.
Decidibilidade

 É o estudo das propriedades exibidas


pelas linguagens, com o objetivo de
determinar a existência ou não de algum
algoritmo capaz de aceitar ou rejeitar,
em tempo e espaço finitos, uma cadeia
qualquer apresentada para análise
análise.
 Solucionável x não solucionável x
parcialmente solucionável.
Problema da parada

 Definição (GERSTING, 2000): “existe um


algoritmo para decidir, dadas uma
máquina de Turing T qualquer e uma
cadeia , se T, começando com uma fita
contendo , vai parar?”
 Teorema sobre o problema da parada: o
problema da parada é insolúvel.
 Teorema: o problema de decidir se uma
gramática livre de contexto arbitrária é
ambígua é indecidível.
Outros problemas insolúveis

Os seguintes problemas sobre gramáticas


são insolúveis:
 Dada uma máquina de Turing M e uma
palavra w, ambas arbitrária, M para com
uma entrada w?
 Dada uma máquina de Turing M, M para
com a fita de entrada vazia?
 Dada uma máquina de Turing M
arbitrária, existe uma palavra que a faça
parar?
 Dada uma máquina de Turing M
arbitrária, M para com qualquer entrada
possível?
Interatividade

É um exemplo de problema não


solucionável:
a) Não existem problemas não
solucionáveis.
b) Minimização de um autômato finito.
c) Detector universal de loops.
d) Reconhecimento de linguagens
recursivas.
e) Tratamento de não determinismos
em linguagens regulares.
ATÉ A PRÓXIMA!

You might also like