MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

Documentos relacionados
GRAFOS Aula 08 Árvore Geradora Mínima: Algoritmos de Kruskal e Prim-Jarnik Max Pereira

Teoria dos Grafos Aula 5

Árvores: Conceitos Básicos e Árvore Geradora

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

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

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

Árvore Geradora Mínima

Teoria dos Grafos Aula 6

Teoria dos Grafos. Edson Prestes

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação

INF 1010 Estruturas de Dados Avançadas

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

Análise de Algoritmos

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. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

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

Sub-grafo. Árvore Geradora Mínima

Árvores Árvores Geradoras de Custo Mínimo 0/16

Grafos Parte 1. Aleardo Manacero Jr.

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

Grafos Árvores Geradoras Mínimas

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

Edsger Wybe Dijkstra

Circuitos Hamiltorianos

Problemas de Fluxo em Redes

76) 1.1 Sim 1.2 Não 1.3 Não

Teoria dos Grafos. Edson Prestes

INF 1010 Estruturas de Dados Avançadas

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

ESTRUTURAS DISCRETAS (INF 1631) GRAFOS. 1. O que é um grafo? Defina um grafo orientado. Defina um grafo não-orientado.

Teoria dos Grafos. Edson Prestes

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

Teoria dos Grafos Aula 18

Estruturas de Dados Grafos

Módulo 2 OTIMIZAÇÃO DE REDES

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

A Cidade Enlameada Árvores Geradoras Mínimas

Departamento de Engenharia de Produção UFPR 57

Problema do Caixeiro Viajante

CONCEITOS BÁSICOS EM GRAFOS

Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade

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

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

Otimização em Grafos

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira

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

Algoritmo Aproximado. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Teoria dos Grafos Aula 1 - Introdução

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

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Departamento de Engenharia de Produção UFPR 22

Algoritmos em Grafos

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

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios

GRAFOS: UMA INTRODUÇÃO

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Ciclos hamiltonianos e o problema do caixeiro viajante

Árvore de Suporte de Comprimento Mínimo Minimal Spanning Tree

Algoritmo Floyd-Warshall. Problema dos caminhos mínimos entre todos os pares. Programação dinâmica

Conceitos Básicos da Teoria de Grafos

GRAFOS BUSCAS E MENOR CAMINHO. Prof. André Backes

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

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

2º Trabalho Prático - Algoritmos em grafos

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

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

Teoria dos Grafos. Coloração de Vértices

Teoria dos grafos. Caminho euleriano e Hamiltoniano. Prof. Jesuliana N. Ulysses

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

INF 1010 Estruturas de Dados Avançadas

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

GRAFOS Conceitos Básicos (Parte 1)

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

Matemática Discreta 10

Percursos em um grafo

MÓDULO 3 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS

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

Teoria dos Grafos. Árvores Geradoras

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Subgrafos. Se G é um grafo e F A(G) então o subgrafo de G induzido (ou gerado) por F é o

5COP096 TeoriadaComputação

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

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

Introdução a Grafos Letícia Rodrigues Bueno

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

Teoria dos Grafos. Apresentação da disciplina. Profa. Sheila Morais de Almeida. março DAINF-UTFPR-PG

Teoria dos Grafos Aula 8

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

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO

MODELAGEM MATEMÁTICA E A CONTEXTUALIZAÇÃO DO ESTUDO DE GRAFOS E MATRIZES NO ENSINO MÉDIO

Capítulo 1 Conceitos e Resultados Básicos

Percursos em um grafo

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

Projeto e Análise de Algoritmos

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

Teoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto

Introdução à Teoria dos Grafos

Teoria dos Grafos Aula 27

Teoria dos Grafos Aula 2

Transcrição:

MATEMÁTICA DISCRETA PARA ENGENHARIA DE COMPUTAÇÃO Profa. Kathya Collazos Linares *As aulas baseiam-se no material do Professor Antonio Alfredo Ferreira Loureiro; Jorge Figueiredo e Judith Gersting

Árvore Definição: Uma árvore (também chamada de árvore livre) é um grafo não dirigido acíclico e conexo.

