Exemplo 14: Uma vinícola tem capacidade de produzir um vinho exclusivo para jantares em dois vinhedos, com os seguintes custos:
Vinhedo Capacidade Custo por Garrafa
1 3.500 garrafas US$ 23
2 3.100 garrafas US$ 25
Quatro restaurantes italianos em diferentes regiões do país estão interessados em comprar esse vinho. Como o vinho é exclusivo, cada restaurante deseja adquirir a quantidade máxima de sua demanda, mas aceitará qualquer quantidade que conseguir.
As demandas máximas e os preços que estão dispostos a pagar são:
Restaurante Demanda Máxima Preço
1 1.800 garrafas US$ 69
2 2.300 garrafas US$ 67
3 1.250 garrafas US$ 70
4 1.750 garrafas US$ 66
Os custos de transporte por garrafa dos vinhedos até os restaurantes são:
Table 1: Vinhedo Restaurante 1 Restaurante 2 Restaurante 3 Restaurante 4
\captionsetup{labelformat=empty}
1 US 7 & US 8 US 13 & US 9
2 US 12 & US 6 US 8 & US 7
A vinícola precisa determinar o plano de produção e distribuição que maximize seus lucros com esse vinho.
Questões: a. Formule um modelo de programação linear (PL) para este problema. b. Crie um modelo em planilha para este problema e resolva usando o Solver. c. Qual é a solução ótima?

Passo 1

Vou listar claramente o que o enunciado nos dá e o que pede.
Dados fornecidos:
  • Capacidades dos vinhedos (peguei do enunciado):
    • Vinhedo 1: 3500 garrafas (custo de produção por garrafa: US$ 23).
    • Vinhedo 2: 3100 garrafas (custo de produção por garrafa: US$ 25).
  • Demandas máximas dos restaurantes (peguei do enunciado):
    • Restaurante 1: 1800 garrafas; preço que paga: US$ 69 por garrafa.
    • Restaurante 2: 2300 garrafas; preço: US$ 67.
    • Restaurante 3: 1250 garrafas; preço: US$ 70.
    • Restaurante 4: 1750 garrafas; preço: US$ 66.
  • Custos de transporte por garrafa (peguei da tabela do enunciado):
    • Do Vinhedo 1 para R1…R4: US$ 7,\;8,\;13,\;9.
    • Do Vinhedo 2 para R1…R4: US$ 12,\;6,\;8,\;7.
O que o enunciado pede:
a. Formular um modelo de Programação Linear (PL) que maximize o lucro da vinícola.
b. Criar um modelo em planilha e resolver com o Solver.
c. Encontrar a solução ótima (ou seja: quantas garrafas produzir/enviar de cada vinhedo para cada restaurante e o lucro máximo).
Observação importante (útil para formular o PL): o lucro por garrafa depende da rota (vinhedo → restaurante) e é dado por
\text{lucro}_{ij}=\text{preço}_j-\text{custo\_produção}_i-\text{custo\_transporte}_{ij}.ççã

Passo 2

Definição das variáveis de decisão (explicando o sentido de cada uma):
  • Para cada vinhedo i\in\{1,2\} e restaurante j\in\{1,2,3,4\}, defina a variável
x_{ij} = \text{número de garrafas enviadas do vinhedo } i \text{ para o restaurante } j.ú
Cada x_{ij} é uma quantidade não negativa (não faz sentido enviar quantidade negativa).
Interpretação prática: na prova, sempre escreva “x_{12} é quantas garrafas do vinhedo 1 vão para o restaurante 2” — isso evita confusão.

Passo 3

Calcular o lucro unitário em cada rota (faça esse cálculo na prova passo a passo; aqui mostro como):
  • Para i=1 (custo produção 23):
    • \text{lucro}_{11} = 69 - 23 - 7 = 39.
    • \text{lucro}_{12} = 67 - 23 - 8 = 36.
    • \text{lucro}_{13} = 70 - 23 - 13 = 34.
    • \text{lucro}_{14} = 66 - 23 - 9 = 34.
  • Para i=2 (custo produção 25):
    • \text{lucro}_{21} = 69 - 25 - 12 = 32.
    • \text{lucro}_{22} = 67 - 25 - 6 = 36.
    • \text{lucro}_{23} = 70 - 25 - 8 = 37.
    • \text{lucro}_{24} = 66 - 25 - 7 = 34.
Colocando em matriz de lucros p_{ij}:
[p_{ij}] = \begin{pmatrix} 39 & 36 & 34 & 34\\[4pt] 32 & 36 & 37 & 34 \end{pmatrix},
onde a primeira linha é do Vinhedo 1 e a segunda do Vinhedo 2, colunas R1…R4.
Explicação didática: o objetivo é distribuir as garrafas de forma a maximizar a soma dos lucros unitários multiplicados pelas quantidades enviadas.]

