SlideShare uma empresa Scribd logo
1 de 16
Baixar para ler offline
Complexidade do
Algoritmo
Caminho Mínimo de Floyd - Warshall
Componentes
● Lucas Vinícius
● Luiz Ricardo
● Pedro Santos
Roteiro da apresentação
● Explicação do algoritmo
● Pseudocódigo
● Exemplo de execução
● Dedução da complexidade
O que o algoritmo faz?
● Encontra o menor caminho (os valores de tais caminhos e não as arestas
a serem percorridas) entre os pares de vértices de um dígrafo ponderado.
Explicação do algoritmo
● O algoritmo preenche um matriz bidimensional,
caminho[][], onde caminho[i][j] é o tamanho do menor
caminho entre os nodos i e j:
○ Assume-se que a matriz está inicialmente preenchida com o
valor de cada aresta ou infinito (caso não haja uma aresta
entre dois vértices).
Explicação do algoritmo
● Fixa-se um vértice k do grafo; para cada par (i,j) de
vértices, é verificado se o menor caminho j conhecido
entre (i, j) supera a soma do tamanho do caminho de i
para k com o de k para j. Caso supere, o tamanho do
menor caminho passa a ser essa soma.
Pseudocódigo
FUNC FLOYD_WARSHALL (CAMINHO[][])
FOR K = 1 TO N
FOR I = 1 TO N
FOR J = 1 TO N
CAMINHO[I][J] = MIN(CAMINHO[I][J], CAMINHO[I][K]+CAMINHO[K][J])
Exemplo de execução
● Considere o seguinte grafo:
Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
Exemplo de execução
● Considere o seguinte grafo:
Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
Exemplo de execução
● Considere o seguinte grafo:
Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
Exemplo de execução
● Considere o seguinte grafo:
Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
Exemplo de execução
● Considere o seguinte grafo:
Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
Dedução de complexidade
● Cada laço for pode ser convertido em um somatório com o mesmo
valor inicial e final. Considerando a decisão do valor mínimo entre
dois números (min(a, b)) como operação elementar e as
atribuições e acessos a matrizes como tempo constante, a
complexidade do algoritmo de Floyd-Warshall é dada por:
Dedução de complexidade
● Pode-se converter o somatório da variável j em n, pois o resultado deste é
a soma n vezes do valor 1, e isolar este termo, que não depende da
variável j, resultando no seguinte somatório:
● Ao repetir a dedução usada anteriormente com os somatórios das
variáveis i e k, encontra-se o seguinte resultado:
Dedução de complexidade
● Com a dedução anterior é perceptível que o algoritmo de
Floyd-Warshall possui complexidade O(n³), onde n é o número de
vértices do grafo fornecido.
Referências
● http://pt.slideshare.net/johnnatan20/caminhos-mnimos-fl
oyd?next_slideshow=1
● http://www.inf.ufrgs.br/~cgdaudt/inf05515/art1.pdf

Mais conteúdo relacionado

Mais procurados

Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos Grafos
Bianca Dantas
 
Funcao modular
Funcao modularFuncao modular
Funcao modular
con_seguir
 
Aula 7 - Funções Logarítmicas, Exponenciais e Trigonometricas
Aula 7 - Funções Logarítmicas, Exponenciais e TrigonometricasAula 7 - Funções Logarítmicas, Exponenciais e Trigonometricas
Aula 7 - Funções Logarítmicas, Exponenciais e Trigonometricas
Turma1NC
 
Geometria analítica distancia entre dois pontos
Geometria analítica distancia entre dois pontosGeometria analítica distancia entre dois pontos
Geometria analítica distancia entre dois pontos
Camila Oliveira
 

Mais procurados (20)

Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)Problema da Mochila 0-1 (Knapsack problem)
Problema da Mochila 0-1 (Knapsack problem)
 
Matemática Probabilidade resumo
Matemática Probabilidade resumoMatemática Probabilidade resumo
Matemática Probabilidade resumo
 
Introdução à Teoria dos Grafos
Introdução à Teoria dos GrafosIntrodução à Teoria dos Grafos
Introdução à Teoria dos Grafos
 
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
5- Modelo entidade Relacionamento - Cardinalidade - Profª Cristiane Fidelix
 
Aula 14: O poço de potencial infinito
Aula 14: O poço de potencial infinitoAula 14: O poço de potencial infinito
Aula 14: O poço de potencial infinito
 
Paa algoritmos gulosos
Paa  algoritmos gulososPaa  algoritmos gulosos
Paa algoritmos gulosos
 
Aula 11 estimação
Aula 11   estimaçãoAula 11   estimação
Aula 11 estimação
 
Aula 07 derivadas - regras de derivação - parte 1
Aula 07   derivadas - regras de derivação - parte 1Aula 07   derivadas - regras de derivação - parte 1
Aula 07 derivadas - regras de derivação - parte 1
 
Funcao modular
Funcao modularFuncao modular
Funcao modular
 
Analise de Sensibilidade
Analise de SensibilidadeAnalise de Sensibilidade
Analise de Sensibilidade
 
