Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST)

Documentos relacionados
Grafos: árvores geradoras mínimas. Graça Nunes

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Otimização em Grafos

Grafos. Exemplo de árvore geradora mínima. Notas. Notas. Notas. Notas. Árvores espalhadas mínimas. Como construir uma árvore geradora miníma

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3

01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II

Grafos Msc. Daniele Carvalho Oliveira. Doutoranda em Computação UFU Mestre em Computação - UFU Bacharel em Computação - UFJF 1

Problema da Árvore Geradora Mínima

5COP096 TeoriadaComputação

Otimização em Grafos

Grafos Parte 2. SCC-603 Algoritmos e Estruturas de Dados II. Profª. Rosane Minghim / Baseado em material de professores dos anos anteriores

Árvores: Conceitos Básicos e Árvore Geradora

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

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

Teoria dos Grafos. Edson Prestes

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

Grafos aula 3. Relembrando... Rede de eventos e atividades. Rede de eventos e atividades

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

Algoritmo de Prim Wikipédia, a enciclopédia livre

Escola Básica e Secundária Mouzinho da Silveira. MACS 11.º Ano Problema do Caixeiro Viajante

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Teoria dos Grafos Aula 5

Lista de Exercícios Programação Inteira. x 2 0 e inteiros.

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

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

Caminhos Mais Curtos Fluxo Máximo Árvores Geradoras Mínimas

15 - Coloração Considere cada um dos grafos abaixo:

Teoria dos Grafos. Edson Prestes

Método Guloso. Troco mínimo. Paulo Eustáquio Duarte Pinto (pauloedp arroba ime.uerj.br) junho/2012. Troco mínimo. Troco mínimo

O grau de saída d + (v) de um vértice v é o número de arcos que tem

Teoria da Computação. Clique de um Grafo. Alexandre Renato Rodrigues de Souza 1

Grafos Hamiltonianos e o Problema do Caixeiro Viajante. Prof. Ademir Constantino Departamento de Informática Universidade Estadual de Maringá

Noções da Teoria dos Grafos. André Arbex Hallack

Matemática Discreta 10

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos Aula 24

Grafos: aplicações. Grafos: árvore geradora mínima

Matemática Discreta Capítulo 3 Versão preliminar

Aula 10: Tratabilidade

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Grafo planar: Definição

CI065 CI755 Algoritmos e Teoria dos Grafos

Teoria dos Grafos. Edson Prestes

Buscas Informadas ou Heurísticas - Parte II

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

GRAFOS Conceitos Básicos (Parte 1)

CAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:

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

INTRODUÇÃO A BUSCA EXERCÍCIOS

Introdução à Teoria dos Grafos

INF1010 Lista de Exercícios 2

Ciclos hamiltonianos e o problema do caixeiro viajante

Cortes (cut sets) 2010/2 Teoria dos Grafos (INF 5037/INF2781) CC/EC/UFES

Grafos. Notas. Notas. Notas. Notas. Caminhos mais curtos de única origem. Subestrutura ótima. Propriedades de caminhos mais curtos

Matemática Discreta - Exercícios de Grafos

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

INSTITUTO FEDERAL DO ESPÍRITO SANTO CURSO BACHARELADO EM SISTEMAS DE INFORMAÇÃO

Teoria dos Grafos AULA

Teoria dos Grafos AULA 3

Exemplo de um problema de transporte, com 3 fontes e 3 destinos. Custos unitários de transporte para o exemplo de problema de transporte

Árvore Binária de Busca Ótima

2º Trabalho Prático - Algoritmos em grafos

Definição e Conceitos Básicos

Algoritmos de Caminho Mínimo Parte 1

Busca em Profundidade e em Largura

Teoria dos Grafos Aula 2

Grafos: algoritmos de busca

Universidade de Aveiro Departamento de Matemática. Eulália Maria Mota Santos. Problema da Árvore de Suporte de Custo Mínimo com Restrições de Diâmetro

14 Coloração de vértices Considere cada um dos grafos abaixo:

Teoria dos Grafos Aula 6

Estruturas de Dados para Conjuntos Disjuntos: Union-find Letícia Rodrigues Bueno

BCC204 - Teoria dos Grafos

O Problema da 3- Coloração de Grafos

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

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

Complexidade de Algoritmos. Edson Prestes

Algoritmos e Estruturas de Dados II

Teoria dos Grafos Introdu c ao

A Cidade Enlameada Árvores Geradoras Mínimas

Conceitos Básicos da Teoria de Grafos

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

Análise de Algoritmos

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Componentes, Conj. Indep., Cliques

Tecnicas Essencias Greedy e Dynamic

Problema da Árvore Geradora Mínima

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

Teoria dos Grafos Aula 8

Optimização em Redes e Não Linear

2006/2007 Análise e Síntese de Algoritmos 2

AVALIAÇÃO DE CONHECIMENTO ESPECÍFICO

Grafos representação e aplicações. Prof. Guilherme Tomaschewski Netto

Eduardo Camponogara. DAS-9003: Introdução a Algoritmos

Pesquisa Operacional

Grafos: caminhos mínimos

Algoritmos Combinatórios: Introdução

Matemática Aplicada às Ciências Sociais- 11º ano (Versão: para o manual a partir de 2016/17)

Projeto e Análise de Algoritmos

Teoria dos Grafos. Edson Prestes

