Buscar

Redutibilidade-0.51

Prévia do material em texto

Teoria da Computação 
Redutibilidade 
Versão dos Slides: 0.51 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
 
 
 
DCC-UFLA, Lavras 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Redução 
 Redução é uma maneira de converter um 
problema em um segundo problema de 
maneira que a solução deste segundo 
problema possa ser usada diretamente para 
produzir a solução do problema original 
 Por exemplo, o problema de medir a área de 
um retângulo reduz-se ao problema de medir 
a altura e a largura do retângulo 
2 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Redução 
 Ocorre não apenas em modelos matemáticos 
abstratos mas também em várias situações da 
vida real 
• O problema de viajar de carro de Lavras para Belo 
Horizonte reduz-se ao problema de chegar até a BR 
381 
• O problema de viajar para Europa reduz-se ao 
problema de conseguir dinheiro para estadia e 
passagem 
• O problema de conseguir dinheiro reduz-se ao 
problema de encontrar um emprego 
 
3 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Redução 
 Redução tem um papel fundamental na 
classificação de problemas em termos de 
decidibilidade e complexidade 
 Quando A é reduzível a B, resolver A não pode 
ser mais difícil que resolver B porque a 
solução de B implica na solução de A 
• Notem que não estamos fazendo qualquer 
afirmação a respeito da solução de 𝐴 ou 𝐵 em 
isolamento 
4 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Redução: Computabilidade 
 Se A é reduzível a B e B é decidível, então A 
também é decidível 
 Se A é reduzível a B e A é indecidível, então B 
também é indecidível 
• Método para provar indecidibilidade: para provar que 
um problema é indecidível basta mostrarmos que um 
outro problema conhecidamente indecidível reduz-se 
a ele 
• Entretanto, note que mostrar que um problema A se 
reduz a outro problema indecidível não é suficiente 
para provar indecidibilidade de A 
5 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Problemas Indecidíveis 
 Nós já sabemos que 𝐿𝑀𝑇 , o problema de se 
determinar se uma MT aceita ou rejeita uma 
determinada entrada, é indecidível 
 Vamos considerar o problema similar 𝐻𝐿𝑇𝑀𝑇, 
que é o problema de determinar se uma MT 
pára (aceitando ou rejeitando) em uma dada 
entrada 
• Ou seja, dicotomia Pára/Loop 
6 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 1 
 𝐻𝐿𝑇𝑀𝑇 =
𝑀, 𝑝 | 𝑀 é 𝑢𝑚𝑎 𝑀𝑇 𝑒 𝑀 𝑝á𝑟𝑎 𝑛𝑎 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑝 
 𝐻𝐿𝑇𝑀𝑇 é indecidível 
 
7 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 1: Prova (1) 
 Idéia: Prova por contradição 
 Assumimos que 𝐻𝐿𝑇𝑀𝑇 é decidível; depois 
mostramos que 𝐿𝑀𝑇 é reduzível a 𝐻𝐿𝑇𝑀𝑇, o 
que não é possível visto que 𝐿𝑀𝑇 é indecidível 
 Vamos assumir que temos uma MT 𝑅 que 
decide 𝐻𝐿𝑇𝑀𝑇. Neste caso podemos construir 
uma MT 𝑆 que decide 𝐿𝑀𝑇 
8 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 1: Prova (2) 
 Quando 𝑆 recebe uma entrada 𝑀, 𝑝 , 𝑆 deve 
aceitar se 𝑀 aceita 𝑝 e deve rejeitar se 𝑀 rejeita 
𝑝 ou entra em loop 
 Podemos usar R como uma macro de S para 
testar se 𝑀 irá parar. Se 𝑅 mostrar que 𝑀 não 
pára, então 𝑆 rejeita; caso contrário podemos 
executar 𝑆 normalmente na entrada 𝑀, 𝑝 
 Neste caso teríamos que S é um decididor. 
Entretanto, sabemos que 𝐿𝑀𝑇 é indecidível e que 
𝑆 não existe . Portanto, 𝑅 também não existe 
9 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 1: Prova 
 Vamos assumir que uma MT 𝑅 decide 𝐻𝐿𝑇𝑀𝑇. 
Nós construímos uma MT S decidindo 𝐿𝑀𝑇. 
 S = “Na entrada 𝑀, 𝑝 : 
