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

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

ESTRUTURA E REPRESENTAÇÃO

Apresentações semelhantes


Apresentação em tema: "ESTRUTURA E REPRESENTAÇÃO"— Transcrição da apresentação:

1 ESTRUTURA E REPRESENTAÇÃO
Prof. M.Sc. Fábio Francisco da Costa Fontes Março

2 Estrutura e Representação
As possíveis representações de um grafo incluem: Desenhos Tabelas de incidência Especificações formais Etc. Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado

3 Estrutura e Representação
A representação esquemática de um grafo não é adequada para fornecer a um computador dados sobre uma estrutura de grafo. Os dados relativos a um grafo precisarão sempre de uma representação numérica interna, com a qual o computador possa trabalhar.

4 Estrutura e Representação
A variedade, em termos de dimensão e de complexidade, dos problemas de grafos, tem levado à definição de diversas formas de representação que procuram, em alguns casos, atender a necessidades algébricas ou combinatórias e, em outros casos, a questões de busca ou armazenamento de carater essencialmente algorítmico.

5 Estrutura e Representação
Um aspecto importante na estrutura de um grafo é a sua formação a partir de grafos menores, chamados de sub-grafos As operações de acrescentar um vértice ou uma aresta, e remover um vértice ou aresta, fornecem um mecanismo para transformar qualquer grafo em outro

6 Estrutura e Representação
Em cima destas operações elementares são construídas outras camadas de algoritmos Além de desenhos, listas de adjacências e tabelas de incidência, as descrições possíveis de um grafo incluem diversos tipos de matrizes A matriz de incidência e a matriz de adjacência são duas representações clássicas de grafos

7 Representação por Matriz
Uma das formas mais simples de representar um grafo no computador é usando matrizes Representar grafos por matrizes permite usar as ferramentas da álgebra linear para tratar grafos Representações usuais: matriz de adjacência, matriz de incidência

8 Matriz de Adjacência Definição: A matriz de adjacência de um grafo simples G é uma matriz simétrica cujas linhas e colunas são indexadas pelos vértices de G, tal que: no caso de grafo não valorado u w x v

9 Matriz de Adjacência Definição: A matriz de adjacência de um dígrafo simples D é uma matriz cujas linhas e colunas são indexadas pelos vértices de D, tal que: u w x v

10 Matriz de Incidência Definição: a matriz de incidência de um grafo G é uma matriz m x n cujas linhas e colunas são indexadas por alguma ordenação dos vértices e arestas de G. v c f a b u e d h w x g

11 Listas de Incidência A matriz de adjacência e a matriz de incidência são compostas, em sua maior parte, por zeros É possível construir uma representação mais eficiente, no que diz respeito ao uso de memória Definição: Uma lista de incidência é uma tabela que lista, para cada vértice v, todos as arestas incidentes em v.

12 Listas de Incidência Uma desvantagem dessa representação é a necessidade de rotular todas as arestas do grafo Uma vantagem é a possibilidade de representar grafos gerais: v c f a b u e d h w x g

13 Listas de Adjacência Para grafos simples as listas de adjacências são uma representação mais eficiente que as matrizes de adjacência: v u w x

14 Exercícios Para o grafo abaixo, determine:
As matrizes de adjacência e de incidência As listas de adjacência e incidência v c f a b u e d h w x g

15 Exercícios 1-Construa a matriz de adjacência A deste grafo
2-Construa a matriz de incidência B deste grafo B C A D

16 Exercícios 3-Calcule o produto A². O que significam os números na diagonal? Explique porque isto acontece. 4-Calcule o produto B.Bt O que significa os números na diagonal? O que significa os números fora da diagonal? 5-Calcule o produto Bt.B

17 Matriz de Custo Um grafo valorado pode ser representado por uma matriz de custo w = {wij}, onde custo da aresta, se (vi, vj) pertence a A wij = ∞ caso (vi, vj) não pertence a A (ou seja, caso não exista aresta)

18 Matriz de Custo a2 2 a3 1 5 8 a a 4 1 2 3 4 5 8

19 Isomorfismo de Grafos Decidir quando dois desenhos de grafos representam o mesmo grafo é uma tarefa difícil Uma tarefa relacionada é a de decidir quando duas especificações diferentes de grafos são estruturalmente equivalentes Desenvolver um algoritmo para tomar estas decisões é um problema não resolvido Estruturalmente equivalentes: se eles tem o mesmo padrão de conexões 19

