Algoritmo polinomial para geração de uma Árvore Geradora Mínima

Slides:



Advertisements
Apresentações semelhantes
Grafos eulerianos 1.
Advertisements

Cortes (cut-sets)‏ 1.
Grafos Orientados (digrafos)
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
Algoritmos em Grafos (Parte 2)
Antonio Dirceu Rabelo de Vasconcelos Filho
Gustavo Sant´Anna Ferreira Rodrigo Ribeiro de Souza
Teoria dos Grafos – Aula 2
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
Exercícios PAA- Grafos
Exercícios PAA- Grafos
Cortes (cut-sets)‏ 2010/2 Teoria dos Grafos (INF 5037/INF2781)‏ 1.
CC/EC/PPGI/UFES Teoria dos Grafos (INF 5037/INF2781) Coloração.
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
Conectividade e Separabilidade
Coloração Teoria dos Grafos (INF 5037/INF2781) 1.
Métodos para representação de estruturas hierárquicas
Pesquisa em profundidade
Problemas de fluxo numa rede
Prof. M.Sc. Fábio Francisco da Costa Fontes Abril
Teoria dos Grafos – Aula 3 Árvores
Teoria dos Grafos Loana T. Nogueira Aula 5.
Árvores.
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Árvore Geradora de Peso Mínimo
Pesquisa Operacional - Profa Úrsula L. F. Ribeiro
Árvore Geradora Mínima
COS242 – Teoria dos Grafos Trabalho Prático – Parte 2
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
Heurísticas, algoritmos gulosos e aproximações
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
Algoritmos em Grafos Árvores Geradoras Prof. André Renato
Alunos: Bruno Tourinho Tomas Jonathan Augusto da Silva.
Exercícios PAA- Grafos
Prova AA.
Operações com grafos União Exemplo
Análise e Síntese de Algoritmos
O problema do emparelhamento máximo
Heurísticas, algoritmos gulosos e aproximações
Introdução aos Agentes Inteligentes Busca Cega (Exaustiva)
Teoria dos Grafos Conectividade
1. Se este nó é raiz de uma árvore QuasiEquilibrada de ordem k, e
Algoritmos Gulosos em Grafos
Conceitos básicos em grafos
UNIVERSIDADE CATÓLICA DE PELOTAS ESCOLA DE INFORMÁTICA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina:Estruturas de Dados Aluno:Christiano Otero Avila Prof.
Disciplina Análise de Algoritmos BCC-UFU Profa. Sandra de Amo
Universidade Federal de Mato Grosso do Sul Departamento de Computação e Estatística Circuitos de Euler em Paralelo Universidade Federal de Mato Grosso.
Busca Combinatorial e Métodos de Heurística
Disciplina Análise de Algoritmos Bacharelado em CC
Msc. Daniele Carvalho Oliveira
Algoritmos para Obtenção de Árvore Geradora Mínima
Conjuntos Algoritmos e Estruturas de Dados - IF672

UFES Teoria dos Grafos Representação computacional de redes de fluxo Maria Claudia Silva Boeres Mestrado em Informática.
Problema MST Método Genérico Guloso usando Estratégia do Corte
Mestrado em Informática
Celso C. Ribeiro Caroline T. Rocha
Transcrição da apresentação:

Algoritmo polinomial para geração de uma Árvore Geradora Mínima Teoria dos Grafos Trabalho Computacional ALGORITMO DE KRUSKAL Algoritmo polinomial para geração de uma Árvore Geradora Mínima de um grafo conexo Hilio Holz Ramon M. Ramos Professora: Maria Claudia Silva Boeres 1

Agenda Árvores, Árvores Geradoras, Árvores Geradoras Mínimas e seus pesos O problema da Árvore Geradora Mínima O algoritmo de Kruskal Estruturas de dados utilizadas Implementações realizadas Complexidade do algoritmo Resultados obtidos Conclusão Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 2

Árvore O que é? Árvores são grafos em que não existem ciclos! Na teoria dos grafos, uma árvore nada mais é do que um tipo especial de grafo: Árvores são grafos em que não existem ciclos! Uma árvore Um grafo comum com ciclos Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 3

Árvore Geradora O que é? Uma árvore é dita geradora se ela interliga (direta ou indiretamente) todos os nós do grafo. Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 4

Árvore Geradora Mínima – AGM O que é? Uma Árvore Geradora Mínima - AGM, ou Minimum Spanning Tree - MST, de um grafo com pesos nas arestas (grafo valorado) é qualquer árvore geradora do grafo que tenha peso mínimo. Vale frisar.. Localizar uma AGM só é possível em grafos valorados, ou seja, com pesos nas arestas. Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 5

Peso total de uma AGM O que é peso? Como calcular o peso total? Peso é o valor dado a cada aresta, podendo representar qualquer valor em um problema real, como custo, fluxo, confiabilidade, etc. Como calcular o peso total? O peso total de uma AGM é dado pela soma dos pesos das arestas da árvore. Peso total da árvore geradora: 1+2+4+6+12 = 25 Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 6

