Escolar Documentos
Profissional Documentos
Cultura Documentos
Toffolo 2011/1
Na aula anterior
Programao Dinmica
Na aula de hoje
Algoritmos Gulosos.
Problemas Combinatrios
Como dito anteriormente, problemas combinatrios so problemas em que uma soluo a combinao de um subconjunto de elementos; O espao de busca de um problema combinatrio o conjunto de todas as solues possveis, podendo ser restrito as solues viveis ou no.
4
Objetivos
As solues de um problema combinatrio so avaliadas de acordo com o objetivo a ser alcanado
Que pode ser representado atravs de uma expresso matemtica.
Tais expresses possuem como variveis os elementos a serem combinados e que formam o espao de busca; Podemos desejar maximizar ou minimizar a funo objetivo.
5
Restries
O enunciado de problemas combinatrios elencam um objetivo a ser alcanado de acordo com alguns critrios sobre a estrutura da soluo; Tais critrios so chamados de restries do problema, e so utilizados para definir a viabilidade de uma determinada soluo
Uma soluo que respeita todas as restries dita vivel; Uma soluo que viola uma ou mais restries chamada de invivel.
6
Problemas Combinatrios
Consideremos novamente o Problema da Mochila:
Dada uma mochila com capacidade C, e n objetos xi (i=1n) com peso pi (i=1n), o objetivo preencher a mochila com o maior peso total, respeitando a capacidade C.
Problemas Combinatrios
Este problema pode ser modelado da seguinte maneira:
As variveis so os elementos xi (i=1n), cujo domnio binrio A varivel xi vale 1 caso o elemento i esteja presente na soluo, e 0 caso contrrio. A funo objetivo a soma das variveis multiplicadas por seus pesos Ou seja, pi xi para (i=1n); Deve ser maximizada. A nica restrio que a soma dos pesos dos objetos selecionados seja menor que a capacidade C.
8
Modelagem
n
max pi xi
i =1
sujeito a :
n
px
i i =1
Problemas Combinatrios
10
Modelagem
max 12 x1 + 2 x2 + 4 x3 + 8 x4 sujeito a : 12 x1 + 2 x2 + 4 x3 + 8 x4 C pi {0,1} i = 1,K 4 xi {0,1} i = 1,K 4
11
Espao de Busca
X1 x2
x3 x4 x1 x1 x2 x3 x4 x2 x3 x4
12
x2 x4 x2
Solues
Uma soluo tima uma soluo vivel que otimiza (maximiza ou minimiza) a funo objetiva de um problema combinatrio
Ou seja, atinge o melhor valor para um problema.
Podemos ter uma ou mltiplas solues timas para um modelo, todas com o mesmo valor de avaliao da funo objetivo
13
Solues
Ao explorarmos o espao de busca utilizando alguma tcnica, podemos realizar movimentos entre solues
Ou seja, a partir de uma soluo atual, a alteramos de uma determinada maneira e chegamos a outra soluo.
Vizinhana
X1 x2
x3 x4 x1 x1 x2 x3 x4 x2 x3 x4
15
x2 x4 x2
Um timo local uma soluo considerada tima entre todas as solues de sua vizinhana
Ou seja, no necessariamente um timo global, podendo ser considerada uma soluo subtima.
16
17
Podemos utilizar tambm mtodos heursticos (ou no exatos) para gerar boas solues (geralmente subtimas)
No h garantia de qualidade da soluo; Para problemas pequenos, pode achar a soluo tima com facilidade mesmo para problemas complexos; Geralmente rpidos.
18
19
Algoritmos Gulosos
Algoritmos Gulosos (Gananciosos, Mopes, etc.) so algoritmos que funcionam em uma sequncia de passos e se baseiam na melhor escolha a cada passo, de acordo com um conjunto de opes restrito
Em outras palavras, escolhe o timo local a cada passo.
Em algumas situaes esta estratgia leva solues timas ou timos globais; No entanto, no existe garantia de bom desempenho em geral
Em casos de problemas difceis, algoritmos gulosos bem projetados produzem solues boas, aceitveis diante da dificuldade dos problemas.
21
Algoritmos Gulosos
Algoritmos gulosos no reconsideram escolhas uma vez feitas
No realizam uma busca exaustiva; O que diferencia este mtodo de backtracking, por exemplo.
22
Algoritmos Gulosos
Boa parte do projeto de um algoritmo guloso devido criatividade do projetista
Novamente, necessrio enxergar o problema pela perspectiva correta, ter insights.
Provar a corretude de um algoritmo guloso pode requerer provas matemticas rigorosas e geralmente difceis.
23
Algoritmos Gulosos
Composio
Conjunto de opes Do qual escolhido o prximo passo. Critrio guloso de escolha Como ser realizada a escolha. independente de escolhas passadas. Funo de viabilidade Avalia quais escolhas so de fato viveis. Funo objetivo Determina o valor de cada escolha. Funo de soluo Determina se a soluo corrente completa.
24
Algoritmos Gulosos
Inicialmente, a soluo um conjunto vazio
A cada passo:
Escolha o melhor elemento do conjunto de opes por meio do critrio guloso e da funo objetivo; Verifique a viabilidade da soluo por meio da funo de viabilidade Se a escolha vivel
Atualize a funo objetivo;
Seno
Rejeite este elemento (definitivamente);
Algoritmos Gulosos
Podem ser aplicados a qualquer problema
Podem ainda ser embutidos em mtodos mais elaborados.
Exemplo
27
O Problema da Mochila
O conjunto de opes o conjunto de objetos disponveis a cada instante; A funo de viabilidade determina se o objeto escolhido ultrapassa o limite da mochila ou no; A funo objetivo avalia a soma dos objetos escolhidos A funo soluo determina se no mais possvel colocar objetos na mochila; E o critrio guloso? Qual poderia ser?
28
Algoritmos gulosos possuem um princpio bsico simples e muita liberdade para o seu projeto
Podem ser recursivos ou iterativos.
29
Subestrutura tima
Um problema que possui subestrutura tima pode ser dividido sucessivamente, e a combinao das solues timas dos subproblemas corresponde soluo tima do problema original
Ou seja, possvel diminuir o problema, e resolv-lo incrementalmente com timos locais, pois eles construiro o timo global.
30
rvores Geradoras
Dado um grafo G=(V, E) conectado e no orientado, uma rvore geradora T(V, E) composta por V = V e E E
Tendo em vista que T uma rvore, no so admitidos ciclos.
31
rvores Geradoras
2 3 4
4
9
9
6 1
14 10
6
33
Algoritmo de Prim
O algoritmo de Prim guloso; A partir de um vrtice inicial, seleciona as arestas de menor peso disponveis a cada vrtice j visitado
Sem ciclos, pois s visita novos ns.
34
Algoritmo de Prim
1. Crie um conjunto de vrtices S, com todos os vrtices do grafo G; 2. Selecione arbitrariamente um vrtice inicial e o remova de S;
1. Enquanto S vazio
1. Selecione a aresta (u, v) de menor peso tal que u no pertena a S e v pertena
1. No caso de empates, decida arbitrariamente;
Algoritmo de Prim
36
Algoritmo de Prim
37
Algoritmo de Prim
38
Algoritmo de Prim
39
Algoritmo de Prim
40
Algoritmo de Prim
41
Algoritmo de Prim
42
Algoritmo de Prim
43
Algoritmo de Prim
44
Algoritmo de Prim
45
Algoritmo de Kruskal
um algoritmo do tipo guloso tambm; No parte de um vrtice inicial; Seleciona arestas de menor peso sucessivamente at que uma rvore geradora seja obtida
Como as arestas so as de menor peso, seguro adicion-las arvore geradora mnima.
46
Algoritmo de Kruskal
1. Ordene as arestas de forma no decrescente em relao ao peso no vetor A 2. Enquanto houverem arestas ou T no for uma rvore geradora
1. Selecione a aresta de menor peso
1. Se a aresta conecta dois vrtices u e v no presentes na mesma rvore e no forma ciclo adicione-a a T e remova-a de A; 2. Caso contrrio, descarte-a. 3. Retorne ao passo 1.
47
Algoritmo de Kruskal
48
Algoritmo de Kruskal
49
Algoritmo de Kruskal
50
Algoritmo de Kruskal
51
Algoritmo de Kruskal
52
Algoritmo de Kruskal
53
Algoritmo de Kruskal
54
Algoritmo de Kruskal
55
Algoritmo de Kruskal
56
Cobertura de Conjuntos
Uma instncia do problema de cobertura de conjuntos consiste de um conjunto finito X e uma famlia F de subconjuntos de X
Cada elemento de X pertence a pelo menos um subconjunto em F
Elementos podem pertencer a mais de um subconjunto.
Cobertura de Conjuntos
O objetivo do problema encontrar um subconjunto de C F cujos membros sejam uma cobertura de X; O tamanho de C definido pela quantidade de subconjuntos que contm.
S4
S1 S2
S6 S3 S5
58
Cobertura de Conjuntos
S4
S1 S2
S6 S3 S5
59
Vclav Chvtal
Doutorado em Matemtica em 1 ano; Alexander von Humboldt Distinguished Senior Scientist Award Apenas 100 cientistas no mundo. BealeOrchard-Hays Prize for Excellence in Computational Mathematical Programming Mathematical Programming Society. 3 livros; Grafo com seu nome; Grande influncia no problema do caixeiro viajante, programao matemtica, art gallery theorem, resolution theorem proving, etc. Erds Number: 1.
60
David S. Johnson
Summa Cum Laude no Amherst College em Matemtica; Chefe do departamento de Algoritmos e Otimizao do AT&T labs; 2010 Knuth Prize; Fellow da ACM; Erds Number: 2; Computers and Intractability: A Guide to the Theory of NPCompleteness;
61
Lszl Lovsz
Presidente da International Mathematical Union; Kyoto Prize (2010); Hungary's Szchenyi Grand Prize (2008); Bolyai prize (2007); Gdel Prize (2001); Wolf Prize (1999); Fulkerson Prize (1982); Best Information Theory Paper Award (IEEE) (1981); Plya Prize (SIAM) (1979).
62
Cobertura de Conjuntos
S4 S2 S6 S3
S1
S5
63
Alguns conceitos matemticos podem ser utilizados para definir uma classe de instncias que podem ser resolvidas de maneira gulosa
Mas normalmente, utiliza-se somente o faro e a experincia do projetista; H diversos critrios gulosos, mas poucos so corretos.
Algoritmos Gulosos
Vantagens
Algoritmos simples; Fcil implementao; Em alguns casos fornecem solues bastante satisfatrias.
Desvantagens
No h nenhuma garantia de qualidade da soluo.
66
Algoritmos Gulosos
Deixando de lado o rigor, deve-se olhar para um algoritmo guloso atravs dos olhos de um detetive e no atravs dos culos de um matemtico.
Um bom detetive
Perguntas?
68
Na prxima aula
Prticas.
69
FIM
70