20 Isomorfismo de Grafos Nos grafos acima temos a tentação de dizer que eles são iguais. Mas verificamos que eles não são iguais pois os nós 1 e 2 são adjacentes no primeiro e não são no segundo grafo. Embora os grafos não sejam iguais, apresentam as mesmas propriedades estruturais: mesmo número de nós, mesmo número de arcos, mesmo conjunto de graus de nós, ambos os grafos são árvores com três nós. 3 2 1 2 3 1

21 Equivalência estrutural
A forma e o comprimento de uma aresta e a sua posição no espaço não fazem parte da especificação de um grafo Cada grafo tem infinitas representações espaciais 6 7 2 3 4 2 3 1 5 4 5 1 7 6 Dois desenhos diferentes do mesmo grafo

22 Equivalência estrutural
Como reconhecemos que os grafos abaixo são o mesmo grafo? Os vértices e arestas tem rótulos iguais Ambos têm 8 vértices e 12 arestas Cada par de vértices adjacentes em um grafo é adjacente no outro grafo 6 7 2 3 4 2 3 1 5 4 5 1 7 6

23 Equivalência estrutural
O conceito de isomorfismo vem formalizar exatamente a idéia de grafos que, apesar de não serem iguais, apresentam as mesmas propriedades estruturais.

24 Equivalência estrutural
Se os grafos não tiverem rótulos ou os rótulos forem diferentes a tarefa fica mais difícil s 1 2 u 4 3 w y v t 6 5 z 7 8 x

25 Equivalência estrutural
A especificação de um grafo G pode ser transformada na especificação de um grafo H pela seguinte função bijetora f nos rótulos dos vértices s 1 2 u 1 → s 5 → w 2 → t 6 → x 3 → u 7 → y 4 → v 8 → z 4 3 w y v t 6 5 z 7 8 x

26 Formalizando Equivalência
Definição: Seja G e H dois grafos simples. Uma bijeção de vértices f: VG →VH preserva adjacência se para cada par de vértices adjacentes u e v no grafo G, os vértices f(u) e f(v) são adjacentes no grafo H. Definição: f preserva não-adjacência se f(u) e f(v) forem não-adjacentes sempre que u e v forem não-adjacentes

27 Formalizando Equivalência
Definição: Uma bijeção de vértices f: VG →VH entre os conjuntos de vértices de dois grafos simples G e H preserva estrutura se ela preserva adjacência e não-adjacência. Para cada par de vértices em G: u e v são adjacentes em G então f(u) e f(v) são adjacentes em H u e v não são adjacentes em G então f(u) e f(v) não são adjacentes em H

28 Formalizando Equivalência
Definição: Dois grafos simples G e H são isomorfos, denotado por G  H, se existe uma preservação de estrutura f: VG →VH Essa função f entre os conjuntos de vértices de G e H é chamada de um isomorfismo entre G e H. Notação: freqüentemente escreve-se f: G →H para denotar f: VG →VH

29 Isomorfismo de Grafos A figura abaixo define um isomorfismo entre os dois grafos simples mostrados. Verifique que a função preserva a estrutura. a=f(0) b=f(1) a b 6 7 d=f(3) c=f(2) d c 2 3 f=f(5) e=f(4) 4 5 f e 1 g=f(6) h=f(7) g h

30 Isomorfismo de Grafos Fica mais fácil analisar a preservação da estrutura alterando-se os rótulos do segundo grafo 1 6 7 3 2 2 3 4 5 5 4 1 6 7

31 Isomorfismo de Grafos No exemplo abaixo, a função j → j+4 é bijetora e preserva adjacência, mas não é um isomorfismo. Por que? 1 2 5 6 Porque ela não preserva não-adjacência 3 4 7 31

32 Isomorfismo de Grafos No exemplo abaixo, a função j → j mod 2 preserva adjacência e não-adjacência, mas não é um isomorfismo. Por que? 2 1 Porque ela não é bijetora 1 32

33 Tipo Isomórfico A relação  “isomórfico a” é uma relação simétrica, transitiva e reflexiva, sendo assim um relação de equivalência. Definição: Cada classe de equivalência é chamada um tipo isomórfico. Os grafos abaixo representam os 4 tipos isomórficos de um grafo simples de 3 vértices Reflexiva: G é isomórfico a ele próprio Simétrica: se G é isomórfico a H, então H é isomórfico à G Transitiva: se F é isomórfico a G, e G é isomórfico à H, então F é isomórfico à H 33

