230 likes | 332 Views
Explore various network optimization algorithms such as Max Flow, Min Spanning Tree, Shortest Path, and more for efficient pathfinding solutions. Learn about Dijkstra's Algorithm and its steps for finding the shortest path in a network.
E N D
OtimizaçãoemRedes Prof. Bruno Samways dos Santos bruno.samways@gmail.com
Introdução 1 – Problema de Fluxo Máximo 2 – Problema da Árvore de Expansão Mínima 3 – Problema do Caminho Mais Curto 4 – Problema de Fluxo de Custo Mínimo 5 – Redes PERT/CPM
Problema do CaminhoMaisCurto O objetivodestetipo de problema é encontrar o caminhomínimo entre doisnós As redesemquepodemseraplicadasosalgoritmosdesteproblemaenvolvemtanto arcos direcionadoscomonãodirecionados (vamostrabalharmais com direcionados) Os arcos podemrepresentardistâncias, tempos oucustosporexemplo.
Algoritmosexistentes Dijkstra Ford, Bellman e Moore Caminhomaisconfiável Floyd Dantzig K-caminhosmínimos
Algoritmo de Dijkstra Utiliza-se estealgoritmoparadeterminar o caminhomínimo de um nópara outro nóouparatodosos outros nós da rede É um dos algoritmosmaisutilizadosporsuaeficiência Suautilizaçãosó é possívelquando o valor (tempo, distância, custo) atribuídonos arcos são POSITIVOS
Passos • 1. Identifique a origem da rede e rotule-a DEFINITIVAMENTE , fazendopara o nó: [o,-](0) • Obs: [a, n](i) , onde: a = valor da soma dos arcos predecessores e, n = nó predecessor. • 2. Identifiqueos arcos quesaem do nórecém-rotulado e rotule TEMPORARIAMENTE osnósalcançadospelos arcos. • 3. Identifique o nó TEMPORÁRIO com a menor soma dos arcos (de toda a rede) e rotule-o DEFINITIVAMENTE • 4. Repitaospassos 2 e 3 aténãosobraremmaisnós com rótulos TEMPORÁRIOS ouatéterchegadoaodestinoescolhido
A D 4 8 6 2 3 O C T 12 6 1 4 5 12 B E 2
A D 4 8 6 2 3 O C T 12 6 [0,-](0) 1 4 5 12 B E 2
[8,O](1) A D 4 8 6 2 3 [12,O](1) O C T 12 6 [0,-](0) 1 4 5 12 B E 2 [5,O](1)
[8,O](1) A D 4 8 6 2 3 [12,O](1) O C T 12 6 [0,-](0) 1 4 5 12 B E 2 [5,O](1)
[8,O](1) A D 4 8 6 [9,B](2) 2 3 [12,O](1) O C T 12 6 [0,-](0) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
[8,O](1) A D 4 8 6 [9,B](2) 2 3 [12,O](1) O C T 12 6 [0,-](0) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
[8,O](1) A D 4 8 6 [9,B](2) 2 3 [12,O](1) O C T 12 6 [0,-](0) [19,E](3) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
[8,O](1) A D 4 8 6 [9,B](2) 2 3 [12,O](1) O C T 12 6 [0,-](0) [19,E](3) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
[8,O](1) [12,A](4) A D 4 [10,A](4) 8 6 [9,B](2) 2 3 [12,O](1) O C T 12 6 [0,-](0) [19,E](3) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
[8,O](1) [12,A](4) A D 4 [10,A](4) 8 6 [9,B](2) 2 3 [12,O](1) O C T 12 6 [0,-](0) [19,E](3) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
[12,B](5) [8,O](1) [12,A](4) A D 4 [10,A](4) 8 6 [9,B](2) 2 3 [12,O](1) O C T 12 6 [0,-](0) [19,E](3) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
[12,B](5) [8,O](1) [12,A](4) A D 4 [10,A](4) 8 6 [9,B](2) 2 3 [12,O](1) O C T 12 6 [0,-](0) [19,E](3) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
[12,B](5) [8,O](1) [12,A](4) A D 4 [10,A](4) 8 6 [9,B](2) 2 3 [12,O](1) [18,D](6) O C T 12 6 [0,-](0) [19,E](3) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
[12,B](5) [8,O](1) [12,A](4) A D 4 [10,A](4) 8 6 [9,B](2) 2 3 [12,O](1) [18,D](6) O C T 12 6 [0,-](0) [19,E](3) 1 4 5 12 B E 2 [7,B](2) [5,O](1)
Qual é o menorcaminho? [12,B](5) [8,O](1) [12,A](4) 4 A D 8 6 2 [9,B](2) 3 12 O C T 6 [0,-](0) [18,D](6) 1 4 5 12 B E 2 [7,B](2) [5,O](1) Faz a rotainversaparadescobrir!!!
[12,B](5) [8,O](1) [12,A](4) 4 A D 8 6 2 [9,B](2) 3 12 O C T 6 [0,-](0) [18,D](6) 1 4 5 12 B E 2 [7,B](2) [5,O](1) O -> A -> D -> T = 8 + 4 + 6 = 18 …ou
[12,B](5) [8,O](1) [12,A](4) 4 A D 8 6 2 [9,B](2) 3 12 O C T 6 [0,-](0) [18,D](6) 1 4 5 12 B E 2 [7,B](2) [5,O](1) O -> B -> C -> D -> T = 5 + 4 + 3 + 6 = 18