1 / 34

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

Informática Teórica Engenharia da Computação. Teoria é importante para a prática. 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?

rue
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. • Projetando uma nova linguagem de programação para uma aplicacão especializada? • O que você aprender sobre gramáticasneste curso irá bem a calhar.

  3. Teoria é importante para a prática • Lidando com busca por cadeias e casamento de padrões? • 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? • 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? • 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. • Um curso teórico podeelevar 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. • 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. • 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. • 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.

  9. Teoria da ComputaçãoNosso curso • Três áreas centrais: autômatos, computabilidade e complexidade. • Quais são as habilidades e limitações fundamentais dos computadores? • O que faz alguns problemas computacionalmente difíceis e outros fáceis? • Como separarosproblemasquepossuemsoluçãocomputacionaldaquelesquenãopossuem? COMPLEXIDADE COMPUTABILIDADE

  10. Teoria da ComputaçãoNosso curso • As teoriasdacomplexidade e computabilidaderequeremumadefiniçãoprecisa de um computador. • A teoria dos autômatosintroduzdefinições de modelosmatemáticos de computação. • Daícomeçamos o nossocursoestudandoessesmodelos.

  11. Teoria da ComputaçãoOutros modelos Sóparasabermos: • Outrosmodelos de computaçãotambémforampropostos. • -cálculo (Alonzo Church) • Funçõesrecursivas  (Kurt Godel, Jacques Herbrand) • Lógicacombinatória (Moses Schonfinkel, Haskell B. Curry)

  12. Teoria da ComputaçãoContexto do que vamos começar a estudar No cursoiremosestudarosseguintesmodelos de computação: • Autômatosfinitos • Autômatos com pilha • Máquinas de Turing • 1 e 2 possuemmémóriafinitaaopassoque 3 possuimemóriailimitada.

  13. FERRAMENTAS MATEMÁTICAS • CONJUNTOS • Operações • Produtocartesiano • Conjunto das partes • SEQUÊCIAS E UPLAS

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

  15. FERRAMENTAS MATEMÁTICAS • TEOREMAS • Métodos de Prova • Provasdiretas • Provasporcontradição • Provasporcontrapositiva • Provasporinduçãomatemática

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

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

  18. FERRAMENTAS MATEMÁTICAS • CADEIAS E LINGUAGENS • Operação de concatenação de cadeias. • Essaopereçãopegaduascadeiasx e y e forma uma nova colocandoyapósx. • A cadeiaxy é chamada de concatenação de x e y. • Em geral xy é diferente de yx

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

  20. FERRAMENTAS MATEMÁTICAS • CADEIAS E LINGUAGENS • Concatenação de x com si própria: xK. • Exemplo:(ab)3 = ababab (ab)0 =  • Definiçãorecursivaparaxk: • x0 =  • xn+1 = xnx • Linguagem:conjunto de cadeias

  21. Autômatos Finitos • É um dos modelos computacionais que estudaremos. • Porém com uma quantidade extremamente limitada de memória. • 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.

  22. Autômatos Finitos • 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.... • Os autômatos também são chamados de máquinas de estados finitos.

  23. Autômatos Finitos: exemploControlador para uma porta automática de entrada 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. • 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ˆênciaa 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.

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

  27. Autômatos Finitos • 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, M1 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, M1produz sua saída. • A saída é aceite se M1 estáagora no estado de aceitação e rejeite se ele não está.

  28. Autômatos Finitos • Um AF M2 que recebe cadeias de bits e aceita aquelas que possuem 10 como subcadeia

  29. Autômatos Finitos q0 0 M2 1 q1 1 0 q3 0,1

  30. Autômatos Finitos M3 q0 0 1 0 q1 1 L(M3)={w | w termina em 1}

  31. Autômatos Finitos 1 M4 1 q0 q1 0 0 L(M4)={w | w é a cadeia vazia  ou termina em 0}

  32. Autômatos Finitos b a q0 M5 a b q2 q1 a b b a q3 q4 b a L(M5)={w | w começa e termina no mesmo símbolo}

  33. Autômatos Finitos b a q0 b q2 q1 a a b q3 a,b Os estados q1 e q2 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 q0 0 1 q1 1 0 1,0 q3 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.

More Related