Da matriz de custos ao gargalo da rede
Modelar a decisão sem perder a realidade operacional.
Escolher o modelo, formular, resolver e interpretar a solução.
Você justificará um modelo para uma rede real.
27 de agosto de 2026
| Elemento | Pergunta operacional | Símbolo |
|---|---|---|
| Nó de oferta | quanto é gerado? | \(b_k>0\) |
| Nó de demanda | quanto é absorvido? | \(b_k<0\) |
| Transbordo | o que entra deve sair? | \(b_k=0\) |
| Arco | que ligação é permitida? | \((i,j)\in A\) |
| Capacidade | qual é o limite? | \(u_{ij}\) |
| Custo | quanto custa uma unidade? | \(c_{ij}\) |
Dados: oferta \(a_i\), demanda \(b_j\), custo direto \(c_{ij}\) e decisão \(x_{ij}\) = quantidade enviada de \(i\) para \(j\).
\[\sum_j x_{ij}=a_i\;\forall i;\qquad \sum_i x_{ij}=b_j\;\forall j;\qquad x_{ij}\geq0\]
Duas fábricas abastecem três depósitos:
| D1 | D2 | D3 | Oferta | |
|---|---|---|---|---|
| F1 | 10 | 3 | 5 | 15 |
| F2 | 12 | 7 | 9 | 25 |
| Demanda | 20 | 10 | 10 | 40 |
\(15+25=20+10+10=40\): caso balanceado.
O método garante viabilidade, mas ignora custos. Em cada passo, aloque o mínimo entre oferta e demanda.
| Passo | Célula | Alocação | Oferta restante | Demanda restante |
|---|---|---|---|---|
| 1 | F1–D1 | 15 | F1=0 | D1=5 |
| 2 | F2–D1 | 5 | F2=20 | D1=0 |
| 3 | F2–D2 | 10 | F2=10 | D2=0 |
| 4 | F2–D3 | 10 | F2=0 | D3=0 |
\[Z=15(10)+5(12)+10(7)+10(9)=440\]
| D1 | D2 | D3 | Oferta | |
|---|---|---|---|---|
| F1 | 0 | 10 | 5 | 15 |
| F2 | 20 | 0 | 5 | 25 |
| Demanda | 20 | 10 | 10 | 40 |
\[Z=10(3)+5(5)+20(12)+5(9)=340\]
Para inserir uma célula vazia, forme um ciclo fechado com células ocupadas e alterne sinais \(+,-,+,-\).
Para F2–D2:
\[(F2,D2)^+\to(F2,D3)^-\to(F1,D3)^+\to(F1,D2)^-\]
\[\Delta=+c_{22}-c_{23}+c_{13}-c_{12}=7-9+5-3=0\]
Associe \(u_i\) às linhas e \(v_j\) às colunas. Para células básicas:
\[u_i+v_j=c_{ij}\]
Para células não básicas:
\[\bar c_{ij}=c_{ij}-u_i-v_j\]
No exemplo, tomando \(u_1=0\): \(v_2=3\), \(v_3=5\), \(u_2=4\), \(v_1=8\). Logo \(\bar c_{11}=2\) e \(\bar c_{22}=0\).
Alternativa com falta explícita \(q_j\):
\[\sum_i x_{ij}+q_j=b_j,\qquad \min\;\sum c_{ij}x_{ij}+\sum p_jq_j\]
O produto pode passar por centros intermediários. Para cada nó \(k\):
Demanda de O para D: 50 unidades.
| Arco | custo | capacidade |
|---|---|---|
| O–H1 | 4 | 40 |
| O–H2 | 2 | 30 |
| H1–D | 3 | 40 |
| H2–D | 7 | 30 |
Caminhos: O–H1–D custa 7 e suporta 40; O–H2–D custa 9 e suporta 30.
Enviar uma unidade de \(s\) a \(t\) ao menor custo é um caso particular de fluxo:
\[b_s=1,\quad b_t=-1,\quad b_k=0\;(k\neq s,t)\]
Dijkstra (custos não negativos):
1 rótulo de \(s=0\), demais \(\infty\). 2 escolha o menor rótulo não visitado. 3 relaxe sucessores. 4 guarde predecessores.
\[0\le f_{ij}\le u_{ij}\]
\[\sum_i f_{ik}=\sum_j f_{kj}\quad\text{para todo nó intermediário }k\]
\[\max v=\sum_j f_{sj}-\sum_i f_{is}\]
Capacidades da rede:
| Arco | s–A | s–B | A–t | B–t | A–B |
|---|---|---|---|---|---|
| Capacidade | 10 | 8 | 5 | 10 | 6 |
A rede residual contém capacidade restante no sentido original e arco reverso com capacidade igual ao fluxo já enviado.
Um corte \((S,T)\) separa os nós, com \(s\in S\) e \(t\in T\):
\[C(S,T)=\sum_{i\in S,j\in T}u_{ij}\]
Para qualquer fluxo, \(v\le C(S,T)\). O teorema garante:
Se a quantidade \(Q\) a enviar é conhecida, a pergunta é “como enviar ao menor custo?”:
\[\min\sum_{(i,j)\in A}c_{ij}f_{ij}\quad\text{sujeito a balanço e}\quad 0\le f_{ij}\le u_{ij}\]
Armadilha comum: escolher o algoritmo pelo nome do problema, sem verificar o objetivo real.
| Problema | Estrutura | Aplicação |
|---|---|---|
| Designação | oferta/demanda unitárias, binária | pessoas–tarefas |
| Circulação com limites inferiores | \(\ell_{ij}\le f_{ij}\le u_{ij}\) | nível mínimo de serviço |
| Multi commodity | produtos compartilham capacidade | distribuição simultânea |
| Localização–alocação | abertura + transporte | centros de distribuição |
| Custos fixos | ativar rota/instalação | decisão de projeto |
| D1 | D2 | D3 | Oferta | |
|---|---|---|---|---|
| O1 | 4 | 8 | 5 | 30 |
| O2 | 6 | 3 | 7 | 20 |
| Demanda | 10 | 15 | 25 | 50 |
Camada 1 — diagnosticar: balanceamento, variáveis e hipóteses.
Camada 2 — construir: canto noroeste e menor custo; calcule os dois custos.
Camada 3 — testar: escolha uma célula vazia, forme um ciclo e calcule \(\Delta\).
Camada 4 — interpretar: o que muda se O2–D3 for proibida? E se a oferta de O1 cair para 20?
Arcos e capacidades: \(s\to A=12\), \(s\to B=10\), \(A\to t=7\), \(B\to t=8\), \(A\to B=5\), \(A\to C=6\), \(B\to C=4\), \(C\to t=10\).
Transporte: para a matriz do exercício, uma solução pelo menor custo é: O2–D2 = 15, O1–D1 = 10, O1–D3 = 20, O2–D1 = 0, O2–D3 = 5; custo \(15(3)+10(4)+20(5)+5(7)=265\). Verifique se há melhoria por ciclos.
Fluxo máximo: o corte formado pelos arcos que chegam a \(t\) tem capacidade \(7+8+10=25\); portanto, nenhum fluxo supera 25. Construa um fluxo de valor 25 para provar que esse limite é atingível.
Em grupos, escolha uma rede de distribuição da instituição: fornecedores, almoxarifado, setores e rotas internas.
Produto da atividade: um diagrama, uma formulação de até cinco linhas e uma conclusão gerencial de três frases.