1. Execute 𝑅 na entrada 𝑀, 𝑝 
2. Se 𝑅 rejeitar, Rejeita 
3. Se 𝑅 aceitar, simule M em p até M parar 
4. Se M aceitou, Aceita. Se M rejeitou, Rejeite 
 Claramente, se R decide 𝐻𝐿𝑇𝑀𝑇, então S 
decide 𝐿𝑀𝑇. Entretanto, como 𝐿𝑀𝑇 é 
indecidível, então 𝐻𝐿𝑇𝑀𝑇 também é 
10 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 2 
 𝐸𝑀𝑇 = 𝑀 | 𝑀 é 𝑢𝑚𝑎 𝑀𝑇 𝑒 𝐿 𝑀 = ∅ 
 Teorema 2: 𝐸𝑀𝑇 é indecidível 
11 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 2: Prova 
 Idéia: Assumimos que 𝐸𝑀𝑇 é decidível e então 
demonstramos que 𝐿𝑀𝑇 é decidível, o que 
constitui uma contradição 
 Seja 𝑅 uma MT que decide 𝐸𝑀𝑇. Vamos usar 𝑅 
para construir uma MT 𝑆 que decide 𝐿𝑀𝑇 
 Note que simplesmente invocar R de S não 
resolve: 
• Se 𝑅 rejeitar uma entrada 𝑀 , tudo o que 
sabemos é que 𝐿 𝑀 ≠ ∅ 
12 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 2: Prova (2) 
 Vamos executar 𝑅 em uma versão modificada 
de 𝑀: 
• 𝑀 rejeita diretamente todas palavras exceto p; 
quando a entrada é 𝑝, 𝑀 comporta-se 
normalmente 
 Usamos 𝑅 para testar se a MT modificada 
aceita a linguagem vazia 
• A linguagem será não-vazia sse a MT original 
aceita 𝑝 
13 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 2: Prova (3) 
 Seja 𝑀1 a 𝑀𝑇 modificada 
 𝑀1 = "𝑁𝑎 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑥: 
1. Se 𝑥 ≠ 𝑝, Rejeita 
2. Se 𝑥 =p, execute 𝑀 com entrada 𝑝 e aceite se 𝑀 
aceita 𝑝“ 
 
14 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 2: Prova (4) 
 Agora estamos prontos para contruir 𝑆 
 𝑆 = "𝑁𝑎 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑀, 𝑝 , onde 𝑀 é a 
codificação de uma MT e 𝑝 uma palavra 
1. Use a descrição de 𝑀 e 𝑝 para construir a MT 𝑀1 
2. Execute 𝑅 na entrada 𝑀1 
3. Se 𝑅 aceita, Rejeita; se R rejeita, Aceita 
 Note que para contruir 𝑀1 é necessário apenas 
adicionar estados extras para testar se 𝑥 = 𝑝 
 Portanto, se 𝑅 é um decididor para 𝐸𝑀𝑇 , então 
S é um decididor para 𝐿𝑀𝑇. Como 𝐿𝑀𝑇 é 
indecidível, então 𝑅 não pode existir 
 
15 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Prova: Receita de Bolo 
 Como padrão geral para provas usando 
redutibilidade, nós mostramos que a construção 
de um decididor 𝑆 para 𝐿𝑀𝑇 se reduz à 
construção de um decididor 𝑅 para a linguagem 
que queremos provar que é indecidível 
 Generalizando esta estratégia, podemos usar 
qualquer problema reconhecidamente indecidível 
para provar que outro problema também é 
indecidível através da técnica de redutibilidade 
 
16 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 3 
 𝐸𝑄𝑀𝑇 =
𝑀1, 𝑀2 | 𝑀1 𝑒 𝑀2 𝑠ã𝑜 𝑀𝑇𝑠 𝑒 𝐿 𝑀1 = 𝐿 𝑀2 
 𝐸𝑄𝑀𝑇 é indecidível 
17 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 3: Prova 
 Idéia: Vamos simplesmente mostrar que 𝐸𝑀𝑇 
é reduzível a 𝐸𝑄𝑀𝑇. 
 Para isso podemos demonstrar que 𝐸𝑀𝑇 é na 
verdade um caso especial de 𝐸𝑄𝑀𝑇, e, 
portanto um decididor para 𝐸𝑄𝑀𝑇 também é 
um decididor para 𝐸𝑀𝑇 
 Exercício: Como isto poderia ser feito? 
 
 
