Anda di halaman 1dari 4

Algoritmos de grafos

--------------------
Os grafos so uma forma de modelar diversos problemas.
Vertice: Objeto simples que pode ter nome e atributos
Aresta: conexo entre dois vertices
A teoria dos grafos nos fornece uma liguagem para lidar com as propriedades dos
grafos.
Grafos podem ser utilizados para modelar vrias estruturas e relaes.
Busca em profundidade e buscar em largura fornecem mecanismos para visitar cada
aresta
e cada vertica do grafo.
Grafo no-direcionado
G um par (V,A) onde o conjunto de arestas A constituido de pares de vrtices no ord
enados.
*As arestas (u,v) e (v,u) so consideradas como uma nica aresta, a relao de adjacenci
a simetrica.
No podem existir self-loops
*Pag6
Grafo direcionado
um par (V,A) onde V um conjunto finito de vrtices e A uma relao binria em V.
-Uma aresta (U,V) sai do vrtice U e entra no vertice V
-Podem existir self-loops.
*Pag 8
Grau de um vrtice
>>Grafos no direcionados
-O grau de um vertice o numero de arestas que incidem nele.
-Um vertice de grau zero conhecido como isolado ou no conectado.
*Pag12
>>Grafos direcionados
-o grau de um vertice o numero de arestas que chegam nele(in-degree) e quem saem
dele(out-degree).
Caminho entre vertices
-O comrpimento de um caminho igual ao total do numero de arestas nele.
*Se existir um caminho c de x a y ento y alcanavel a parti de x via c.
-Um caminho denominado simples se todos os vrtices do caminho so distintos.
Ciclos
Grafos no direcionados
um caminho(v0,v1,..,vk) forma um ciclo se v0 = vk e o caminho contm pelo menos tr
es arestas.
O ciclo simples se os vertics v1,v2,...vk forem distintos.
Componentes conectados
>>Grafos no direcionados
-Ele conectado se cada par de vertices est conectado por um caminho.
-os componentes conectados so as pores conectadas de um grafo.
-Ele conectado se ele tem exatamente um compenente conectado.
Componentes Fortemente conectados
-Um grafo direcionado G=(V,A) fortemente conectado se cada dois vrtices quaisquer