34 Isomorfismo de Dígrafos
Definição: Dois dígrafos são isomórficos se existe um isomorfismo f entre seus grafos equivalentes que preserve a direção de cada aresta. Isto é, a aresta e é direcionada de u para v se e somente se f(e) é direcionada de f(u) para f(v). Dígrafos não-isomórficos

35 Isomorfismo por força bruta
A definição de isomorfismo implica que dois grafos são isomorfos se for possível ordenar seus vértices de forma que suas matrizes de adjacência sejam iguais a b u v AG = <u v w x> AH = <a d c b> c x w d G H

36 Isomorfismo por força bruta
Algoritmo: Teste força bruta para o isomorfismo de grafos função isomorfos(G,H) se |VG| ≠ |VH| então retorne 0 se as seqüências de graus não são iguais então Fixe uma ordenação para o grafo G Escreva a matriz de adjacência AG com esta ordenação para cada ordenação de vértices de H faça Escreva AH se AH=AG então retorne 1

37 O problema do Isomorfismo
Seria muito útil ter um algoritmo rápido para verificar se dois grafos quaisquer dados são isomorfos Dado uma bijeção de vértices, pode-se verificar se os grafos são isomorfos visitando todos os pares de vértices No entanto existem n! bijeções possíveis para verificar O algoritmo força bruta não funciona

38 O problema do Isomorfismo
O problema do isomorfismo é construir um algoritmo para decidir o isomorfismo de grafos, ou de provar que este algoritmo não existe. Aplicação: Disputa de patentes e espionagem industrial na indústria de chips e circuitos eletrônicos. Provar que um circuito é um mero rearranjo de outro circuito.

39 Exercícios Ache os tipos isomórficos dos grafos simples abaixo:
Uma árvore de 4 vértices Um grafo conectado de 4 vértices Uma árvore de 5 vértices Um grafo de 5 vértices com exatamente 3 arestas Um grafo de 6 vértices com exatamente 4 arestas

40 Exercícios Ache os tipos isomórficos dos dígrafos simples abaixo:
Um dígrafo simples com 4 vértices e 4 arcos Um dígrafo fortemente conectado de 3 vértices Um dígrafo simples de 3 vértices sem ciclos direcionados

41 Exercícios Ache uma bijeção de vértices que defina um isomorfismo entre os grafos abaixo: u v x w r s t z v -> r, w -> s, x -> t, u -> z 41

42 Exercícios Ache uma bijeção de vértices que defina um isomorfismo entre os grafos abaixo: u v s z v -> s, u -> z, x -> r, w -> t x w r t 42

43 Exercícios Ache uma bijeção de vértices que defina um isomorfismo entre os grafos abaixo: u v s z y q u -> z, v -> s, x -> q, w -> t, y -> r x w r t 43

44 Sub-grafos Propriedades de grafos são comumente determinadas pela existência ou não de certos tipos de sub-grafos: Um grafo é bipartido se e somente se ele não contém um sub-grafo que é um ciclo com número ímpar de vértices

45 Sub-grafos Um grafo pode ser desenhado no plano sem cruzamento de arestas se e somente se o grafo não contém um sub-grafo completo K5, nem um sub-grafo bipartido K3,3 K K3,3

46 Grafo Planar Grafos planares: Diz-se que um grafo é planar se for possível dispor seus vértices num plano de forma que não haja cruzamento de arestas.

47 Grafo Planar Pode-se então fazer uma associação entre um grafo planar e um mapa, onde cada região do mapa corresponde a um vértice e as fronteiras entre as regiões correspondem às arestas.

48 Grafo Planar Uma aplicação que utiliza o conceito de grafos planares é a disposição de circuitos impressos numa placa. Um circuito eletrônico pode ser considerado um grafo onde as junções são vértices e as arestas são os fios ligando as junções. Se o grafo correspondente ao circuito é planar, todos os fios podem ser gravados na própria placa. Se o grafo não é planar por causa de apenas uma aresta, esta é um fio normal que deve passar por cima da placa. Isto equivale a colocar esta aresta acima do plano contendo o restante do grafo:

49 Grafo Planar

50 Sub-grafos Definição: um sub-grafo de um grafo G é um grafo H cujos vértices e arestas estão todos em G. Se H é sub-grafo de G, também pode-se dizer que G é um super-grafo de H. Definição: um sub-dígrafo de um dígrafo G é um dígrafo H cujos vértices e arcos estão todos em G.