Árvore Dado um grafo G as seguintes proposições são equivalentes: 1. G é uma árvore. 2. G é conexo e não tem ciclos. 3. Entre cada par de vértices de G existe um único caminho. 4. G é conexo com ordem n e tamanho n-1. 5. G é conexo, mas G-e não é conexo para toda aresta e que pertence a E(G). 6. G é acíclico, mas G + uv contém um ciclo para todo par u, v de vértices independentes.

Árvore geradora Definição: Uma árvore geradora de um grafo G é um grafo que contém cada vértice de G e é uma árvore. Proposição: Cada grafo conexo tem uma árvore geradora. Duas árvores geradores quaisquer de um grafo têm a mesma quantidade de arestas.

Árvore geradora Seja o grafo G abaixo V5 V4 V3 Este grafo possui o circuito v 2 v 1 v 4 v 2. V0 V1 V2 A remoção de qualquer uma das três arestas do circuito leva a uma árvore. Assim, todas as três árvores geradoras são: V5 V4 V3 V5 V4 V3 V5 V4 V3 V0 V1 V2 V0 V1 V2 V0 V1 V2

Árvore Geradora Seja o grafo G: Uma árvore geradora é: A M M D A M D C C I I S L S L N N

Árvore geradora Como encontrar uma árvore geradora? Para encontrar uma árvore geradora: Se o grafo G não tem ciclos, G é uma árvore geradora Se G tem ciclo, é necessário remover recursivamente arestas (até achar uma árvore), mantendo o grafo conectado.

Árvore geradora Como encontrar uma árvore geradora?

Árvore geradora mínima Minimal Spanning Tree (MST) Em muitas das aplicações de relações com conexões simétricas. O grafo da relação modela uma situação na qual as arestas assim como os vértices carregam informação. O grafo ponderado é um grafo no qual cada aresta é etiquetada com um valor numérico denominado peso.

Árvore geradora mínima Minimal Spanning Tree (MST) A 3 B 2 3 C 6 5 5 2 D E 4 H 3 6 4 G Cidade de Oz onde as trilhas do circuito de trens entre os pontos turísticos formam um grafo ponderado, os pesos indicam a distância em quilômetros. F

Árvore geradora mínima Minimal Spanning Tree (MST) Os pesos de uma aresta (v i, v j ) é algumas vezes referenciada como a distância entre vértices v i e v j. Um vértice u é um vizinho próximo do vértice v se u e v são adjacentes e não há nenhum outro vértice unido a v por uma aresta de peso menor do que (u,v). Note que v pode ter mais do que um vizinho próximo.

Árvore geradora mínima Minimal Spanning Tree (MST) Definição: Um grafo com peso é um grafo onde cada aresta possui um peso representado por um número real. A soma de todos os pesos de todas as arestas é o peso total do grafo. Umaárvoregeradoramínima para um grafo com peso é uma árvore geradora que tem o menor peso total possível dentre todas as possíveis árvores geradoras do grafo. Se G é um grafo com peso e e uma aresta de G então: w (e) indica o peso da aresta e, w (G) indica o peso total do grafo G.

Árvore geradora mínima Minimal Spanning Tree (MST) Uma companhia aérea recebeu permissão para voar nas seguintes rotas: D A S C M N L D I O grafo de rotas da companhia aérea que recebeu permissão para voar pode ser rotulado com as distâncias entre as cidades: D A 695 S 355 74 C 262 242 M 348 269 N 306 151 L 83 D 230 I

Árvore geradora mínima Minimal Spanning Tree (MST) A companhia deseja voar para todas as cidades mas usando um conjunto de rotas que minimiza o total de distâncias percorridas: Precisa-se determinar a árvore geradora A árvore geradora deve ser mínima A A A S 355 74 C 262 242 M N L 151 83 D 230 I 695 S 74 C 242 M 269 N 306 151 L 83 D I

Algoritmos para obter a árvore geradora mínima Algoritmo de Prim. Algoritmo de Kruskal. Grafo inicial: A A 355 695 S 74 C M 262 242 348 306 269 N L 151 83 D 230 I Árvore geradora mínima: A A S 355 74 C M 262 242 N L 151 83 D 230 I

