Você está na página 1de 6

Lista de exercícios preparatórios para a P2

Fundamentos Teóricos da Computação

PARTE I – AUTÔMATOS COM PILHA (AP)

Para análise de todos os AP desta lista, considere QUE:


• O AP reconhece palavras por estado final (independentemente da posição atual da fita de entrada)
• O uso do símbolo ε nas transições:
o Na 1ª posição: indica que o símbolo da fita não deve ser levado em consideração no uso da transição
(e, portanto, a fita não deve se movimentar ao usar a transição)
o Na 2ª posição: indica que o símbolo do topo da pilha não deve ser levado em consideração no uso da
transição (e, portanto, nenhum símbolo deve ser desempilhado ao usar a transição)
o Na 3ª posição indica que, caso a transição seja usada, nenhum símbolo será adicionado ao topo da
pilha
• O uso do símbolo ? nas transições:
o Na 1ª posição: indica que a transição só pode ser usada se todos os símbolos da fita já foram lidos
o Na 2ª posição: indica que a transição só pode ser usada se a pilha estiver vazia

Questão 1: Dado o AP abaixo, assinale com V as palavras que serão aceitas por esse AP e com F as palavras que serão
rejeitadas.
( ) 001 ( ) 010 ( ) 00001 ( ) 0000111 ( ) 000011

Questão 2: Dado o AP abaixo, assinale com V as palavras que serão aceitas por esse AP e com F as palavras que serão
rejeitadas.
( ) ab ( ) aabb ( ) abab ( ) baba ( ) aaabb ( )ε

Questão 3: Dado o AP abaixo, assinale com V as palavras que serão aceitas por esse AP e com F as palavras que serão
rejeitadas.
( ) ab ( ) aabb ( ) abab ( ) baba ( ) aaabb ( )ε

Questão 4: Ajuste uma única transição do AP da questão 2 de modo que ele passe a aceitar somente palavras que
atendam à expressão regular aa*bb* e cuja quantidade de ocorrências de a’s seja maior que a quantidade de
ocorrências de b’s (exemplos: aab, aaab, aaaabb).
Dica: Em qual estado o AP estará e qual será o conteúdo da pilha após a leitura completa da palavra aab? E quando a
palavra for aaaabb?
Questão 5: Ajuste uma única transição do AP da questão 2 de modo que ele passe a aceitar somente palavras que
atendam à expressão regular aa*bb* e cuja quantidade de ocorrências de a’s seja menor que a quantidade de
ocorrências de b’s (exemplos: abb, abbb, aabbbb).
Dica: Em qual estado o AP estará e qual será o conteúdo da pilha após a leitura completa da palavra abb? E quando a
palavra for aabbbb?

Questão 6: Construa um AP capaz de reconhecer palavras que atendam à expressão regular aa*bb*cc* e cuja
quantidade de ocorrências de a’s corresponda à soma das ocorrências de b’s e c’s (exemplo: aabc, aaabbc, aaabcc,
aaaabbcc).

PARTE II – MÁQUINAS DE TURING (MT)

Para análise de todos os AP desta lista, considere QUE:


• A fita de entrada é limitada à esquerda mas infinita à direita.
• A MT reconhece palavras por estado final (independentemente da posição atual da fita de entrada) e rejeita
palavras pela inexistência de transição para leitura do símbolo atual da fita, pelo movimento à esquerda na
primeira posição da fita de entrada ou quando a MT entra em loop infinito
• Antes de iniciar o processamento de qualquer palavra, a fita de entrada é iniciada com o símbolo marcador
de início de fita (Δ), na primeira posição da fita, que é seguido pelos símbolos da palavra, que, por fim, são
sucedidos por infinitos marcadores de final de fita (?)
• Após a utilização de qualquer transição, a MT substitui o símbolo lido da fita pelo símbolo indicado na 2ª
posição da transição e, posteriormente, movimenta a fita para a direita (se a 3ª posição da transição contiver
o símbolo D ou o símbolo R) ou para a esquerda (se a 3ª posição da transição contiver o símbolo E ou o
símbolo L)

