Buscar

TC-Lista de exercicios-Respostas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 14 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Vocês tem permissao para modificar dai se modificar coloca de uma outra cor e nao apaga o 
que foi escrito, olha nao tenho ctz de muita coisa que ta ae e tb nao liguem para os erros de 
ortografia! auhauha
 
1) ---
 
2) A simulação em uma MTND usando busca em profundidade é uma péssima escolha, pois 
essa busca pode fazer que nunca se encontre um estado de aceitação, fazendo com que essa 
busca não pare, sempre indo para o infinito. Uma escolha para se fazer a simulação seria a 
busca em largura. 
 
 
3) Assumindo uma MTD M com 3 fitas e uma MTND N, com entrada x e tanto para 
M quanto para N, definimos que N(x) sempre pára, podemos representar uma MTND em uma 
MTD. A MTD M realiza uma busca em largura na árvore de execução da MTND N realizando 
todas as suas computações. Quando é encontrado o estado QA (Estado de aceitação) a 
computação da MTD M termina, quando é encontrado o estado QR (Estado de rejeição) o 
passo representado no momento é retornado para o vertice anterior da MTND N e é trocado 
para o próximo caminho não deterministico. A fita de número 3 é usada para representar a 
simulação da MTND, a fita de número 2 é usada para representar o caminho da árvore da 
computacao, é representada por e1, e2, e3, ... , et, onde t é o numero de passos realizados no 
momento, a fita 1 representa o número de passos realizados no momento. Assim conseguimos 
representar uma MTND em uma MTD. 
 
4) Um codigo unário é representado por uma entrada de '1s', exemplo:
 1 - 1
 2 - 11
 3 - 111
 4 - 1111
 5 - 11111
 6 - 111111 
 ...
 
 Iremos realizar uma MT M onde que soma dois numeros unários, as entradas serão 
representadas em celulas da MT M separadas por um espaço.
 Exemplo:
 M = ...| | | 1 | 1 | 1 | | 1 | 1 | | | | | ... 
 C
 A cabeça (C) de leitura/escrita é posicionada no primeiro celula de entrada. 
 Passo 1:
 Se a leitura realizada for 1 entao se escreve 1 e vai para direita.
 M = ...| | | 1 | 1 | 1 | | 1 | 1 | | | | | ... 
 C
 M = ...| | | 1 | 1 | 1 | | 1 | 1 | | | | | ... 
 C
 Passo 2: 
 Se a leitura realizada for ' ' então se escreve 1 nessa posição e vai para a direita.
 M = ...| | | 1 | 1 | 1 | | 1 | 1 | | | | | ... 
 C
 M = ...| | | 1 | 1 | 1 | 1 | 1 | 1 | | | | | ... 
 C
 Passo 3:
 Se a leitura realizada for ' 1 ' então se escreve 1 e vai para direita.
 M = ...| | | 1 | 1 | 1 | 1 | 1 | 1 | | | | | ... 
 C
 Passo 4: 
 Se a leitura realizada for ' ' vai para esquerda e escreve 1. 
 M = ...| | | 1 | 1 | 1 | 1 | 1 | 1 | | | | | ... 
 C
 Passo 5: 
 Se a leitura realizada for ' 1 ' então se escreve ' ' e vai para direita.
 M = ...| | | 1 | 1 | 1 | 1 | 1 | | | | | | ... 
 C 
 Passo 6:
 Se a leitura for 1 escreve 1 e vai para esquerda.
 M = ...| | | 1 | 1 | 1 | 1 | 1 | | | | | | ... 
 C 
 M = ...| | | 1 | 1 | 1 | 1 | 1 | | | | | | ... 
 C
 ...
 
 M = ...| | | 1 | 1 | 1 | 1 | 1 | | | | | | ... 
 C 
 Passo 7:
 Se a leitura for ' ' escreve ' ' e vai para direita.
 M = ...| | | 1 | 1 | 1 | 1 | 1 | | | | | | ... 
 C 
 Com isso temos a posição da cabeça exatamente no inicio do valor da soma dos números 
unários.
 
5) -- 
 
6) OK
 
7) OK
 