51 Sub-grafos Exemplos de uso do termo sub-grafo:
Um grafo com n vértices G é hamiltoniano se e somente se ele contém um sub-grafo isomórfico ao n-ciclo Cn. O grafo G abaixo tem entre seus sub-grafos um grafo B2 (Bouquet), um D3 (Dipole ou Bipolar) e um K3 K3 G B2 D3

52 Sub-grafo Gerador Um sub-grafo H é dito ser gerador de um grafo G se VH = VG u v u v u v x x x w z w z G H1 H2

53 Árvore Árvore é uma estrutura de dados que possui uma relação hierárquica entre seus elementos; • Árvore é um conjunto finito de um ou mais nós, onde um deles é denominado raiz e os demais, recursivamente, formam uma nova árvore (ou sub-árvore). Quando num determinado nível a sub-árvore tem um único nó (sem descendentes) ele é chamado de folha. A árvore da Figura 2.16 tem as seguintes folhas : D, E, G, H e I.

54 Árvore A árvore da Figura 2.16 tem as seguintes folhas : D, E, G, H e I.

55 Árvore Geradora Uma árvore geradora de um grafo é um sub-grafo gerador que é uma árvore.

56 Árvore Geradora Existem várias propriedades importantes de grafos com árvores geradoras: Um grafo é conectado se e somente se ele contém uma árvore geradora Todo sub-grafo acíclico de um grafo conectado G é contido em pelo menos uma árvore geradora de G Mais propriedades serão vistas no estudo de árvores

57 Cliques Definição: um subconjunto S de VG é chamado uma clique se todo par de vértices em S é ligado por pelo menos uma aresta, e nenhum super-conjunto de S tem essa propriedade. Cliques: {u,v,y} {u,x,y} {y,z} u v x y z

58 Cliques Clique ou grafo completo é um grafo, ou subgrafo, em que seus vértices são interligados ou adjacentes dois a dois; de forma que o caminho mais curto entre quaisquer dois vértices “v” e “w” é a aresta (v,w).

59 Conjunto Independente
Definição: Um sub-conjunto S de VG é um conjunto independente (independent set) se nenhum par de vértices de S é unido por uma aresta. Conjunto independente: {x,v,z} {u,z} u v x y z

60 Exercício 1 – Encontre nos grafos abaixo todas as cliques. u r x y v w
z u v w z x y r

61 Exercício 2 - Destaque nos grafos abaixo os conjuntos independentes. 1
3 4 5 6 7 1 2 3 4 5 6 7

62 Aplicação de Sub-grafos
Portar um algoritmo distribuído de uma arquitetura paralela para outra. Um algoritmo paralelo distribui as várias tarefas entre diferentes processadores. Suponha que um algoritmo foi projetado para trabalhar em uma arquitetura de 8x8 máquinas, ele pode ser portado para qualquer arquitetura que contenha um sub-grafo 8x8.

63 Operações com grafos A ciência da computação costuma tratar os grafos como variáveis. A configuração resultante da operação de adicionar ou remover um vértice ou aresta é considerada um novo valor de G. Estas operações primárias são partes do tipo de dado grafo.

64 Apagando Vértices ou Arestas
Definição: se v é um vértice de um grafo G, então o sub-grafo resultante G-v é o sub-grafo induzido pelo conjunto de vértices VG-{v}. VH = VG-v = VG – {v} EH = EG-v = {e  EG | v  endpts(e)} w u w v u G H

65 Apagando Vértices ou Arestas
Definição: se e é uma aresta de um grafo G, então o sub-grafo resultante G-e é o sub-grafo induzido pelo conjunto de arestas EG-{e}. VH = VG-e = VG EH = EG-e = EG - {e} v v u u w w G H

66 Acrescentando vértices e arestas
Definição: adicionar uma aresta entre dois vértices u e w de um grafo G significa criar um super-grafo, G U {e}, com conjunto de vértices VG e conjunto de arestas EG U {e}. v v u u w w e G H

67 Acrescentando vértices e arestas
Definição: adicionar um vértice v a um grafo G significa criar um super-grafo, G U {v}, com conjunto de vértices VG U {v} e conjunto de arestas EG. v G H


Carregar ppt "ESTRUTURA E REPRESENTAÇÃO"

Apresentações semelhantes


Anúncios Google