3^{\circ} ) Uma empresa do setor alimentício está planejando abrir novas fábricas considerando cinco possibilidades: Manaus, Fortaleza, Vitória, Barueri e Curitiba. A partir das novas localidades, os produtos serão entregues para cinco consumidores finais: São Luís, Brasília, Belo Horizonte, Rio de Janeiro e São Paulo. Cada fábrica possui um custo fixo de manutenção e uma capacidade máxima, conforme mostra a Tabela 2. Os custos de transporte por unidade transportada de cada fábrica para cada consumidor final, além da demanda dos consumidores, também estão incluídos na tabela. A empresa quer determinar qual(is) fábrica(s) abrir, de modo a minimizar a soma dos custos fixos de instalação e dos custos de transporte, garantindo que a demanda dos consumidores finais será atendida. Modele o problema de localização de facilidades.
Table 1: Tabela 2: Custo de transporte, custo fixo, capacidade e demanda
\captionsetup{labelformat=empty}
Custos Unitários de Transporte
São Luís Brasília Belo Horizonte Rio de Janeiro São Paulo Custo Fixo Capacidade
Mnaus 0,82 0,95 1,10 1,33 1,22 111.000 35.000
Fortaleza 0,74 1,12 1,06 1,13 1,24 124.000 30.000
Vitória 1,34 1,24 0,72 0,72 0,88 120.000 25.000
Barueri 1,48 1,26 0,98 0,95 0,70 135.000 30.000
Curitiba 1,52 1,45 1,33 1,22 1,15 140.000 20.000
Demanda 16.000 18.000 12.000 17.000 20.000

Passo 1

O que o enunciado pede e quais dados temos (peguei estes números da tabela):
  • Situações possíveis de instalação (fábricas candidatas), com custo fixo e capacidade:
    • Manaus: custo fixo f_1=111.000, capacidade s_1=35.000.
    • Fortaleza: custo fixo f_2=124.000, capacidade s_2=30.000.
    • Vitória: custo fixo f_3=120.000, capacidade s_3=25.000.
    • Barueri: custo fixo f_4=135.000, capacidade s_4=30.000.
    • Curitiba: custo fixo f_5=140.000, capacidade s_5=20.000.
  • Consumidores finais (demandas):
    • São Luís: d_1=16.000.
    • Brasília: d_2=18.000.
    • Belo Horizonte: d_3=12.000.
    • Rio de Janeiro: d_4=17.000.
    • São Paulo: d_5=20.000.
  • Custos unitários de transporte c_{ij} (custo por unidade transportada da fábrica j ao consumidor i). Onde a ordem das fábricas é 1=Manaus, 2=Fortaleza, 3=Vitória, 4=Barueri, 5=Curitiba; a ordem dos consumidores é 1=São Luís, 2=Brasília, 3=Belo Horizonte, 4=Rio de Janeiro, 5=São Paulo. Peguei esses custos da tabela:
    • Para j=1 (Manaus): c_{1,1}=0,82, c_{2,1}=0,95, c_{3,1}=1,10, c_{4,1}=1,33, c_{5,1}=1,22.
    • Para j=2 (Fortaleza): c_{1,2}=0,74, c_{2,2}=1,12, c_{3,2}=1,06, c_{4,2}=1,13, c_{5,2}=1,24.
    • Para j=3 (Vitória): c_{1,3}=1,34, c_{2,3}=1,24, c_{3,3}=0,72, c_{4,3}=0,72, c_{5,3}=0,88.
    • Para j=4 (Barueri): c_{1,4}=1,48, c_{2,4}=1,26, c_{3,4}=0,98, c_{4,4}=0,95, c_{5,4}=0,70.
    • Para j=5 (Curitiba): c_{1,5}=1,52, c_{2,5}=1,45, c_{3,5}=1,33, c_{4,5}=1,22, c_{5,5}=1,15.
  • Total da demanda (útil para verificar viabilidade): \sum_{i} d_i = 16.000+18.000+12.000+17.000+20.000 = 83.000.
  • Soma das capacidades disponíveis (se abrir todas): \sum_j s_j = 35.000+30.000+25.000+30.000+20.000 = 140.000. Logo há capacidade suficiente se for aberto um conjunto adequado de fábricas.
O enunciado pede: modelar matematicamente (isto é, escrever um modelo de otimização) que determina quais fábricas abrir e quanto enviar de cada fábrica a cada consumidor, minimizando custos fixos + transporte, atendendo as demandas e respeitando capacidades.

Passo 2

