360 likes | 585 Views
Otimização em Redes. Prof. Bruno Samways dos Santos bruno.samways@gmail.com. Introdução. Nos últimos anos, o Problema de Otimização em Redes foi o que mais avançou, tanto em sentido metodológico quanto em suas aplicações
E N D
OtimizaçãoemRedes Prof. Bruno Samways dos Santos bruno.samways@gmail.com
Introdução Nos últimos anos, o Problema de Otimização em Redes foi o que mais avançou, tanto em sentido metodológico quanto em suas aplicações Atualmente, os algoritmos e softwares que estão sendo utilizados podem solucionar problemas imensos, inimagináveis há duas décadas atrás
Introdução Como as aplicações são variadas, vamos nos restringir em 4 ou 5 aplicações muito importantes: 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 de Fluxo Máximo • Definição: • O problema trata do maior fluxo possível a ser enviado de um único nó de ORIGEM para um único nó DESTINO • Os nós ORIGEM e DESTINO são conectados por meio de arcos e nós intermediários • Neste caso, a capacidade de fluxo encontram-se nos ARCOS • Os nós intermediários são chamados de transshipment, ou transbordo
Problema de Fluxo Máximo • Considerações básicas: • Lei de Kirchhoff ou Lei da Conservação de Fluxos; • Fluxo viável: fluxo que obedece a lei acima e as restrições de capacidade dos arcos • Existemalgunsalgoritmosparaestetipo de problema, porémapenas um seráutilizado (Ford-Fulkerson)
Problema de FluxoMáximo Cji Cij i j Arco residual • Formulário a serutilizado: • C = capacidade • i,j = índices dos nós • K = fluxomínimo do caminhoselecionado • Cij,ji = (Cij-K , Cji+K) • Para cadanóutilizado = [“fluxoquechega”, “nó de origem do fluxo”]
PASSOS 1) Transformarumaredeorientadaparaumanãoorientada com arcos residuais 2) Determinarosnós ORIGEM e DESTINO 3) Escolher o primeirocaminho com o maiorfluxopossível (paracadanó, escolher o maior) 4) Encontrar o K mínimo do caminhoescolhido 5) Fazer: Cij,ji = (Ci-K, Cj+K) 6) Obtenção dos novosresiduais 7) Continuariteraçõesaténãosobraremmaiscaminhosparaosfluxos
Problema de Fluxo Máximo 20 4 0 5 0 10 5 0 1 30 0 20 10 30 0 0 2 3 20 40 0
Iteração 1 20 4 0 5 0 10 5 0 1 [20,2] 30 [inf,-] 0 20 10 30 0 0 2 3 20 40 0 [30,1]
Iteração 2 [10,3] 20 4 0 5 0 10 5 0 1 [20,4] 10 [inf,-] 20 20 10 30 20 0 2 3 0 40 0 [40,2] [20,1]
Iteração 3 10 4 0 15 10 10 5 0 1 [30,2] 10 [inf,-] 20 10 0 30 20 10 2 3 0 30 10 [10,1] [30,2]
Iteração 4 10 4 0 15 10 10 5 10 1 [20,2] 10 [inf,-] 20 0 0 20 20 20 2 3 0 30 10 [10,1] [10,3]
Iteração 5 [10,1] 10 4 0 15 10 10 5 20 1 [10,4] 0 [inf,-] 20 0 0 10 30 20 2 3 0 40 0 [15,4]
Iteração 6 0 4 10 15 20 0 5 20 1 0 20 0 0 10 30 20 2 3 0 40 0 Calcularfluxonos arcos (Inicial – Final) para TODOS os arcos…
Resultado 4 20 10 5 1 20 10 30 20 20 2 3
Exercício 7 3 2 3 5 10 1 6 4 2 1 15 5 4 2 5 Determinarqual é o maiorfluxoque se podeenviar do nóorigem (1) aodestino (6) no grafoabaixo.
Problema da Árvore de Expansão Mínima Também pode ser chamado de “Árvore Geradora Mínima” Objetivo: conectar todos os nós de uma rede, direta ou indiretamente, usando o comprimento total mais curto de ramos conectores Aplicações: redes de tubulações, cabos de energia elétrica, instalação de redes telefônicas, conexão entre cidades por estradas conectoras, entre outros
Árvore de Expansão Mínima:Algoritmo de Prim Ck = conjunto de nós que foram conectados permanentemente na iteração k Pk = conjunto de nós que ainda terão de ser conectados permanentemente após a iteração k Obs: o nó de origem do algoritmo pode ser qualquer um, pois este problema apenas pretende conectar todos os nós sem necessitar uma origem de fluxo de materiais.
Passos 1) Escolhequalquernó; 2) Verificaquais as conexõespossíveis 3) Escolhe o caminho de MENOR distância entre nós; 4) Inclui o nóconectadopeloarcoescolhido no passo 3; 5) Repeteospassos 2, 3 e 4 aténãoexistiremmaisnós a seremconectados.
Iteração 0 3 2 5 6 4 1 9 3 1 10 5 6 5 8 10 4 3 C0 = vazio P0 = N Quantidade de nós = 6 Quantos arcos vãoserutilizados???
Iteração 1 2 5 1 9 3 1 5 6 10 4 C1 = {1} P1 = {2,3,4,5,6}
Iteração 2 3 2 5 6 4 1 9 3 1 5 6 10 4 C2 = {1,2} P2 = {3,4,5,6}
Iteração 3 3 2 5 6 4 1 9 3 1 5 6 8 10 4 C3 = {1,2,5} P3 = {3,4,6}
Iteração 4 3 2 5 6 4 1 9 3 1 10 5 6 5 8 10 4 3 C4 = {1,2,4,5} P4 = {3,6}
Iteração 5 3 2 5 6 4 1 9 3 1 10 5 6 5 8 10 4 3 C5 = {1,2,4,5,6} P5 = {3}
Iteração 6 3 2 5 6 4 1 9 3 1 10 5 6 5 8 10 4 3 C6 = {1,2,3,4,5,6} P6 = Vazio
3 2 5 4 1 3 1 5 6 5 4 3
SE 2000 NY 1300 800 1100 200 1000 CH DC DE 2000 LA 2600 900 780 1300 1400 DA