Professional Documents
Culture Documents
Aulapassada Auladehoje MST RevisandoMST AlgoritmosdePrime Algoritmoseanalise Kruskal Paradigmaguloso AnalisandoPrim Escalonandotarefas Discussodo notempo(interval trabalho scheduling)
MST
Minimum Spanning Tree (MST)
rvore geradora de custo mnimo
Exemplo
b
4 2 5 1 3
c
5
MST?
2 4
b
2
1 3
c d
d e
1
a f
MST nica?
CustodestaMST? 11
Figueiredo 2010
Descobrindo a MST
Problema: Obter a MST de um grafo Generalizao da BFS, expanso via arestas de menor peso algoritmo de Prim Adicionando arestas leves, evitar gerao de ciclos algoritmo de Kruskal
Figueiredo 2010
Analizando o Algoritmo
Algoritmos de Prim e Kruskal produzem sempre uma MST Mas isto bvio? Como provar que algoritmo sempre produz resultado desejado uma MST Duas propriedades de uma MST Propriedade do ciclo (cycle property) Propriedade do corte (cut property)
Figueiredo 2010
Propriedade do Ciclo
Para qualquer ciclo C do grafo, se o peso de uma aresta e do ciclo for maior do que de todas as outras arestas do ciclo, ento e no pertence a MST Prova por contradio Assuma que aresta e pertence a MST, T Mostrar que existe outra rvore geradora T' com custo menor que no utiliza e Concluir que aresta e no pode pertencer a MST
Figueiredo 2010
Corte em um Grafo
Conjunto de arestas ou vrtices que preciso remover para desconectar o grafo
aumentar o nmero de componentes conexas
2 6
3 7
4 8
Corteemarestas? Corteemvrtices?
Figueiredo 2010
Propriedade do Corte
Para qualquer corte C do grafo, se o peso de uma aresta e do corte for menor do que de todas outras arestas do corte, ento e pertence a MST Prova por contradio Assuma que aresta e no pertence a MST, T' Mostrar que existe outra rvore geradora T com custo menor que utiliza aresta e Concluir que aresta e pertence a MST
Figueiredo 2010
Propriedade do Corte
Prova
Considere corte C Assuma que aresta e no pertence a MST T' Considere outra aresta e' do corte C pertencente a MST T' (e' existe, pois temos um corte) CorteC
u u'
e e'
v v'
Adicionando e em T' ir produzir um ciclo, pois j existe caminho u, v em T' (T' uma MST) Removendo e' de T' nos d uma rvore geradora T (pois existe caminho entre u' e v' via e) Como w(e) < w(e'), o custo(T) < custo(T'), logo T' no uma MST
Figueiredo 2010
Analisando Prim
Algoritmo de Prim sempre produz uma MST Prova A cada iterao do algoritmo, propriedade do corte repeitada Aresta de menor custo do corte S, V-S adicionada rvore a cada iterao Logo, todas as arestas adicionadas pelo algoritmo pertencem MST
Figueiredo 2010
Algoritmo Guloso
Idia: algoritmo que constri soluo em passos pequenos, tomando decises miopes a cada passo para otimizar algum objetivo Dijkstra um algoritmo guloso?
processo iterativo, a cada passo escolhe vrtice com menor distncia
Tcnicaparaprojetaralgoritmos
Figueiredo 2010
Escalonamento de Tarefas
Conjunto de N tarefas a serem executadas Cada tarefa tem horrio para iniciar e terminar Exemplo N=4,T1=[1,3],T2=[2,5],T3=[4,6],T4=[3.1,7]
T2 T3 T4
T1
0
Escalonamento de Tarefas
Escalonamento compatvel conjunto de tarefas que so compatveis no possuem sobreposio entre si
Objetivo: Encontrar maior conjunto de tarefas compatveis Soluo tima sempre nica?
vide exemplo anterior S1 = {T1, T3}, S2 = {T1, T4}
Figueiredo 2010
Escalonamento de Tarefas
Escalonamento compatvel conjunto de tarefas que so compatveis no possuem sobreposio entre si
Objetivo: Encontrar maior conjunto de tarefas compatveis Soluo tima sempre nica?
vide exemplo anterior S1 = {T1, T3}, S2 = {T1, T4}
Algoritmoqueobtmuma soluotimaqualquer
Figueiredo 2010
Algoritmo
Algoritmoqueobtmuma soluotimaqualquer
Idias? Dica: abordagem gulosa (tema da aula de hoje) Complexidade?
Figueiredo 2010
Analisando o Algoritmo
Algoritmo funciona?
Sempre retorna um conjunto compatvel de tarefas?
Sim! Sim!
Algoritmo timo?
Sempre retorna maior conjunto compatvel?
Podemosprovarestas duaspropriedades
Figueiredo 2010