teoria dos grafos conceitos preliminares prof. renato melo
TRANSCRIPT
![Page 1: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/1.jpg)
Teoria dos GrafosTeoria dos Grafos
Conceitos PreliminaresConceitos Preliminares
Prof. Renato Melo
![Page 2: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/2.jpg)
Visão geral e conceitos básicos História da teoria dos grafos Componentes dos grafos Tipos básicos de grafos Representação computacional Busca
Em profundidade Em largura
![Page 3: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/3.jpg)
Motivação Por que estudar grafos?
Importante ferramenta matemática com aplicação em diversas áreas do conhecimento
Utilizados na definição e/ou resolução de problemas
Existem centenas de problemas computacionais que empregam grafos com sucesso.
![Page 4: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/4.jpg)
Histó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?
![Page 5: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/5.jpg)
História da Teoria dos 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?
![Page 6: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/6.jpg)
Histó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.
![Page 7: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/7.jpg)
Modelagem 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.
![Page 8: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/8.jpg)
Histó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.
![Page 9: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/9.jpg)
Histó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
![Page 10: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/10.jpg)
O problema das 3 casas É possível conectar os 3 serviços às
três casas sem haver cruzamento de tubulação?
A teoria dos grafos
mostra que não é
possível!
![Page 11: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/11.jpg)
Coloração de Mapas
Quantas cores são necessárias para colorir o mapa do Brasil, sendo que estados adjacentes não podem ter a mesma cor?
![Page 12: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/12.jpg)
Questões sobre o caminho mínimo
De forma a reduzir seus custos operacionais, uma empresa de transporte de cargas deseja oferecer aos motoristas de sua frota um mecanismo que os auxilie a selecionar o melhor caminho (o de menor distância) entre quaisquer duas cidades por ela servidas, de forma a que sejam minimizados os custos de transporte.
![Page 13: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/13.jpg)
![Page 14: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/14.jpg)
Modelagem com grafos Estamos interessados em objetos e nas
relações entre eles;
Quem são eles nos problemas apresentados?
Como representar graficamente?
![Page 15: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/15.jpg)
Modelagem com grafos No problema das casas
Vértices são casas e serviços Arestas são as tubulações entre casas e serviços
No problema da coloração de mapas Vértices são estados Arestas relacionam estados vizinhos
No problema do caminho mais curto Vértices são as cidades Arestas são as ligações entre as cidades
![Page 16: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/16.jpg)
O que são grafos? Tipicamente um grafo é representado
como: um conjunto não vazio de pontos ou vértices ligados por retas, que são chamadas de
arestas; Ferramenta de modelagem; Abstração matemática que representa
situações reais através de um diagrama.
![Page 17: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/17.jpg)
Componentes 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) }
e1 e2
G
![Page 18: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/18.jpg)
Exemplo
G = (V, E)
V = {a,b,c,d,e}E = {{a,b},{a,c},{b,c},{b,d},{c,d},{c,e}} = { e1, e2, e4, e5, e7, e9}
a
e
b c
d
G = (V, E)
V = {a,b,c,d,e}E = {{a,b},{a,c},{b,b},{b,c},{b,d},{c,d},{c,d},{c,d},{c,e}} = { e1, e2, e3, e4, e5, e6, e7, e8, e9}
Grafo simples
Multigrafo
e1 e2
e3
e4
e5
e6e7
e8e9
![Page 19: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/19.jpg)
Tipos básicos
Os grafos podem ser:
Dirigidos (G1) Não dirigidos (G2)
Nos grafos dirigidos, as arestas representam pares ordenados.
e1 e2
e1 e2
G1
G2
![Page 20: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/20.jpg)
Características – 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.
BH AL370
0 0
G3
![Page 21: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/21.jpg)
Teoria dos Grafos
Conceitos
• Dois vértices que são incidentes a uma mesma aresta são ditos adjacentes.
• Duas arestas que são incidentes a um mesmo vértice são ditas adjacentes.
u v
eu e v são adjacentes
e1 e e2 são adjacentes
ue2
e1
![Page 22: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/22.jpg)
Teoria dos Grafos
Observação
O conceito de incidência ou adjacência
é importante para a representação
da estrutura de um grafo como um diagrama
![Page 23: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/23.jpg)
Teoria dos Grafos
Conceitos
• O número de vértices de um grafo G é denotado por n. O valor n também é conhecido como ordem de G
• O número de arestas de um grafo é denotado por m
• Se n e m são finitos, o grafo é finito. Caso contrário é dito infinito.– Exemplo de grafo infinito: malhas
![Page 24: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/24.jpg)
Teoria dos Grafos
Conceitos
• O número de arestas incidentes a um vértice v é denominado grau(v) e representado por d(v).
• Grau também é conhecido como valência.
a
e
b c
d
d(a) = 3d(b) = 5d(c) = 4d(d) = 2d(e) = 2
![Page 25: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/25.jpg)
CC/EC/Mestrado Teoria dos Grafos
Conceitos
• Vértice isolado é o vértice que não possui arestas incidentes (grau nulo)
• Vértice folha ou terminal é o vértice que possui grau 1
• Vizinhos de um vértice são os vértices adjacentes a ele.
b
a
cd
e
d é um vértice folha e e é um vértice isoladob e c são vizinhos de a
![Page 26: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/26.jpg)
Teoria dos Grafos
Conceitos
• Pares de vértices (ou de arestas) não adjacentes são denominadas independentes.
• Um conjunto de vértices (ou arestas) é independente se nenhum par de seus elementos é adjacente.
![Page 27: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/27.jpg)
CC/EC/Mestrado Teoria dos Grafos
Exemplo
a
b c
d
f
eg
e10
e1 e2
e3
e4e5
e6e7
e8
e9
•e1 e e5 são independentes•a e d são independentes•{b,e,g} é um conjunto independente•{e1, e5 } é um conjunto independente
![Page 28: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/28.jpg)
Algumas 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)
![Page 29: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/29.jpg)
Representando um grafo em um programa Que tipos de estruturas de software são
adequadas para modelar um grafo? Começando pelos nós
Geralmente é conveniente representar um nó por um objeto de uma classe de nó.
Ex:
![Page 30: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/30.jpg)
Representação computacional: Arestas Uma abordagem diferente para
representar arestas é preferível àquela usada para árvores.
Dois métodos são comumente utilizados para grafos: Matriz de adjacência e Lista de adjacência.
![Page 31: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/31.jpg)
Matriz de Adjacência Uma matriz de adjacência é um vetor
bidimensional no qual os elementos indicam se uma aresta está presente em dois nós. Se um grafo tem N nós, a matriz de
adjacência será uma matriz NxN. O nós são cabeçalhos tanto para linha como
para coluna.
![Page 32: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/32.jpg)
Lista de Adjacência A lista em lista de adjacência refere-se a
uma lista encadeada. Na verdade é um vetor de listas
Cada lista individual mostra a quais nós um dado nó é adjacente.
![Page 33: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/33.jpg)
Adicionando nós e arestas á um grafo Para adicionar um nó a um grafo, é
preciso inserir um objeto em um vetor de nó. vetorVertices[nVertices] = new Vertice(‘R’);
Uma aresta pode ser adicionada utilizando uma matriz ou lista de adjacência. Usando uma matriz: matrizAdj[1][3] = 1; matrizAdj[1][3] = 1;
A classe Grafo.java
![Page 34: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/34.jpg)
Buscas Assuma que se tenha criado um grafo. Agora precisará de um algoritmo que
forneça uma maneira de iniciar em um nó especificado
e então se mova ao longo das arestas para outros nós.
De tal modo que ao final tenha a garantia de ter visitados todo nó conectado ao inicial.
Há duas abordagens comuns Busca em profundidade Busca em largura
![Page 35: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/35.jpg)
Busca em Profundidade Usa uma pilha para lembrar para onde
deve ir quando atingir um ponto sem saída.
![Page 36: Teoria dos Grafos Conceitos Preliminares Prof. Renato Melo](https://reader035.vdocuments.mx/reader035/viewer/2022062512/552fc16a497959413d8ebf0d/html5/thumbnails/36.jpg)
Busca em Largura Nesta busca visita-se todos os nós
adjacentes ao nó inicial e apenas então vai mais adiante.
Esse tipo de busca é usado implementando uma fila.