Análise de Algoritmos

Documentos relacionados
Análise de Algoritmos

Algoritmos de aproximação - Problema de cobertura por conjuntos

Algoritmos em redes de fluxo e aplicações

Análise de Algoritmos

Grafos e Algoritmos Raimundo Macêdo. Teorema de Hall (Prova por Indução)

Análise de Algoritmos. Slides de Paulo Feofiloff

Definição e Conceitos Básicos

Percursos em um grafo

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

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

Percursos em um grafo

Algoritmos de Aproximação Segundo Semestre de 2012

Noções da Teoria dos Grafos

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

Redução polinomial. Permite comparar o grau de complexidade de problemas diferentes.

Prof. Marco Antonio M. Carvalho

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

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

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

BCC204 - Teoria dos Grafos

Uma Introdução Sucinta à Teoria dos Grafos

Análise de Algoritmos

A resposta para este problema envolve a partição do conjunto de arestas de tal forma que arestas adjacentes não pertençam a um mesmo conjunto.

Gabriel Coutinho DCC035 - Pesquisa Operacional Lista 6

Conjunto Ortogonal de Vetores

Teoria e Algoritmos em Grafos

Análise de Algoritmos

Melhores momentos AULA 24. Algoritmos p.906/953

GRAFOS E ALGORITMOS TEORIA DE GRAFOS

Teorema da Galeria de Arte

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

Antes do Teorema de Hall, alguns conceitos importantes...

Algoritmos de Aproximação Segundo Semestre de 2012

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

Análise de Algoritmos

Fábio Protti - UFF Loana T. Nogueira - UFF Sulamita Klein UFRJ

Teoria dos Grafos Aula 6

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

Algoritmos de aproximação - Problema da Mochila

Introdução à Teoria da Computação Exercícios

Algoritmos gulosos (greedy) CLRS

Aula 2 Definições, Conceitos Básicos e Representação Interna de Grafos. Teoria dos Grafos Prof.

Algoritmos de aproximação - Problema do caixeiro viajante

Teoria dos Grafos Aula 18

BCC204 - Teoria dos Grafos

Grafos Planares. Grafos e Algoritmos Computacionais. Prof. Flávio Humberto Cabral Nunes

2 Definição do Problema

Análise e Projeto de Algoritmos

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

Projeto e Análise de Algoritmos. Prof. Ruy Luiz Milidiú

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

ANÁLISE DE ALGORITMOS

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

Universidade de Aveiro Departamento de Matemática, Ayagi da Mota Dias. Matroides e Problemas de otimização Combinatória

Teoria dos Grafos Aula 2

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Corte Máximo em Grafos Notas de aula de MAC-5727

Matemática discreta e Lógica Matemática

Fluxo em Redes. > Fluxo em Redes Modelando com Fluxo Máximo 1/20

Melhores momentos AULA 3. Otimização Combinatória p. 102

Complexidade e algoritmos para algumas

Projeto e Análise de Algoritmos

COMPLEXIDADE PARAMETRIZADA PARTE 1. Rafael Coelho.

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

Análise de Algoritmos

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

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

Teoria dos Grafos. Cobertura, Coloração de Arestas, Emparelhamento

Espaços Vetoriais. () Espaços Vetoriais 1 / 17

AULA 22. Algoritmos p.793/823

Problema de seleção de atividades. Aula 14. Exemplo. Algoritmos Gulosos. Algoritmos Gulosos. Intervalo: par ordenado de números

Análise de Algoritmos

Aula 20: Revisão Otimização Linear e Inteira Túlio A. M. Toffolo

And/Or-Convexity: A Graph Convexity Based on Processes And Deadlock Models

1.3 Isomorfismo 12 CAP. 1 CONCEITOS BÁSICOS

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M.

O Problema da 3- Coloração de Grafos

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

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

DINTER UFF/IFTM - Análise e Síntese de Algoritmos - Lista de Exercícios

Algoritmos de Aproximação para o Problema do Caixeiro Viajante

Análise de Algoritmos