Questão 7: Dado a MT abaixo, assinale com V as palavras que serão aceitas por esse AP e com F as palavras que
serão rejeitadas e indique o conteúdo final da fita de entrada desde a primeira posição até o primeiro marcador de
fim de fita.
( )a | Fita: ______________________

( ) abc | Fita: ______________________

( ) cab | Fita: ______________________

( ) bac | Fita: ______________________

Questão 8: Complete a MT abaixo (detalhando a transição entre os estados q1 e q3) de modo que ela aceite somente
palavras que correspondem a números binários que representam números inteiros decimais ímpares (lembrando
que a representação de qualquer número decimal positivo que é ímpar termina com 1; de forma complementar,
todo par termina com 0).
Questão 9: Dado a MT abaixo, assinale com V as palavras que serão aceitas por esse AP e com F as palavras que
serão rejeitadas e indique o conteúdo final da fita de entrada desde a primeira posição até o primeiro marcador de
fim de fita.

Questão 10: Para compreensão da funcionalidade da MT abaixo, será preciso revisar um conceito relacionado a
números binários, chamado complemento de 2. Para isso, acesse o site a seguir, que permite calcularmos a
representação de números decimais em binários: https://docente.ifsc.edu.br/moecke/PAGES/Dec2C_2.html.

Para testar, digite o número decimal 25, informe que deseja a


representação em 8 bits (ou seja, com 8 dígitos binários) e
depois clique em “Converter” – como na imagem à esquerda:

O resultado indica que o número 25, quando representado com


8 bits, corresponde ao binário 00011001.

Em seguida, mude o valor para o -25, mantenha os 8 bits e clique novamente em “Converter”. Assim, poderá verificar
que -25, quando representado em 8 bits, corresponde ao binário 11100111.

Para transformar um binário positivo em seu complementar negativo e vice-versa, podemos usar um procedimento,
chamado complemento de 2 (por ele conseguimos, por exemplo, chegar no binário 11100111 a partir do binário
00011001). O complemento de 2 funciona pela execução de 2 passos simples:
a) Inverta todos os bits do binário original
o No exemplo acima, o binário 00011001 (do 25) se transformará em 11100110
b) Some 1 ao resultado da inversão
o No nosso exemplo, somaremos o resultado anterior (11100110) com 1, que dá 11100111

A MT abaixo aceita qualquer palavra que corresponda a um binário e, por fim, substitui o número de entrada pelo
seu complementar.

Qual será o conteúdo da fita após essa MT processar a palavra:

a) 00011001 ___________________________________

b) 11100111 ___________________________________

c) 00100111 ___________________________________
Questão 11: Quantos movimentos a MT anterior executa para converter um binário qualquer:
a) Com 2 bits? __________
b) Com 3 bits? __________
c) Com 4 bits? __________

Questão 12: Considerando que n corresponde à quantidade de bits que o binário a ser convertido possui e que f(n) é
a função de complexidade dessa MT, apresente a lei de formação de f(n).

f(n)=__________________________

Questão 13: Essa MT executa em tempo polinomial? ( ) SIM ( ) NÃO

Questão 14: O procedimento abaixo executa a mesma tarefa que a MT acima, de modo que v corresponde a um
vetor (passado por referência) com n posições (com índices entre 1 e n), com cada uma representando um bit do
binário.

procedimento complementoDeDois(v: vetor de inteiro, n: inteiro)


var
j, x : inteiro
inicio
j  1
enquanto j <= n faça
se v[j] = 0 entao
v[j]  1
senão
v[j]  0
fimse
j <- j + 1
fimenquanto
j <- n
x <- 1
enquanto j > 0 faça
v[j] <- (v[j] + x) mod 2
x <- x *(x - v[j])
j <- j - 1
fimenquanto
fimprocedimento

Com base nisso responda:

a) Qual é a função de complexidade g(n) desse procedimento? g(n)=____________________


b) Esse procedimento tem tempo polinomial? ( ) SIM ( ) NÃO

PARTE III – COMPUTABILIDADE E CLASSES DE PROBLEMAS COMPUTACIONAIS

