Apostila 06. Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade

Documentos relacionados
Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

I.2 Introdução a Teoria da Computação

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

Aula 10: Decidibilidade

Introdução Maquinas de Turing universais O problema da parada. Indecidibilidade. Rodrigo Gabriel Ferreira Soares DEINFO - UFRPE.

Aula 10: Decidibilidade

Modelos de Computação Folha de trabalho n. 10

Universidade Federal de Alfenas

Universidade Federal de Uberlândia Mestrado em Ciência da Computação

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Capítulo 2: Procedimentos e algoritmos

Universidade Federal de Alfenas

Teoria da Computação. Computabilidade e complexidade computacional

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria da Computação

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Aula 9: Máquinas de Turing

LINGUAGENS FORMAIS E AUTÔMATOS

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Linguagens Formais e Autômatos (LFA)

Teoria da Computação. Aula 01

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Turing e Complexidade

A Teoria Matemática que serviu como Base para Turing.

Linguagens Regulares. Prof. Daniel Oliveira

Limites da Computação Algorítmica: Problemas Indecidíveis

Juliana Kaizer Vizzotto. Universidade Federal de Santa Maria. Disciplina de Teoria da Computação

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Faculdade de Computação

Máquina de Turing. Controle finito

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

PCS3616. Programação de Sistemas (Sistemas de Programação) Visão Geral

Draft-v0.1. Máquinas de Turing Máquinas de Turing

S. C. Coutinho. Máquina de Turing Universal p. 1/22

SCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente

Máquinas de Turing (MT)

Autômatos com Pilha: Reconhecedores de LLCs

Aula 7: Autômatos com Pilha

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

Linguagens Formais e Autômatos (LFA)

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

INTRATABILIDADE e NP-COMPLETUDE

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

Turing to Norma, uma ferramenta para auxiliar o estudo da equivalência entre Máquina de Turing e Máquina Norma

PLANO DE ENSINO. CURSO: Bacharelado em Sistemas de Informação MODALIDADE: PRESENCIAL ( X ) OBRIGATÓRIA ( ) OPTATIVA DEPARTAMENTO: DEINFO

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

SCC Capítulo 4 Máquinas de Turing e a Teoria da Computabilidade

Autômatos Finitos Determinís3cos (AFD)

Autômatos de Pilha (AP)

Máquinas de Turing: uma introdução

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Máquinas de Turing para construção: Foram encontrados dois modelos que se destacaram em nossas pesquisas.

Técnicas de Extensão de MT

Universidade Federal de Alfenas

IME, UFF 7 de novembro de 2013

Terceira Lista de Exercícios 2004/2...

Linguagens Formais e Autômatos (LFA)

UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB DEPARTAMENTO DE CIÊNCIAS EXATAS - DCE PLANO DE CURSO DISCIPLINA

INE5622 INTRODUÇÃO A COMPILADORES

Linguagens Formais e Autômatos P. Blauth Menezes

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Linguagens Livres de Contexto

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

Linguagens Livres de Contexto

UNIDADE UNIVERSITÁRIA:

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

2. DISCIPLINA REQUISITO (RECOMENDAÇÃO) 3. INDICAÇÃO DE CONJUNTO (BCC) Obrigatória TEORIA: 60 LABORATÓRIO: 30

Máquinas Universais. Departamento de Ciência de Computadores da FCUP MC Aula 23 1

Apostila 04. Objetivo: Estudar a Máquina de Turing

Teoria da Computação. Máquinas Universais Máquina com Pilhas

Linguagens Formais e Autômatos

SIMULAÇÃO DE MÁQUINA DE REGISTRADORES COM MÁQUINA DE TURING MULTIFITA

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

Complexidade computacional

Projeto e Análise de Algoritmos NP Completude Parte 2. Prof. Humberto Brandão

Linguagens Formais e Autômatos

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Linguagens Formais e Autômatos P. Blauth Menezes

14.1 Linguagens decidíveis ou Turing reconhecíveis

Linguagens Formais e Autômatos (BBC242) Professor: Anderson Almeida Ferreira DECOM-UFOP

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

Linguagens Formais e Autômatos P. Blauth Menezes

Lema do Bombeamento para Linguagens Livres do Contexto