Passo 4

Formulação do modelo de Programação Linear (PL) — aqui respondo a letra (a):
Variáveis: x_{ij}\ge 0 para i=1,2 e j=1,2,3,4.
Função objetivo (maximizar lucro total):
\text{Maximize}\quad Z=\sum_{i=1}^{2}\sum_{j=1}^{4} p_{ij}\,x_{ij}.
Usando os p_{ij} calculados:
Z = 39x_{11}+36x_{12}+34x_{13}+34x_{14} +32x_{21}+36x_{22}+37x_{23}+34x_{24}.
Restrições de capacidade (soma das saídas de cada vinhedo não excede sua capacidade):
\begin{aligned} x_{11}+x_{12}+x_{13}+x_{14} &\le 3500 &&\text{(Vinhedo 1)}\\[4pt] x_{21}+x_{22}+x_{23}+x_{24} &\le 3100 &&\text{(Vinhedo 2)} \end{aligned}
Restrições de demanda máxima (cada restaurante recebe no máximo sua demanda):
\begin{aligned} x_{11}+x_{21} &\le 1800 &&\text{(Restaurante 1)}\\[4pt] x_{12}+x_{22} &\le 2300 &&\text{(Restaurante 2)}\\[4pt] x_{13}+x_{23} &\le 1250 &&\text{(Restaurante 3)}\\[4pt] x_{14}+x_{24} &\le 1750 &&\text{(Restaurante 4)} \end{aligned}
Não negatividade:
x_{ij}\ge 0\quad\text{para todos }i,j.
Comentário didático: este é um problema de transporte com oferta 3500 e 3100 e demanda máxima nos destinos. A soma das ofertas é 3500+3100=6600, menor que a soma das demandas 1800+2300+1250+1750=7100, então não conseguiremos atender toda a demanda — faz sentido aceitar que restaurantes recebam menos que a demanda máxima.]

Passo 5

Como montar o modelo na planilha (resposta para a letra b). Vou descrever uma disposição simples e prática para implementar no Excel/LibreOffice e usar o Solver.
Sugestão de layout (cada item expliquei para você conseguir refazer na prova/planilha):
  • Crie uma tabela de variáveis x_{ij} com linhas Vinhedos (1,2) e colunas Restaurantes (1…4). Por exemplo:
    • Células B2:E3 com as variáveis x_{11},x_{12},x_{13},x_{14} na linha do Vinhedo 1 e x_{21},x_{22},x_{23},x_{24} na linha do Vinhedo 2.
  • Em outra área, coloque a matriz de lucros p_{ij} (as constantes já calculadas).
  • Em células separadas calcule:
    • Somas por linha (produção usada em cada vinhedo): linha-soma de cada vinhedo = capacidade usada.
    • Somas por coluna (recebido por cada restaurante): coluna-soma = atendimento ao restaurante.
  • Função objetivo (uma célula) calcule Z como soma dos produtos p_{ij}\times x_{ij} — no Excel use uma soma dos 8 termos ou uma fórmula matricial/sumproduct.
  • Restrições a colocar no Solver:
    • Para cada vinhedo: soma das respectivas x_{ij} \le capacidade (Vinhedo1: 3500, Vinhedo2: 3100).
    • Para cada restaurante: soma das respectivas x_{ij} \le demanda máxima (R1: 1800, etc.).
    • x_{ij}\ge 0 (marcar como restrição de não negatividade).
  • Configuração do Solver:
    • Definir célula objetivo como a célula que contém Z.
    • Escolher “Maximizar”.
    • Variáveis de decisão: as células B2:E3.
    • Tipo de solução: método Simplex LP (no Excel Solver escolher “Simplex LP” ou equivalente).
    • Resolver.
Explicação didática: usar o Simplex LP é apropriado porque o modelo é linear (função objetivo e restrições lineares). O Solver encontrará a solução básica ótima (alocação de transporte) respeitando limites.

Passo 6