so alcanaveis um a partir de outro.
-Os componentes fortemente conectados de um grafo direcionado so conjuntos de ver
tices
sob a relao "so mutuamente alcanaveis".
-Um grafo direcionado fortemente conectado tem apenas um componente fortemente c
onectado.
Grafos isomorfos
G=(V,A) e G'=(V',A) so isomorfos se existir uma bijeo f: V -> V' tal que(u,v) perte
nce
a A se e somente se (f(u),f(v)) pertence a A'.
*Pag 21
Subgrafos
Um grafo G'(V',A'_ um subgrafo de G=(v,a) SE V' est contido em V e A' est contido
em A
Outras classificaes de grafos:
-Grafo ponderado: possui pesos associados as arestas.
-Grafo Bipartido: Pag 23 slide 1
-Hipergrafo: grafo no direcionado em que cada aresta conecta um numero abitrario
de vertices.
-Completo: um grafo no direcionado no qual todos os pares de vertices so adjacente
s.
Arvores
Arvore livre: grafo no direcionado aciclico conectado.
Floresta: grafo no direcionado aciclico, podendo ou no estar conectado.
Arvore geradora: de um grafo conectado G=(V,A): um subgrafo que contem todos o
s vertices de g e uma forma de rvore.
Floresta geradora: de um grafo G=(V,A): Um subgrafo que contem todos os vertices
de G e uma forma de floresta.
*Importante considerar grafos como tipo abstrato de dados
*Conjunto de operaes associado a uma estrutura de dados
*Idependencia de implementao para as operaes
Matriz de Adjacencias
*Espao O(n^2)
*Espao pode ser reduzido agrupando-se as informaes em bits ou armazenando apenas a
matriz triangular.
*Tempo constante para testar a pertinncias de uma aresta ao grafo.
Listas de adjacencias
-Tempo o(di) para verificar a pertinencia de uma aresta ao grafo, onde di o grau
do vrtice i.
-Pior caso quando di=o(n)
-Na pratica os grafos geralmente so esparsos.
-Para muitas aplicaes a melhor alternativa.
-A utilizao de lista encadeada facilita a "ampliao" da estrutura.
Matriz de Adjacencias
-Testar se a aresta est no grafo
-Menos memria em grafos grandes
-Insero ou remoo de aresta
Lista de Adjacencias
-Determinar o grau de um vrtice
-Menos memria em grafos pequenos
-Atravessar o grafo.
-Melhor na maioria dos problemas
Atravessando grafos
-Impresso ou validao de cada vrtice e/ou aresta.
-Copia de um grafo ou converso entre representaes diferentes.
-Contagem de numeros de vertices e/ou arestas.
-Determinaao de componentes conexas.
-Determinao de caminho entre dois vertices ou ciclos, caso existam.
Eficiencia: Um mesmo local nao deve ser visitado repetidamente
Corretude: O percurso deve ser feito de modo que no se perca nada.
-Vrtices devem ser marcados quando visitados pela primeira vez
-Cada vrtice deve ter um dos estados abaixo:
--No visitado
--Visitado
--Completamente explorado
mantida uma estrutura com todos os vertices j visitados mas ainda no completamente
explorados.
As arestas no orientadas so consideradas duas vezes, as orientadas apenas uma.
Estruturas utilizadas para armazenar os vrtices descobertos que ainda no foram com
pletamente explorados:
-Fila para busca em largura
-Pilha para busca em profundidade
Buscar em largura
-A arvore define um caminho mais curto da raiz at cada um dos vrtices.
*Pag 37 slide 1 grafo
Busca em profundidade
-Geralmente mais util do que a busca em largura
*Pag 38 slide 1 grafo
Em um grafo no orientado temos arestas da rvore e arestas para um ancestral(aresta
s de retorno).
Em um grafo oriente temos:
-Arestas da rvore
-Arestas para frente (Ligam um vertice visitado a um complemente explorado).
-Arestas para tras (Ligam um vertice visitado a outro visitado).
-Arestas cruzadas (As demais)
Componentes conexas
-pode-se usar busca em largura ou busca em profundidade
-em grafos orientados temos os conceitos de "fracamente conexo" ou "fortemente c
onexo"
-Tempo o(m + n)
Deteco de rvores e ciclos
-A deteo de arvores feito usando a busca em profundidade, o grafo uma arvore somen
te
se no existirem arestas de retorno.
-A deteco de ciclo feita quando a primeira aresta de retorno identificada.
-tempo O(n)
2-Colorao de grafos
-Pode utilizar busca em largura ou em profundidade
-Um vertice visitado recebe sempre cor diferente da de seu pai
-Para cadas aresta no visitada verifica-se se ela no une dois vertices de mesma co
r,
se positivo foi possvel uma 2-colorao
Ordenao Topolgica
- uma ordenao nos vertices de forma que todas as arestas vo da esquerda para direita
.
-Busca em profundidade utilizada para determinar se o grafo orientada aciclico e
ento
determinar uma ordenao topolgica.
-Um grafo aciclico somente se no so encontradas arestas de retorno durante uma bus
ca em profundidade.
-Cada vertice rotulado e ordem inversa a odem em que eles so marcados completamen
te explorados
Vertices de Articulao
- um vrtice de um grafo conexo cuja remoo torna o grafo desconexo.
-Qualquer grafo que contenha um vertice de articulao fragil.
-A conectividade de um grafo a quantidade de vertices necessrios para desconectar
o grafo.
-Conectividade uma importante medida de robustez no projeto de rede.
Classificao das arestas:
1-Arestas de rvore:So as arestas de uma arvore de busca em profundidade.
*A aresta(u,v) uma aresta de rvore se v foi descoberto pela primeira vez ao se pe
rcorrer a aresta(u,v).
2-Arestas de retorno:conectam um vrtice u com um antecessor v em uma rvore de busc
a em profundidade(inclui self-loops)
3-Arestas de avano:No pertecem a arvore de busca em profundidade, mas conectam um
vertice a um descendente
que pertence a arvore de busca em profundidade.
4-Arestas de cruzamento:Podem conectar vertices na mesma arvore de busca em prof
undidade,ou em duas rvores diferentes.
Grafos Eulerianos:
chamado de grafos eurelianos todo grafo conexo cujos vertices tem grau par,e um
caminho fechado em um grafo que passe por cada aresta
do grafo exatamente um vez chamado de ciclo euleriano.

Anda mungkin juga menyukai