Primeira Lista de Exercícios 2005/1... Exercício 1 Desenhe Diagrama de Estados para Máquinas que Decidem as Linguagens:

a n Autômatos com Pilha: Definição Informal e Definição Formal Linguagem Aceita por um ACP ACPDet X ACPND Notação gráfica para ACP

6. Decidibilidade, indecidibilidade e decidibilidade parcial

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Linguagens Formais e Autômatos P. Blauth Menezes

Modelos de Computação

Teoria da Computação 31 de Maio de 2017 Teste 2A Duração: 1h30

Transcrição:

Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e (1601A) Teoria da Computação Professora: Simone das Graças Domingues Prado e-mail: simonedp@fc.unesp.br home-page: wwwp.fc.unesp.br/~simonedp/discipl.htm Apostila 06 Assunto: Teoria da Computação Objetivos: Estudar a Computabilidade Estudar a Decidibilidade Estudar a Redutibilidade Conteúdo: 1. Introdução 2. Computabilidade e Decidibilidade 3. Redutibilidade 4. Problemas Indecidíveis - 1 -

1. Introdução Na Apostila 01 (TC01.pdf), desse curso, foi mostrado o panorama do que seria estudado na disciplina (releia a introdução da Apostila 01). Nas apostilas 02 a 05 foram estudadas as Linguagens Regulares, Livres de Contexto, Livres de Contexto Determinísticas, Sensíveis ao Contexto, Recursivas e as Recursivamente Enumeráveis compondo o sub-conjunto do universo das linguagens (Figura 01). A cada Linguagem estudada foram mostradas as Gramáticas que as geravam e os Autômatos/Máquinas de Turing que as reconheciam (Tabela 01). Figura 01. O Universo das Linguagens segundo Chonsky Tabela 01. Linguagem, gramática e reconhecedor Linguagem Gramática Reconhecedor Ling Recursivamente Enumeráveis Gramáticas Irrestritas Máquinas de Turing Linguagens Recursivas Gramáticas Irrestritas Máquinas de Turing (que sempre param) Linguagens Sensíveis ao Contexto Gramáticas Sensíveis ao Contexto Autômato Limitado Linearmente Linguagens Livres de Contexto Gramáticas Livres de Contexto Autômatos à Pilha Linguagens Regulares Gramáticas Regulares Autômatos Finitos Lembre-se que: (1) Um Autômato Finito Determinístico é definido pela quíntupla: M 1 = ( Q, Σ, δ, q 0, F), onde δ : Q x Σ Q (2) Um Autômato Finito Não Determinístico é definido pela quíntupla: M 2 = ( Q, Σ, δ, q 0, F), onde δ: Q x Σ 2 Q (3) Um Autômato com Pilha Não Determinístico (APND) é definido pela sétupla: M 3 = (Q, Σ, Γ, δ, q 0, z, F), onde δ: Q x (Σ {λ}) x ( Γ {λ}) 2 QxΓ* (4) Um Autômato com Pilha Determinístico, M 4 = (Q, Σ, Γ, δ, q 0, z, F) é um Autômato com Pilha Não Determinístico sujeito as seguintes restrições, para todo q Q, a Σ {λ} e b Γ: (a) δ(q,a,b) contém ao menos um elemento (b) se δ(q,λ,b) não é vazio, então δ(q,c,b) deve ser vazio para todo c Σ - 2 -