Alg l ori r t i m t os e E str t u r tu t ra r s d e D ados I I Intr t o r duçã ç o ã a a Gr G a r f a o f s P of o a. M. C r C ist s ina n a /

GRAFOS Aula 02 Formalização: definições Max Pereira

Capítulo 1. Introdução. 1.1 Grafos

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

R.J. Wilson and J.J. Watkins, Graphs An Introductory approach, J. Wiley, 1990.

Complexidade computacional

Complexidade de Algoritmos. Edson Prestes

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

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

CONCEITOS BÁSICOS EM GRAFOS

BCC204 - Teoria dos Grafos

Geometria Computacional

x y Grafo Euleriano Figura 1

Análise e Síntese de Algoritmos. Problemas NP-Completos CLRS, Cap. 34

Análise e Síntese de Algoritmos

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

Geometria Computacional

Transcrição:

Análise de Algoritmos Estes slides são adaptações de slides do Prof. Paulo Feofiloff e do Prof. José Coelho de Pina. Algoritmos p. 1

Matroides e o método guloso U: conjunto finito arbitrário. C: família não vazia de subconjuntos de U hereditária. (subconjuntos de conjuntos em C estão em C) Algoritmos p. 2

Matroides e o método guloso U: conjunto finito arbitrário. C: família não vazia de subconjuntos de U hereditária. Problema 1: Dado um peso binário w e para cada e de U, encontrar um conjunto de C de peso máximo. Algoritmos p. 2

Matroides e o método guloso U: conjunto finito arbitrário. C: família não vazia de subconjuntos de U hereditária. Problema 1: Dado um peso binário w e para cada e de U, encontrar um conjunto de C de peso máximo. GULOSO (U,w, C) 1 U 1 {e U : w e = 1} S 2 enquanto existe e em U 1 tal que S {e} C faça 3 S S {e} 4 devolva S Algoritmos p. 2

Matroides e o método guloso U: conjunto finito arbitrário. C: família não vazia de subconjuntos de U hereditária. Problema 1: Dado um peso binário w e para cada e de U, encontrar um conjunto de C de peso máximo. GULOSO (U,w, C) 1 U 1 {e U : w e = 1} S 2 enquanto existe e em U 1 tal que S {e} C faça 3 S S {e} 4 devolva S GULOSO encontra um conjunto de C de peso maximal. C é um matroide se todo conjunto de C de peso maximal tem o mesmo tamanho. Algoritmos p. 2

Matroides e o método guloso U: conjunto finito. C: família não vazia de subconjuntos de U hereditária. Pesos positivos para os elementos de U. Problema 2: Encontrar um conjunto de C de peso máximo. Algoritmos p. 3

Matroides e o método guloso U: conjunto finito. C: família não vazia de subconjuntos de U hereditária. Pesos positivos para os elementos de U. Problema 2: Encontrar um conjunto de C de peso máximo. GULOSO (U,w, C) 1 (e 1,...,e n ) ORDENE(U,w) ordem dos pesos 2 S 3 para i 1 até n faça 4 se S {e i } C 5 então S S {e i } 6 devolva S Algoritmos p. 3

Matroides e o método guloso U: conjunto finito. C: família não vazia de subconjuntos de U hereditária. Pesos positivos para os elementos de U. Problema 2: Encontrar um conjunto de C de peso máximo. GULOSO (U,w, C) 1 (e 1,...,e n ) ORDENE(U,w) ordem dos pesos 2 S 3 para i 1 até n faça 4 se S {e i } C 5 então S S {e i } 6 devolva S Teorema: Se C é um matroide, então o algoritmo acima resolve o Problema 2. Algoritmos p. 3

Dado um espaço vetorial, o coleção de todos os conjuntos de vetores LI deste espaço é um matroide. Algoritmos p. 4

Dado um espaço vetorial, o coleção de todos os conjuntos de vetores LI deste espaço é um matroide. Dado um grafo G, a coleção de arestas de todas as florestas de G é um matroide. Algoritmos p. 4