Que tipo de modelo vamos usar e por quê
  • Este é um problema clássico de localização capacitada com custo fixo por instalação (capacitated facility location problem). A técnica padrão é formular como um problema de programação inteira mista (Mixed Integer Linear Programming, MILP).
  • Ideia central: ter variáveis binárias y_j que indicam se a fábrica j é aberta (custo fixo incorrido) e variáveis contínuas x_{ij} representando quantidades enviadas da fábrica j ao cliente i. A restrição de capacidade liga x com y para impedir envio se a fábrica não for aberta.
  • Por que não só LP contínuo? Porque a decisão “abrir ou não” é discreta e aparece com custo fixo — isso exige variáveis binárias. Portanto o modelo será linear (objetivo e restrições lineares) mas com variáveis binárias: MILP.

Passo 3

Definição de conjuntos e índices (clareza é importante na hora da prova)
  • Índices para consumidores: i \in \mathcal{I}=\{1,\;2,\;3,\;4,\;5\} representando São Luís, Brasília, Belo Horizonte, Rio de Janeiro, São Paulo respectivamente.
  • Índices para fábricas candidatas: j \in \mathcal{J}=\{1,\;2,\;3,\;4,\;5\} representando Manaus, Fortaleza, Vitória, Barueri, Curitiba respectivamente.

Passo 4

Parâmetros (o que são, unidades e valores — pegados da tabela)
  • d_i: demanda do cliente i (unidades). Valores: d_1=16.000,\; d_2=18.000,\; d_3=12.000,\; d_4=17.000,\; d_5=20.000.
  • s_j: capacidade máxima da fábrica j (unidades). Valores: s_1=35.000,\; s_2=30.000,\; s_3=25.000,\; s_4=30.000,\; s_5=20.000.
  • f_j: custo fixo de abrir a fábrica j (mesma unidade monetária que os custos de transporte). Valores: f_1=111.000,\; f_2=124.000,\; f_3=120.000,\; f_4=135.000,\; f_5=140.000.
  • c_{ij}: custo unitário de transporte da fábrica j ao cliente i (peguei todos da tabela; por exemplo c_{1,1}=0,82 é o custo de Manaus \to São Luís).
Explicação rápida de unidades: se x_{ij} for número de unidades transportadas, então c_{ij} x_{ij} é o custo de transporte (mesma unidade que f_j). Mantenha consistência de unidades.

Passo 5

Variáveis de decisão (definição e interpretação didática)
  • x_{ij}\ge 0: quantidade enviada da fábrica j ao cliente i. Variável contínua não-negativa.
    • Interpretação: se x_{23}=1000, significa que a fábrica 3 (Vitória) envia 1.000 unidades para o cliente 2 (Brasília).
  • y_j \in \{0,1\}: variável binária que vale 1 se a fábrica j for aberta, 0 se não for aberta.
    • Interpretação: se y_4=1 então Barueri está aberta e paga-se f_4; se y_4=0, nada pode sair de Barueri (por força das restrições que vamos criar).
Dica de prova: sempre escreva claramente o domínio das variáveis; isso evita perder pontos.

Passo 6

Construção do objetivo (passo a passo e explicando cada termo)
Queremos minimizar a soma de:
  1. Custos fixos de abrir fábricas: \sum_{j\in\mathcal{J}} f_j y_j. Cada y_j ligado a f_j.
  2. Custos de transporte: \sum_{i\in\mathcal{I}}\sum_{j\in\mathcal{J}} c_{ij}\,x_{ij}. Soma sobre todos pares cliente–fábrica do custo unitário vezes quantidade enviada.
Então o objetivo, em forma matemática, é:
\text{minimizar}\quad \sum_{j\in\mathcal{J}} f_j y_j \;+\; \sum_{i\in\mathcal{I}}\sum_{j\in\mathcal{J}} c_{ij}\,x_{ij}.
Explanação: o modelo decide um trade-off — abrir mais fábricas aumenta custos fixos mas pode reduzir transporte; abrir menos fábricas economiza fixo mas aumenta transporte ou até inviabiliza atendimento por capacidade.

Passo 7

Restrições de atendimento de demanda (explicação e forma)
  • Cada cliente i deve ter sua demanda totalmente atendida:
\sum_{j\in\mathcal{J}} x_{ij} = d_i,\qquad \forall i\in\mathcal{I}.
Explicação: soma das quantidades recebidas por i vindo de todas as fábricas deve ser exatamente a demanda d_i. Na prova, se for permitido estoque poderia ser \ge, mas aqui “garantindo que a demanda será atendida” indica igualdade (ou \ge com custo zero de sobra; usualmente usa-se igualdade).

