Algoritmo de Johnson Estrutura de Dados II

Slides:



Advertisements
Apresentações semelhantes
Algoritmos de Caminho Mínimo em Grafos
Advertisements

Grafos eulerianos 1.
Algoritmo de Caminho Mínimo
Ford Fulkerson Teoria dos Grafos.
Grafos - Caminhos Caminhos Máximo / Mínimo:
Fluxo em Redes Prof. Ricardo R. Santos.
O Problema do Passeio mais Curto
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
CC/EC/PPGI/UFES CC/EC/MestradoTeoria dos Grafos Algoritmo de Caminho Mínimo.
Análise e Síntese de Algoritmos
Grafos Grafo G = (V, E) V — conjunto de vértices
Teoria dos Grafos – Aula 6
Teoria dos Grafos – Aula 3 Árvores
Prof. Bruno Samways dos Santos
O NÚMERO DE LADOS DA BASE
Caminho Hamiltoniano ... em um grafo é o caminho que visita
Monitoria de Matemática Discreta
Algoritmos Gulosos em Grafos
ÁRVORES Def.: Um grafo é acíclico se não possui ciclos.
Algoritmo de PRIM para MST
Análise de Complexidade do Algoritmo de Dijkstra
Msc. Daniele Carvalho Oliveira
CAMINHOS MAIS CURTOS EM GRAFOS
Algoritmos para Obtenção de Árvore Geradora Mínima
Problema MST Método Genérico Guloso usando Estratégia do Corte
Análise e Síntese de Algoritmos
Programação Dinâmica Profa. Sandra de Amo Bacharelado em Ciência da Computação – UFU Disciplina de Análise de Algoritmos.
Algoritmo de Dijkstra.
 Prof. Miguel Gabriel Prazeres de Carvalho 1. 2 Redes Sociais GPS Para o correio. Para Viajantes. Pesquisas Biológicas. Distribuição de Tarefas. Recomendações.
Grafos Prof. Miguel Gabriel Prazeres de Carvalho.
Retaguarda - Cadastro de forma de Pagamento. Objetivo: Cadastrar as formas de pagamento que serão utilizadas nas vendas em crediário e no Cadastro de.
A IMPORTÂNCIA DA CONDUTA ÉTICA NO TRABALHO LUCAS NASCIMENTO JULIO TORRES.
UM FRAMEWORK PARA ALGORITMOS BASEADOS NA TEORIA DOS GRAFOS Acadêmico: Maicon Rafael Zatelli Orientador: Dr. Paulo C é sar Rodacki Gomes.
CIRCUITOS ELÉTRICOS EM CC
Alessandro D. R. Fazenda Ciclo PDCA Alessandro D. R. Fazenda
P3 - Fluxo máximo numa rede de transporte
Algoritmo de bellman-ford
Algoritmo de Floyd-Warshall
O número de divisores naturais de um número natural é igual ao produto dos expoentes dos seus fatores primos aumentado, cada expoente, do número.
7ª aula PROBLEMA DE ATRIBUIÇÃO UNIDADE 6
João Pascoal Faria EGP, CPC, 2004/05
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas
Metodologia do Ensino da Matemática – Aula 03
Algoritmo de Ford-Fulkerson
Resolução de PLs O método de enumeração de soluções básicas é muito ineficiente. O número de possíveis bases pode ser enorme Para encontrar a solução associada.
O ciclo trigonométrico.
Algoritmo de Bellman-Ford para cálculo de custo mínimo em grafo
ÁRVORES ABRANGENTES. Árvores abrangentes Uma árvore abrangente é um grafo conexo e sem circuitos, que contém todos os seus vértices. A utilização de uma.
Algoritmos de Redes Rota mais curta Árvore de ramificação mínima
Algoritmos e Estruturas de Dados I
Exercícios Revisão Faça um algoritmo em PHP que receba um valor qualquer e calcule o seu fatorial (!), sabendo que fatorial de um número é: 7! = 7*6*5*4*3*2*1.
6ª aula PROBLEMA DE TRANSPORTES – Parte 2 UNIDADE 5
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas
Movimentos Custos Inventário
Grafos eulerianos 1.
Emparelhamento em Grafos
Grafos Anjolina Grisi de Oliveira 2007
RAZÃO E PROPORÇÃO (Aula 3)
Resolução de Problemas por Busca
INF 1771 – Inteligência Artificial
Arranjo Físico Industrial
Introdução à NP-completude
Sistemas Inteligentes Busca Cega (Exaustiva)
Aula 7 – Algoritmos Genéticos
Geometria Computacional
RESULTADOS E DISCUSSÃO
Optimized Link State Routing
Problemas de Transporte (Redes)
Prof. Rafael Mesquita Algoritmo de Dijkstra Prof. Rafael Mesquita
7 de setembro de 2019.
Transcrição da apresentação:

Algoritmo de Johnson Estrutura de Dados II Lucas Ferreira Lucas Carvalho Nelson Plínio

Algoritmo de Johnson Foi criado em 1977 por Donald B. Johnson. O seu objetivo é encontrar o caminho mínimo para todos os vértices do grafo. Aplicado em grafos que são esparsos, direcionados e valorados. Permite que arestas tenham pesos negativos porém não pode existir um ciclo cujo a soma dos pesos seja negativo.

Procedimento: Adiciona um vértice e V arestas ao grafo, onde V = número de arestas Aplica o algoritmo de Bellman-Ford para cada vértice do grafo, utilizando o novo vértice como origem. Retira os vértices e arestas adicionados anteriormente e atualiza os pesos das arestas do grafo Aplica o algoritmo de Dijkstra em cada vértice do novo grafo.

Exemplo: -2 A B 4 -1 C 2 -3 D F 1 -4 E

1º Passo Verificar se existe algum ciclo negativo no grafo. -2 A B 4 + (-1) + (-2) = 1 4 -1 C 2 -3 D F 1 -4 E

2º Passo Adicionar um novo vértice ao grafo e uma aresta para cada vértice do grafo. Estas arestas têm peso 0 devem sua origem deve ser o novo vértice. -2 A B 4 -1 C X 2 -3 D F 1 -4 E

3º Passo Aplicar o algoritmo de Bellman-Ford para cada um do vértices do grafo utilizando o novo vértice como fonte. -2 A B 4 -1 X → A C X 0 + (-1) + 4 = 3 2 -3 D F 1 -4 E

3º Passo Aplicar o algoritmo de Bellman-Ford para cada um do vértices do grafo utilizando o novo vértice como fonte -2 -2 A B 4 -1 X → B C X 2 -3 0 + (-2) = -2 D F 1 -4 E

3º Passo Aplicar o algoritmo de Bellman-Ford para cada um do vértices do grafo utilizando o novo vértice como fonte -2 -2 A B 4 -1 -3 C X 2 -3 -6 -1 D F 1 -4 E

4º Passo Retirar as arestas e vértices adicionados anteriormente. Retirar as arestas e vértices adicionados anteriormente. Atualizar o peso de cada aresta do grafo utilizando a fórmula: -2 X -2 A B 4 -1 NP = PA + O - D -3 C NP = novo peso PA = peso atual O = origem D = destino 2 -3 -6 -1 D F 1 -4 E

4º Passo Retirar as arestas e vértices adicionados anteriormente. Retirar as arestas e vértices adicionados anteriormente. Atualizar o peso de cada aresta do grafo utilizando a fórmula: A → B: (-2) + 0 – (-2) = 0 -2 -2 A B B → C: (-1) + (-2) – (-3) = 0 1 4 C → A: 4 + (-3) – 0 = 1 -1 NP = PA + O - D -3 C C → F: (-3) + (-3) – (-6) = 0 NP = novo peso PA = peso atual O = origem D = destino 2 -3 C → D: 2 + (-3) – (-1) = 0 -6 -1 D F E → D: 1 + 0 – (-1) = 2 E → F: (-4) + 0 – (-6) = 2 1 -4 2 2 E

5º Passo Aplicar o algoritmo de Dijkstra para cada um dos vértices do novo grafo. -2 A B 1 -3 C -6 -1 D F 2 2 E

Floyd Warshall VS Johnson Performance: O(v³) O(V*E) – Bellman-Ford O(E + V * log V) – Dijkstra

Obrigado !