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

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

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

Apresentações semelhantes


Apresentação em tema: "Informática Teórica Engenharia da Computação"— 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. 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.

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 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. 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ção Nosso 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 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. A teoria dos autômatos introduz definições de modelos matemáticos de computação. 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. -cálculo (Alonzo Church) Funções recursivas  (Kurt Godel, Jacques Herbrand) 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: Autômatos finitos Autômatos com pilha Máquinas de Turing 1 e 2 possuem mémória finita ao passo que 3 possui memória ilimitada.

13 FERRAMENTAS MATEMÁTICAS
CONJUNTOS Operações Produto cartesiano 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. Predicado ou propriedade Relação n-ária, binária, etc. Propriedades de uma relação Relações de equivalência GRAFOS

15 FERRAMENTAS MATEMÁTICAS
TEOREMAS Métodos de Prova Provas diretas Provas por contradição Provas por contrapositiva Provas por indução matemá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. 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. 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ção recursiva para xk: 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: exemplo Controlador para uma porta automática de entrada
Sinal de entrada Estado Nenhum Frente Atrás Ambos Fechado Aberto 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ˆê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.

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, M1 produz 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 M2 1 1 q1 q3 0,1

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

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

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

33 Autômatos Finitos a b 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 1 1 q1 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.


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

Apresentações semelhantes


Anúncios Google