8) Um automato finito normal não possui memoria, portanto, não tem a autonomia de retornar 
um estado ja computado, em contrapartida uma MT possui memoria, representado por uma 
ou mais fitas infinitas com celulas que representa um valor e uma cabeça de leitura ou escrita. 
Essa cabeça pode se locomover livremente entre as células dessa fita podendo ir para direita 
ou esquerda, portanto, possui memoria.
 
9) Não consegue fazer todas as computações porque ela perdeu a propriedade de poder 
guardar valores, portanto, não possui memoria, pq ela não consegue voltar para um estado 
anterior. Ela é comparado a um automato finito simples.
 
10) --
 
11) Um MT decidivel é uma máquina que para qualquer entrada ela SEMPRE PÁRA. Se a 
entrada não pertece a linguagem a MT retorna 0, se a linguagem pertence a linguagem ela 
retorna 1. Já uma MT qualquer pode ser que ela nunca pare.
 
12) Não, pois a MT M é uma maquina qualquer, então ela nem sempre para, se a maquina M 
não aceita a entrada x então M(x) não para, o algoritmo correto seria:
 
 funcao(x)
 Begin
 if M(X) == 1 then
 return 1
 else
 while true dois
 ;
 end if
 end
 
 
13) Não, porque pode existir alguma entrada na linguagem que pode fazer com que a maquina 
nunca pare.
 
14) Sim, pois se a entrada não pertence a linguagem ela irá retornar 0 e se a entrada pertence 
a linguagem a maquina irá retornar 1. Uma MT decidivil sempre pára.
 
15) Para fazer a simulação so precisamos concatenar as fitas em uma unica, isso é possível 
pois a fita é infinita, porem a quantidade de celulas computadas é finita.
Exemplo:
 Fita: ... 1 2 1 2 1 2 1 2 ...
 M = | ... | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | ... |
 
16) Para poder fazer a simulação de 2 ou mais fitas em uma MT de uma fita podemos 
representar as entradas analisadas por um unico simbulo na MT de uma unica fita.
 Exemplo:
 Tenho uma MT M com 3 fitas e queremos representa-la em uma MT N com uma fita, 
tendo Si como i-ésimo simbulo lido da primeira fita, Sj j-ésimo simbulo lido na segunda fita e Sk 
o k-ésimo simbulo lido na terceira fita :
 
 M = 
 | ... | Si | ... |
 | ... | Sj | ... |
 | ... | Sk | ... |
 
 Entao N possui um Jijk que representa os simbulos Si,Sj e Sk
 
 N = | ... | Jijk | ... | 
 
Então o alfabeto da máquina N vai ter um símbolo pra cada combinação de k símbolos do 
alfabeto de M?
Por exemplo, se o alfabeto de M for {0, 1}, o de N será {00, 01, 10, 11}? 
(pra duas fitas, no caso)
 ISSO! =D 
 
17) Temos uma MT N com uma fita infinita tanto para esquerda quanto para a direita, 
queremos representala em uma MT M que possui uma fita infinita somente para a direita. 
Como os numeros naturais são equipotentes para os numeros inteiros então podemos 
enumerar da seguinte forma:
 -2 -1 0 1 2
 N = | ... | | | | | | ... | 
 
 M pode representar N assim:
 0 1 -1 2 -2 ...
 M = | | | | | | ... |
 
 
18) É o inverso do exercício anterior, por exemplo: (comecei M no 1 por comodidade, como 
ninguém sabe realmente se os naturais começam no 1 ou no 0, não deve ser problema)
 1 2 3 4
M = | | | | | ...
 
E sendo:
 -2 -1 0 1 2
N = … | | | | | | ...
 
Podemos mapear os índices i da fita de M para a de N através da função
 
f(i) = 
if i % 2 == 0 --> - floor(i/2)
if i % 2 == 1 --> floor(i/2)
 
Dessa forma os índices em M seriam:
 0 -1 1 -2
M = | | | | | …
 
 
19) Não, pois o conjunto dos numeros naturais é equipotente ao conjunto dos numeros inteiros, 
portanto conseguimos enumeralos.
 
20) Não, elas tem a mesma quantidade de células, pois conseguimos enumerar essas k fitas 
em uma unica fita pois osnumeros Inteiros são equipotentes aos numeros (inteiros)^k.
 