Resolver o modelo manualmente (raciocínio usado na planilha/Solver e que também dá intuição) e encontrar a solução ótima. Vou explicar como pensar na solução passo a passo, quase como uma estratégia gulosa guiada pelos lucros unitários — isso é um jeito prático de raciocinar antes de confiar no Solver:
  1. Ordenar as rotas por lucro unitário p_{ij} decrescente:
    \begin{array}{lcl} p_{11}=39 & (\text{V1}\to\text{R1})\\\ p_{23}=37 & (\text{V2}\to\text{R3})\\\ p_{12}=36 & (\text{V1}\to\text{R2})\\\ p_{22}=36 & (\text{V2}\to\text{R2})\\\ p_{13}=34,\\ p_{14}=34,\\ p_{24}=34 & (\text{várias rotas})\\\ p_{21}=32 & (\text{V2}\to\text{R1}) \end{array}á
  2. Alocar sempre que possível pelas rotas de maior lucro, respeitando capacidades e demandas:
    • Primeiro alocar em x_{11} (lucro 39): R1 pede 1800, V1 tem 3500 → envie x_{11}=1800. (V1 sobra 1700. R1 satisfeita.)
    • Em seguida, rota com lucro 37, x_{23}: R3 pede 1250, V2 tem 3100 → envie x_{23}=1250. (V2 sobra 1850. R3 satisfeita.)
    • Próxima rota de lucro 36: usar V1→R2 ( x_{12}) porque V1 ainda tem capacidade: envie x_{12}=\min(1700,\;2300)=1700. (V1 fica zerado; R2 ainda pede 600.)
    • Completar R2 com V2→R2: x_{22}=\min(1850,\;600)=600. (V2 sobra 1250. R2 satisfeita.)
    • Restam R4 com demanda 1750 e V2 com 1250: coloque x_{24}=1250. (V2 fica zerado; sobra demanda R4 de 500 que não pode ser atendida.)
  3. Todas as capacidades de oferta já esgotadas e as demandas respeitadas. Nenhuma rota com lucro maior disponível para receber mais sem violar limites, portanto essa alocação é ótima (o Solver confirmaria com Simplex LP).
Resultado das alocações (detalhado):
\begin{array}{ll} x_{11}=1800, & x_{12}=1700,\\[2pt] x_{13}=0, & x_{14}=0,\\[2pt] x_{21}=0, & x_{22}=600,\\[2pt] x_{23}=1250, & x_{24}=1250. \end{array}]

Passo 7

Cálculo do lucro total com essas alocações (mostro conta passo a passo para você poder conferir na prova):
Multiplicando lucros unitários pelos x_{ij}:
  • Vinhedo 1: 39\cdot x_{11}=39\cdot1800=70200, \qquad 36\cdot x_{12}=36\cdot1700=61200, \qquad 34\cdot x_{13}=34\cdot0=0, \qquad 34\cdot x_{14}=34\cdot0=0.
  • Vinhedo 2: 32\cdot x_{21}=32\cdot0=0, \qquad 36\cdot x_{22}=36\cdot600=21600,
37\cdot x_{23}=37\cdot1250=46250, \qquad 34\cdot x_{24}=34\cdot1250=42500.
Somando tudo:
Z = 70200 + 61200 + 21600 + 46250 + 42500 = 241750.
Portanto o lucro máximo é US$ 241{,}750.
Comentário de verificação rápida: todas as restrições de capacidade e demanda estão satisfeitas e não existe rota de lucro maior com capacidade não utilizada; qualquer realocação reduziria lucros ou violaria restrições, então a solução é ótima.

Resposta

a) Modelo PL: Variáveis x_{ij}\ge 0 para i=1,2 e j=1,\dots,4.
\text{Max }Z=39x_{11}+36x_{12}+34x_{13}+34x_{14}+32x_{21}+36x_{22}+37x_{23}+34x_{24}
sujeito a
\begin{aligned} x_{11}+x_{12}+x_{13}+x_{14}&\le 3500,\\[4pt] x_{21}+x_{22}+x_{23}+x_{24}&\le 3100,\\[4pt] x_{11}+x_{21}&\le 1800,\\[4pt] x_{12}+x_{22}&\le 2300,\\[4pt] x_{13}+x_{23}&\le 1250,\\[4pt] x_{14}+x_{24}&\le 1750,\\[4pt] x_{ij}&\ge 0\\ \text{para todos }i,j. \end{aligned}
b) Modelo em planilha e Solver: montar tabela 2\times4 com células para x_{ij}; outra tabela com p_{ij}; calcular somas por linha (oferta) e por coluna (demanda); célula objetivo = SUMPRODUCT(p_{ij},x_{ij}); usar Solver com objetivo “Max”, variáveis x_{ij}, restrições de oferta e demanda e x_{ij}\ge0; método: Simplex LP.
c) Solução ótima (alocações e lucro máximo):
\begin{aligned} x_{11}&=1800,\quad x_{12}=1700,\quad x_{13}=0,\quad x_{14}=0,\\[4pt] x_{21}&=0,\quad x_{22}=600,\quad x_{23}=1250,\quad x_{24}=1250,\\[4pt] \text{Lucro máximo }Z&=\$241{,}750. \end{aligned}á

Exercícios relacionados