18 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 3: Prova (2) 
 Considere o caso em que 𝐿 𝑀1 = ∅ 
 Então, decidir se 𝐿 𝑀1 = 𝐿 𝑀2 consiste em 
decidir se 𝐿 𝑀2 = ∅ 
19 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 3: Prova (2) 
 Seja 𝑅 uma 𝑀𝑇 que decide 𝐸𝑀𝑇, construa uma 
MT 𝑆 que decida um caso especial de 𝐸𝑄𝑀𝑇 da 
seguinte maneira: 
 𝑆 = "𝑁𝑎 𝑒𝑛𝑡𝑟𝑎𝑑𝑎 𝑀 , 𝑜𝑛𝑑𝑒 𝑀 é 𝑢𝑚𝑎 𝑀𝑇 
1. Execute 𝑅 na entrade 𝑀, 𝑀1 , 𝑜𝑛𝑑𝑒 𝑀1 é uma MT 
que rejeita todas entradas (𝐿 𝑀1 = ∅) 
2. Se 𝑅 aceita, Aceita; se 𝑅 rejeita, Rejeita” 
 Se R decide 𝐸𝑀𝑇, então S decide um caso 
especial 𝐸𝑄𝑀𝑇 . Mas 𝐸𝑀𝑇 é indecidível, então 
𝐸𝑄𝑀𝑇 deve ser também indecidível 
 
20 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Take Home 
 Note que redutibilidade é similar à relação ≤ 
em termos de complexidade 
 Um problema A ser reduzível a um problema 
B, significa que a dificuldade em resolver A é 
menor ou igual a dificuldade em resolver B 
 
21 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Take-Home (2) 
22 
Problema A Problema B reduzível a 
Decidível 
Problema A Problema B reduzível a 
Decidível Decidível 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Take-Home (3) 
23 
Problema A Problema B reduzível a 
Decidível 
Problema A Problema B reduzível a 
Decidível Decidível 
X B pode ser indecidível! 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Take-Home(4) 
24 
Problema A Problema B reduzível a 
Indecidível 
Problema A Problema B reduzível a 
Indecidível Indecidível 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Take-Home (5) 
25 
Problema A Problema B reduzível a 
Indecidível 
Problema A Problema B reduzível a 
Indecidível Indecidível 
X A pode ser decidível! 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Take Home (6) 
26 
Estratégias para demonstrar 
redutibilidade e provar indecidibilidade 
Problema A 
Indecidível 
Problema B 
Sabemos que Problema A é indecidível. 
Queremos reduzir o Problema A ao Problema B 
para demonstrar que B também é indecidível 
reduzível a 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Take Home (7) 
27 
Estratégia 1: Assuma que um decididor DB para 
B existe. Mostre que usando DB podemos 
contruir um decididor DA para A (contradição) 
Decididor DA 
Decididor DB 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Take-Home (8) 
28 
 Estratégia 2: Assuma que um decididor DB 
para B existe. Mostre que este decididor 
deverá necessariamente conter um decididor 
DA (contradição) para tratar um caso especial 
do problema B 
Decididor DB 
Decididor DA 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Funções Computáveis Totais 
 Definição: Uma função 𝑓: Σ∗ ⟶ Σ∗ é uma 
função computável total se existe alguma 
MTN que termina sua computação com 
sucesso (configuração de aceitação) para 
qualquer 𝑝 ∈ Σ, e o conteúdo final da fita é 
dado por ˽𝑓 𝑝 ˽ 
29 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Intuição de Redutibilidade 
 A redução de um problema 𝐴 para um 
problema 𝐵 significa que existe uma função 
computável total que converte instâncias do 
problema 𝐴 em instâncias do problema 𝐵 
• Desta maneira, qualquer instância do problema 𝐴 
pode ser resolvida usando a redução para 
converte-la em uma instância do problema 𝐵 e, 
então, usar uma MT que resolve o problema 𝐵 
30 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Funções Computáveis e MTs 
 Funções computáveis podem ser 
transformações de descrições de MTs 
 Por exemplo, uma função computável total 𝑓 
recebe com entrada 𝑝 e retorna a descrição de 
uma MT 𝑀′ se 𝑝 = 𝑀 é a codificação de 
uma MT 
31 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Definição Formal de Redutibilidade 
 A definição formal de redutibilidade em 
