Grafos - O que é um grafo? Algoritmos e Estruturas de Dados LEE 2013/14. Objecto abstracto Dois tipos de entidades. Vértices representam

Tamanho: px
Começar a partir da página:

Download "Grafos - O que é um grafo? Algoritmos e Estruturas de Dados LEE 2013/14. Objecto abstracto Dois tipos de entidades. Vértices representam"

Transcrição

1 Algoritmos e Estruturas de Dados LEE 2013/14 Teoria de Grafos e Algoritmos em Grafos 1ª Parte Grafos - O que é um grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices representam Cidades, pessoas, máquinas, números, etc Arestas representam Existência de ligações entre nós, valor da ligação entre nós, distância entre nós, etc 2

2 Grafos - Motivação Mapas caminhos mais curtos; caminhos mais baratos. Circuitos Eléctricos existência de curto-circuitos; existência de cruzamento entre ligações. Sequenciamento tarefas a executar por um conjunto de recursos sujeitas a restrições de carácter tecnológico. Emparelhamento processamento de imagem estéreo; atribuição de pessoas a lugares. Redes de dados computadores ligados entre si, enviando e recebendo mensagens; existência de ligação entre quaisquer nós; redundância. Estrutura de Programas grafos gerados por compiladores representando a estrutura de chamadas; 3 Grafos Definições (1) Definição Um grafo é um conjunto de vértices e um conjunto de arestas que ligam pares de vértices distintos (com nunca mais que uma aresta a ligar qualquer par de vértices). Definição Dois vértices ligados por uma aresta dizem-se adjacentes. Definição Uma aresta que ligue dois vértices diz-se incidente de cada um dos vértices. 4

3 Grafos Definições (2) Definição O número de arestas incidentes num vértice dizse o grau desse vértice. Definição O subconjunto de arestas e vértices a elas associados diz-se um sub-grafo do grafo original. Definição Uma sequência de vértices na qual os vértices sucessivos estão ligados por arestas do grafo diz-se um caminho. 5 Grafos Definições (3) Definição Num caminho simples os vértices e arestas são distintos. Definição Um caminho em que todos os vértices e arestas são distintos, excepto para o primeiro e último que são iguais, diz-se um ciclo. Definição Dois caminhos simples dizem-se disjuntos se não possuírem vértices comuns, excepto possivelmente para os vértices extremos. 6

4 Grafos Definições (4) Definição Um grafo diz-se ligado se existir um caminho de cada vértice para todos os outros vértices do grafo. Definição Um grafo que não seja ligado é constituído por componentes ligadas, que se dizem sub-grafos ligados máximos. Definição Um grafo ligado acíclico, i.e. sem ciclos, diz-se uma árvore. 7 Grafos Definições (5) Definição Um conjunto de árvores diz-se uma floresta. Definição A árvore de suporte de um grafo ligado é um subgrafo que contém todos os vértices e é uma árvore. Definição A floresta de suporte de um grafo é um sub-grafo que contém todos os seus vértices e é uma floresta. 8

5 Grafos Propriedades em árvores Um grafo G de V vértices é uma árvore se e só se satisfizer qualquer das seguintes condições: G tem V-1 arestas e nenhum ciclo. G tem V-1 arestas e é ligado. Existe apenas um caminho simples a unir quaisquer dois vértices. G é ligado mas retirando uma só aresta faz com que deixe de o ser. 9 Grafos Exemplos (1) G Os vértices 6 e 7 são adjacentes. Os vértices 4 e 6 não são adjacentes. O vértice 7 tem grau quatro. 10

6 Grafos Exemplos (2) G G é um sub-grafo de G, gerado a partir das arestas a cheio. O vértice 5 não pertence a G. G é um grafo ligado; G não é. O sub-grafo G é constituído por um grafo completo com três vértices e por uma árvore com quatro vértices 11 Grafos Exemplos (3) G G Caminho: Ciclo:

7 Grafos Exemplos (4) G G : árvore de suporte de G. 13 Grafos - Definições e Propriedades (1) Definição Um grafo diz-se completo quando existe uma aresta ligando qualquer par de vértices. Propriedade Um grafo com V vértices possui, no máximo, V(V-1)/2 arestas. Definição Um grafo G diz-se complemento do grafo G quando se obtém a partir de um grafo completo com o mesmo número de vértices de G, retirando-lhe todas as arestas de G. 14

8 Grafos - Definições e Propriedades (2) Definição Um grafo que possua um número de arestas próximo do número máximo diz-se denso. Definição Um grafo cujo complemento seja denso diz-se esparso. Definição Densidade de um grafo: 2E/V, em que E é o número de arestas e V o de vértices. Definição A um sub-grafo completo dá-se o nome de clique. 15 Grafos - Definições e Propriedades (3) Definição Um grafo que possua a propriedade de ser possível dividir os vértices em dois conjuntos tais que todas as arestas apenas ligam vértices de um conjunto a vértices do outro conjunto diz-se bipartido. Definição Quando existe um sentido atribuído às arestas, os grafos dizem-se direccionados, dirigidos ou digrafos. Definição O primeiro vértice de uma aresta direccionada diz-se fonte e o segundo diz-se destino. 16

9 Grafos - Definições e Propriedades (4) Propriedade Apenas os vértices destino são adjacentes dos vértices fonte. Definição Um ciclo direccionado num digrafo é um ciclo em que todos os pares de vértices adjacentes surgem pela ordem especificada pelas arestas. Definição Um digrafo sem ciclos direccionados diz-se grafo direccionado acíclico, ou DAG (Directed Acyclic Graph). 17 Grafos - Definições e Propriedades (5) Definição Quando se atribuem pesos às arestas, representando custo, distância, etc., diz-se que o grafo é ponderado. Também é possível atribuir pesos aos próprios vértices, ou a pares vértice/aresta. Definição Grafos ponderados direccionados, dizem-se redes. 18