Questão 15: Analise os problemas abaixo identificados e descritos:

Probl. A: Dado um número inteiro X calcule o valor da soma de todos os seus divisores.

Probl. B: Dado um conjunto de números inteiros W cujos elementos representam os valores distintos (em
dólares) das cédulas de um determinado país e dado um número inteiro positivo K, encontre
alguma possibilidade de se alcançar K, indicando como solução quantas cédulas de cada valor
serão necessárias.

Probl. C: Dado um número inteiro positivo Y, identificar se Y é um quadrado perfeito.


Um número é considerado um quadrado perfeito quando existe um inteiro W tal que W²=Y.
Probl. D: Dado um conjunto de números inteiros W cujos elementos representam os valores distintos (em
dólares) das cédulas de um determinado país e dado um número inteiro positivo K, encontre
alguma possibilidade de se alcançar K utilizando o mínimo possível de cédulas, indicando como
solução quantas cédulas de cada valor serão necessárias.

Probl. E: Dado um conjunto de números inteiros W cujos elementos representam os valores distintos (em
dólares) das cédulas de um determinado país, dados também dois números inteiros positivos K e
J, identifique se é possível ou não alcançar K utilizando menos de J cédulas de W (de quaisquer
valores).

Probl. F: Dado um número inteiro X, identifique se é possível representar X por meio de multiplicações
envolvendo apenas números primos.

Em seguida, analise as instâncias abaixo:

Inst. 1: 25 é um quadrado perfeito?

Inst. 2: Qual o valor da soma de todos os divisores de 6?

Inst. 3: Sabendo-se que um determinado país possui cédulas de 3 valores distintos, sendo eles $1, $5 e
$10, qual é a menor quantidade de cédulas possível para se produzir $17?

Inst. 4: É possível obter o número 221 por meio da multiplicação de números primos?

Inst. 5: 25 é ímpar?

Inst. 6: 13 é um quadrado perfeito?

Inst. 7: Sabendo-se que um determinado país possui cédulas de 3 valores distintos, sendo eles $1, $7 e
$10, é possível produzir $15 utilizando menos de 4 cédulas?

Inst. 8: A soma dos divisores de 28 é igual ao dobro de 28?

Com base nessas informações, responda:

a) Quais dos 6 problemas são problemas de decisão (ou qual)? __________________________


b) Quais dos 6 problemas são problemas de localização (ou qual)? __________________________
c) Quais dos 6 problemas são problemas de otimização (ou qual)? __________________________
d) Quais das 8 instâncias são instâncias do problema A? ___________________
e) Quais das 8 instâncias são instâncias do problema B? ___________________
f) Quais das 8 instâncias são instâncias do problema C? ___________________
g) Quais das 8 instâncias são instâncias do problema D? ___________________
h) Quais das 8 instâncias são instâncias do problema E? ___________________
i) Quais das instâncias associadas a algum dos 5 problemas são instâncias positivas? ____________
j) Quais das instâncias associadas a algum dos 5 problemas são instâncias negativas? ____________

Questão 16: Qual a relação entre a Tese de Turing e os conceitos de computabilidade e decidibilidade?

___________________________________________________________________________________________

___________________________________________________________________________________________

___________________________________________________________________________________________

___________________________________________________________________________________________

___________________________________________________________________________________________
Questão 17: Abaixo são apresentados alguns algoritmos que resolvem alguns dos problemas citados na questão 15.
Para cada algoritmo, é apresentada a sua respectiva função de complexidade no tempo.

Identificação O que faz? Complexidade no


tempo
ALG. I Resolve qualquer instância de C O(n!)
ALG. II Verifica se qualquer instância positiva de F é realmente positiva O(√n)
ALG. III Resolve qualquer instância de A O(n)
ALG. IV Resolve qualquer instância de E O(2n)
ALG. V Resolve qualquer instância de C O(1)

Com base nessas informações, responda:


a) Quais problemas pertencem à classe P? _________________________
b) Quais problemas pertencem à classe NP? _________________________

Questão 18: O algoritmo da questão 14 pertence à classe P?

Você também pode gostar