(5) Uma Máquina de Turing é definida como uma sétupla: M 5 = (Q, Σ, Γ, δ, q0, F), onde δ: Q x Γ Q x Γ x {L, R} (6) Uma Máquina de Turing Não Determinística, M 6 = (Q, Σ, Γ, δ, q 0, F), é aquela em que a função de Q x Γ x {L, R} transição é definida da forma: δ: Q x Γ 2 (7) Um Autômato Limitado Linearmente é uma Máquina de Turing Não Determinística, M 6 = (Q, Σ, Γ, δ, q 0, F), onde: Σ deve conter os símbolos [ e ] δ(q i, [) = (q j, [, R) δ(q i, ]) = (q j, ], L) Perceba o grau de refinamento que existe entre essas definições. Perceba, também, que a possibilidade de haver uma máquina que reconheça uma linguagem, caracteriza a linguagem. Por exemplo, se é possível construir um Autômato Finito para uma Linguagem L, então L é regular. Quanto às Gramáticas G = (V,T, S, P) o que muda são as formas de construção das produções: (1) Uma gramática G é dita ser Regular, se A e B são elementos de V e w uma palavra de T* e as produções são da forma: A wb ou A w (se GLD) e A Bw ou A w (se GLE) (2) Uma gramática G é dita ser Livre de Contexto se todas as suas produções, em P, são da forma: A α, onde A V e α (V T)*. (3) Uma Gramática G é chamada Irrestrita se todas as produções são da forma: u v, onde u (V T) + e v (V T)* (4) Uma Gramática Irrestrita G é Sensível ao Contexto se todas as produções da forma u v P, tem a propriedade u v, onde u (V T) + e v (V T)* Após todo esse estudo das Linguagens Formais e Autômatos deve-se, neste momento, existir a preocupação com as questões pertinentes à Teoria da Computação, que são: - Quais as capacidades e limitações fundamentais dos computadores? - O que pode e o que não pode ser resolvido pelos computadores? - O que faz alguns problemas serem computacionalmente mais difíceis que outros? Ao tentar responder essas questões, exploram-se os conceitos de computabilidade, decidibilidade, redutibilidade e complexidade. Os três primeiros conceitos serão vistos aqui. A complexidade será vista em outra disciplina, de uma maneira mais formal. - 3 -

2. Computabilidade e Decidibilidade Em 1900 em um Congresso Internacional de Matemática, o matemático David Hilbert propôs 10 (dez) problemas que ainda não tinham solução, outros 13 foram publicados mais tarde. Dos 23 problemas, ainda hoje, aparecem 05 em aberto e 02 parcialmente resolvidos. O que é interessante, para nós, é o décimo: Encontrar um algoritmo que determine se uma equação diofantina tem solução? Uma equação diofantina é aquela que se procuram soluções inteiras (e às vezes racionais) para equações algébricas do tipo: x 2 + y 2 = z 2, x n + y n = z n, dentre outras. Em 1931 o Teorema de Incompleteza de Godel demonstrou que a mecanização do processo de prova de teorema não tinha solução. Assim, provou a incompleteza da Lógica de Primeira Ordem, mas não fez referência à computação. Church e Turing trouxeram ferramentas básicas para definir algoritmos de uma forma precisa (Cálculo Lambda e Máquina de Turing) e provar a indecidibilidade da validade lógica de primeira ordem. Só em 1970, Yuri Matijasevic provou a impossibilidade de solução geral para o 10º. Problema de Hilbert. Para estudar os limites da computação é necessário escolher um modelo formal de algoritmo. Na literatura podem ser vistos os modelos: Funções Recursivas, Algoritmos de Markov, Cálculo Lambda, Máquinas de Registros, Sistemas Post, Máquina de Turing (vista na apostila 04 TC04.pdf), etc. A Máquina de Turing é suficientemente simples e ao mesmo tempo poderosa. A Tese de Turing e a Hipótese de Church evidenciam isso. Tese de Turing Qualquer computação que pode ser executada por meios mecânicos pode ser executada por uma Máquina de Turing Hipótese de Church A capacidade de computação representada pela Máquina de Turing é o limite máximo que pode ser atingido por qualquer dispositivo de computação Lembre-se que: (a) Pode existir uma linguagem que não é reconhecida pela Máquina de Turing. (b) Se a linguagem é reconhecida pela Máquina de Turing então ela é uma Linguagem Recursivamente Enumerável. (c) Se a Máquina de Turing sempre pára quando aceita ou rejeita uma cadeia de uma linguagem então a Linguagem é Recursiva. - 4 -

