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

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

Grafos – Parte 2 Projeto e Análise de Algoritmos Aline Vasconcelos

Apresentações semelhantes


Apresentação em tema: "Grafos – Parte 2 Projeto e Análise de Algoritmos Aline Vasconcelos"— Transcrição da apresentação:

1 Grafos – Parte 2 Projeto e Análise de Algoritmos Aline Vasconcelos

2 2 Conceitos Básicos Grafos Conectados Grafos Conectados: Um grafo não direcionado é conectado se cada par de vértices está conectado por um caminho. Os componentes conectados são conjuntos de vértices sob a relação é alcançável a partir de, ou seja, são porções conectadas de um grafo. Por exemplo, o grafo na figura B, tem 3 componentes, a saber: {0, 1, 2}, {4, 5} e {3}. Em outras palavras, um grafo não direcionado é conectado se ele tem exatamente um componente conectado, i.e., cada vértice é alcançável a partir de qualquer outro vértice.

3 3 Conceitos Básicos Grafos Fortemente Conectados Grafos Fortemente Conectados: Um grafo direcionado G=(V, A) é fortemente conectado se cada dois vértices quaisquer são alcançáveis a partir um do outro. Os componentes fortemente conectados de um grafo direcionado são as classes de equivalência de vértices sob a relação são mutuamente alcançáveis. Por exemplo, o grafo na figura A, tem 3 componentes fortemente conectados, a saber: {0, 1, 2, 3}, {4} e {5}. Todos os pares em {0, 1, 2, 3} são mutuamente alcançáveis. Por outro lado, os vértices 4 e 5 não formam um componente fortemente conectado porque o vértice 5 não é alcançável a partir do vértice 4. Assim, um grafo direcionado fortemente conectado tem apenas 1 componente fortemente conectado.

4 4 Exemplo: (A) (B) 5 4

5 5 Conceitos Básicos Grafos Isomorfos Grafos Isomorfos: Dois grafos G=(V, A) e G=(V, A) são isomorfos se existir uma bijeção ƒ : V V tal que (u, v) A se e somente se (ƒ(u), ƒ(v)) A. Em outras palavras, deve ser possível re-rotular os vértices de G para serem rótulos de G, mantendo as arestas correspondentes em G e G. O exemplo da Figura C mostra 2 grafos isomorfos G e G com seus conjuntos de vértices V = {0, 1, 2, 3, 4, 5, 6, 7} e V= {s, t, u, v, w, x, y, z} respectivamente.

6 6 Grafos Isomorfos s w v y z x t u (C)

7 7 Conceitos Básicos Subgrafo Subgrafo: Um grafo G = (V, A) é um subgrafo de G = (V, A) se V V e A A. Dado um conjunto V V, o subgrafo induzido por V é o grafo G = (V, A), em que A = {(u, v) A | u, v V}

8 8 Conceitos Básicos Na transformação de um grafo não direcionado em sua versão direcionada, cada aresta não direcionada é substituída por duas arestas direcionadas. Na transformação de um grafo não direcionado em sua versão direcionada, cada aresta não direcionada é substituída por duas arestas direcionadas. Um grafo completo é um grafo não direcionado no qual todos os pares de vértices são adjacentes, ou seja, possui arestas ligando todos os vértices entre si. Um grafo completo é um grafo não direcionado no qual todos os pares de vértices são adjacentes, ou seja, possui arestas ligando todos os vértices entre si. Uma árvore livre (Figura D) é um grafo não direcionado acíclico e conectado. É comum omitir-se o adjetivo livre quando dizemos que o grafo é uma árvore. Uma árvore livre (Figura D) é um grafo não direcionado acíclico e conectado. É comum omitir-se o adjetivo livre quando dizemos que o grafo é uma árvore.

9 9 Conceitos Básicos Uma floresta é um grafo não direcionado acíclico, podendo ou não ser conectado (Figura E). Uma floresta é um grafo não direcionado acíclico, podendo ou não ser conectado (Figura E). (D)(E)

10 10 Algoritmos em Grafos Busca em Profundidade (depth-first search): Busca em Profundidade (depth-first search): É um algoritmo para caminhar no grafo. A estratégia seguida pelo algoritmo é a de buscar o mais profundo no grafo sempre que possível. Na busca em profundidade, as arestas são exploradas a partir do vértice v mais recentemente descoberto que ainda possui arestas não exploradas saindo dele. Quando todas as arestas adjacentes a v tiverem sido exploradas, a busca anda para trás (i.e. backtracking ou backtrack) para explorar vértices que saem do vértice do qual v foi descoberto.

11 11 Algoritmos em Grafos Busca em Profundidade (depth-first search): Busca em Profundidade (depth-first search): O processo continua até que sejam descobertos todos os vértices que são alcançáveis a partir do vértice original. O algoritmo é a base para muitos outros algoritmos importantes na área de grafos, tais como: Verificação de grafos acíclicos; Componentes fortemente conectados etc.

12 12 Algoritmos em Grafos Busca em Largura (breadth-first search): Busca em Largura (breadth-first search): É assim chamada porque ela expande a fronteira entre vértices descobertos e não descobertos uniformemente por meio da largura da fronteira, como se fossem círculos concêntricos gerados por uma pedra que se deixa cair em uma superfície de água completamente parada. O algoritmo é a base para muitos algoritmos importantes em grafos, como o algoritmo de Dijkstra para obter o caminho mais curto de um vértice a todos os outros vértices.

13 13 Algoritmos em Grafos Busca em Largura (breadth-first search): Busca em Largura (breadth-first search): Dados um grafo G (V, A) e um vértice origem, o algoritmo de busca em largura descobre todos os vértices a uma distância k do vértice origem antes de descobrir qualquer vértice a uma distância k + 1. O grafo G (V, A) pode ser direcionado ou não direcionado.


Carregar ppt "Grafos – Parte 2 Projeto e Análise de Algoritmos Aline Vasconcelos"

Apresentações semelhantes


Anúncios Google