21) Os conceitos de enumeração de conjuntos.
 
22) Uma linguagem L é considerada recursiva se somente se existir uma MT que enumera 
crescentimente os elementos dela. Assumimos que L esta contido em E*, e a ordem crescente 
é a ordem induzida da ordem dos elementos de E. Seja N a MT que enumera os elementos de 
L em ordem crescente. Faremos uma M que decide se x pertence a L ou não, com x sendo a 
entrada de M.
 N simula a execução de M até que está produza um elemento maior que x, que é a entrada 
de M. Se x tiver sido enumerado entao N escreve 1 e vai para o estado QA e pára, senao N 
escreve 0 e vai para o estado QR e pára.
 Suponha que L é recursiva, entao existe um algoritmo elem(i) que retorna o i-esimo elemento 
de E* na ordem lexicográfica. A MT que implementa o seguinte algoritmo enumera em ordem 
crescente os elementos de L:
 
 i = 0;
 while true do 
 begin 
 if elem(i) pertence a L
 then
 imprima elem(i);
 end if
 i = i + 1;
 end 
 
23) ---
 
24) Sendo T o conjunto de todas as MT entao T ~ conjunto dos naturais, pois T é infinito e |T| 
<= conjunto dos naturais. 
 Temos um S = { L : L C E* }
 S = 2^E*
 Existe f: S -> [0,1] bijetora
 entao:
 E* = { 0, 1, 00, 01, 10 , 11, 000 , ...}
 
 conseguimos entao uma entrada x pertencente a [0,1] :
 0 1 1 0 1 0 1 ... 
 | | | | | | | |
 E*={0, 1, 00, 01, 10, 11, 000, ... }
 
 Com isso L = {1,00,10,000, ...} 
 Logo 2^E* = S ~ [0,1] ~ Conjunto dos reais
 |S| => |T|. Logo há linguagens indecidíveis. 
 
25) A tese pode ser descrita na seguinte frase:
 Toda função que seria naturalmente consideravel computável pode ser computada por 
uma Maquina de Turing. Devido a imprecisao da frase 'Toda função que seria naturalmente 
considerada computável" a tese não pode ser provada. Qualquer programa de computador 
pode ser traduzido por uma maquina de turing e uma maquina de turing pode ser traduzida por 
uma linguagem de programação de propósito geral. Entao a tese a seguir pode ser modificada 
para que qualquer linguagem de programação de propósito geral é suficiente para expressar 
qualquer algoritmo.
 
26) Uma linguagem recursivamente enumerada é computavel, ou seja, existe um algoritmo 
que reconhece essa linguagem, porem, não necessariamente para qualquer entrada. Uma 
linguagem é computavel quando existe uma maquina de turing que sempre pára para cadeias 
pertencentes a linguagem, para cadeias fora da linguagem a maquina de turing não para. Um 
exemplo dessa linguagem é : 
 L = {WW | W é uma palavra sobre os simbulos A e B}
 
27) Uma linguagem é recusiva ou também chamada de decidivel quando existe uma MT que 
reconhece a linguagem e sempre pára. Retorna 0 caso a entrada não pertence a linguagem ou 
retorna 1 caso a entrada pertence a linguagem. Um exemplo para ela é :
H = {<M> _ x : M(X) pára} não é recursiva mas é r.e. (By Teta) 
28) 
 
 L = {2 * n | n >= 0}
 
 i = 0;
 while true do
 begin 
 if par(i) pertence a L then
 imprima par(i);
 end if
 i = i + 1;
 end
 
 
29) Um número de linguagens em um dado alfabeto. S = {L | L C E*} , S = 2^E* ~ Reais (já 
provado anteriormente!) 
O complemento de H (exercício 27) não é recursivamente enumerável.(By Teta)
 
 
30) 
 
 binario(x) =
 Desenho em meu caderno:
 (q0, 1, q1, 1, D)
 (q0, 0, q1, 0, D)
 (q0, espaço, qR, espaço, D)
 (q1, 0, q1, 0, D)
 (q1, 1, q1, 1, D)
 (q1, espaço, qA, espaço, D)
 i = 0
 while true do
 if binario(i) pertece a L then
 imprima binario(i)
 end if
 i = i + 1
 end
 
 Como na MT do binario a entrada sempre será um binário e como no fim sempre se 
