ESTRUTURA E REPRESENTAÇÃO

Slides:



Advertisements
Apresentações semelhantes
Grafos eulerianos 1.
Advertisements

Grafos Orientados (digrafos)
Planaridade 1.
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Representação de Grafos
Prof. M.Sc. Fábio Francisco da Costa Fontes Maio
Teoria dos Grafos – Aula 2
Teoria dos Grafos Loana Tito Nogueira.
Fluxo em Redes Prof. Ricardo R. Santos.
Grafos – Parte 2 Projeto e Análise de Algoritmos Aline Vasconcelos
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
Exercícios PAA- Grafos
Exercícios PAA- Grafos
CC/EC/Mestrado/UFES Teoria dos Grafos (INF 5037/INF2781) Grafos Orientados (digrafos)
CC/EC/PPGI/UFES 2010/1 Teoria dos Grafos (INF 5037/INF2781) Conceitos Básicos.
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
Percursos em um grafo 2010/1 Teoria dos Grafos (INF 5037/INF2781)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
Coloração Teoria dos Grafos (INF 5037/INF2781) 1.
Conceitos Básicos CC/EC/Mestrado Teoria dos Grafos.
Algumas classes especiais de grafo
Pesquisa em profundidade
Grafos Grafo G = (V, E) V — conjunto de vértices
CONCEITOS BÁSICOS DE GRAFOS
Conexidade e Conectividade
CONCEITOS BÁSICOS DE GRAFOS
Prof. M.Sc. Fábio Francisco da Costa Fontes Abril
GRAFOS EULERIANOS E HAMILTONIANOS
Árvores.
autômatos finitos com transições e
Grafos - Definições Preliminares - Formas de Representação
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
TENSÕES E CORRENTES EM CIRCUITOS TRIFÁSICOS BALANCEADOS Sistemas de potência são alimentados por geradores trifásicos. De maneira ideal, os geradores suprem.
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
Baseado em: The Algorithm Design Manual Steven S. Skiena
Algoritmos em Grafos.
Formas de representação e manipulação básica
Algoritmos em Grafos Conceitos principais Prof. André Renato
Grafos Árvores Geradoras.
Informática Teórica Engenharia da Computação
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Teoria dos Grafos Definições e Terminologia
Teoria dos Grafos Representação de Grafos e Isomorfismo
Exercícios PAA- Grafos
Algorítmos e estrutura de dados III
Histórico, exemplos e problemas
Operações com grafos União Exemplo
O problema do emparelhamento máximo
Teoria dos Grafos Coloração
Conceitos básicos em grafos
Campus de Caraguatatuba
Teoria dos Grafos Conceitos Preliminares
Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.
Conexidade 1.
Anjolina Grisi de Oliveira obs: muitos slides foram cedidos por Adolfo Almeida Duran (UFBA) 2005.
Aula de Monitoria – Miniprova
Profº: Éder Jânio Francisco Gomes.  Grafos são assim chamados por poderem ser representados graficamente  Existe uma única maneira de desenhar um grafo?
Faculdade Pernambucana - FAPE Setembro/2007


Mestrado em Informática
Exercícios de Fluxo em Redes
Celso C. Ribeiro Caroline T. Rocha
Grafos Anjolina Grisi de Oliveira 2005
Engenharia de Computação Mestrado em Informática
 Prof. Miguel Gabriel Prazeres de Carvalho 1. 2 Redes Sociais GPS Para o correio. Para Viajantes. Pesquisas Biológicas. Distribuição de Tarefas. Recomendações.
Grafos Prof. Miguel Gabriel Prazeres de Carvalho.
Transcrição da apresentação:

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

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

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.

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.

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

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

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

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

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

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

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.

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

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

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

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

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

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)

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

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

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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 K5 K3,3

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.

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.

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:

Grafo Planar

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.

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

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

Á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.

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

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

Á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

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

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).

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

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

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

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.

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.

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

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

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

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