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 Cadeias e Linguagens Alfabeto : conjunto de símbolos. Alfabeto : conjunto de símbolos. Cadeias sobre um alfabeto. Cadeias sobre um alfabeto. Tamanho de uma cadeia w: |w|. Tamanho de uma cadeia w: |w|. Cadeia de tamanho vazio: Cadeia de tamanho vazio: Reverso de w: w R. Reverso de w: w R. Concatenação. Concatenação. Concatenação de x com si própria: x K. Concatenação de x com si própria: x K. Linguagem: é um conjunto de cadeias. Linguagem: é um conjunto de cadeias.

10 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.

11 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.

12 Autômatos Finitos: exemplo Controlador para uma porta automática EstadoNenhumFrenteAtrásAmbos Fechado Aberto Fechado 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á.

13 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.

14 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 1s apenas. 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 1s apenas.

15 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, M1 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, 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. 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á. A saída é aceite se M1 está agora no estado de aceitação e rejeite se ele não está.

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

17 Autômatos Finitos q0q0 q1q1 q3q ,1

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

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

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

21 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.

22 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