Algoritmos em Grafos.

Slides:



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

Algoritmo de Caminho Mínimo
Árvores 2010/1 Teoria dos Grafos (INF 5037/INF2781)
Árvores CC/EC/Mestrado Teoria dos Grafos ‏ 1.
MBA DE LOGÍSTICA | FCAP- UPE
Prof. M.Sc. Fábio Francisco da Costa Fontes Maio
Grafos - Caminhos Caminhos Máximo / Mínimo:
Celso C. Ribeiro Caroline T. Rocha
Fluxo em Redes Prof. Ricardo R. Santos.
Geometria Computacional Galeria de Arte
Análise de Decisão Aplicada a Gerência Empresarial – UVA Grafos - V
O Problema do Passeio mais Curto
Exercícios PAA- Grafos
Celso C. Ribeiro Caroline T. Rocha
Pontes Seja (G) o número de componentes conexas de G. Uma ponte é uma aresta a tal que (G - a) > (G)
UFES CC/EC/Mestrado Teoria dos Grafos Árvores. UFES CC/EC/Mestrado Teoria dos Grafos Árvores Grafo Acíclico: não possui ciclos.
CC/EC/PPGI/UFES CC/EC/MestradoTeoria dos Grafos Algoritmo de Caminho Mínimo.
Análise e Síntese de Algoritmos
Pesquisa em profundidade
Problemas de fluxo numa rede
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Árvores.
Interseção de Semiplanos
2002 LCG/UFRJ. All rights reserved. 1 Localização no Plano Claudio Esperança Paulo Roma.
Pesquisa Operacional Livro: Introdução à Pesquisa Operacional
Introdução Redes LAN - abrangência: edifícios e campos.
Medida do Tempo de Execução de um Programa
Árvore Geradora de Peso Mínimo
CIRCUNFERÊNCIAS E ÂNGULOS
EQUAÇÕES POLINOMIAIS Prof. Marlon.
Pesquisa Operacional - Profa Úrsula L. F. Ribeiro
Problema de designação
Problema de designação
Prof. Bruno Samways dos Santos
Grafos Msc. Cintia Carvalho Oliveira Doutoranda em Computação – UFU
List Ranking. List Ranking (1) Seja L uma lista representada por um vetor s tal que s[i] é o nó sucessor de i na lista L, para u, o último elemento da.
T ÓPICOS DE I.A. Métodos de Busca Busca em Espaços de Estado Prof. Mário Dantas.
Grafos Árvores Geradoras.
Teoria dos Grafos Caminhos e Noção de Grafos com pesos
Otimização por Colônia de Formigas (ACO)
Cálculo Numérico / Métodos Numéricos
Celso C. Ribeiro Caroline T. Rocha
Operações com grafos União Exemplo
O problema do emparelhamento máximo
Problemas de Fluxo Máximo
Aula T06 – BCC202 Análise de Algoritmos (Parte 4) Túlio Toffolo
Capítulo 11 Programação Lógica
Introdução e Busca Cega
Problema do menor Caminho
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
Conceitos básicos em grafos
Algoritmos de Busca Local
Redes ADSA António Câmara.
Inferência Estatística
2.º Ciclo 6.º ano de escolaridade
José Augusto Amgarten Quitzau
Navegação e Controle de Robôs Móveis PLANEJAMENTO DE CAMINHOS.
Inteligência Artificial
Transformada de Hough Processamento global para a detecção de linhas retas numa imagem Nenhum conhecimento é necessário a respeito da posição das linhas.
Programação Dinâmica.

Problemas de Menor Caminho
Exercícios de Fluxo em Redes
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Redes de transporte Uma rede ou grafo consiste num número finito de pontos chamados nós ou vértices interligados por arcos. Muitos sistemas, físicos ou.
Celso C. Ribeiro Caroline T. Rocha
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Grafos Anjolina Grisi de Oliveira 2005
Algoritmo de Dijkstra.
Transcrição da apresentação:

Algoritmos em Grafos

CAMINHOS MAIS CURTOS Algoritmos em Grafos

Caminhos mais Curtos Dados: grafo G=(V,A) orientado e distância cij associada ao arco (i,j)  A. Problema: Obter o caminho mais curto entre dois nós s e t. O comprimento de um caminho é igual à soma dos comprimentos (distâncias) dos arcos que formam o caminho. A “distância” ou “comprimento” de um arco pode ter diversas interpretações dependendo da aplicação: custos, distâncias, consumo de combustível, etc. Exemplo 1: Dado um mapa rodoviário, determinar a rota mais curta de uma cidade a outra. (rota mais rápida, rota com menor consumo de combustível, ...) Algoritmos em Grafos

Caminhos mais Curtos Exemplo 2: Construção de uma estrada entre duas cidades A e K. O grafo abaixo representa os diversos trechos possíveis e o custo de construção de cada um. Determinar o trajeto ótimo cujo custo de construção seja mínimo (corresponde a achar o caminho mais curto de A a K em relação a estes custos). A B C D F E G J I H K 8 7 5 6 4 2 Solução: A – D – G – I – K custo = 7 + 2 + 2 + 5 = 16 Algoritmos em Grafos