termos de linguagens é dada da seguinte 
forma: 
 Definição: Linguagem 𝐴 é reduzível para a 
linguagem 𝐵, denotado por A ≤𝑟 𝐵, se existe 
uma função computável total 𝑓: Σ∗ ⟶ Σ∗, 
onde para qualquer 𝑝 temos que: 
𝑝 ∈ 𝐴 ↔ 𝑓 𝑝 ∈ 𝐵 
32 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Redutibilidade de Linguagens 
 A redução de 𝐴 para 𝐵 provê uma maneira de 
converter questões a respeito dos elementos de 
A em questões a respeito dos elementos de B 
• Para testar se 𝑝 ∈ 𝐴, a redução 𝑓 é primeiramente 
usada para mapear 𝑝 para 𝑓(𝑝); então é testado se 
𝑓(𝑝) ∈ 𝐵 
33 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 4 
 Se 𝐴 ≤𝑟 𝐵 e B é decidível, então A é decidível 
34 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 4 - Prova 
 Seja 𝑀 o decididor para 𝐵 e 𝑓 a redução de 𝐴 
para 𝐵. Um decidior para 𝑁 para 𝐴 pode ser 
descrito da seguinte maneira: 
 N=“Na entra p: 
1. Compute 𝑓(𝑝) 
2. Execute 𝑀 na entrada 𝑓(𝑝) e retorne como 
resultado o que 𝑀 retornar” 
 Claramente, se 𝑝 ∈ 𝐴, então 𝑓 𝑝 ∈ 𝐵 porque 𝑓 
é uma redução de 𝐴 para 𝐵. Assim 𝑀 aceita 𝑓(𝑝) 
sempre que 𝑝 ∈ 𝐴 
35 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Corolário 1 
 Se 𝐴 ≤𝑟 𝐵 e 𝐴 é indecidível, então 𝐵 é 
indecidível 
36 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 5 
 Se Se 𝐴 ≤𝑟 𝐵 e B é Turing-reconhecível, então 
A é Turing-reconhecível 
37 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Históricos da Computação 
 O histórico da computação de uma Máquina de Turing para 
uma determinada entrada é simplesmente a sequência de 
configurações que a máquina percorre durante o 
processamento da entrada 
• Registro completo da computação da máquina 
 O histórico de computação pode ser usado para provar que 
𝐿𝑀𝑇 é reduzível a certas linguagens 
• Útil quando a prova de indecidibilidade envolve testar a 
existência de alguma coisa (e.g., encontrar a raiz integral de 
polinômios) 
 Além disso, históricos de computação também podem ser 
usado para provar decididibilidade 
 A seguir, vamos mostrar uma prova de decidibilidade 
usando históricos 
38 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Definições 
 Seja 𝑀 uma MT e 𝑝 a palavra de entrada 
 Histórico de computação de aceitação para 𝑀 
em 𝑝: uma sequência de configurações 
𝐶1, 𝐶2, … , 𝐶𝑙, onde 𝐶1 é o estado de configuração 
de M na entrada p, 𝐶𝑙 é uma configuração de 
aceitação de M, e cada 𝐶𝑖 produz a configuração 
𝐶𝑖+1 
 Histórico de computação de rejeição para 𝑀 em 
𝑝: definido de maneira análoga, com diferença 
que 𝐶𝑙 agora é um estado de rejeição 
 
 
 
 
39 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Definições 
 Note que os históricos de computação de 
aceitação e rejeição são sequências finitas 
 Para máquinas determinísticas existe apenas 
um histórico de computação para dada 
entrada 
 Para máquinas não-determinísticas podem 
existir muitos históricos de computação para 
uma mesma entrada 
40 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Autômato 
Limitado Linearmente (ALL) 
 Um tipo de MT restrito onde a cabeça l/e não 
pode mover uma determinada distância além 
da porção da fita que contém a entrada 
 Necessariamente, um ALL é uma MT com uma 
