230 likes | 324 Views
Otimização em Redes. 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 Caminho Mais Curto.
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