Caminhos mais Curtos Condição de existência: Caminho de i a j contendo um circuito w: k j i w Comprimento do caminho = comprimento (i  k) + comprimento (w) + comprimento (k  j) Qual é o comprimento do caminho mais curto de i a j se o comprimento do circuito w é negativo? Algoritmos em Grafos

Caminhos mais Curtos Condição de existência: não há circuitos de comprimento negativo. A solução ótima (caminho mais curto) sempre será um caminho elementar (sem circuito). Algoritmos em Grafos

Caminhos mais Curtos Caminho mais curto: - De um nó a outro - De um nó a todos os demais - Entre todos os pares de nós de um grafo Algoritmos em Grafos

Caminhos mais Curtos Caminho mais curto do nó 1 a cada nó do grafo G=(V,A) Hipótese: todas as distâncias cij são positivas: cij ≥ 0, (i,j)  A Algoritmo de Moore-Dijkstra (1957-1959) *(i) = comprimento do caminho mais curto do nó 1 ao nó i Em especial, *(1)=0 (distâncias positivas). Algoritmo com n-1 iterações No início de cada iteração, o conjunto V de nós está particionado em dois subconjuntos S e S, com o nó 1 em S. Algoritmos em Grafos

Caminhos mais Curtos Cada nó i  V possui um rótulo (i ), que verifica a seguinte propriedade: dá o valor do caminho mais curto de 1 a i sob a restrição de que todos os nós utilizados (exceto o próprio i ) pertençam a S. a 1 b c i cai cbi cci Algoritmos em Grafos

Caminhos mais Curtos Teorema: Seja o nó tal que . Então , isto é, o comprimento do caminho mais curto do nó 1 ao nó j é igual a . Demonstração: Por construção, certamente existe um caminho de 1 até j com comprimento (j). Suponhamos que exista outro caminho de 1 a j de comprimento menor do que (j). Dividamos este caminho em duas partes: - P1 é a parte inicial, do nó 1 ao nó L, onde L é o primeiro nó de encontrado - P2 é a parte final, do nó L ao nó j Algoritmos em Grafos

Caminhos mais Curtos comprimento de P1 ≥ (L) ≥ (j) Logo, o comprimento de P1 + P2 ≥ (j). Algoritmos em Grafos

Caminhos mais Curtos Algoritmo de Moore-Dijkstra Inicializar S  {2,3,...,n}, S  {1}, (1) 0, (j) c1j se j1+ + caso contrário Enquanto S   faça Selecionar jS tal que (j)= miniS{(i)} S  S – {j} Para iS e ij+ faça (i)  min{(i), (j)+cji} fim_enquanto O algoritmo constrói progressivamente o conjunto dos nós mais próximos de 1.  Construção de uma arborescência com raiz em 1 que define os caminhos mais curtos do nó 1 a cada nó do grafo. Algoritmos em Grafos

Caminhos mais Curtos Exemplo: (1) = 0 (2) = 7 (3) = 1 4 5 6 7 S = {1} S = {2,3,4,5,6} (1) = 0 (2) = 7 (3) = 1 (4) = (5) = (6) = + ITERAÇÃO 1 *(1) = 0 *(3) = 1 1 2 3 4 5 6 7 j = 3 S = {2,4,5,6} (2) = min{7, 1+5} = 6 (5) = min{, 1+2} = 3 (6) = min{, 1+7} = 8 Algoritmos em Grafos

Caminhos mais Curtos (2) = min{6, 3+2} = 5 (4) = min{, 3+5} = 8 *(1) = 0 *(3) = 1 1 2 3 4 5 6 7 *(5) = 3 ITERAÇÃO 2 j = 5 S = {2,4,6} (2) = min{6, 3+2} = 5 (4) = min{, 3+5} = 8 ITERAÇÃO 3 *(1) = 0 *(3) = 1 1 2 3 4 5 6 7 *(5) = 3 *(2) = 5 j = 2 S = {4,6} (4) = min{8, 5+4} = 8 (6) = min{, 5+1} = 6 Algoritmos em Grafos

Caminhos mais Curtos (4) = 8 ITERAÇÃO 4 j = 6 S = {4} ITERAÇÃO 5 *(1) = 0 *(3) = 1 1 2 3 4 5 6 7 *(5) = 3 *(2) = 5 *(6) = 6 ITERAÇÃO 4 j = 6 S = {4} (4) = 8 *(1) = 0 *(3) = 1 1 2 3 4 5 6 7 *(5) = 3 *(2) = 5 *(6) = 6 *(4) = 8 ITERAÇÃO 5 j = 4 S = { } Algoritmos em Grafos

Caminhos mais Curtos  Iteração 1 2 3 4 5 6 7 Início nó 4 2  4 2 5  4 2  4 2 5  4 2 5 7 4 2 5 7 4 2 5 7 4 2 5 7 4 2 5 7 Algoritmos em Grafos

Caminhos mais Curtos Número de operações (tempo): O(n2) n-1 iterações, cada iteração busca o mínimo em uma lista com até n-1 elementos (vetor ) Caminho mais curto do nó 1:  ao nó j  a todos os nós Mesma complexidade, mas critérios de parada diferentes. Algoritmos em Grafos