10 Grafos - Interface ADT para Grafos (1) Os algoritmos para processamento de grafos serão desenvolvidos no contexto de uma ADT que define as tarefas de interesse. A nossa primeira interface elementar é tal que: O número de vértices e arestas são especificados por inteiros; Uma aresta é definida por um par de inteiros, designando os vértices que une; O número de vértices é limitado superiormente. Esta interface irá sendo alargada à medida das necessidades. 19 Grafos - Interface ADT para Grafos (2) typedef struct edge Edge; Edge *EDGE(int, int); typedef struct graph Graph; Graph *GRAPHinit(int); void GRAPHinsertE(Graph *G, Edge*); void GRAPHremoveE(Graph *G, Edge*); int GRAPHedges(Edge a[], Graph *G); Graph *GRAPHcopy(Graph G*); void GRAPHdestroy(Graph G*); Graphinit cria grafo com o número final de vértices, sem arestas. GraphinsertE insere uma aresta, caso não exista. GraphremoveE retira uma aresta, caso exista. Graphedges conta o número de arestas. Graphcopy cria uma segunda cópia do grafo. Graphdestroy faz o inverso de Graphinit. 20

11 Grafos - Matriz de Adjacências (1) Matriz de Adjacências Matriz (VxV) de valores booleanos; A entrada correspondente à linha v e coluna w é 1 se existir uma aresta ligando estes dois vértices; A mesma entrada vale 0 caso contrário; A matriz é simétrica, excepto para digrafos, em que poderá não sê-lo. 22 Grafos - Matriz de Adjacências (2) Grafo Matriz G Matriz V V simétrica 23

12 Grafos - Implementação de ADT (1) #include <stdlib.h> #include GRAPH.h struct graph {int V; int E; int **adj;}; struct edge {int v; int w;}; Graph *GRAPHinit(int V) { Graph *G = (Graph*) malloc(sizeof(struct graph)); G->V = V; G->E = 0; G->adj = MATRIXint(V, V, 0); return G; } void GRAPHinsertE(Graph *G, Edge *e){ int v = e->v, w = e->w; if (G->adj[v][w] == 0) G->E++; G->adj[v][w] = 1; G->adj[w][v] = 1; } 24 Grafos - Implementação de ADT (2) void GRAPHremoveE(Graph *G, Edge *e) { int v = e->v, w = e->w; if (G->adj[v][w] == 1) G->E--; G->adj[v][w] = 0; G->adj[w][v] = 0; } int GRAPHedges(Edge a[], Graph G*) { int v, w, E = 0; } for (v = 0; v < G->V; v++) for (w = v+1; w < G->V; w++) if (G->adj[v][w] == 1) a[e++] = EDGE(v, w); return E; 25

13 Grafos Síntese da Aula 1 Introdução Definição de grafo Motivação aplicacional Definições e notação Propriedades elementares em grafos Exemplos Definições e propriedades Grafos completos, complemento de um grafo, densidade, cliques, grafos bipartidos, grafos direccionados, ciclos em grafos direccionados, grafos ponderados, redes. Estrutura abstracta de dados para grafos Interface elementar Representação de um grafo Matriz de adjacências 26 Grafos - Listas de Adjacências (1) Listas de Adjacências Cada vértice possui uma lista ligada; Os elementos constituintes da lista de um vértice são os seus vértices adjacentes; Em grafos simples, se os vértices v e w são adjacentes, então w pertence à lista de v e v pertence à lista de w. 27

14 Grafos - Lista de Adjacências (2) Grafo Lista de Adjacências G * V ponteiros para lista 28 Tabela com V listas* de arestas Grafos - Implementação de ADT (1) #include <stdlib.h> #include GRAPH.h typedef struct node link; struct node {int v; link *next;}; struct graph{int V; int E; link **adj;}; link NEW(int v, link *next) { link *x = (link *) malloc(sizeof(struct node)); x->v = v; x->next = next; return x; } 29

15 Grafos - Implementação de ADT (2) Graph GRAPHinit(int V) { int v; Graph *G = (Graph*) malloc(sizeof(struct graph)); G->V = V; G->E = 0; G->adj = (link **) malloc(v * sizeof(link*)); for (v = 0; v < V; v++) G->adj[v] = NULL; return G; } void GRAPHinsertE(Graph *G, Edge *e) { int v = e->v, w = e->w; G->adj[v] = NEW(w, G->adj[v]); G->adj[w] = NEW(v, G->adj[w]); G->E++; } 30 Grafos - Implementação de ADT (3) void GRAPHremoveE(Graph *G, Edge *e) { /* Fica como exercício */ } int GRAPHedges(Edge a[], Graph *G) { int v, E = 0; link t; } for (v = 0; v < G->V; v++) for (t = G->adj[v]; t!= NULL; t = t->next) if (v < t->v ) a[e++] = EDGE(v, t->v); return E; 31

16 Grafos - Vantagens das M. de Adj. Representação de eleição quando há espaço disponível; os grafos são densos; os algoritmos requerem mais que V 2 operações. Adição e remoção de arestas é feita de forma eficiente; É fácil evitar a existência de arestas paralelas; É fácil determinar se dois vértices estão ou não ligados. 32 Grafos - Inconvenientes das M. de Adj. Grafos esparsos de grande dimensão requerem espaço de memória proporcional a V 2 ; Neste casos, a simples inicialização do grafo (proporcional a V 2 ) pode ser dominante na execução global do algoritmo; Pode nem sequer existir memória suficiente para armazenar a matriz. 33