Dado um espaço vetorial, o coleção de todos os conjuntos de vetores LI deste espaço é um matroide. Dado um grafo G, a coleção de arestas de todas as florestas de G é um matroide. Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M U é um matroide. Algoritmos p. 4

Dado um espaço vetorial, o coleção de todos os conjuntos de vetores LI deste espaço é um matroide. Dado um grafo G, a coleção de arestas de todas as florestas de G é um matroide. Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M U é um matroide. M V : a coleção análoga com V no lugar de U. Claro que M V também é um matroide. Algoritmos p. 4

Dado um espaço vetorial, o coleção de todos os conjuntos de vetores LI deste espaço é um matroide. Dado um grafo G, a coleção de arestas de todas as florestas de G é um matroide. Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M U é um matroide. M V : a coleção análoga com V no lugar de U. Claro que M V também é um matroide. E M U M V? É ou não é um matroide? Algoritmos p. 4

Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M V : a coleção analoga com V no lugar de U. M U e M V são matroides. Algoritmos p. 5

Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M V : a coleção analoga com V no lugar de U. M U e M V são matroides. O que é M U M V? O que é um conjunto da coleção M U M V em G? Algoritmos p. 5

Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M V : a coleção analoga com V no lugar de U. M U e M V são matroides. O que é M U M V? O que é um conjunto da coleção M U M V em G? Cada conjunto de M U M V é um emparelhamento em G. Algoritmos p. 5

Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M V : a coleção analoga com V no lugar de U. M U e M V são matroides. O que é M U M V? O que é um conjunto da coleção M U M V em G? Cada conjunto de M U M V é um emparelhamento em G. Esta coleção é ou não é um matroide? Algoritmos p. 5

Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M V : a coleção analoga com V no lugar de U. M U e M V são matroides. O que é M U M V? O que é um conjunto da coleção M U M V em G? Cada conjunto de M U M V é um emparelhamento em G. Esta coleção é ou não é um matroide? Não é... (nem todo emparelhamento maximal é máximo) Mas é a interseção de dois matroides. Algoritmos p. 5

Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M V : a coleção analoga com V no lugar de U. M U e M V são matroides. M U M V é a coleção dos emparelhamentos de G. Esta coleção não é um matroide. Algoritmos p. 6

Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M V : a coleção analoga com V no lugar de U. M U e M V são matroides. M U M V é a coleção dos emparelhamentos de G. Esta coleção não é um matroide. Mas é a interseção de dois matroides. Algoritmos p. 6

Grafo bipartido G = (U V,E). M U : todos os conjuntos S de arestas de G tq no máximo M U : uma aresta de S é incidente a cada vértice de U. M V : a coleção analoga com V no lugar de U. M U e M V são matroides. M U M V é a coleção dos emparelhamentos de G. Esta coleção não é um matroide. Mas é a interseção de dois matroides. Existe algoritmo polinomial para encontrar um conjunto (de peso) máximo na interseção de dois matroides. Algoritmos p. 6

Definição alternativa de matroides U: conjunto finito arbitrário. C: família não vazia de subconjuntos de U hereditária. Algoritmos p. 7

Definição alternativa de matroides U: conjunto finito arbitrário. C: família não vazia de subconjuntos de U hereditária. C é um matroide se, para todo par A, B de conjuntos de C para os quais A < B, existe e B \ A tal que A {e} C. Algoritmos p. 7

Definição alternativa de matroides U: conjunto finito arbitrário. C: família não vazia de subconjuntos de U hereditária. C é um matroide se, para todo par A, B de conjuntos de C para os quais A < B, existe e B \ A tal que A {e} C. Esta é a definição do CLRS. Algoritmos p. 7

Definição alternativa de matroides U: conjunto finito arbitrário. C: família não vazia de subconjuntos de U hereditária. C é um matroide se, para todo par A, B de conjuntos de C para os quais A < B, existe e B \ A tal que A {e} C. Esta é a definição do CLRS. Exercício: Mostre que esta definição é análoga a anterior. Algoritmos p. 7