escreve um espaço e vai para direita, sempre é conservado o estado anterior da MT, com isso 
conseguindo escrever em seguincia todos os numeros binários. Logicamente essa máquina 
nunca irá parár pois existe um enumerador que não deixa isso acontecer
 
31) 
 
Utilizaremos M como sendo a MT (binario(x)) feita no exercicio anterior.
Configuracao:
 M1(0) M2(0) M3(0) M4(0) ...
 M1(1) M2(1) M3(1) M4(1) ...
 M1(2) M2(2) M3(2) M4(2) ...
 M1(3) M2(3) M3(3) M4(3) ...
 ... ... ... ... ...
 
 
Algoritmo:
passoExecN é o e-nésimo passo da execução de M(x)
 
begin 
 passoExecN = 1;
 while true do
 entrada = 0;
 k = passoExecN;
 while passoExecN > 0 then
 if M(entrada) pertence a L then
 imprimaFita3 M(entrada);
 end if
 passoExecN = passoExecN - 1;
 entrada = entrada + 1;
 end while
 passoExecN = k + 1; 
 end while
end 
 
32) 
Assumindo uma MT N com 3 fitas e uma MT com uma fita, onde na primeira fita possui os 
números inteiros separados por um espaço , na segunda fita será simulado a M e na terceira 
fita será imprimido todas as MT M que param com uma determinada entrada.
Configuracao:
 M1(0) M2(0) M3(0) M4(0) ...
 M1(1) M2(1) M3(1) M4(1) ...
 M1(2) M2(2) M3(2) M4(2) ...
 M1(3) M2(3) M3(3) M4(3) ...
 ... ... ... ... ...
 
 
 
Suponha que exista um algoritmo para(P espaço E) no qual P é <M> e E a entrada. 
Para representar a configuração acima é necessario saber qual maquina M está
sendo simulada. Exemplo : Similando o primeiro passo de M com a entrada 0 = para(<M 1> 
espaço 1) entao:
Algoritmo:
begin 
 passoExecN = 1;
 while true do
 entrada = 0;
 k = passoExecN;
 while passoExecN > 0 then
 if para(<M passoExecN> espaço entrada) == 1 then
 imprimaFita3 para(<M passoExecN> espaço entrada);
 end if
 passoExecN = passoExecN - 1;
 entrada = entrada + 1;
 end while
 passoExecN = k + 1; 
 end while
end 
 
Temos na fita 3 todas as Maquinas que param. 
 
 
33) Não existe como enumerar pois :
 
 Procedure Q (P espaço entrada)
 begin 
 while para(P espaço entrada) == 1 do 
 ;
 end while
 end
 Com isso fica trivial que é impossivel enumerar.
 [Allan]
Tem um jeito bem mais fácil :D
Se L é recursiva, há uma máquina M que decide L. Para que ela seja RE, deve existir uma 
máquina N que reconheça L (ou seja, ou aceita, ou para, ou fica em loop). Basta modificar a 
máquina M fazendo o estado de rejeição dela passar a ter um laço infinito para ele mesmo.
[/Allan]
 
 
34)
 
isso me parece uma gambiarra estranha, não soa digno de teóricos da computação hauhauha 
 
[Allan]
Tem um jeito bem mais fácil :D
Se L é recursiva, há uma máquina M que decide L. Para que ela seja RE, deve existir uma 
máquina N que reconheça L (ou seja, ou aceita, ou para, ou fica em loop). Basta modificar a 
máquina M fazendo o estado de rejeição dela passar a ter um laço infinito para ele mesmo.
[/Allan]
 
Se L é uma linguagem recusiva entao L tb é uma linguagem recursivamente enumerada. L 
pode ser computada pela MT M entao:
 
 Procedure Q(x)
 begin
 if M(x) == 1 then
 return 1
 else
 while true do 
 ;
 end if
 end
 Com esse algoritmo conseguimos provar que uma linguagem recursiva tb é uma linguagem 