17 Grafos - Vantagens das L. de Adj. Inicialização é proporcional a V. Utiliza sempre espaço proporcional a V+E adequado para grafos esparsos. algoritmos que assentem na análise de arestas em grafos esparsos. Adição de arestas é feita de forma eficiente. 34 Grafos - Inconvenientes das L. de Adj. Arestas paralelas e adjacência entre vértices requer que se pesquise as listas de adjacências, o que pode levar um tempo proporcional a V. Remoção de arestas pode levar um tempo proporcional a V (este problema pode ser contornado). Não aconselhável para grafos de grande dimensão que não podem ter arestas paralelas; grande utilização de remoção de arestas. 35

18 Grafos - Variantes e Extensões (1) Outros tipos de grafos Digrafos ambas facilmente extensíveis; arestas representadas só uma vez; Grafos ponderados e redes M. de Adj. preenchida com pesos; L. De Adj. com campos extra para representação dos pesos. 36 Grafos - Variantes e Extensões (2) Alteração da estrutura de dados Tipo EDGE contendo informação adicional, para além dos vértices que liga. Vectores indexados pelos vértices Manutenção da informação do grau do vértice. Vector de arestas Forma alternativa de representação de grafos. 37

19 Grafos - Representações alternativas Três mecanismos básicos de representação de grafos Vector de arestas; Matriz de adjacências; Listas de adjacências. Produzem diferentes desempenhos ao nível das operações de manipulação. Escolha deverá depender do problema a resolver. 38 Grafos Desempenho Relativo V. de Arestas M. de Adj. L. de Adj. Espaço E V 2 V+E Inicialização 1 V 2 V Cópia E V 2 E Destruição 1 V E Inserir aresta Encontrar aresta E 1 V Remover aresta E 1 V Vértice isolado? E V 1 Caminho de u a v? Elg*V V 2 V+E 39

20 Grafos - Encontrar e remover arestas (1) Eficientes em representações por matriz de adjacências. Como torná-las eficientes para as outras representações? Atribuir um símbolo inteiro a cada aresta Aresta v-w fica com o símbolo v*v+w. Por exemplo, fazer uso de tabelas de dispersão ( hash-tables ) Quando uma aresta é inserida, é fácil testar se o símbolo já foi usado. 40 Grafos - Encontrar e remover arestas (2) Remoção em digrafos ponteiro na tabela de dispersão para a sua representação na lista de adjacências; requer listas duplamente ligadas. Remoção em grafos simples colocação de ambos os ponteiros na tabela de dispersão; ou ponteiro entre os vértices. 41

21 Grafos Procura (1) Algumas propriedades simples em grafos são fáceis de determinar, independentemente da ordem pela qual se examinam as arestas. Ex: grau de todos os vértices. Outras propriedades estão associadas a caminhos, pelo que se torna necessário identificá-las através de pesquisa feita de vértice em vértice ao longo das arestas. A maioria dos algoritmos em grafos que consideraremos usam este modelo abstracto básico. Torna-se então necessário analisar o essencial dos algoritmos de procura em grafos e suas propriedades estruturais. 43 Grafos Procura (2) Procurar em grafos é equivalente a percorrer labirintos Necessário marcar pontos já visitados Ser-se capaz de recuar, num caminho efectuado, até ao ponto de partida. Os vários algoritmos de procura em grafos mais não fazem que executar uma determinada estratégia de procura em labirintos. Procura em profundidade primeiro (DFS Depth-first-search ). Admite duas implementações: recursiva e com uso de pilha explícita. Substituindo a pilha por uma fila FIFO, transforma-se em procura em largura primeiro (BFS Breadth-first-search ). 44

22 Grafos Exploração de labirintos (1) Teseu, Ariadne e o seu pequeno problema com o Minotauro Desenrolar um rolo de fio para poder voltar ao princípio Marcar os lugares já visitados para evitar repetição. Nós e os grafos Existem lâmpadas, inicialmente apagadas, em cada encruzilhada vértice. Cada corredor aresta possui um par de portas, inicialmente fechadas, no início e no fim deste. As portas têm janelas que nos permitem ver se a porta do lado oposto está ou não fechada e se a luz da encruzilhada correspondente está ou não acesa. O objectivo é regressar à encruzilhada inicial tendo aberto todas as portas e acendido todas as luzes. Necessitamos um conjunto de regras que garanta que tal acontece. 45 Grafos Exploração de labirintos (2) Estratégia Exploração de Tremaux 1. Abrir uma qualquer porta que esteja fechada e dê acesso a uma saída da presente encruzilhada (deixá-la aberta). Se todas as portas estiverem abertas, saltar para Se a partir da porta que foi aberta for visível que a encruzilhada em que o corredor termina foi acesa, abrir outra porta (passo 1). Caso contrário (a encruzilhada está às escuras), seguir o corredor, desenrolando o fio, até essa encruzilhada, acender a luz e voltar ao passo Se todas as portas estão abertas na presente encruzilhada, verificar se é a primeira visitada. Se sim, parar. Se não, usar o fio para recuar até à última encruzilhada visitada e voltar ao passo 1. 46