Transcrição:

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Problema da Árvore Geradora Mínima (The Minimum Spanning Tree Problem-MST) Alguns problemas de otimização combinatória podem ser formulados através de um tipo de grafo específico conhecido como árvore. Uma árvore é um grafo conexo (existe caminho entre qualquer par de seus vértices) e acíclico (que não possui ciclos). Dado um grafo conectado e não direcionado, uma árvore geradora desse grafo é um subgrafo que é uma árvore e conecta todos os vértices juntos. Um único grafo pode ter muitas árvores diferentes. Uma árvore de arborescência mínima (geradora mínima-mst) para um grafo ponderado, conectado e não direcionado é uma árvore geradora com peso menor ou igual ao peso de todas as outras árvores geradoras. O peso de uma árvore geradora é a soma dos pesos dados a cada aresta da árvore de abrangência. Modelagem matemática O modelo matemático para o problema de caminho mais curto do nó 1 ao nó n de um grafo G=(V,E) não direcionado, N = {1, 2,..., n}. Supondo nó 1 com oferta de n-1 unidades e demais nós com demanda de 1 unidade, o modelo matemático para construir uma árvore fica da forma: Variáveis: yij {0, 1} se a aresta (i, j) é usada ou não xij fluxo no arco (i, j) Parâmetros: cij custo unitário do fluxo em (i, j), c(i,j) 0 S(j) é o conjunto dos nós sucessores de j P(j) é o conjunto dos nós predecessores de j Função objetivo: i Restrições: (, ) c

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 46 (, ) (, ), j,, (, ) ( ) Obs: as restrições não controlam loops. O problema da árvore geradora mínima pode ser resolvido otimamente utilizando-se procedimento guloso no sentido de sempre escolher, sucessivamente, as arestas de menor comprimento. 1) Algoritmo de Prim Um algoritmo famoso para o problema é o Algoritmo de Prim. No algoritmo de Prim, iniciamos com uma árvore formada por um único nó (qualquer nó do grafo) e vamos adicionando à árvore, a cada passo, o nó que estiver mais próximo dela. Poderíamos resumir o algoritmo assim: Suponha que T é uma subárvore (não necessariamente geradora) de um grafo nãodirigido conexo G com custos nas arestas. A franja (=fringe) de T é o conjunto de todas as arestas de G que têm uma ponta em T e outra fora. Portanto, a franja de T nada mais é que o leque 1 do conjunto de vértices de T. Cada iteração do algoritmo começa com uma subárvore T. No início da primeira iteração, T consiste em um único vértice. O processo iterativo pode ser descrito assim. Enquanto a franja de T não estiver vazia: 1. escolha uma aresta da franja que tenha custo mínimo; 2. seja e a aresta escolhida; 3. acrescente e a T. Como se vê, o algoritmo de Prim tem caráter guloso: em cada iteração, abocanha a aresta mais barata da franja sem se preocupar com o efeito global dessa escolha. O algoritmo de Prim, sempre mantem uma árvore conectada começando com um único vértice. Analisa-se todas as arestas do vértice atual para outros e encontra o de e or custo e tre eles. E seguida, adicio a-se o vértice mais de menor custo à árvore, aumentando seu tamanho em 1. Em N 1 etapas, cada vértice estaria conectado se tivermos um gráfico conectado. Exemplo 1 1 O leque de um conjunto X de vértices de um grafo não orientado é o conjunto de todas as arestas que têm uma ponta em X e outra no complemento X de X.

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 47 Exemplo 2

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 48 2) Algoritmo de Kruskal O algoritmo de Kruskal começa com uma floresta de árvores formadas por apenas um vértice cada e procura, a cada passo, uma aresta que, além de conectar duas árvores disti tas da floresta, possua custo í i o. Supo ha que, u a determinada iteração, o algoritmo escolheu a aresta (u,v) para ser inserida no conjunto A e que a aresta (u,v) conecte a árvore C1 à árvore C2. Note que, dentre todas as arestas que conectam duas componentes distintas nesta iteração, (u,v) é uma das que possui o menor peso, pois ela foi escolhida assim. O Algoritmo de Kruskal pode, portanto, ter o seu funcionamento assim descrito: considerando cada vértice como uma árvore independente, o algoritmo procura a aresta de e or custo que conecta duas árvores diferentes. Os vértices das árvores selecionadas passam a fazer parte de uma mesma árvore. O processo se repete até que todos os vértices façam parte de uma mesma árvore ou quando não se pode encontrar uma aresta que satisfaça essa condição. Podemos agora tratar do algoritmo. Cada iteração começa com uma floresta geradora F de G. O processo iterativo é muito simples, enquanto existe alguma aresta externa: 1. escolha uma aresta externa que tenha custo mínimo; 2. seja e a aresta escolhida; 3. acrescente e a F. No início da primeira iteração, cada componente conexa da floresta F tem apenas um vértice. No fim do processo iterativo, F é conexa, uma vez que G é conexo e não há arestas externas a F. Como se vê, o algoritmo tem caráter guloso: em cada iteração, abocanha a aresta que parece mais promissora localmente sem se preocupar com o efeito global dessa escolha.

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 49 Assim como o algoritmo de Kruskal, o algoritmo de Prim também é um caso especial do algoritmo genérico. No caso do Prim, ao invés de conectar árvores de uma floresta, o algoritmo mantém uma única árvore que cresce a cada iteração com a inserção de um vértice. O algoritmo de Prim é significativamente mais rápido no limite quando o grafo é denso com muitas mais arestas do que vértices. Kruskal funciona melhor em situações típicas (gráficos esparsos), pois usa estruturas de dados mais simples. No algoritmo de Kruskal, não é mantinda uma única árvore, mas uma floresta. Em cada etapa, analisa-se a aresta de e or custo e que ão gera u ciclo a floresta atual. Esta aresta tem que ligar necessariamente duas árvores na floresta atual em uma. Uma vez que inicia com N árvores de um único vértice, em passos N 1 todos eles teriam que estar conectados se o grafo for conectado. Exemplo

Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 50