recursivamente enumerada. Pois se a linguagem recursiva retornar 1 a maquina pára e 
se M retornar 0 ela entra em um loop onde não irá parar, essa propriedade de não parar é 
justamente a diferença entre uma linguagemrecursiva e uma linguagem recursivamente 
enumerada. 
 
35) 
 Se L é recursiva , então existe uma MT que decide L,
 entao temos uma M'(x) = 1 - M(x) que decide L^c, entao L^c tb é recursiva, lembrando que 
L^c é o conjunto de entradas que nao pertece a L.
 
36)
Se L é Recursivamente enumerada entao:
 Conseguimos enumerar tanto L qndo L^c:
 L = a1, a2, a3 , a4 ... Pertence a L
 L^c = b1, b2, b3, b4, ... Não pertence a L.
 
 Construimos uma MT M recursiva que:
 x pertence a L -> M(x) = 1
 x nao pertece a L -> M(x) = 0
 
37) 
Não tenho ctz disso!
a) Decide a Linguagem A = (L UNION K)^c
b) Decide a Linguagem B = L - K
c) Decide a Linguagem C = L + K
d) Decide a Linguagem D = L^c.
e) Decide a Linguagem E = A^c.
 
38) ---
 
 
39) Uma maquina de turing universal(MTU) recebe como parametro uma maquina de turing 
M e uma entrada x, ela capaz simular qualquer máquina de turing. Não existe nada mais 
poderoso que uma MTU. Seu tempo de execução é indeterminado, com certa entradas ela 
pode nunca parar.
 
40) --- 
 
41) Conseguimos construir uma nova MT que computa f apartir da MT M e acrescentando 
um estado que não tem utilidade conseguimos sempre uma nova MT que reconhece f. Assim 
conseguimos representar infinitas MT sempre acrescentando um novo estado.
 
42) --- 
 
43) H = {<M> espaço x : M(x) para}
 
Configuracao:
 
 M0(0), M0(1), M0(2) ...
 M1(0) M1(1), M1(2) ... 
 M2(0) M2(1), M2(2) ...
 M3(0) M3(1), M3(2) ...
 
 Primeiro passo executo M0 com a entrada 0, segundo passo executo M0 com entrada 1 e 
M1 com entrada 0, terceiro passo executo M0 com entrada 2, M1 com entrada 1 e M2 com 
entrada 0 e assim por diante. 
 
 Não conseguimos decidir se uma maquina irá parar ou não (já foi provado com um algoritmo 
anterior) mais ela é recursivamente enumerado.
 Sempre que envolve computação é não decidível!
 
44) S ~ 2^Conjunto dos naturais
Prova:
Temos um S = { L : L C E* }
 S = 2^E*
 Existe f: S -> [0,1] bijetora
 entao:
 E* = { 0, 1, 00, 01, 10 , 11, 000 , ...}
 
 com isso temos um x pertencente a [0,1] x = {0.101010...}
 f pertence 2^conjunto dos naturais associada a L tal que
 S ~ 2^ConjuntodosNaturais 
45) Com a prova acima conseguimos dizer tb que :S ~ 2^ConjuntodosNaturais ~ 
conjuntoDosNaturais^ConjuntoDosNaturais ~ [0,1]
 
46)
Temos um S = { L : L C E* }
 S = 2^E*
 Existe f: S -> [0,1] bijetora
 entao:
 E* = { 0, 1, 00, 01, 10 , 11, 000 , ...}
 
 conseguimos entao uma entrada x pertencente a [0,1] :
 0 1 1 0 1 0 1 ... 
 | | | | | | | |
 E*={0, 1, 00, 01, 10, 11, 000, ... }
 
 Com isso L = {1,00,10,000, ...} 
 
47) nao sei se ta certo: pelo pouco que sei, aprovo (guilheme)
 
Temos que T é o conjunto de todas as máquinas de turing, temos que esse conjunto é infinito, 
pois sempre conseguimos colocar instruções novas, mesmo que elas não tenham utilidade, 
conseguimos codificar todas as maquinas de turing em um inteiro, portanto, como T é um 
subconjutno de N, portanto |T| <= N entao T ~ N. Td é o conjunto de todas as máquinas de 
Turing que são decidíveis. Com isso Td é um subconjunto de T, entao, |Td| <= T entao Td ~ N
 
 
48)
Teta:
 