Passo 8

Restrições de capacidade e ligação x- y (por que multiplicar por y_j)
  • Capacidade da fábrica j: a soma das quantidades enviados por j não pode exceder a capacidade s_j. Além disso, se y_j=0 (fábrica fechada) deve resultar em todas as x_{ij}=0. Uma forma linear e padrão de impor isso é:
\sum_{i\in\mathcal{I}} x_{ij} \le s_j\, y_j,\qquad \forall j\in\mathcal{J}.
Explicação: se y_j=0 então a direita é 0 e força \sum_i x_{ij}=0 (nenhum envio permitido). Se y_j=1 então a soma fica limitada por s_j. Esta é a maneira correta e elegante de “ligar” a decisão de abrir com o envio, sem precisar de termos não-lineares.

Passo 9

Domínio das variáveis e observações sobre integridade
  • Domínio: x_{ij}\ge 0,\quad \forall i\in\mathcal{I},\; j\in\mathcal{J}; \qquad y_j\in\{0,1\},\quad \forall j\in\mathcal{J}.
  • Observação: por causa dos y_j binários, o problema é um MILP. Na prova, deixar explícito que y_j é binário é crucial.

Passo 10

Dicas rápidas de prova e verificações numéricas úteis (para ganhar tempo e checar coerência)
  • Verificação de viabilidade rápida: total demanda =83.000 e soma de todas capacidades =140.000. Logo existe solução viável se for possível abrir um conjunto de fábricas cuja capacidade some pelo menos 83.000.
  • Lower bound simples sobre número mínimo de fábricas: usando a maior capacidade 35.000 (Manaus), um limite inferior no número mínimo de fábricas abertas é \left\lceil\dfrac{83.000}{35.000}\right\rceil = 3. Isso ajuda a pensar: não faz sentido esperar que apenas uma ou duas fábricas atendam tudo (pelo menos com as capacidades dadas).
  • Para resolver numericamente na prova rápida, se for pedido obter solução exata, use um solver MILP (ex.: CPLEX, Gurobi, ou solver do Excel/LibreOffice). Em prova teórica, escrever o modelo corretamente já vale boa parte da nota.
  • Alternativas e extensões: se o enunciado exigisse custo por abrir mais de uma unidade da mesma fábrica, poderíamos usar variáveis inteiras y_j em vez de binárias; ou se não houvesse capacidade, o modelo simplificaria para location uncapacitated.

Passo 11

Modelo completo (compacto) — versão que vou colocar também como resposta final
(Agora apresento o modelo matemático completo, com todas as equações. Esta é a forma que deve constar na sua prova.)

Resposta

\begin{aligned} &\text{Minimizar}\quad && \sum_{j=1}^{5} f_j y_j \;+\; \sum_{i=1}^{5}\sum_{j=1}^{5} c_{ij}\,x_{ij} \\\ &\text{sujeito a} \\\ & && \sum_{j=1}^{5} x_{ij} = d_i, && \forall i=1,\ldots,5, \\\ & && \sum_{i=1}^{5} x_{ij} \le s_j\, y_j, && \forall j=1,\ldots,5, \\\ & && x_{ij}\ge 0, && \forall i=1,\ldots,5,\; j=1,\ldots,5, \\\ & && y_j\in\{0,1\}, && \forall j=1,\ldots,5, \end{aligned}
comonde os parâmetros são (peguei todos da tabela):
\begin{aligned} & (d_1,d_2,d_3,d_4,d_5)=(16.000,\;18.000,\;12.000,\;17.000,\;20.000),\\[4pt] & (s_1,s_2,s_3,s_4,s_5)=(35.000,\;30.000,\;25.000,\;30.000,\;20.000),\\[4pt] & (f_1,f_2,f_3,f_4,f_5)=(111.000,\;124.000,\;120.000,\;135.000,\;140.000), \end{aligned}
e a matriz (c_{ij}) de custos unitários de transporte (linhas = consumidores i=1 a 5, colunas = fábricas j=1 a 5):
(c_{ij})= \begin{pmatrix} 0,82 & 0,74 & 1,34 & 1,48 & 1,52\\[2pt] 0,95 & 1,12 & 1,24 & 1,26 & 1,45\\[2pt] 1,10 & 1,06 & 0,72 & 0,98 & 1,33\\[2pt] 1,33 & 1,13 & 0,72 & 0,95 & 1,22\\[2pt] 1,22 & 1,24 & 0,88 & 0,70 & 1,15 \end{pmatrix}.]

Exercícios relacionados