quantidade limitada de memória 
• Para uma entrada de tamanho 𝑛, a quantidade de 
memória necessária é linear em 𝑛 
41 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Linguagens e Máquinas 
42 
Linguagens Máquinas 
Recursivamente 
Enumeráveis 
Máquina de Turing, 
Máquina de Turing 
Não-Determinística 
Sensitivas ao 
Contexto 
Autômato Limitado 
Linearmente 
Livres de 
Contexto Autômato de Pilha 
Regulares 
Autômato Finito 
Determinístico, Automato 
Finito Não-Determinístico 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 5 
 𝐿𝐴𝐿𝐿 = 𝑀1, 𝑝 | 𝑀1 é 𝑢𝑚 𝐴𝐿𝐿 𝑞𝑢𝑒 𝑎𝑐𝑒𝑖𝑡𝑎 𝑝 
 𝐿𝐴𝐿𝐿 é decidível 
43 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 5: Prova 
 Para decidir se um 𝐴𝐿𝐿 𝑀 aceita uma entrada 
𝑝, temos que construir uma MT 𝑆 para simular 
𝑀 em 𝑝. Durante a simulação, se 𝑀 pára e 
aceita, 𝑆 aceita; se 𝑀 pára e rejeita, 𝑆 rejeita 
 O problema é se M entrar em loop 
 Como poderiámos detectar se M entrou em 
loop 
• O fato da memória de M ser limitada pode ajudar 
nesta tarefa? 
44 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Décimo Problema de Hilbert 
 Por simplicidade, considere uma versão mais 
simples do polinômio contendo apenas uma 
variável, como 4𝑥3 − 2𝑥2 + x − 7 
 Seja D1 = {𝑝|𝑝 é um polinômio sobre x com uma 
raiz integral} 
 A MT 𝑀1 reconhece 𝐷1 
 𝑀1= A entrada é um polinômio p sobre a variável 
x 
1. Avalia p com a variável x atribuída sucessivamente 
os valores 0, 1, -1, 2, -2, 3, -3, … Se a qualquer ponto 
o resultado do polinômio é 0, aceite 
 
45 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Décimo Problema de Hilbert 
 Para o problema específico de encontar uma raiz 
integral de polinômios contendo apenas uma 
variável, é possível projetar uma MT decididora 
• É conhecido que a raiz do polinômio, se existir estar 
no intevalo ±𝑘
𝑐𝑚𝑎𝑥
𝑐1
, onde 𝑘 é o número de termos do 
polinômio, 𝑐𝑚𝑎𝑥 é o coeficiente com o maior valor 
absoluto, e 𝑐1 é o coeficiente do termo de maior 
ordem 
 Se uma raiz não é encontrada dentro destes 
limites, então a máquina rejeita 
 
46 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Lemma 1 
 Seja 𝑀 um 𝐴𝐿𝐿 com 𝑞 estados e 𝑔 símbolos 
no alfabeto da fita. Então, existem exatas 
𝑞𝑛𝑔𝑛 configurações distintas para uma fita de 
tamanho 𝑛 
47 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Lemma 1: Prova 
 Uma configuração consiste do estado de controle,posição da cabeça l/e, e o conteúdo da fita. Aqui, 
existem 𝑞 estados. 
 O tamanho da fita é 𝑛, então a cabeça pode estar 
em 𝑛 posições, e 𝑔𝑛 possíveis palavras de 
símbolos do alfabeto da fita podem aparecer na 
fita. 
 O produto destas três quantidades é o número 
total de diferentes configurações de 𝑀 com uma 
fita de tamanho 𝑛 
 
48 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 5: Prova 
 Idéia: Vamos “observar“ M por 𝑞𝑛𝑔𝑛 
configurações. Caso não páre durante este 
intervalo, então M está necessariamente 
repetindo configurações o que caracteriza um 
loop 
49 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Teorema 4: Prova 
 S = “Na entrada 𝑀, 𝑝 , onde 𝑀 é um 𝐴𝐿𝐿 e 
𝑝 é uma palavra: 
1. Simule 𝑀 em 𝑝 por 𝑞𝑛𝑔𝑛 até que 𝑀 páre 
2. Se 𝑀 parou, Aceite se 𝑀 aceitou, Rejeite se 𝑀 
rejeitou. Caso contrário, Rejeite 
50 
Prof. Dr.-Ing. Leonardo Andrade Ribeiro 
Take Home (8) 
 Provas de decidibilidade podem ser realizadas 
atráves do estabelecimento de um limite para 
o processamento de uma MT 
• Após este limite a entrada é imediatamente 
rejeitada 
 
 
51

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes