A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Informática Teórica Engenharia da Computação. Teoria é importante para a prática Ela provê ferramentas conceituais que os praticantes usam em engenharia.

Apresentações semelhantes


Apresentação em tema: "Informática Teórica Engenharia da Computação. Teoria é importante para a prática Ela provê ferramentas conceituais que os praticantes usam em engenharia."— Transcrição da apresentação:

1 Informática Teórica Engenharia da Computação

2 Teoria é importante para a prática Ela provê ferramentas conceituais que os praticantes usam em engenharia da computação. Ela provê ferramentas conceituais que os praticantes usam em engenharia da computação. Projetando uma nova linguagem de programação para uma aplicacão especializada? Projetando uma nova linguagem de programação para uma aplicacão especializada? O que você aprender sobre gramáticas neste curso irá bem a calhar. O que você aprender sobre gramáticas neste curso irá bem a calhar.

3 Teoria é importante para a prática Lidando com busca por cadeias e casamento de padrões? Lidando com busca por cadeias e casamento de padrões? Lembre-se de autômatos finitos e expressões regulares. Lembre-se de autômatos finitos e expressões regulares.

4 Teoria é importante para a prática Lidando com busca por cadeias e casamento de padrões? Lidando com busca por cadeias e casamento de padrões? Lembre-se de autômatos finitos e expressões regulares. Lembre-se de autômatos finitos e expressões regulares.

5 Teoria é importante para a prática Confrontado com um problema que parece requerer mais tempo de computador do que você pode suportar? Confrontado com um problema que parece requerer mais tempo de computador do que você pode suportar? Pense no que você aprendeu sobre NP - completude. Pense no que você aprendeu sobre NP - completude.

6 Teoria é importante para a prática Os melhores projetos e aplicações de computadores são concebidos com elegância em mente. Os melhores projetos e aplicações de computadores são concebidos com elegância em mente. Um curso teórico pode elevar seu sentido estético e ajudá-lo a construir sistemas mais bonitos. Um curso teórico pode elevar seu sentido estético e ajudá-lo a construir sistemas mais bonitos.

7 Teoria é importante para a prática Finalmente, teoria é bom para você porque estudá- la expande sua mente. Finalmente, teoria é bom para você porque estudá- la expande sua mente. Conhecimento técnico específico, embora útil hoje, fica desatualizado em apenas uns poucos anos. Conhecimento técnico específico, embora útil hoje, fica desatualizado em apenas uns poucos anos. Por outro lado as habilidades de pensar, exprimir- se claramente e precisamente, para resolver problemas, e saber quando você não resolveu um problema. Por outro lado as habilidades de pensar, exprimir- se claramente e precisamente, para resolver problemas, e saber quando você não resolveu um problema. Essas habilidades têm valor duradouro. Estudar teoria treina você nessas áreas. Essas habilidades têm valor duradouro. Estudar teoria treina você nessas áreas.

8 Teoria dos Autômatos Lida com as definições e propriedades de modelos matemáticos de computação. Lida com as definições e propriedades de modelos matemáticos de computação. Um modelo, chamado autômato finito, é usado em processamento de texto, compiladores, e projeto de hardware. Um modelo, chamado autômato finito, é usado em processamento de texto, compiladores, e projeto de hardware. Um outro modelo, chamado gramática livre-do- contexto, é usado em linguagens de programação e inteligência artificial. Um outro modelo, chamado gramática livre-do- contexto, é usado em linguagens de programação e inteligência artificial.

9 Teoria da Computação Nosso curso Três áreas centrais: autômatos, computabilidade e complexidade. Três áreas centrais: autômatos, computabilidade e complexidade. Quais são as habilidades e limitações fundamentais dos computadores? Quais são as habilidades e limitações fundamentais dos computadores? O que faz alguns problemas computacionalmente difíceis e outros fáceis? O que faz alguns problemas computacionalmente difíceis e outros fáceis? Como separar os problemas que possuem solução computacional daqueles que não possuem? Como separar os problemas que possuem solução computacional daqueles que não possuem? COMPLEXIDADE COMPUTABILIDADE

10 Teoria da Computação Nosso curso As teorias da complexidade e computabilidade requerem uma definição precisa de um computador. As teorias da complexidade e computabilidade requerem uma definição precisa de um computador. A teoria dos autômatos introduz definições de modelos matemáticos de computação. A teoria dos autômatos introduz definições de modelos matemáticos de computação. Daí começamos o nosso curso estudando esses modelos. Daí começamos o nosso curso estudando esses modelos.

11 Teoria da Computação Outros modelos Só para sabermos: Outros modelos de computação também foram propostos. Outros modelos de computação também foram propostos. -cálculo (Alonzo Church) -cálculo (Alonzo Church) Funções recursivas (Kurt Godel, Jacques Herbrand) Funções recursivas (Kurt Godel, Jacques Herbrand) Lógica combinatória (Moses Schonfinkel, Haskell B. Curry) Lógica combinatória (Moses Schonfinkel, Haskell B. Curry)

12 Teoria da Computação Contexto do que vamos começar a estudar No curso iremos estudar os seguintes modelos de computação: No curso iremos estudar os seguintes modelos de computação: 1. Autômatos finitos 2. Autômatos com pilha 3. Máquinas de Turing 1 e 2 possuem mémória finita ao passo que 3 possui memória ilimitada. 1 e 2 possuem mémória finita ao passo que 3 possui memória ilimitada.

13 FERRAMENTAS MATEMÁTICAS CONJUNTOS CONJUNTOS Operações Operações Produto cartesiano Produto cartesiano Conjunto das partes Conjunto das partes SEQUÊCIAS E UPLAS SEQUÊCIAS E UPLAS

14 FERRAMENTAS MATEMÁTICAS FUNÇÕES E RELAÇÕES FUNÇÕES E RELAÇÕES Domínio, contra-domínio e imagem Domínio, contra-domínio e imagem Argumentos e aridade Argumentos e aridade Função n-ária, unária, binária, etc. Função n-ária, unária, binária, etc. Predicado ou propriedade Predicado ou propriedade Relação n-ária, binária, etc. Relação n-ária, binária, etc. Propriedades de uma relação Propriedades de uma relação Relações de equivalência Relações de equivalência GRAFOS GRAFOS

15 FERRAMENTAS MATEMÁTICAS TEOREMAS TEOREMAS Métodos de Prova Métodos de Prova Provas diretas Provas diretas Provas por contradição Provas por contradição Provas por contrapositiva Provas por contrapositiva Provas por indução matemática Provas por indução matemática

16 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Alfabeto Alfabeto Conjunto finito não vazio de símbolos. Conjunto finito não vazio de símbolos. Notação: ou Notação: ou Cadeias sobre um alfabeto Cadeias sobre um alfabeto É uma sequência finita de símbolos daquele alfabeto. É uma sequência finita de símbolos daquele alfabeto. * é o conjunto de todas as cadeias sobre o alfabeto * é o conjunto de todas as cadeias sobre o alfabeto

17 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Tamanho de uma cadeia w: |w|. Tamanho de uma cadeia w: |w|. Cadeia vazia (de tamanho zero): Cadeia vazia (de tamanho zero): Reverso de w: w R. Reverso de w: w R.

18 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Operação de concatenação de cadeias. Operação de concatenação de cadeias. Essa opereção pega duas cadeias x e y e forma uma nova colocando y após x. Essa opereção pega duas cadeias x e y e forma uma nova colocando y após x. A cadeia xy é chamada de concatenação de x e y. A cadeia xy é chamada de concatenação de x e y. Em geral xy é diferente de yx Em geral xy é diferente de yx

19 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Concatenação de cadeias: algumas propriedades Concatenação de cadeias: algumas propriedades Associativa: (xy)z = x(yz) Associativa: (xy)z = x(yz) A cadeia é a identidade: x = x = x A cadeia é a identidade: x = x = x |xy| = |x| + |y| |xy| = |x| + |y|

20 FERRAMENTAS MATEMÁTICAS CADEIAS E LINGUAGENS CADEIAS E LINGUAGENS Concatenação de x com si própria: x K. Concatenação de x com si própria: x K. Exemplo: (ab) 3 = ababab Exemplo: (ab) 3 = ababab (ab) 0 = (ab) 0 = Definição recursiva para x k : Definição recursiva para x k : x 0 = x 0 = x n+1 = x n x x n+1 = x n x Linguagem: conjunto de cadeias Linguagem: conjunto de cadeias

21 Autômatos Finitos É um dos modelos computacionais que estudaremos. É um dos modelos computacionais que estudaremos. Porém com uma quantidade extremamente limitada de memória. Porém com uma quantidade extremamente limitada de memória. O que um computador pode fazer com uma memória tão pequena? O que um computador pode fazer com uma memória tão pequena? Na verdade, interagimos com tais computadores o tempo todo, pois eles residem no coração de vários dispositivos eletromecânicos. Na verdade, interagimos com tais computadores o tempo todo, pois eles residem no coração de vários dispositivos eletromecânicos.

22 Autômatos Finitos O controlador para uma porta automática é um exemplo de tal dispositivo. O controlador para uma porta automática é um exemplo de tal dispositivo. As lavadoras de louça/roupa, termômetros eletrônicos, relógios digitais, calculadoras e máquinas de venda automática.... As lavadoras de louça/roupa, termômetros eletrônicos, relógios digitais, calculadoras e máquinas de venda automática.... Os autômatos também são chamados de máquinas de estados finitos. Os autômatos também são chamados de máquinas de estados finitos.

23 Autômatos Finitos: exemplo Controlador para uma porta automática de entrada EstadoNenhumFrenteAtrásAmbos Fechado AbertoFechado AbertoFechadoAberto Sinal de entrada Esse controlador é um computador com apenas 1 bit de memória, capaz de registrar em quais dos dois estados o controlador está.

24 Autômatos Finitos Controladores para diversos aparelhos domésticos, como lavadora de pratos e termostatos eletrônicos, assim como peças de relógios digitais e calculadoras, são exemplos adicionais de computadores com memória limitada. Controladores para diversos aparelhos domésticos, como lavadora de pratos e termostatos eletrônicos, assim como peças de relógios digitais e calculadoras, são exemplos adicionais de computadores com memória limitada. O projeto requer que se tenha em mente a metodologia e terminologia de autômatos finitos. O projeto requer que se tenha em mente a metodologia e terminologia de autômatos finitos.

25 Autômatos Finitos Ao começar a descrever a teoria matemática de autômatos finitos, fazemos isso no nível abstrato, sem referˆência a qualquer aplicação específica. Ao começar a descrever a teoria matemática de autômatos finitos, fazemos isso no nível abstrato, sem referˆência a qualquer aplicação específica. A seguir vamos ver alguns exemplos usando um diagrama de estados e identificar os conceitos de: estado inicial, estado de aceitação ou final, transição. A seguir vamos ver alguns exemplos usando um diagrama de estados e identificar os conceitos de: estado inicial, estado de aceitação ou final, transição.

26 Autômatos Finitos Uma máquina M 1 que recebe cadeias de bits como entrada e aceita somente aquelas que começam com um ou mais zeros seguidos de um ou mais 1s apenas. Uma máquina M 1 que recebe cadeias de bits como entrada e aceita somente aquelas que começam com um ou mais zeros seguidos de um ou mais 1s apenas.

27 Autômatos Finitos O autômato recebe os símbolos da cadeia de entrada um por um da esquerda para a direita. O autômato recebe os símbolos da cadeia de entrada um por um da esquerda para a direita. Após ler cada símbolo, M 1 move de um estado para outro ao longo da transição que tem aquele símbolo como seu rótulo. Após ler cada símbolo, M 1 move de um estado para outro ao longo da transição que tem aquele símbolo como seu rótulo. Quando ele lê o último símbolo, M 1 produz sua saída. Quando ele lê o último símbolo, M 1 produz sua saída. A saída é aceite se M 1 está agora no estado de aceitação e rejeite se ele não está. A saída é aceite se M 1 está agora no estado de aceitação e rejeite se ele não está.

28 Autômatos Finitos Um AF M 2 que recebe cadeias de bits e aceita aquelas que possuem 10 como subcadeia Um AF M 2 que recebe cadeias de bits e aceita aquelas que possuem 10 como subcadeia

29 Autômatos Finitos q0q0 q1q1 q3q ,1 M2M2

30 Autômatos Finitos M 3 M 3 q0q0 q1q L(M 3 )={w | w termina em 1}

31 Autômatos Finitos M 4 M L(M 4 )={w | w é a cadeia vazia ou termina em 0} q0q0 q1q1 1

32 Autômatos Finitos M5M5M5M5 q0q0 q2q2 q1q1 q3q3 a b b b a a b L(M 5 )={w | w começa e termina no mesmo símbolo} q4q4 a b a

33 Autômatos Finitos q0q0 q2q2 q1q1 q3q3 a b b b a a a,b Os estados q 1 e q 2 servem para memorizar o símbolo anterior. Esse AF aceita as cadeias sobre o alfabeto {a,b} que possuem aa ou bb como subcadeias.

34 Autômatos Finitos q0q0 q1q1 q3q ,0 Esse AF aceita qualquer cadeia binárias que termina com o símbolo 1 ou que termina com um número par de 0s seguindo o último 1.


Carregar ppt "Informática Teórica Engenharia da Computação. Teoria é importante para a prática Ela provê ferramentas conceituais que os praticantes usam em engenharia."

Apresentações semelhantes


Anúncios Google