Não tenho a menor idéia do que seja LSC (deve ser complemento de LLC) e LEF, mas o resto 
é:
Regular C LLC C Rec C RE
sendo C o símbolo de contido.
 
 
49) Uma linguagem L pertence a Time(f) se a MT que decide essa linguagem recebe uma 
entrada x e que executa depois de utilizar um número de passos menor ou igual a c*f(n)
 
Time(n)
L = {<xMax <x1,x2,x3,..., xn>> : xMax é o maior elemento de < x1,x2,x3, …, xn }
 
Time(n²)
(Não sei se a representação é assim!!)
L = {<<x1,x2,x3,...,xn> < y1,y2,y3,...,yn >> : <x1,x2,x3, …,xn> é o conjunto ordenado de 
<y1,y2,y3, …, yn> } 
 
 
50) Uma linguagem L pertence a SPACE(f) se a MT que toma uma entrada x e que termina sua 
execução depois de utilizar o número de células menor ou igual a c*f(n).
 
 
SPACE(n)
 
L = {X espaço Y espaço XY}
 
51) Se temos t passos entao no maximo t células são tocadas, pois o espaço é finito. portanto 
se t = n entao Time(n) C Space(n), mais genericamente Time(f) C Space(f)
 
52) ---
53) São linguagens que podem ser aceitas por uma MT em tempo Polinomial
 
54) Uma linguagem L pertence a NP quando existe um polinômio P e uma MT M tal que :
x pertence a L sse existe y, |y| <= p(|x|) e M (x espaço y) = 1 com M executando em 
tempo polinomial.
Resumindo, existe uma MT M que com a entrada x ela consegue verificar a saida da 
Linguagem NP em tempo polinomial.
Seja H o conjunto de grafos com caminhos hamiltonianos, H pertece a NP, pois para 
cada grafo G, G pertece a H e existe um caminho hamiltoniano C e uma MT M que retorna 1 
com a entrada G espaço C.
 
 SAT = { $ : $ é uma formula do calculo proposicional a FNC satisfacivel} é NP, pois uma MT 
M , que toma tempo polinomial, e para cada $ pertencente a SAT, existe uma atribuição Y de 
valores às variáveis de $ tal que:
 $ pertence a SAT sse M($ espaço Y) = 1
 
 
55) M executa em tempo polinomial , digamos: n^m e R executa tb em tempo polinomial , 
digamos n^k.
Logo M(R(x)) executa em tempo:
 (n^k)^m = n^k*m que é polinomial.
 Time de R = TIME ( n^K ) entao TIME(n^k) C SPACE(n^k) (Pois t passos no máximo t 
celulas são tocadas) Portanto tem no max n^k celulas.
 A entrada de M é n^k.
58) Sabemos que SAT é NP-Completo pelo o teorema 6.0.1 então qualquer Linguagem NP 
pode ser redutivel a SAT. Afirmamos que SAT é redutivel a L, portanto, L é uma linguagem 
mais complexa que SAT. Como qualquer linguagem menor ou igual a NP pode ser redutivel a 
SAT então elas podem ser redutíveis a L.
59)
Não é . Para que ela seja considerada NP-Completa ela precisa que qualquer 
linguagem NP é polinomiavelmente redutivel a L ( isso ela é! ) e que L pertence a NP, como L 
nao pertece a NP ela não pode ser NP- Completa.
 
60) Não, para que uma linguagem B possa ser considerada NP-Completa ela precisa ser NP e 
que para qualquer T pertencente a NP seja redudiza a B.
Com isso temos que somente K é NP completa, pois conseguimos reduzer SAT e L 
nela. Temos que K é a linguagem mais complexa.
 
61) Não tenho certeza!!
 
R(x) é redutível a SAT em tempo n^3 e que produz saída |x|², portanto, sua complexidade é |x|², 
tem uma M(x) que executa em tempo n^5. Com isso podemos reduzir L SAT através de R e M :
 
M’(x) = M(R(x)) = M(|x|²) = (|x|²)^5 = |x|^10
Portanto a complexidade de M’ é |x|^10.

Outros materiais