N=4, 16 árvores N=6, 1.296 árvores N=10, 100.000.000 árvores O problema da AGM O problema da Árvore Geradora Mínima – AGM consiste em encontrar, dado um grafo com arestas valoradas, uma estrutura de conexão (árvore) em que todos os nós (geradora) se conectem (direta ou indiretamente) uns aos outros. Essa estrutura deve possuir o menor peso possível, onde o peso é dado pela soma dos pesos das arestas escolhidas (mínima). Como resolver? Opção 1 – Difícil! formar todas as árvores geradoras possíveis e escolher a de menor peso O matemático Arthur Caley provou que um grafo com N nós possui NN-2 árvores geradoras diferentes. N=4, 16 árvores N=6, 1.296 árvores N=10, 100.000.000 árvores Apenas 1 árvore mínima Opção 2 – Melhor Usar um algoritmo específico para esta tarefa... Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 7

Esta apresentação se limita a demonstrar o comportamento do Algoritmos possíveis de AGM Há quatro possibilidades conhecidas Algoritmo de Kruskal. Algoritmo de Prim. Algoritmo Reverse-Delete. Algoritmo de Borůvka. Esta apresentação se limita a demonstrar o comportamento do Algoritmo de Kruskal Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 8

O algoritmo de Kruskal História Objetivo Este algoritmo apareceu pela primeira vez no jornal Proceedings of the American Mathematical Society, em 1956, e foi escrito por Joseph Bernard Kruskal, Jr. Objetivo Resolver o problema de AGM para grafos conexos. Para grafos desconexos encontra a Floresta Geradora Mínima. O que é Floresta Geradora Mínima? É o mesmo princípio das AGM só que para grafos desconexos. Uma Floresta Geradora Mínima é composta pelo conjunto de árvores geradoras mínimas de cada componente conexo. Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 9 9

Funcionamento Lê todas as arestas Ordena em ordem crescente Seleciona cada aresta na ordem Verifica: Se forma ciclo, descarta Senão adiciona à arvore Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 10

Clicar na figura para abrir o programa... Programa exemplo Clicar na figura para abrir o programa... Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 11

Estrutura de dados Estruturas de dados utilizadas Matriz de Adjacência com pesos Lista de Arestas Algoritmo implementado utilizando Conjuntos Disjuntos Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 12

Matriz de Adjacência Arestas nulas representadas com 999 Alocado somente metade da matriz Sem ordenação! Não façam isso em casa! Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 13

Lista de Arestas Não representa arestas inexistentes Não consegue representar grafos desconexos 1 2 3 5 4 7 10 V1 : 1 V2 : 2 Custo : 5 V2 : 5 Custo : 7 V2 : 3 Custo : 2 V1 : 3 Custo : 4 Custo : 10 Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 14

Conjuntos Disjuntos Conjuntos de objetos conectados Objetos Find Union Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 15

Conjuntos Disjuntos - Quick Find Estrutura de Dados Vetor de inteiros id[ ] de tamanho N Dois vértices são de mesmo conjunto se tem o mesmo id. Find: Retornar o id do nó Union: Para mesclar conjuntos contendo p e q, muda-se todas as entradas com id[p] para id[q] Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 16

Conjuntos Disjuntos - Quick Union Estrutura de Dados Vetor de inteiros id[ ] de tamanho N id[i] é o pai de i Find: Procurar recursivamente até id[i] =i Union: mudar o id da raiz de um dos conjuntos Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 17

Heurística 1 - União por Ordenação Objetivo Evitar árvores compridas. Union: A raiz de menor ordem aponta para a raiz de maior ordem. Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 18

Heurística 2 - Compressão de Caminho Find: Fazer cada nó no caminho apontar diretamente para a raiz. Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 19

Implementação – Complexidade Make Sets Ordenação Find's + Union's Estrutura Conjuntos Make Sets Ordenação Find's + Union's Matriz Quick-Find O(V) O(n3) O(n+Lg n) Lista O(E Lg E) Quick-Union QU+heurísticas O(n) Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 20

Implementação Linguagem Testes C Grafos Esparsos Densos Completos Número de Vértices variando de 50 a 2000 (de 50 em 50) Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 21

Resultados – Grafos Esparsos Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 22

Resultados – Grafos Densos Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 23

Resultados – Grafos Completos Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 24

Exemplo Ex:Problema realmente grande 109 vértices e 1010 arestas Aplicação das heurísticas reduz o tempo de 3000 anos para 1 minuto em relação ao Quick-Find Fonte: http://www.cs.princeton.edu/~rs/AlgsDS07/01UnionFind.pdf Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 25

Conclusão Ordenação tem efeito muito importante 'Quick Union + heurísticas' é implementação assintoticamente mais rápida conhecida Bons Algoritmos tornam as soluções possíveis Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 26

Obrigado! Dúvidas / Perguntas? Algoritmo de Kruskal Hilio Holz e Ramon M. Ramos 27