Você está na página 1de 7

UNIVERSIDADE ESTADUAL DE MARING UEM

CENTRO DE TECNOLOGIA CTC


DEPARTAMENTO DE INFORMTICA DIN
BACHARELADO EM CINCIA DA COMPUTAO
DISCIPLINA: TEORIA DA COMPUTAO
PROFESSOR: YANDRE MALDONADO E GOMES DA COSTA

Lista de Exerccios n
o
10 Mquina de Turing

1) Construa Mquinas de Turing determinsticas transdutoras com as seguintes
caractersticas:

a) Receba como entrada uma seqncia binria e produza como resultado o
valor binrio multiplicado por 4;







b) Receba como entrada uma seqncia binria e produza como resultado o
valor binrio incrementado em uma unidade;





















S
0
S
1
S
f

(0,0,D)
(1,1,D)
(,0,D)
(,0,E)
S
2

(0,0,E)
(1,1,E)
(, ,D)
(0,0,D)
(1,1,D)

incio
soma retorno
sada
estouro
avana
( , ,E) (0,1,E)
(1,0,E)
(0,0,E)
(1,1,E)

( , ,D)
( , ,D)
(0,0,D)
(0,1,D)
( ,0,E)
2) Descreva o resultado do processamento da cadeia 111 pela MT construda no
item b do exerccio nmero 1.

incio


1 1 1 ...
incio


1 1 1 ...
incio


1 1 1 ...
incio


1 1 1 ...
soma


1 1 1 ...
soma


1 1 0 ...
soma


1 0 0 ...
soma


0 0 0 ...
estouro


0 0 0 ...
avana


1 0 0 ...
avana


1 0 0 ...
avana


1 0 0 ...
retorno


1 0 0 0 ...
retorno


1 0 0 0 ...
retorno


1 0 0 0 ...
retorno


1 0 0 0 ...
sada


1 0 0 0 ...


3) Construa Mquinas de Turing determinsticas reconhecedoras para as seguintes
linguagens:

a) {w {a, b}
*
| |w|
a
=|w|
b
};

M = ( , Q, , S
0
, F, V, , ), onde:

= {a, b}
Q = {S
0
, S
1
, S
2
, S
3
, S
4
}
S
0
= estado inicial
F = {S
4
}
V = {A, B}
= smbolo branco
= smbolo de incio da fita
= funo programa, conforme tabela abaixo:

Tabela de transies:
a b A B
S
0
- (S
1
,A,D) (S
3
,B,D) (S
0
,A,D) (S
0
,B,D) (S
4
,,E)
S
1
- (S
1
,a,D) (S
2
,B,E) (S
1
,A,D) (S
1
,B,D) -
S
2
(S
0
,,D) (S
2
,a,E) (S
2
,b,E) (S
2
,A,E) (S
2
,B,E) -
S
3
- (S
2
,A,E) (S
3
,b,D) (S
3
,A,D) (S
3
,B,D) -
S
4
- - - - - -

Diagrama de transies:






















b) {ww | w {a, b}
*
};




















S
0

S
4

S
1
S
2

S
3

(,,E)
(a,a,D)
(A,A,D)
(B,B,D)
(a,A,D)
(,,D)
(A,A,D)
(B,B,D)
(b,B,E)
(B,B,D)
(A,A,D)
(b,b,D)
(B,B,E)
(A,A,E)
(b,b,E)
(a,a,E)
(a,A,E)
(b,B,D)
(X,X,D) (a,A,D)
(A,A,E)
(B,B,E)
( , ,E)

( , ,D)
(a,A,E)
(b,B,E)
(a,A,D)
(b,B,D)

S
0

S
1
S
2

S
f

S
5

S
4

S
3

S
7

S
8

S
6

( , ,E)
(a,a,D)
(b,b,D)

(a,a,E)
(b,b,E)

(A,A,D)
(B,B,D)

(A,A,E)
(B,B,E)

(A,a,E)
(B,b,E)

(b,B,D)
(a,a,D)
(b,b,D)
(X,X,D)

(a,a,D)
(b,b,D)
(X,X,D)

(a,a,E)
(b,b,E)
(X,X,E)

(A,A,D)
(B,B,D)

(B,X,E)
(A,X,E)
c) {a
n
b
n
| n0};

















d) {a
n
b
n
c
n
| n0}.



















4) Qual a diferena fundamental entre as Classes das Linguagens Recursivas e das
Linguagens Enumerveis Recursivamente? Qual a importncia de se distinguir
estas duas classes?

A classe das Linguagens Recursivas uma subclasse das Linguagens Enumerveis
Recursivamente. Nas Linguagens Enumerveis Recursivamente pode-se enumerar
S
0

S
1
S
2

S
f

( , ,E)
(B,B,D)
(a,a,E)
(B,B,E)

( , ,D)
S
3

S
4

(B,B,E)
(A,A,E)

( , ,E)
(B,B,D)
(a,A,D)
(A,A,D)
(a,a,D)
(B,B,D)

(b,B,E)
S
0

S
1
S
2

S
f

( , ,E)
(B,B,D)
(b,b,D)
(C,C,D)

( , ,D)
S
4

S
5

(C,C,E)
(B,B,E)
(A,A,E)

( , ,E)
(B,B,D)
(C,C,D)
(a,A,D)
(a,a,D)
(B,B,D)

(b,B,D)
S
3

(a,a,E)
(B,B,E)
(b,b,E)
(C,C,E)

(A,A,D)
(c,C,E)
todas as suas palavras. Esta classe inclui todas as linguagens que podem ser
reconhecidas mecanicamente pela Mquina de Turing ou algum formalismo
equivalente. Dentre estas linguagens existem algumas em que no se consegue
determinar mecanicamente se uma palavra no pertence linguagem. Nestes
casos existe pelo menos uma palavra na linguagem que ao ser processada coloca
a mquina em looping infinito. Assim, foi criada a subclasse das Linguagens
Recursivas, para as quais existe um reconhecimento mecnico que sempre pra,
para qualquer entrada, aceitando-a ou rejeitando-a.













5) Fale sobre a importncia da Teoria da Computao para a Cincia da
Computao.

Um importante papel da Teoria da Computao na formao de um Cientista da
Computao ajudar a entender o que computao e todos os elementos
envolvidos neste contexto - entre eles podemos ressaltar programas, mquinas e
os limites computacionais.

O estudo de Teoria da Computao justifica-se pela necessidade de se estabelecer
que problemas so solucionveis e que problemas so computveis. De outra
forma podemos dizer que estuda-se os limites da computabilidade, ou seja, quais
problemas podem ser resolvidos com um computador. Esta verificao
importante a fim de se evitar, por exemplo, que sejam despendidos esforos em
busca da soluo de problemas que no tm soluo. A Mquina de Turing,
enquanto modelo que define os limites computacionais, muito importante neste
contexto.

Assim sendo, algumas das questes muito importantes que o conhecimento
contido nesta disciplina ajuda a responder so:
- Existe programa para solucionar um determinado problema?
- De que forma um programa pode ser especificado?
- Dado um programa qualquer, ele sempre tem parada garantida?
- Dois programas A e B so equivalentes entre si?
- Duas mquinas X e Y so equivalentes entre si?
Linguagem Enumervel
Recursivamente
Linguagem Recursiva
- Uma determinada soluo a melhor soluo para um determinado
problema?
- Qual o significado de um determinado programa?
- Como construir um programa correto?

Alm disso, a Teoria da Computao favorece o desenvolvimento do raciocnio
lgico e formal, e traz tambm conceitos fundamentais para algumas subreas da
computao, como:
- Representao de linguagens: mecanismos de reconhecimento e
gerao de linguagens. Importante para o desenvolvimento de
compiladores e de forma mais geral para o estudo de Linguagens de
Programao;
- Processamento de funes: importante para a resoluo de problemas e
otimizao de programas;
- O conceito de no determinismo (no seqencial) e sua relao com o
conceito de concorrncia.