Sabe-se que, pelas definições 03, 04 e 05 da Apostila 04: (1) Uma Máquina de Turing M = (Q, Σ, Γ, δ, q 0, F) reconhece ou aceita uma linguagem se para toda cadeia w L, a Máquina de Turing aceita a cadeia, ou seja, q 0 w * x 1 q f x 2 para algum q f F e x 1,x 2 Γ* Se w L, a Máquina de Turing pode parar num estado não final ou entrar em loop. Diz-se que essa Linguagem é aceita ou reconhecida por essa Máquina de Turing. (2) Uma Máquina de Turing M = (Q, Σ, Γ, δ, q 0, F) decide uma linguagem se para toda cadeia w L a Máquina de Turing aceita a cadeia e pára, com w L, num estado não final. Diz-se que essa Linguagem é decidida por essa Máquina de Turing. (3) Uma Máquina de Turing M = (Q, Σ, Γ, δ, q 0, F) calcula uma função f(w) se para w Σ +, a Máquina de Turing pára e a saída é a cadeia f(w), ou seja, q 0 w * M q f f(w), q f F Diz-se que essa função é computável por essa Máquina de Turing. Assim, se a Máquina de Turing M calcula uma função num certo domínio, a função é computável; se a Máquina de Turing M sempre pára com a resposta SIM se a cadeia pertence a Linguagem e com a resposta NÃO quando a cadeia não pertence a Linguagem, então tem a decidibilidade desse domínio, ou seja a MT é decidível se a Máquina de Turing pára com a resposta SIM se a cadeia pertence a linguagem e nem sempre pára quando a cadeia não pertence a Linguagem, então a linguagem é somente aceita (e não decidível). Considerações: Procedimento é uma seqüência finita de instruções, sendo uma instrução uma operação claramente descrita, que pode ser executada mecanicamente, em tempo finito. Algoritmo são procedimentos cuja execução termina para quaisquer valores dos dados de entrada. Uma função é dita computável se existir um procedimento que a compute. Uma Linguagem de programação é a maneira mais conveniente para a representação de procedimentos no computador. A abordagem operacional de Turing permitiu a Von Neuman elaborar o modelo para construção de máquinas digitais. A abordagem lingüística de Chomsky permitiu o desenvolvimento de teorias para concepção das linguagens de programação. - 5 -

Exemplo 01 Procedimento pára e diz sim se o número inteiro i, dado como entrada, for par e não negativo; pára e diz não nos demais casos: 1. se i = 0 pare e diga sim 2. se i < 0 pare e diga não 3. diminua o valor de i de duas unidades 4. vá para o passo 1 Assim, temos um algoritmo neste exemplo. Exemplo 02 procedimento para determinar o menor número perfeito que é maior do que um inteiro positivo m dado (k é perfeito se for igual a soma de todos os seus divisores, exceto o próprio k). Apenas para certos valores de m é possível, já que é a existência ou não de um número infinito de números perfeitos é um problema em aberto. Assim, temos um procedimento neste exemplo. Uma outra visão: Estudo através da Solucionabilidade de Problemas Um problema é solucionável, ou totalmente solucionável, se existe um algoritmo que resolva o problema para qualquer entrada informando uma resposta de aceitação ou rejeição (resposta negativa). Um problema é dito não solucionável se não existe um algoritmo que sempre resolva o problema. Um problema parcialmente solucionável é aquele que existe um algoritmo que solucione o problema e informa a resposta se ela é afirmativa. Se for negativa, o algoritmo pode parar ou permanecer processando indefinidamente. Figura 2. Relação entre as classes de problemas. (Cap5. Computabilidade Profs Divério e Menezes) De posse desses conceitos pode-se dizer que: Um problema é computável se o problema é solucionável ou parcialmente solucionável Um problema é não computável se o problema é não solucionável. A união da classe dos problemas solucionáveis com classe dos problemas não solucionáveis é o universo de todos os problemas. A classe dos problemas solucionáveis corresponde à classe das linguagens recursivas. A classe dos problemas parcialmente solucionáveis corresponde à classe das linguagens enumeráveis recursivas. A classe dos problemas não solucionáveis é não computável. - 6 -