Aula 7 - Funções Logarítmicas, Exponenciais e Trigonometricas
Aula 7 - Funções Logarítmicas, Exponenciais e TrigonometricasAula 7 - Funções Logarítmicas, Exponenciais e Trigonometricas
Aula 7 - Funções Logarítmicas, Exponenciais e Trigonometricas
 
Seminário sobre Grafos por Samyra Lara
Seminário sobre Grafos por Samyra LaraSeminário sobre Grafos por Samyra Lara
Seminário sobre Grafos por Samyra Lara
 
Lista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e AutômatosLista de Exercícios - Linguagem Formais e Autômatos
Lista de Exercícios - Linguagem Formais e Autômatos
 
Apostila Calculo II - UDESC.pdf
Apostila Calculo II - UDESC.pdfApostila Calculo II - UDESC.pdf
Apostila Calculo II - UDESC.pdf
 
Distribuição Normal
Distribuição NormalDistribuição Normal
Distribuição Normal
 
Algebra
AlgebraAlgebra
Algebra
 
Labirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafosLabirintos 2D - Abordagem de grafos
Labirintos 2D - Abordagem de grafos
 
Polinômios..
Polinômios..Polinômios..
Polinômios..
 
Exercicios de estatistica resolvido.5
Exercicios de estatistica resolvido.5Exercicios de estatistica resolvido.5
Exercicios de estatistica resolvido.5
 
Geometria analítica distancia entre dois pontos
Geometria analítica distancia entre dois pontosGeometria analítica distancia entre dois pontos
Geometria analítica distancia entre dois pontos
 

Semelhante a Complexidade do Algoritmo: Caminho mínimo Floyd Warshall

13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
Ricardo Bolanho
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
Mauro Pereira
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
gjpbg
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
Leandro Lopes
 
Capitulo-3-Portas-Logicas-e-Algebra-Booleana.pdf
Capitulo-3-Portas-Logicas-e-Algebra-Booleana.pdfCapitulo-3-Portas-Logicas-e-Algebra-Booleana.pdf
Capitulo-3-Portas-Logicas-e-Algebra-Booleana.pdf
EliakimArajo2
 
Redes neurais com matlab
Redes neurais com matlabRedes neurais com matlab
Redes neurais com matlab
Renato Vicente
 

Semelhante a Complexidade do Algoritmo: Caminho mínimo Floyd Warshall (20)

Árvores Espalhadas Mínimas
Árvores Espalhadas MínimasÁrvores Espalhadas Mínimas
Árvores Espalhadas Mínimas
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
Treinamento para Competições de Programacão - Single-Source Shortest Paths: D...
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdf
 
26-aula26.pdf
26-aula26.pdf26-aula26.pdf
26-aula26.pdf
 
Introdução ao Octave
Introdução ao OctaveIntrodução ao Octave
Introdução ao Octave
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Lista de exercício
Lista de exercício   Lista de exercício
Lista de exercício
 
euclides primos
euclides primoseuclides primos
euclides primos
 
Fluxo a Custo Mínimo
Fluxo a Custo MínimoFluxo a Custo Mínimo
Fluxo a Custo Mínimo
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
Capitulo-3-Portas-Logicas-e-Algebra-Booleana.pdf
Capitulo-3-Portas-Logicas-e-Algebra-Booleana.pdfCapitulo-3-Portas-Logicas-e-Algebra-Booleana.pdf
Capitulo-3-Portas-Logicas-e-Algebra-Booleana.pdf
 
A robustez de circuitos sequenciais
A robustez de circuitos sequenciaisA robustez de circuitos sequenciais
A robustez de circuitos sequenciais
 
Camada rede
Camada redeCamada rede
Camada rede
 
Kmeans
KmeansKmeans
Kmeans
 
04-Extensoes de MTs.pdf
04-Extensoes de MTs.pdf04-Extensoes de MTs.pdf
04-Extensoes de MTs.pdf
 
Criptografia RSA
Criptografia RSACriptografia RSA
Criptografia RSA
 
Grafos
GrafosGrafos
Grafos
 
Redes neurais com matlab
Redes neurais com matlabRedes neurais com matlab
Redes neurais com matlab
 

Mais de Lucas Vinícius

Mais de Lucas Vinícius (16)

A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
A Evolução das Distribuições de SistemaOperacional Linux Patrocinados pela Em...
 
Como utilizar windows management instrumentation com a linguagem vb script
Como utilizar windows management instrumentation com a linguagem vb scriptComo utilizar windows management instrumentation com a linguagem vb script
Como utilizar windows management instrumentation com a linguagem vb script
 
Probabilidade e estatística - Variáveis Aleatórias
Probabilidade e estatística - Variáveis AleatóriasProbabilidade e estatística - Variáveis Aleatórias
Probabilidade e estatística - Variáveis Aleatórias
 
Definição de marketing e suas implicações
Definição de marketing e suas implicaçõesDefinição de marketing e suas implicações
Definição de marketing e suas implicações
 
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagemTeorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
Teorias da aprendizagem de Piaget: equilibração e fases de aprendizagem
 