23 Grafos Exemplo de execução (DFS) 0 2 Chegados No Neste Acende Escolhe Recua vértice vértice até a uma luz ao 40 5 já vértice no todas ainda último (4), estão não primeiro portas a única há 1, e não todas portas continua vértice há as que por mais conduzem e que portas seguindo abre dá abrir. ainda portas acesso a abertas, primeira possui a em por a abrir, pelo pontos frente corredores portas que pelo (do enquanto por não tem que vértice abrir. que visitados que inicia dão não 0 para o levanos o houver acesso vértice para a escolha. vértices o de 2) a recuar. e recuo. segue de 7. em luz processo continuar frente acesa. abrindo sempre a única porta existente (até ao vértice 4) Grafos Estratégia de Tremaux Propriedade Quando se usa a estratégia de exploração de labirintos de Tremaux abrem-se todas as portas, acendem-se todas as luzes e termina-se no local de partida. Demonstração (esboço): Prova-se por indução, mostrando primeiro ser verdade para um labirinto com apenas uma encruzilhada e nenhum corredor basta acender a única luz. Para um labirinto com mais que uma encruzilhada assume-se ser verdade para todos os labirintos menores com menos encruzilhadas. Bastará mostrar que se visitam todas as intersecções, dado que se abrem todas as portas de cada uma delas. Considere-se o primeiro corredor tomado. O grafo fica dividido em dois sub-grafos: as intersecções que se visitam sem regressar à origem; e as que só são visitáveis regressando ao ponto de partida. 58

24 Grafos DFS Notar que a estratégia de procura de Tremaux, mais não é que procura em profundidade primeiro. O algoritmo procede sempre abrindo uma porta e afastandose da origem, até que chega a um ponto em que não pode abrir mais portas, tendo então que recuar até ao último ponto onde deixou, pelo menos, uma porta por abrir. Se ao recuar nunca encontrar portas por abrir, acabará regressando ao ponto de partida, dado que o fio que desenrolou no caminho descendente, lhe permite esse regresso. 59 Grafos Síntese da Aula 2 Representação de um grafo Listas de adjacência; Implementações da estrutura abstracta de dados Comparação das representações alternativas Vantagens e inconvenientes das matrizes de adjacência; Vantagens e inconvenientes das listas de adjacência Variantes e extensões Grafos direccionados, ponderados e redes; Outras representações Comparação das representações alternativas Memória e tempo de execução Procura em grafos Analogia com a exploração de labirintos; Estratégia de Tremaux Procura em profundidade - DFS Exemplo de execução 60

Grafos - O que é um grafo? Algoritmos e Estruturas de Dados MEEC 2012/13. Objecto abstracto Dois tipos de entidades. Vértices representam

Grafos - O que é um grafo? Algoritmos e Estruturas de Dados MEEC 2012/13. Objecto abstracto Dois tipos de entidades. Vértices representam Algoritmos e Estruturas de Dados MEEC 01/1 Teoria de Grafos e Algoritmos em Grafos 1ª Parte Grafos - O que é um grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices

Leia mais

AED Algoritmos e Estruturas de Dados LEEC /2007. Teoria de Grafos e Algoritmos em Grafos

AED Algoritmos e Estruturas de Dados LEEC /2007. Teoria de Grafos e Algoritmos em Grafos AED Algoritmos e Estruturas de Dados LEEC - 2006/2007 Teoria de Grafos e Algoritmos em Grafos Grafos - O que éum grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices

Leia mais

Grafos - O que é um grafo? Algoritmos e Estruturas de Dados LEE 2014/15. Algoritmos e Estruturas de Dados - C. Teoria de Grafos e Algoritmos em Grafos

Grafos - O que é um grafo? Algoritmos e Estruturas de Dados LEE 2014/15. Algoritmos e Estruturas de Dados - C. Teoria de Grafos e Algoritmos em Grafos Algoritmos e Estruturas de Dados LEE / Teoria de Grafos e Algoritmos em Grafos Grafos - O que é um grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices representam

Leia mais

Representações de Grafos

Representações de Grafos Representações de Grafos Teoria dos Grafos 1 É possível diversas representações dos grafos. Vamos estudar as três utilizadas mais comumente: as matrizes de adjacência, as listas de adjacência e as multilistas

Leia mais

Caminhos em Grafos. Grafos - Caminho Simples (1) (Cliente para M. de Adj.) static int visited[maxv];

Caminhos em Grafos. Grafos - Caminho Simples (1) (Cliente para M. de Adj.) static int visited[maxv]; Caminhos em rafos Caminho simples Dados dois vértices num grafo, saber se estão ligados por um caminho; Determinar se o caminho existe ou calculá-lo explicitamente; Caminho de Hamilton Dados dois vértices

Leia mais

Na última aula... Algoritmos em Grafos 1º sem / 80

Na última aula... Algoritmos em Grafos 1º sem / 80 Na última aula... Algoritmos em Grafos 1º sem 01 1 / 80 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 0 e t = 1 a resposta

Leia mais

Na última aula... Procurando um caminho. Certificados. Procurando um caminho

Na última aula... Procurando um caminho. Certificados. Procurando um caminho Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Na última aula... Exemplo: para s = e t = a resposta é SIM Algoritmos em Grafos º sem / Procurando

Leia mais

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22

Análise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22 Análise e Síntese de Algoritmos Algoritmos em Grafos CLRS, Cap. 22 Mudança no Horário Aulas Teóricas de 4ª feira 10:30 12:00 Sala: FA1 12:00 13:30 Sala: FA1 Deixa de haver aula teórica às 9:00 por troca

Leia mais

Teoria dos Grafos Aula 6

Teoria dos Grafos Aula 6 Teoria dos Grafos Aula 6 Aula passada Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Aula de hoje BFS implementação Complexidade Busca em profundidade (DFS) Conectividade, componentes

Leia mais

Melhores momentos AULA 4

Melhores momentos AULA 4 Melhores momentos AULA 4 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 0 e t = 1 a resposta é SIM 2 1 0 4 3 5 Procurando

Leia mais

Na última aula... Algoritmos em Grafos 1º sem / 1

Na última aula... Algoritmos em Grafos 1º sem / 1 Na última aula... Algoritmos em Grafos 1º sem 01 1 / 1 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 0 e t = 1 a resposta

Leia mais

