You are on page 1of 30

Algoritmo de Floyd-Warshall

Discentes: Anderson
Pereira Anderson
Silvestre
Dayanna
Carina
Felipe
Resende
Gabriel
Alves
Izabelle
Moreira Clvis Lemos Tavares
Docente:
Disciplina: Teoria dos Grafos

Biografia

Robert W Floyd
Nascido em Nova York, no dia 8 de junho de 1936, Floyd
terminou a escola aos 14 anos.
Na Universidade de Chicago, ele recebeu um grau de bacharel
em artes liberais, em 1953
quando ainda s 17 anos de idade e um segundo grau de
Bacharel em fsica em 1958 j aos 22 anos.
Floyd casou e se divorciou duas vezes, inclusive com a cientista
da computao Christiane Floyd, e tinha quatro filhos. Em seus
ltimos anos ele sofria de doena de Pick, uma doena
neurodegenerativa e, assim se aposentou no incio de 1994 (58
anos) ele faleceu no dia 25 de setembro, 2001 aos 65 anos.
Dayanna

Premiao

O Prmio Turing concedido anualmente pela Associao para Maquinaria da Computao


para uma pessoa selecionada por contribuies computao. As contribuies devem ser
duradouras e fundamentais no campo computacional.
Robert recebeu o Prmio Turing em 1978, por ter uma influncia clara sobre metodologias
para a criao de software eficiente e confivel, e para ajudar a fundar as seguintes sub reas
importantes da cincia da computao:

A teoria de anlise
As semntica de linguagens de programao
Automtico programa verificao
Automtico sntese de programas
Anlise de algoritmos

Dayanna

Livros e Publicaes

Floyd, Robert W. (1967). "Atribuir sentido aos programas" .


Em Schwartz, JT Aspectos Matemticos da Cincia da Computao .
Anais do Simpsio de Matemtica Aplicada 19 . American Mathematical Socie
pp 19-32. ISBN 0821867288
Floyd, RW (1979). "Os paradigmas de programao" .
Communications da ACM 22 (8):. 455 doi : 10.1145/359138.359140

The Language of
Machines
(A Linguagem de
Mquina) Dayanna

Introduo Algoritmo Floyd-Warshall

teoria de grafos, vrias tcnicas foram publicadas


ra determinar o caminho mais curto entre dois pares de vrtices:

Dijkstra
Bellman-Ford
ohnson
Floyd-Warshall
Abordaremos essa ltima tcnica.

Anderson S

Introduo Floyd-Warshall

O algoritmo de Floyd-Warshall, desenvolvido independentemente trs vezes


por Bernard Roy, Stephen Warshall e Robert Floyd, encontra o menor caminho
entre todos os pares de vrtices de um grafo valorado.
Vale ressaltar que ele apenas encontra os valores de tais caminhos,
e no a sequncia de arestas a ser percorrida.

Anderson S

Aplicaes FloydWarshall
Calcular o Fecho Transitivo de um grafo.

Calcular o dimetro de um grafo.

Verificar se um grafo no-dirigido bipartido.

Minimiza a distncia mxima ou mdia entre todos os vrtice

Izabelle

Objetivo do Algoritmo Floyd-Warshall

O algoritmo de Floyd-Warshall tem como objetivo calcular o


caminho mnimo entre cada par de vrtices de um grafo.
O grafo pode conter arestas negativas
No pode conter ciclos negativos
Utiliza tcnica de programao dinmica

Izabelle

Complexidade do Algoritmo Floyd-Warshall

fcil analisar o tempo de execuo do algoritmo de Floyd-warshall. O lao


principal executado n vezes e o lao interno considera cada um dos O(n2)
pares de vrtices,
realizando um operao de tempo constante para cada par. Se usarmos uma
estrutura de dados como a matriz de adjacncia, temos um tempo de
execuo total de O(n3).

Anderson Pereira

Pontos Importantes

O Algoritmo de Floyd-Warshall trabalha com arestas de peso negativo.


Floyd-Warshall tem como sada uma matriz de caminho mnimos.
Floyd-Warshall apenas fornece o caminho mais curto, e no a sequncia
das arestas.
Floyd-Warshall no aceita ciclo negativo.

Anderson Pereira

Cenrio

Suponha que um grafo orientado ponderado representa as rotas de uma


companhia area conectando diversas cidades.
O objetivo construir uma tabela com os menores caminhos entre todas as cidades.
Esse um exemplo de problema que exige encontrar os caminhos mais
curtos para todos os pares de vrtices.
Uma soluo mais direta utilizar o algoritmo de Floyd.
O algoritmo de Floyd usa uma matriz |V| x |V| para calcular e armazenar
os tamanhos dos caminhos mais curtos.

Felipe

Cenario

Felipe

Cenario

Peso self loop no so considerados


A matriz A e percorrida |V|vezes
A cada interao K
A[v,w] = min(A[v,w], A[v,k]+A[k,w]).
Felipe

Cenario

Felipe

Cenario

Felipe

Cenario

Felipe

Cenario

Felipe

Cenrio

Felipe

Cenrio

Felipe

Cenrio

Felipe

Cenrio

Felipe

Cenrio

Felipe

Cenrio

Felipe

Cenrio

Felipe

Cenrio

Felipe

Cenrio

Felipe

Cenrio

Felipe

Pseudocdigo

Gabriel

Concluso

O problema de caminhos mnimos, apesar de ser um problema NP-Completo, h solues


timas com algoritmos relativamente rpidos para algumas instancias e por vezes otimizaes
podem melhorar consideravelmente a funo complexidade deles, tal como o Floyd-Warshall
implementada para grafos muito grandes torna-se mais rpido.
Entretanto, como todos os algoritmos so ditos gulosos, ou seja, no acham a soluo tima
a princpio, ainda h muito a ser pesquisado nesta rea, partindo do princpio que a quantidade
de aplicaes deste problema inimaginvel.

Gabriel

Bibliografia

CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; (2002).Algoritmos - Teoria e


Prtica. Traduo da 2a edio americana.Rio de Janeiro. Editora Campus
http://stackoverflow.com/questions/11005122/c-c-best-algorithm-to-perfom-adjacency2
distance-matrix-solved-by-floyd-warsha

http://www.cedricve.me/2013/05/06/c-floyd-warshall-shortest-distance-explanation-code/
http://www.cs.virginia.edu/~weimer/2007-615/reading/FloydMeaning.pdf
http://pt.wikipedia.org/wiki/Algoritmo_de_Floyd-Warshall

Gabriel

You might also like