Behaviorismo de Skinner
Behaviorismo de SkinnerBehaviorismo de Skinner
Behaviorismo de Skinner
 
Gerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUMGerenciamento ágil de processos - SCRUM
Gerenciamento ágil de processos - SCRUM
 
Ruído em higiene e segurança no trabalho
Ruído em  higiene e segurança no trabalhoRuído em  higiene e segurança no trabalho
Ruído em higiene e segurança no trabalho
 
Rethinking main memory oltp recovery
Rethinking main memory oltp recoveryRethinking main memory oltp recovery
Rethinking main memory oltp recovery
 
Gerenciamento de processos Linux
Gerenciamento de processos LinuxGerenciamento de processos Linux
Gerenciamento de processos Linux
 
Problemas clássicos de comunicação interprocessos
Problemas clássicos de comunicação interprocessosProblemas clássicos de comunicação interprocessos
Problemas clássicos de comunicação interprocessos
 
Prevenção, proteção e combate ao incêndio de classe A
Prevenção, proteção e combate ao incêndio de classe APrevenção, proteção e combate ao incêndio de classe A
Prevenção, proteção e combate ao incêndio de classe A
 
Fases do desenvolvimento de acordo com a Teoria de Freud
Fases do desenvolvimento  de acordo com a Teoria de FreudFases do desenvolvimento  de acordo com a Teoria de Freud
Fases do desenvolvimento de acordo com a Teoria de Freud
 
Telefone sem fio - um problema de má comunicação
Telefone sem fio - um problema de má comunicaçãoTelefone sem fio - um problema de má comunicação
Telefone sem fio - um problema de má comunicação
 
Pesquisas envolvendo seres humanos
Pesquisas envolvendo seres humanosPesquisas envolvendo seres humanos
Pesquisas envolvendo seres humanos
 
Introdução a Simulação de redes Sensores sem fio com Castalia
Introdução a Simulação de redes Sensores sem fio com CastaliaIntrodução a Simulação de redes Sensores sem fio com Castalia
Introdução a Simulação de redes Sensores sem fio com Castalia
 

Complexidade do Algoritmo: Caminho mínimo Floyd Warshall

  • 2. Componentes ● Lucas Vinícius ● Luiz Ricardo ● Pedro Santos
  • 3. Roteiro da apresentação ● Explicação do algoritmo ● Pseudocódigo ● Exemplo de execução ● Dedução da complexidade
  • 4. O que o algoritmo faz? ● Encontra o menor caminho (os valores de tais caminhos e não as arestas a serem percorridas) entre os pares de vértices de um dígrafo ponderado.
  • 5. Explicação do algoritmo ● O algoritmo preenche um matriz bidimensional, caminho[][], onde caminho[i][j] é o tamanho do menor caminho entre os nodos i e j: ○ Assume-se que a matriz está inicialmente preenchida com o valor de cada aresta ou infinito (caso não haja uma aresta entre dois vértices).
  • 6. Explicação do algoritmo ● Fixa-se um vértice k do grafo; para cada par (i,j) de vértices, é verificado se o menor caminho j conhecido entre (i, j) supera a soma do tamanho do caminho de i para k com o de k para j. Caso supere, o tamanho do menor caminho passa a ser essa soma.
  • 7. Pseudocódigo FUNC FLOYD_WARSHALL (CAMINHO[][]) FOR K = 1 TO N FOR I = 1 TO N FOR J = 1 TO N CAMINHO[I][J] = MIN(CAMINHO[I][J], CAMINHO[I][K]+CAMINHO[K][J])
  • 8. Exemplo de execução ● Considere o seguinte grafo: Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
  • 9. Exemplo de execução ● Considere o seguinte grafo: Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
  • 10. Exemplo de execução ● Considere o seguinte grafo: Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
  • 11. Exemplo de execução ● Considere o seguinte grafo: Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
  • 12. Exemplo de execução ● Considere o seguinte grafo: Nota: D(0) é a matriz de entrada, D(1) … D(N) são as matrizes após a iteração com cada vértice.
  • 13. Dedução de complexidade ● Cada laço for pode ser convertido em um somatório com o mesmo valor inicial e final. Considerando a decisão do valor mínimo entre dois números (min(a, b)) como operação elementar e as atribuições e acessos a matrizes como tempo constante, a complexidade do algoritmo de Floyd-Warshall é dada por:
  • 14. Dedução de complexidade ● Pode-se converter o somatório da variável j em n, pois o resultado deste é a soma n vezes do valor 1, e isolar este termo, que não depende da variável j, resultando no seguinte somatório: ● Ao repetir a dedução usada anteriormente com os somatórios das variáveis i e k, encontra-se o seguinte resultado:
  • 15. Dedução de complexidade ● Com a dedução anterior é perceptível que o algoritmo de Floyd-Warshall possui complexidade O(n³), onde n é o número de vértices do grafo fornecido.