Na última aula... Procurando um caminho. Certicados. Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t

Na última aula... Procurando um caminho. Certicados. Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = a resposta é SIM Na última aula... Algoritmos em Grafos º sem / Procurando

Leia mais

03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II

03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II 03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF Estruturas de Dados Avançadas Grafos //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso conhecido 7 Euler: pontes de Königsberg //8 DI, PUC-Rio Estruturas de Dados Avançadas. Primeiro uso

Leia mais

Grafos COM11087-Tópicos Especiais em Programação II

Grafos COM11087-Tópicos Especiais em Programação II Grafos COM11087-Tópicos Especiais em Programação II edmar.kampke@ufes.br Introdução Grafos são estruturas muito estudadas na Ciência da Computação para modelagem de problemas Euler (1736) em Königsberg

Leia mais

AULA 4. Procurando um caminho. Melhores momentos. Certicados. Certicado de inexistência

AULA 4. Procurando um caminho. Melhores momentos. Certicados. Certicado de inexistência Melhores momentos Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = a resposta é SIM AULA 3 Procurando um caminho Certicados

Leia mais

Melhores momentos AULA 4

Melhores momentos AULA 4 Melhores momentos AULA Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 0 e t = 1 a resposta é SIM 1 0 3 5 Procurando um

Leia mais

Calculando distâncias

Calculando distâncias Calculando distâncias Problema: dados um digrafo G e um vértice s, determinar a distância de s aos demais vértices do digrafo Exemplo: para s = v 3 5 dist[v] 3 3 5 Algoritmos em Grafos º sem / Busca em

Leia mais

Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina

Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina Grafos: Busca SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina Percorrendo um grafo Percorrendo um Grafo Percorrer um grafo é um problema fundamental Deve-se ter uma forma sistemática

Leia mais

Algoritmos e Estruturas de Dados. Grafos Semestre de Inverno 13/14

Algoritmos e Estruturas de Dados. Grafos Semestre de Inverno 13/14 Algoritmos e Estruturas de Dados Grafos Semestre de Inverno 13/14 1 Grafo - Definição } Um grafo G=(V,E) é um par de dois conjuntos não vazios em que V é um conjunto finito e E é uma relação binária em

Leia mais

Fluxos em redes: o Problema do Fluxo máximo

Fluxos em redes: o Problema do Fluxo máximo 1 Fluxos em redes: o Problema do Fluxo máximo Instância: uma rede (G, c) e vértices s e t G = (V, E) um grafo dirigido s e t V são dois vértices distinguidos c: E R 0 é uma função capacidade nas arestas

Leia mais

Análise e Síntese de Algoritmos

Análise e Síntese de Algoritmos Análise e Síntese de Algoritmos Algoritmos Elementares em Grafos [CLRS, Cap. 22] 24/25 Contexto Revisão [CLRS, Cap.-3] Fundamentos; notação; exemplos Algoritmos em Grafos [CLRS, Cap.2-26] Algoritmos elementares

Leia mais

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32 Grafos - Introdução Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/2015 1 / 32 Conceito Definição de Grafo Formalmente, um grafo é: Um conjunto de nós/vértices (V).

Leia mais

Teoria dos Grafos Aula 5

Teoria dos Grafos Aula 5 Teoria dos Grafos Aula Aula passada Explorando grafos Mecanismos genéricos Ideias sobre BFS, DFS Aula de hoje Busca em grafos Busca em largura (BFS Breadth First Search) Propriedades Busca em Grafos Problema

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Aplicações de grafos grafo vértices arestas Cronograma tarefas restrições de preferência Malha viária interseções

Leia mais

Algoritmos e Estruturas de Dados LEE 2013/14. Teoria de Grafos e Algoritmos em Grafos 2ª Parte

Algoritmos e Estruturas de Dados LEE 2013/14. Teoria de Grafos e Algoritmos em Grafos 2ª Parte Algoritmos e Estruturas de Dados LEE / Teoria de rafos e Algoritmos em rafos ª Parte rafos DFS Notar que a estratégia de procura de Tremaux, mais não é que procura em profundidade primeiro. O algoritmo

Leia mais

Algoritmos e Estruturas de Dados LEE 2015/16. Teoria de Grafos e Algoritmos em Grafos 2ª Parte

Algoritmos e Estruturas de Dados LEE 2015/16. Teoria de Grafos e Algoritmos em Grafos 2ª Parte Algoritmos e Estruturas de Dados LEE / Teoria de rafos e Algoritmos em rafos ª Parte rafos DFS Notar que a estratégia de procura de Tremaux, mais não é que procura em profundidade primeiro. O algoritmo

Leia mais

Melhores momentos AULA 12

Melhores momentos AULA 12 Melhores momentos AULA Calculando distâncias Problema: dados um digrafo G e um vértice s, determinar a distância de s aos demais vértices do digrafo Exemplo: para s = v 3 5 dist[v] 3 3 5 Busca em largura

Leia mais

Melhores momentos AULA 1

Melhores momentos AULA 1 Melhores momentos AULA Digrafos digrafo = de vértices e conjunto de arcos arco = par ordenado de vértices Exemplo: v e w são vértices e v-w é um arco b d a f c e Especicação Digrafos podem ser especicados

Leia mais

AED2 - Aula 22 Busca em largura, cálculo de distâncias

AED2 - Aula 22 Busca em largura, cálculo de distâncias AED2 - Aula 22 Busca em largura, cálculo de distâncias Relembrando a busca genérica, usando um versão alternativa: marque todos os vértices como não encontrados. marque s como encontrado. coloque s no

Leia mais

Estruturas de Dados Grafos

Estruturas de Dados Grafos Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:

Leia mais

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos

Estrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.

Leia mais

