Modelos de Computação

Documentos relacionados
Linguagem (formal) de alfabeto Σ

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

Revisões de Conjuntos

Alfabeto, Cadeias, Operações e Linguagens

Gramáticas ( [HMU00], Cap. 5.1)

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

Linguagens Formais - Preliminares

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

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

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

Exercicios. 7.2 Quais das seguintes afirmações são verdadeiras? Justifica. (d) abcd L((a(cd) b) )

Autómatos de Pilha. Cada transição é caracterizada pelo estado, símbolo que está ser lido e o elemento no topo da pilha. dados de entrada.

Linguagens Formais e Autômatos P. Blauth Menezes

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

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

Problemas decidíveis para LICs

sumário 1 introdução e conceitos básicos 1 2 noções de lógica e técnicas de demonstração introdução à matemática discreta...

Árvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

LINGUAGENS FORMAIS E AUTÔMATOS

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

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

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

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

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

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

Linguagens Regulares. Prof. Daniel Oliveira

MT como calculadoras de funções parciais

Fundamentos de Teoria da Computação

Conceitos básicos de Teoria da Computação

Apontamentos de Modelos de Computação. Ana Paula Tomás

Fundamentos da Teoria da Computação

Matemática Discreta para Ciência da Computação

Aula1 Noções de matemática Discreta Técnicas de Demonstração. Prof. Dr. Ricardo Luis de Azevedo da Rocha

Linguagens Formais e Autômatos

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

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

Fundamentos da Teoria da Computação

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

7.1. Autómatos de pilha não-determinísticos (NPDA) 7.3. Autómatos de pilha determinísticos e linguagens livres de contexto determinísticas.

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

Linguagens Formais e Autômatos. Conceitos Básicos Prof. Anderson Belgamo

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

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos

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

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

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

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 2. Conceitos Básicos da Teoria da Computação

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

Universidade Federal de Alfenas

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

Aula 7: Autômatos com Pilha

Construção de Compiladores Aula 16 - Análise Sintática

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

Expressões regulares

Cálculo Diferencial e Integral I

Gramáticas e Linguagens independentes de contexto

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

Autómatos Finitos Determinísticos (AFD)

Definições Exemplos de gramáticas

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

Linguagens Formais e Autômatos

LINGUAGENS FORMAIS E AUTÔMATOS

Lista de exercícios 1

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

CT-200 Fundamentos de Linguagens Formais e Automata - Aula 01 - In...

Linguagens Formais e Autômatos

Matemática para Ciência de Computadores

Capítulo 2: Procedimentos e algoritmos

Tópicos de Matemática. Teoria elementar de conjuntos

Expressões Regulares e Gramáticas Regulares

Matemática Discreta para Ciência da Computação

Capítulo 1: Alfabetos, cadeias, linguagens

Teoria da Computação

Teoria da Computação. Aula 01

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

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.

INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto

MATEMÁTICA DISCRETA CONCEITOS PRELIMINARES

Álgebra Linear e Geometria Analítica

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

Outras Máquinas de Turing

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

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

9.3 Gramáticas Irrestritas

Autómatos finitos não determinísticos (AFND)

Criptografia e Segurança das Comunicações. das Comunicações Bases Matemáticas - Relações e Ordens

Teoria da Computação

Turma A - Segundas e Quartas das 8h30min - 10h10min Turma B - Segundas e Quartas das 10h30min - 12h10min

Linguagens Formais e Autômatos P. Blauth Menezes

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes

(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 3. Autômatos Finitos

Linguagens, Gramáticas e Máquinas

Matemática Discreta para Computação e Informática

Linguagens e Autômatos

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

Transcrição:

Modelos de Computação 2.ano LCC e LERSI URL: http://www.ncc.up.pt/~nam/aulas/0405/mc Escolaridade: 3.5T e 1P Frequência:Semanalmente serão propostos trabalhos aos alunos, que serão entregues nas caixas de MC junto ao segurança até hora indicada e que serão discutidos nas aulas práticas. Obtenção de frequência: Aproveitamento em 2/3 dos trabalhos propostos (7 em 10). Métodos de avaliação T rab trabalhos apresentados nas aulas práticas Exame Exame final. Nota mínima: 7 Aprovação por exame:(t rab 0.25) + Exame 0.75 9.5 Departamento de Ciência de Computadores da FCUP MC Aula 1 1

Bibliografia Livro adoptado: Introduction to Automata Theory, Languages and Computation, John E. Hopcroft, Rajeev Motwani and Jeffrey D. Ullman, 2000, AW, 2000, 2nd edition. (Cap 1-9) Leituras suplementares: Automata and Computability, Dexter C. Kozen, Springer, 1997. Departamento de Ciência de Computadores da FCUP MC Aula 1 2

Objectivos e Programa Objectivos Introdução ao estudo das linguagens formais, autómatos e computabilidade. Programa 1. Noção de linguagem formal 2. Autómatos finitos determinísticos 3. Autómatos finitos não determinísticos. 4. Expressões regulares e autómatos finitos 5. Propriedades das linguagens regulares 6. Minimização de autómatos finitos 7. Limitações dos autómatos finitos e Lema da repetição Departamento de Ciência de Computadores da FCUP MC Aula 1 3

8. Gramáticas independentes de contexto 9. Autómatos de pilha e GIC 10. Simplificações de gramáticas independentes de contexto e formas normais 11. Propriedades das linguagens independentes de contexto (LIC) 12. Lema da repetição para LIC 13. Autómatos de pilha determinísticos 14. Análise sintáctica. Algoritmos de Cocke-Kasami-Younger. 15. Máquinas de Turing. Vários modelos. 16. Computabilidade e Tese de Church-Turing. 17. Máquinas universais de Turing 18. Indecidibilidade Departamento de Ciência de Computadores da FCUP MC Aula 1 4

Fundamentos da Computação Pretende-se respoder às seguintes questões: [?] (Cap 1.1) O que significa uma função ser computável? Existem funções não computáveis? Como é que o poder computacional depende dos constructores da programação? O que é que um computador pode fazer eficientemente? Departamento de Ciência de Computadores da FCUP MC Aula 1 5

Origens fundamentos da matemática neurobiologia, linguística electrónica digital, etc Departamento de Ciência de Computadores da FCUP MC Aula 1 6

Ferramentas Demonstrações formais: por dedução por contradição por indução finita Departamento de Ciência de Computadores da FCUP MC Aula 1 7

Aplicações Vários tipos de software: compiladores pesquisadores em documentos na Web verificadores de sistemas; protocolos de comunicações e criptográficos... Departamento de Ciência de Computadores da FCUP MC Aula 1 8

Modelos de Computação Capturam certos aspectos da computação. Por ordem crescente de poder computacional: 1. memória finita: autómatos finitos, expressões regulares 2. memória finita com pilha infinita: autómatos de pilha 3. memória não restrita: máquinas de Turing, λ-calculus, funções recursivas, C, Haskel Departamento de Ciência de Computadores da FCUP MC Aula 1 9

Gramáticas e Linguagens Noam Chomsky (1959): hierarquia de classes de linguagens, que seriam modelos das linguagens naturais, definidas por gramáticas de complexidade crescente: 1. gramáticas lineares à direita 2. gramáticas independentes de contexto 3. gramáticas não restritas Facto: As gramáticas são computacionalmente equivalentes aos respectivos modelos de computação Departamento de Ciência de Computadores da FCUP MC Aula 1 10

Problemas decisão Um problema de decisão é uma função cujo resultado (resposta) pode ser apenas sim ou não. É especificado por: um conjunto A de dados, chamados instâncias. um subconjunto B A, das instâncias cuja a resposta é sim Exemplos Problema Instâncias Instâncias sim Dado um inteiro n, n é N inteiros primos primo? Dado um grafo G, G é conexo? grafos grafos conexos Departamento de Ciência de Computadores da FCUP MC Aula 1 11

Conceitos centrais de modelos de computação Abstração do conceito de computação manipulação de sequências finitas de símbolos Dados de um problema de decisão: sequências finitas de símbolos Problema A Codificação Símbolos Dado um inteiro n, n é primo? N representação de inteiros numa base b 0,1,.....b 1 Dado um grafo G, G é conexo? grafos matriz de adjacência 0 e 1 Departamento de Ciência de Computadores da FCUP MC Aula 1 12

Vamos então considerar: conjuntos (finitos) de símbolos (alfabeto) sequências de símbolos (palavras) conjuntos de palavras (linguagens) Vamos agrupar as linguagens em classes e caracterizar as suas propriedades computacionais. Departamento de Ciência de Computadores da FCUP MC Aula 1 13

Alfabeto e palavras Alfabeto conjunto finito de símbolos (Σ). {A,...,Z}, {α, β,... }, {a,b}, {0,1}, ASCII Palavra de Σ sequência finita de símbolos do alfabeto Σ Σ = {a, b} aabba a aaaaaaaa Comprimento duma palavra x, é número de símbolos de x, x Σ = {a, b} palavras de comprimento 2: aa ab ba bb Palavra vazia é a palavra com zero símbolos, denota-se ɛ a n é a palavra constituída por n símbolos a a 5 = aaaaa a 1 = a a 0 = ɛ Podemos definir a n indutivamente: a 0 = ɛ a n+1 = a n a Departamento de Ciência de Computadores da FCUP MC Aula 1 14

Σ k conjunto de todas as palavras de Σ de comprimento k(σ 0 = {ɛ}) {a, b} 2 = {aa, ab, ba, bb} Σ conjunto de todas as palavras de Σ (incluindo ɛ) Qual o cardinal de Σ? (Para responder mais tarde...) {a, b} = {ɛ, a, b, aa, ab, ba, bb, aaa, aab,...} {a} = {ɛ, a, aa, aaa, aaaa,...} = {a n n 0} Por definição: ={ɛ} Não confundir conjuntos de símbolos com palavras: {a, b} = {b, a} mas ab ba;{a, a, b} = {a, b} mas aab ab Departamento de Ciência de Computadores da FCUP MC Aula 1 15

Operações sobre palavras A concatenação ( ) de x e y é a palavra xy, obtida por justaposição de y no fim de x(representamos x y = xy) aab concatenada com bba é aabbba flor concatenada com bela é florbela é associativa (xy)z = x(yz) a palavra vazia é identidade: ɛx = xɛ = x xy = x + y (Σ,, ɛ) é um monóide Uma palavra v é uma subpalavra de w sse existem x e y tal que w = xvy Se y = ɛ então v é um sufixo de w. Se x = ɛ então v é um prefixo de w. Departamento de Ciência de Computadores da FCUP MC Aula 1 16

Σ = {0, 1} w = 010110 011 é subpalavra de w? e 10? e 111? flor é um prefixo de florbela. bela é um sufixo de florbela Quais os prefixos de 010111? E os sufixos? ɛ é uma subpalavra de qualquer palavra x n é a concatenação de n cópias da palavra x. Define-se indutivamente por: x 0 = ɛ x n+1 = x n x Sendo w = aaba determina w 0, w 1, w 2, w 3 e w 4 Para todo n 0, x n = n x. Prova! Departamento de Ciência de Computadores da FCUP MC Aula 1 17

Qual a relação entre amor e roma?e baabba e abbaab? A palavra inversa de x, denota-se por x R e pode-se definir por indução no comprimento de x: 1. Se x = 0 então x R = x = ɛ 2. Se x = n + 1, então x = ya (a Σ) e x R = ay R Exercício 1.1. Determina as inversas de: aabaab, bbabb, b Exercício 1.2. Mostra por indução que (xy) R = y R x R. Departamento de Ciência de Computadores da FCUP MC Aula 1 18

Linguagem (formal) de alfabeto Σ Linguagem é qualquer subconjunto de Σ, i.e. qualquer conjunto de palavras de Σ Σ = {a, b} {aa, ab, ba, bb} ou {x x {a, b} e x = 2} {a, aa, ab, ba, aaa, aab, aba,...} ou {x x {a, b} com pelo menos um a} {ɛ, ab, ba, abab, aabb, baba, bbaa, abba, baab,...} ou {x x {a, b} com o mesmo número de a e b} Σ Σ n Σ {ɛ} As linguagens podem ser finitas ou infinitas. Dá exemplo de cada... Pretende-se obter representações finitas para as linguagens infinitas, i.e. L = {x Σ x têm a propriedade P } Departamento de Ciência de Computadores da FCUP MC Aula 1 19

Problemas e Linguagens Um problema de decisão equivale a decidir se uma palavra pertence a uma dada linguagem. Portanto podemos identificar problemas e linguagens. Dado um alfabeto Σ e L uma linguagem sobre Σ (L Σ ), o problema L é: Dado w Σ, decidir se w L Exemplo: Primalidade L p L p = {x {0, 1} x é a representação binária de um número primo} Departamento de Ciência de Computadores da FCUP MC Aula 1 20

Revisões de Conjuntos a A a pertence a A, a é elemento de A a {a, b, c} a / A a não pertence a A d / {a, b, c} A B A contido em B, x A x B {a, b} {b, c, a} A B A contém B, B A {b, c, a} {a, b} A = B igualdade de conjuntos, A B e B A {a, b, c} = {b, c, a} A B x tal que x A e x / B ou vice-versa ou {} conjunto vazio #A ou A cardinal de A, número de elementos (finito {a, b, c} = 3 ou infinito) P(A) Conjunto dos subconjuntos de A P({a, b}) = {, {a}, {b}, {a, b}} Partição de A subconjunto de P(A), tal que os elementos são {{a}, {c, b}} não vazios, disjuntos 2 a 2 e a reunião é A A B Produto cartesiano de A e B, conjunto de pares ordenados (a, b), a A e b B R A B Relação binária de A em B Departamento de Ciência de Computadores da FCUP MC Aula 1 21

Operações sobre linguagens Intersecção de A com B A B = {x x A e x B} Reunião de A com B A B = {x x A ou x B} Complementar de B em A A \ B = {x x A e x / B} Complementar de A A, complementar de A em U, quando está impĺıcito um universo U Complementar de A em Σ : {x Σ x / A} Concatenação AB = {xy x A e y B} {a, ab}{b, ba} = {ab, aba, abb, abba} Normalmente AB BA Departamento de Ciência de Computadores da FCUP MC Aula 1 22

As potências L n de L são definidas indutivamente por: L 0 = {ɛ} L n+1 = LL n Isto é, L n = {x 1 x 2... x n x i L, 1 i n} {ab, aab} 0 = {ɛ} {ab, aab} 1 = {ab, aab} {ab, aab} 2 = {abab, abaab, aabab, aabaab} {ab, aab} 3 = {ababab,ababaab,abaabab,aababab, abaabaab,aababaab,aabaabab,aabaabaab} Departamento de Ciência de Computadores da FCUP MC Aula 1 23

Fecho de Kleene O fecho de Kleene L de L é a reunião de todas as potências finitas de L L = L 0 L 1 L 2 L 3... = n 0 L n ou, equivalentemente, L = {x 1 x 2... x n n 0 e x i L, 1 i n} i.e, a linguagem das palavras que são concatenação de palavras de L. Exercício 1.3. Mostrar a equivalência das duas definições. Σ, o conjunto das palavras de alfabeto Σ, é o fecho de Kleene de Σ = {ɛ} {01} = {ɛ, 01, 0101, 010101, 01010101, 0101010101,...} {000} = {ɛ, 000, 000000, 000000000,...} = {0 3n n N} L + é a reunião das potências não nulas de L L + = LL = n 1 L n Departamento de Ciência de Computadores da FCUP MC Aula 1 24

Exercício 1.4. Seja Σ o alfabeto {0, 1}. Sendo A = {10, 11} e B = {00, 1}, determina: A B, AB,BA, A 3, A Exercício 1.5. Seja aaaba uma palavra de alfabeto {a, b}. A que linguagens pertence: (a) {a, b} (b) {aaa, bab}{ba, bb} (c) {aaa} {b} {a} (d) {a} {b} {a} (e) {aa} {a} {a, ba, bb, ɛ} Departamento de Ciência de Computadores da FCUP MC Aula 1 25

Algumas propriedades das operações Associatividade, e concatenação: (A B) C = A (B C), (A B) C = A (B C), (AB)C = A(BC) Comutatividade e (A B) = (B A), (A B) = (B A) é o elemento neutro para a A = A = A é elemento absorvente para a concatenação A = A = Departamento de Ciência de Computadores da FCUP MC Aula 1 26

e distribuem sobre uma sobre a outra (A (B C)) = (A B) (A C), (A (B C)) = (A B) (A C) Concatenação distribui sobre a (mas não sobre ) A(B C) = AB AC Leis de Morgan (A B) = A B, (A B) = A B Se L 1, L 2 Σ e L 1 L 2 então L n 1 L n 2 (n N), e L 1 L 2 Sejam L 1, L 2 Σ. L 1 L 1 L 2 Se ɛ L 1 então L 2 L 1 L 2 e se ɛ L 2 então o fecho de Kleene verifica Departamento de Ciência de Computadores da FCUP MC Aula 1 27

A A = A (A ) = A ({ɛ} A) = A (A B ) = (A B) = {ɛ} Exercício 1.6. Mostra todas as propriedades anteriores. Departamento de Ciência de Computadores da FCUP MC Aula 1 28

Alfabeto Palavra Sumário dos conceitos novos Concatenação Inversa Vazia Linguagem concatenação fecho de Kleene relação com outras operações sobre conjuntos Departamento de Ciência de Computadores da FCUP MC Aula 1 29

Leituras [?] (Cap. 1) 1.1 Modelos de Computação; 1.2 a 1.4 Revisão de demonstrações formais; 1.5 Departamento de Ciência de Computadores da FCUP MC Aula 1 30