You are on page 1of 15

Teoria dos Grafos Aula 13

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

Corte em arestas ou corte em vrtices Exemplo


1 5

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

Prim um algortimo guloso?


processo iterativo, a cada passo escolhe aresta de menor peso

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

Problema: Quais tarefas executar de forma a maximizar nmero de tarefas?


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}

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?

Algoritmo pode falhar?

Podemosprovarestas duaspropriedades

Figueiredo 2010

You might also like