grafo nós vértices arcos arestas

grafo nós vértices arcos arestas GRAFOS E APLICAÇÕES 1. INTRODUÇÃO 1) Um grafo G = (V, E) consiste num conjunto de nós (ou vértices) V e num conjunto de arcos (ou arestas) E. Cada arco é representado por um par de nós. No seguinte exemplo,

Leia mais

Pesquisa em Grafos. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/ / 33

Pesquisa em Grafos. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/ / 33 Pesquisa em Grafos Pedro Ribeiro DCC/FCUP 2014/2015 Pedro Ribeiro (DCC/FCUP) Pesquisa em Grafos 2014/2015 1 / 33 Pesquisa em Grafos Uma das tarefas mais importantes é saber percorrer um grafo, ou seja

Leia mais

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes

Grafos: Busca. Algoritmos e Estruturas de Dados 2. Graça Nunes Grafos: Busca Algoritmos e Estruturas de Dados Graça Nunes Percorrendo um grafo Percorrendo um Grafo Percorrer um grafo é uma tarefa fundamental Pense no caso de se procurar uma certa informação associada

Leia mais

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações? 8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações

Leia mais

PAA-DCC-UFAM. Grafos. Universidade Federal do Amazonas Departamento de Eletrônica e Computação

PAA-DCC-UFAM. Grafos. Universidade Federal do Amazonas Departamento de Eletrônica e Computação Grafos Universidade Federal do Amazonas Departamento de Eletrônica e Computação Grafos () Um grafo é composto por um conjunto de vértices e um conjunto de arestas Cada aresta liga dois vértices do grafo

Leia mais

Grafos tipo abstrato de dados

Grafos tipo abstrato de dados Algoritmos e Estruturas de Dados II Grafos tipo abstrato de dados Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M. Bueno 1 Tipo Abstrato de Dados Última aula: TAD grafo? 2 Tipo

Leia mais

Matemática Discreta 10

Matemática Discreta 10 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas

Leia mais

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação

UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação UNIVERSIDADE DE SÃO PAULO INSTITUTO DE CIÊNCIAS MATEMÁTICAS E DE COMPUTAÇÃO Departamento de Ciências de Computação SCC-203 ALGORITMOS E ESTRUTURAS DE DADOS II Prova - Gabarito Nome: Nro. USP ) O matemático

Leia mais

BCC204 - Teoria dos Grafos

BCC204 - Teoria dos Grafos BCC204 - Teoria dos Grafos Marco Antonio M. Carvalho (baseado nas notas de aula do prof. Haroldo Gambini Santos) Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal

Leia mais

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas

Leia mais

CAL ( ) MIEIC/FEUP Grafos: Introdução (Março, 2011)

CAL ( ) MIEIC/FEUP Grafos: Introdução (Março, 2011) 1 Algoritmos em Grafos: Introdução R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes CAL, MIEIC, FEUP Março de 2011 Índice 2 Revisão de conceitos e definições Exemplificar aplicações Representação

Leia mais

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres ESTRUTURA DE DADOS Árvores, árvores binárias e percursos Cristina Boeres 2 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos árvore genealógica diagrama hierárquico de uma

Leia mais

Aula 08. Estruturas de dados Árvore e Grafo

Aula 08. Estruturas de dados Árvore e Grafo Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas

Leia mais

Conjuntos disjuntos. Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida

Conjuntos disjuntos. Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida Conjuntos disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura de dados simples (vector) implementação rápida Desempenho análise complicada Uso problemas de grafos equivalência

Leia mais

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches

CT-234. Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches CT-2 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-2 8) Algoritmos em grafos Conceitos básicos, representações, explorações sistemáticas Definição

Leia mais

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Aula -Grafos Uma figura vale por mil palavras A representação de dados e ou informações utilizando de recursos visuais é, em muitos casos,

Leia mais

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados

Leia mais

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados

Leia mais

Grafos Procura (1) AED (IST/DEEC) 44. Grafos Procura (2) Procurar em grafos é equivalente a percorrer labirintos

Grafos Procura (1) AED (IST/DEEC) 44. Grafos Procura (2) Procurar em grafos é equivalente a percorrer labirintos rafos Procura () Algumas propriedades simples em grafos são fáceis de determinar, independentemente da ordem pela qual se examinam as arestas. Ex: grau de todos os vértices. Outras propriedades estão associadas

Leia mais

INF 1010 Estruturas de Dados Avançadas

INF 1010 Estruturas de Dados Avançadas INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Algoritmo de Dijkstra 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 8 8

Leia mais

Problemas de Fluxo em Redes

Problemas de Fluxo em Redes CAPÍTULO 7 1. Conceitos fundamentais de grafos Em muitos problemas que nos surgem, a forma mais simples de o descrever, é representá-lo em forma de grafo, uma vez que um grafo oferece uma representação

Leia mais

CAL ( ) MIEIC/FEUP Estruturas de Dados ( )

CAL ( ) MIEIC/FEUP Estruturas de Dados ( ) Conjuntos Disjuntos R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes FEUP, MIEIC, CPAL, 2010/2011 1 Conjuntos Disjuntos Objectivo resolver eficientemente o problema da equivalência estrutura

Leia mais

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher

TGR BCC Representação Computacional de Grafos. Prof. Ricardo José Pfitscher TGR BCC Representação Computacional de Grafos Prof. Ricardo José Pfitscher Cronograma Representação Matriz de djacências Lista de djacências Matriz de Incidências Representação Como podemos representar

Leia mais

Grafos. Marcelo K. Albertini. 22 de janeiro de 2015

Grafos. Marcelo K. Albertini. 22 de janeiro de 2015 Grafos Marcelo K. Albertini 22 de janeiro de 205 2/ Grafo Um conjunto de vértices conectados em pares por arestas. Porque estudar grafos? Muitas aplicações Abstração útil e interessante Muitos algoritmos

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Grafos Conceitos gerais e representações Algoritmos em grafos Exploração sistemática em largura Caminhos

Leia mais

Teoria dos Grafos Aula 3

Teoria dos Grafos Aula 3 Teoria dos Grafos Aula 3 Aula passada Exemplo (mapas) Definições Algumas propriedades Aula de hoje Representando grafos Matriz e lista Comparando tempos de acesso Grafo G=(V, E) Grafo V = conjunto de vértices

Leia mais

Busca em Largura. Adaptado de Humberto C. B. Oliveira

Busca em Largura. Adaptado de Humberto C. B. Oliveira Busca em Largura Adaptado de Humberto C. B. Oliveira Últimas aulas Introdução: História Aplicações Conceitos Básicos: Grafo simples Grafo completo/vazio Grafo não orientado: Arestas laço Arestas paralelas

Leia mais

Grafos Caminhos mais curtos

Grafos Caminhos mais curtos rafos Caminhos mais curtos Cada caminho num digrafo ponderado possui um peso -a soma dos pesos das arestas que o constituem. Esta característica origina directamente problemas como: determinar o caminho

Leia mais

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado AULA 11 PROJETO E ANÁLISE DE ALGORITMOS Conceitos básicos e representação de grafos Karina Valdivia Delgado Roteiro Motivação Conceitos básicos Representação Motivação Um grafo é uma abstração que permite

Leia mais

Grafos: algoritmos de busca

Grafos: algoritmos de busca busca em grafos como caminhar no grafo de modo a percorrer todos os seus vértices evitando repetições desnecessárias do mesmo vértice? e por onde começar? solução: necessidade de recursos adicionais que

Leia mais

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA

Doutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo

Leia mais

Listas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I

Listas (Parte 1) Túlio Toffolo  BCC202 Aula 09 Algoritmos e Estruturas de Dados I Listas (Parte 1) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 09 Algoritmos e Estruturas de Dados I Ementa do Curso Tipos Abstratos de Dados / Alocação Dinâmica Análise de Algoritmos

Leia mais

Melhores momentos AULAS 1-8

Melhores momentos AULAS 1-8 Melhores momentos AULAS 1-8 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = 1 a resposta é SIM 2 1 4 3 5 Procurando

Leia mais

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron

Leia mais

GRAFOS E DIGRAFOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

GRAFOS E DIGRAFOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos GRAFOS E DIGRAFOS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos GRAFOS Definições Representação Algoritmos Busca Inserção (arestas e vértices) Exclusão (arestas e vértices) 1 4 5 6 GRAFOS Grafos

Leia mais

GRAFOS Aula 05 Algoritmos de percurso: busca em largura e profundidade Max Pereira

GRAFOS Aula 05 Algoritmos de percurso: busca em largura e profundidade Max Pereira Ciência da Computação GRAFOS Aula 05 Algoritmos de percurso: busca em largura e profundidade Max Pereira Busca em Largura (Breadth-First Search) Um dos algoritmos mais simples para exploração de um grafo.

Leia mais

05 Grafos: ordenação topológica SCC0503 Algoritmos e Estruturas de Dados II

05 Grafos: ordenação topológica SCC0503 Algoritmos e Estruturas de Dados II 05 Grafos: ordenação topológica SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr.

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

Leia mais

Grafos Parte 1. Aleardo Manacero Jr.

Grafos Parte 1. Aleardo Manacero Jr. Grafos Parte 1 Aleardo Manacero Jr. Uma breve introdução Grafos são estruturas bastante versáteis para a representação de diversas formas de sistemas e/ou problemas Na realidade, árvores e listas podem

Leia mais

SCC-210 Algoritmos Avançados. Capítulo 9 Grafos. Adaptado por João Luís G. Rosa

SCC-210 Algoritmos Avançados. Capítulo 9 Grafos. Adaptado por João Luís G. Rosa SCC-21 Algoritmos Avançados Capítulo Grafos Adaptado por João Luís G. Rosa Representação (Skiena & Revilla, 2) Vértices rotulados: u Chaves (índices) são associadas aos vértices Arestas sem elementos.

Leia mais

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1 Definições e Estruturas de Grafos Representações; Percursos Busca em Largura; Busca em Profundidade.

Leia mais

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013

Teoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013 Teoria dos Grafos Aula 5 - Estruturas de Dados para Grafos Profª. Alessandra Martins Coelho março/2013 Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado. A representação

Leia mais

Aula 09. Percurso em grafo

Aula 09. Percurso em grafo Logo Aula 09 Percurso em grafo 2 Percurso de grafo Veremos agora a pesquisa em profundidade e pesquisa em largura de um grafo. Ambos os algoritmos recebem um nó inicial no grafo, e eles visitam todos os

Leia mais

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47 1 / 47 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 47 1 Combinatória 2 Aritmética Racional 3 3 / 47 Capítulo 3 4 / 47 não orientados Um grafo não orientado

Leia mais

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Cap. 2 Conceitos Básicos em Teoria dos Grafos Teoria dos Grafos e Aplicações 8 Cap. 2 Conceitos Básicos em Teoria dos Grafos 2.1 Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os

Leia mais

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Grafos. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo PMR2300 Escola Politécnica da Universidade de São Paulo Um grafo é uma estrutura que generaliza árvores, sendo formado por nós e arestas. Cada nó em um grafo pode ser conectado a vários outros nós por

Leia mais

Acessibilidade e Fecho Transitivo de Grafos Dirigidos

Acessibilidade e Fecho Transitivo de Grafos Dirigidos 1 Acessibilidade e Fecho Transitivo de Grafos Dirigidos 1. Fecho transitivo 2. Multiplicação de matrizes booleanas 3. Algoritmo de Warshall 4. Equivalência em termos de complexidade computacional com o

Leia mais

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 053/2016 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 053/2016 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: INSCRIÇÃO: Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome e o número da sua

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente

Leia mais

Parte B Teoria dos Grafos

Parte B Teoria dos Grafos 45 Parte B Teoria dos Grafos B. Grafos e Subgrafos Um grafo G é uma tripla ordenada (V(G), E(G), ), constituindo de um conjunto não vazio V(G) de vértices, um conjunto disjunto E(G) das arestas e uma função

Leia mais

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

GRAFOS E ALGORITMOS TEORIA DE GRAFOS GRAFOS E ALGORITMOS TEORIA DE GRAFOS 1a. PARTE Prof. Ronaldo R. Goldschmidt rribeiro@univercidade.br ronaldo_goldschmidt@yahoo.com.br ROTEIRO 1. INTRODUÇÃO E MOTIVAÇÃO 2. FUNDAMENTOS 3. CONECTIVIDADE 4.

Leia mais

Algoritmo de Kruskal. Algoritmo de Kruskal. Floresta geradora 26. Subfloresta S 20.3

Algoritmo de Kruskal. Algoritmo de Kruskal. Floresta geradora 26. Subfloresta S 20.3 Algoritmo de Kruskal Algoritmo de Kruskal S. Algoritmos em Grafos º sem / Subfloresta Uma subfloresta de G é qualquer floresta F que seja subgrafo de G. Exemplo: As arestas vermelhas que ligam os vértices

Leia mais

Pesquisa em profundidade. 1 - Grafos não dirigidos

Pesquisa em profundidade. 1 - Grafos não dirigidos Pesquisa em profundidade void dfs( Vertex v ) //epth-first search v.visited = true; for each w adjacent to v if(! w.visited ) dfs( w ); generalização da travessia em pré-ordem squema básico da pesquisa

Leia mais

Facebook. Um grafo é uma rede. Estrutura de dados fundamental em Informática, tal como listas e árvores.

Facebook. Um grafo é uma rede. Estrutura de dados fundamental em Informática, tal como listas e árvores. Grafos Introdução Grafos Introdução Fernando Lobo Algoritmos e Estrutura de Dados II Estrutura de dados fundamental em Informática, tal como listas e árvores. Há muitos algoritmos interessantes sobre grafos.

Leia mais

Algoritmos em Grafos

Algoritmos em Grafos Algoritmos em Grafos Baseado em: The Algorithm Design Manual Steven S. Skiena IF64C Estruturas de Dados 2 Engenharia da Computação Prof. João Alberto Fabro - Slide 1/42 Introdução (1) Um grafo G=(V,E)

Leia mais

Algoritmos e Estruturas de Dados II IEC013

Algoritmos e Estruturas de Dados II IEC013 Algoritmos e Estruturas de Dados II IEC013 Revisão: Listas Encadeadas Prof. César Melo Todos os créditos reservados ao professor Leandro Galvão Listas Encadeadas Listas encadeadas ou listas ligadas representam

Leia mais

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich Árvores Binárias SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista. Figuras editadas por Isadora Maria Mendes http://www.icmc.usp.br/~paulovic

Leia mais

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. 1 Árvores Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. Um grafo simples sem ciclos mas não conexo (em que cada componente conexa é portanto uma árvore) chama-se uma floresta. Numa

Leia mais

Algoritmos e Estruturas de Dados

Algoritmos e Estruturas de Dados Algoritmos e Estruturas de Dados Grafos Slides baseados em: ZIVIANI, N. Projetos de Algoritmos - com implementações em Java e C++. Thomson Learning, 2007. Cap 7. CORMEN, H.T.; LEISERSON, C.E.; RIVEST,

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes 8//6 GRAFOS BUSCAS E MENOR CAMINHO Prof. André Backes Busca em grafos Definição Consiste em explorar o grafo de uma maneira bem específica. Trata-se de um processo sistemático de como caminhar por seus

Leia mais

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões Edital de Seleção 024/2017 PROPESP/UFAM Prova de Conhecimento Caderno de Questões CANDIDATO: «Nome» INSCRIÇÃO: «Inscrição» Assinatura conforme identidade INSTRUÇÕES PARA O CANDIDATO: Verifique o seu nome

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 2) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

Listas - Outras. Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações

Listas - Outras. Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações Listas - Outras Listas Circulares Nós Cabeça Listas Duplamente Ligadas/Encadeadas Aplicações 5 e 7/10/2010 Listas Circulares Encadeadas Dinâmicas Se o nó next do último nó apontar para o primeiro, teremos

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 8 Grafos. Estrutura de Dados 1

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 8 Grafos. Estrutura de Dados 1 UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 8 Grafos Estrutura de Dados 1 Grafos - Motivação Muitas aplicações em computação necessitam considerar conjunto de conexões

Leia mais

Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas

Listas Ligadas (Encadeadas) Listas Simplesmente Encadeadas Listas Ligadas (Encadeadas) Matrizes são estruturas de dados muito úteis fornecidas nas linguagens de programação. No entanto, elas têm pelo menos duas limitações: 1- Seu tamanho tem que ser conhecido

Leia mais

Conceito Básicos da Teoria de Grafos

Conceito Básicos da Teoria de Grafos 1 Conceito Básicos da Teoria de Grafos GRAFO Um grafo G(V,A) é definido pelo par de conjuntos V e A, onde: V - conjunto não vazio: os vértices ou nodos do grafo; A - conjunto de pares ordenados a=(v,w),

Leia mais