Algoritmo de Prim Idéia básica: Passo 1: Escolher o vértice v 1 de G. Seja V = {v 1 } e E = { } Passo 2: Escolher o vizinho próximo de v 1 de V que seja adjacente a v 1, (p.e. v j V) e para o qual a aresta (v 1, v j ) não forma ciclo com os membros de E. Adicionar v j para V e adicionar (v 1, v j ) para E Passo 3: Repetir 2 até todos os vértices sejam visitados. Logo V contém todos os vértices de G e E contém todas as arestas da MST de G

Algoritmo de Prim a b c d e f g h i a 0 4 x x x x x 8 x b 4 0 8 x x x x 11 x c x 8 0 7 x 4 x x 2 d x x 7 0 9 14 x x x e x x x 9 0 10 x x x f x x 4 14 10 0 2 x x g x x x x x 2 0 1 6 h 8 11 x x x x 1 0 7 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 e x x x 9 0 f x x 4 14 10 0 g x x x x x 2 0 h 8 11 x x x x 1 0 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 V=[a] E=[ ] e x x x 9 0 f x x 4 14 10 0 g x x x x x 2 0 h 8 11 x x x x 1 0 V =9-1=8 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 e x x x 9 0 f x x 4 14 10 0 V=[a] E=[ ] V=[a, b] E=[ ab,] g x x x x x 2 0 h 8 11 x x x x 1 0 V =8-1=7 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 e x x x 9 0 V=[ a,b] E=[ab, ] V=[ a,b,c] E=[ab,bc] f x x 4 14 10 0 g x x x x x 2 0 h 8 11 x x x x 1 0 V =7-1=6 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 e x x x 9 0 f x x 4 14 10 0 V=[ a,b,c] E=[ab, bc ] V=[ a,b,c,i] E=[ab,bc,ci] g x x x x x 2 0 h 8 11 x x x x 1 0 V =6-1=5 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 e x x x 9 0 f x x 4 14 10 0 V=[ a,b,c,i] E=[ab, bc,ci ] V=[ a,b,c,i,f] E=[ab,bc,ci, cf] g x x x x x 2 0 h 8 11 x x x x 1 0 V =5-1=4 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 e x x x 9 0 V=[ a,b,c,i,f] E=[ab, bc,ci,cf ] V=[ a,b,c,i,f,g] E=[ab,bc,ci, cf,fg] f x x 4 14 10 0 g x x x x x 2 0 h 8 11 x x x x 1 0 V =4-1=3 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 e x x x 9 0 f x x 4 14 10 0 V=[ a,b,c,i,f,g] E=[ab, bc,ci,cf,fg ] V=[ a,b,c,i,f,g,h] E=[ab,bc,ci, cf,fg,gh] g x x x x x 2 0 h 8 11 x x x x 1 0 V =3-1=2 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 e x x x 9 0 f x x 4 14 10 0 V=[ a,b,c,i,f,g,h] E=[ab, bc,ci,cf,fg,gh ] V=[ a,b,c,i,f,g,h,d] E=[ab,bc,ci, cf,fg,gh, cd] g x x x x x 2 0 h 8 11 x x x x 1 0 V =2-1=1 i x x 2 x x x 6 7 0

Algoritmo de Prim a b c d e f g h i a 0 b 4 0 c x 8 0 d x x 7 0 e x x x 9 0 f x x 4 14 10 0 V=[ a,b,c,i,f,g,h,d] E=[ab, bc,ci,cf,fg,gh, cd ] V=[ a,b,c,i,f,g,h,d,e] E=[ab,bc,ci, cf,fg,gh, cd, de] g x x x x x 2 0 h 8 11 x x x x 1 0 V =1-1=0 i x x 2 x x x 6 7 0

Algoritmo de Kruskal Idéia básica: Passo 1: Ordenar as arestas por ordem crescente do comprimento (ou custo), sendo os desempates feitos arbitrariamente, formando uma lista. Passo 2: Selecionar a primeira aresta da lista. Se originar um ciclo, retirá-la da lista e voltar ao início do Passo 2. Caso contrário, adicioná-la à árvore e retirá-la da lista Passo 3: Repetir o passo 2 até que a árvore esteja formada (todos os vértices conectados).

Algoritmo de Kruskal

Algoritmo de Kruskal

Algoritmo de Kruskal

Algoritmo de Kruskal