3. Problemas Indecidíveis Um problema é decidível se sua solução é encontrada num tempo finito, ou seja, existe uma Máquina de Turing que retorna uma resposta. Caso contrário ele é indecidível. O conceito de decidibilidade não trata a quantidade de tempo gasto e sim se ele é finito (o conceito que trabalha com a quantidade de tempo gasto é o da Complexidade). Pode-se, ainda, ver a diferença entre decidível e não decidível com relação à linguagem. Se o problema pode ser representado por uma linguagem recursiva (onde a Máquina de Turing sempre pára) então o problema é decidível. (A) Problema da parada Dada uma Máquina de Turing M genérica e uma entrada genérica w, não existe uma Máquina de Turing M capaz de decidir se M executa uma computação que aborta (pára), quando começa o processamento numa configuração inicial q 0 w. Comentário: Se o problema da parada fosse decidível então toda Linguagem Recursivamente Enumerável deveria ser uma Linguagem Recursiva. Conseqüentemente o problema da parada é indecidível. (B) Problema de entrada num estado Dada uma Máquina de Turing M = (Q, Σ, Γ, δ, q 0,, F) e qualquer q Q e w Σ +, decidir se o estado q é sempre visitado quando a Máquina de Turing é aplicada a w não é possível. Esse problema é indecidível. Comentário: Poder-se-ia construir uma Máquina de Turing M que sempre pára quando entra no estado q. Assim ter-se-ia a garantia de que a Máquina de Turing entrava no estado q. Só que o problema da parada é indecidível, então o problema da entrada num estado também é indecidível. (C) Problema da parada numa fita em branco Dada uma Máquina de Turing M, determinar se M pára se começar com uma fita em branco é indecidível. Comentário: Poder-se-ia construir uma Máquina de Turing M w que começa com a fita em branco, escreve w nela e se posiciona na configuração q 0 w. Fica claro que M w pára na fita em branco se, e somente se, M aceita a cadeia w, ou seja, pára com a entrada w. Só que o problema da parada é indecidível, então esse também é. - 7 -

(D) Linguagem gerada por uma Gramática Irrestrita é nula Seja G uma Gramática Irrestrita. Então o problema de determinar se L(G) = é indecidível. Comentário: Supondo a existência uma Máquina de Turing M e uma cadeia w, tal que M salva sua entrada na fita. Então M pára se ao entrar no estado final, w está gravada na fita. Suponha M w uma Máquina de Turing para cada w, tal que L(M w ) = L(M) {w}. Supondo L w e L, duas Linguagens Recursivamente Enumeráveis, é possível construir G w tal que L w = L(G w ) e L = L(G). L(G w ) = se, e somente se, w L(G). Suponha que exista um algoritmo para determinar se L(G w ) =. Então existirá uma Máquina de Turing que para qualquer M e w seja possível determinar se w L(M). Se existe essa Máquina de Turing então a Linguagem aceita é uma Linguagem Recursivamente Enumerável, o que contradiz resultados anteriores. Então L(G) =, com G sendo uma Gramática Irrestrita, não é decidível. (E) Linguagem gerada por uma Máquina de Turing é finita Seja M uma Máquina de Turing. Então a questão, se L(M) é finita, é indecidível. Comentário: Como o problema da parada não é decidível então saber se o conjunto das cadeias geradas pela Máquina de Turing é finito não é possível. Então esse problema é indecidível. Teorema de Rice: Qualquer propriedade de linguagens reconhecidas por Máquinas de Turing é indecidível. Uma propriedade sobre uma Linguagem Recursivamente Enumerável (aceita por uma Máquina de Turing) é o conjunto de Linguagens Recursivamente Enumeráveis, ou seja, a propriedade livre de contexto é o conjunto das Linguagens Livres de Contexto Então se pode dizer que, sendo M é uma Máquina de Turing: Se L = L(M), decidir se L é uma Linguagem Regular é indecidível. Se L = L(M), decidir se L é uma Linguagem Livre de Contexto é indecidível. Se L = L(M), decidir se L é uma Linguagem Sensível ao Contexto é indecidível. Se L = L(M), decidir se L é uma Linguagem Recursiva é indecidível. - 8 -

4. Redutiblidade Uma redução é um modo de converter um problema em outro de tal modo que a solução para o segundo pode ser utilizada para resolver o primeiro. Reduzir um problema A para um problema B usando uma redução por mapeamento significa que existe uma função computável que converte instâncias do problema A para instâncias do problema B. Se uma tal conversão (função de) existir, chamada de uma redução, pode-se resolver A com um resolvedor (solucionador) para B. Definição 02: Uma linguagem A é redutível por mapeamento para uma linguagem B, A B, se existe uma função computável f: Σ* Σ* onde para todo w, w A f(w) B A função f é chamada redução de A para B. Teorema 01: Se A redutível a B (A B) e B é decidível então A é decidível. Teorema 02: Se A redutível a B (A B) e A é indecidível então B é indecidível. - 9 -