240 likes | 391 Views
Linguagens Formais e Autômatos Conceitos Preliminares. Prof. Humberto Brandão humberto@dcc.ufmg.br versão da aula: 0.1. Conceitos Preliminares. Alguns conceitos são pré-requisitos no aprendizado da disciplina de Teoria da Computação: Conjuntos; Funções; Grafos, Linguagens Formais;
E N D
Linguagens Formais e AutômatosConceitos Preliminares Prof. Humberto Brandão humberto@dcc.ufmg.br versão da aula: 0.1
Conceitos Preliminares • Alguns conceitos são pré-requisitos no aprendizado da disciplina de Teoria da Computação: • Conjuntos; • Funções; • Grafos, • Linguagens Formais; • Gramáticas; • Problemas de Decisão;
GrafosVisão geral e conceitos básicos para a disciplina- História da teoria dos grafos- Componentes dos grafos- Tipos básicos de grafos- Representação computacional- Caminhos em grafos- Busca - Em profundidade - Em largura
GrafosHistória da Teoria dos Grafos • Leonhard Euler (1707-1783), no ano de 1736, resolveu um problema na cidade de Königsberg (antiga Prússia), criando assim o primeiro registro na história referente aos grafos. • Euler criou tal estrutura para resolver o clássico problema das Sete Pontes de Königsberg. • O problema era: É possível visitar todas as partes de terra desta cidade passando por cada ponte exatamente uma vez?
Grafos • A cidade de Königsberg foi construída numa região onde haviam dois braços do Rio Pregel e uma ilha. Foram construídas sete pontes ligando diferentes partes da cidade, como mostrado na figura: • Problema:É possível que uma pessoa faça um percurso na cidade de tal forma que inicie e volte a mesma posição passando por todas as pontes somente uma única vez?
GrafosHistória da Teoria dos Grafos • Apesar do problema ser uma brincadeira dos matemáticos da época, possui fundamental importância. • Euler isolou completamente a essência do problema, ficando apenas o que era importante para o pensamento em sua solução, que passou então a ser trivial.
GrafosModelagem proposta por Euler • Todos os “pontos” de uma dada área de terra podem ser representados por um único ponto já que uma pessoa pode andar de um lado para o outro sem atravessar uma ponte. • Um ponto é conectado a outro se houver uma ponte de um lado para o outro.
GrafosHistória dos Grafos • Pensamento trivial de Euler: • Não existe solução para o problema: • Saindo de A, não é possível voltar para A passando por todas as pontes sem utilizar a mesma ponte mais de uma vez porque existem faixas de terra que são conectadas com um número impar de pontes.
GrafosHistória dos Grafos • O formalismo proposto por Euler ficou mais de 100 anos sem ser utilizado, vindo a ser referenciado apenas no século XIX com os trabalhos de: • Gustav Kirchoff (circuitos elétricos) • Arthur Cayley (química – desenhos de hidrocarbonetos) Butano
GrafosComponentes do Grafo • Um grafo é uma estrutura matemática que contém dois tipos básicos de entidades: • Vértices • Arestas • G(V,A), onde:V = {e1, e2}A = { (e1,e1), (e1,e2) } G
GrafosTipos básicos • Os grafos podem ser: • Dirigidos (G1) • Não dirigidos (G2) • Nos grafos dirigidos, as arestas representam pares ordenados. G1 G2
GrafosCaracterísticas básicas – Rotulado ou Valorado • Os grafos podem ser: • Rotulados (G3) • Não Rotulados • Os rótulos indicam alguma característica para cada par de vértices, ou seja, para cada aresta. G3
GrafosRepresentação computacional • Matriz de Adjacência • Útil na representação de grafos densos. • Os grafos densos são aqueles que o tamanho do conjunto das arestas (|A|) é aproximadamente o tamanho de |V|2. • Memória utilizada para o Grafo G(V,A) é |V|2.
GrafosRepresentação computacional • Lista de Adjacência
GrafosRepresentação computacional • Matriz de Incidência
GrafosAlgumas aplicações • As aplicações de grafos nos dias de hoje são vistas nas mais diversas áreas da ciência, por exemplo: • Mapas (localização de caminhos mínimos, alternativos, etc) • Redes de computadores (roteamento de pacotes) • Teoria de Linguagens (autômatos) • Química (moléculas) • Física (circuitos) • Otimização (fluxo em redes) • Arquitetura de Computadores (Grafos planares)
GrafosNo curso • Para a disciplina de Linguagens formais e autômatos, é necessárias apenas uma visão básica de grafos, sendo desenvolvida ao longo do semestre. • No decorrer do curso, vocês irão ver uma disciplina específica de grafos para maior aprendizado da área.
Linguagens Formais • INSERIR AULA DE GRAFOS
Gramáticas • INSERIR AULA DE GRAFOS
Problemas de Decisão • INSERIR AULA DE GRAFOS