PESQUISA OPERACIONAL
Prof° Msc. Giancarlo de França Aguiar
GRAFOS, ÁRVORES E REDES
GRAFO OU REDE: é uma coleção de nós (vértices ou pontos) x1, x2 ,..., xn, e uma
coleção de arcos (linhas ou arestas) a1, a2 ,...,
Projeto de Sccheduling (sequenciamento de tarefas);
Planejamento de Produção.
Situações que envolvem tomada de
decisão
Qual rota tomar?
Como enviar cargas p/ minimizar
tempo ou custo?
Estes problemas envolvem determinação de fluxo, podendo ser expressos como P.L. envolvendo uma variável de fluxo para cada arco.
• Problema de Rota Mínima: rota que minimiza por ex. a distância de uma cidade inicial a qualquer cidade da rede.
• Problema de Fluxo Máximo: determina por ex. o fluxo máximo de chamadas telefônicas através de uma rede.
EXEMPLO: Extensão Mínima
Possível solução
• Forma Loop através dos arcos
Solução possível envolvendo 2
árvores
• Um conjunto conectado sem ciclos é uma árvore
Solução viável
• Conecta todos os nós a uma única árvore • Denomina-se “arborescência”
• Uma solução que minimiza o comprimento dos arcos combinados é chamada
Algoritmo de Prim
1.Pegue qualquer nó como o nó inicial “conectado”. Sombreie este nó.
2.Identifique todos os arcos ligando um nó conectado (sombreado) com um nó não conectado.
3.Selecione o arco do passo 2 que tem o mínimo comprimento. Ligue este arco à árvore, reforçando seu arco, e inclua este nó não conectado no conjunto de conectados, sombreando-o.
Solução Ótima
• 10 nós ---- 9 arcos
• Mín D (distância)=
Algoritmo de Kruskal
• Apanhar sempre as menores distâncias e ligá-las
Exercício:
FLUXO MÁXIMO EM REDE
• Suponha que um grafo represente uma rede hidráulica e que ser deseja estabelecer o fluxo máximo de água que pode escoar através deste rede, ou suponha tratar-se de uma rede de telecomunicações com restrição a capacidade de transmissão por linha.
O Modelo Matemático
0
:
.
0 0 1 0 1
ij ij ij n j kj n i ik n i in n j ojx
k
x
x
x
a
s
x
x
F
Máx
( para os nós intermediários K=1,2,...,n-1 conservação de fluxo)
Algoritmo Ford and Fulkerson
• O procedimento esta baseado em achar uma série de caminhos da fonte até o destino. Uma vez um caminho é selecionado a quantidade de máximo fluxo é adicionada pela menor capacidade remanescente por todos os arcos do caminho. Quando nenhum caminho puder ser achado para receber mais fluxo, então a solução ótima foi encontrada.
1. Trace o caminho através da rede da fonte ao destino que aumenta o fluxo. Cada arco na sequência terá seu fluxo mudado pela mesma quantidade, aumentando os fluxos para os arcos forward e decrescendo das capacidades para os arcos
backward. Qualquer arco que não puder ter o fluxo mudado é um arco saturado. O caminho selecionado não pode conter quaisquer arcos saturados. Se tal caminho não existe, os correntes fluxos são ótimos.
2. Determine para cada arco do caminho sua máxima troca de fluxo. A quantidade para os arcos forward (i,j) terão capacidades remanescentes: Kij – Xij. A troca máxima de fluxo para os arcos backward é o fluxo corrente. O mínimo dessas trocas de fluxo máximo estabelece o aumento de fluxo.
EXEMPLO
Primeiro caminho
• Escolhendo o caminho A – B – D – F : temos que o máximo fluxo nesse caminho é 15.
• Fazemos a troca de fluxo em todos os ramos do caminho.
• Anote o fluxo de saída do nó inicial e ou o fluxo de chegada no nó final (podem ser anotados os fluxos de saída e chegada).
• O ramo B – D ficou saturado.
(A ) = 15
Solução Ótima
• Encontrando todos os caminhos de A – F e fazendo suas trocas de fluxos, obteremos como solução ótima:
(A ) = 15+2+1+12 = 30 u.m.
( F) = 15+2+1+12 = 30 u.m.