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
8
US
9
2
US
6
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?
| Vinhedo Capacidade | Custo por Garrafa | |
| 1 | 3.500 garrafas | US$ 23 |
| 2 | 3.100 garrafas | US$ 25 |
| 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 |
Table 1: Vinhedo Restaurante 1 Restaurante 2 Restaurante 3 Restaurante 4
\captionsetup{labelformat=empty}
| 1 | US 8 | US 9 |
| 2 | US 6 | US 7 |
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:
garrafas (custo de produção por garrafa: US$ ). - Vinhedo 2:
garrafas (custo de produção por garrafa: US$ ).
- Vinhedo 1:
- Demandas máximas dos restaurantes (peguei do enunciado):
- Restaurante 1:
garrafas; preço que paga: US$ por garrafa. - Restaurante 2:
garrafas; preço: US$ . - Restaurante 3:
garrafas; preço: US$ . - Restaurante 4:
garrafas; preço: US$ .
- Restaurante 1:
- Custos de transporte por garrafa (peguei da tabela do enunciado):
- Do Vinhedo 1 para R1…R4: US$
. - Do Vinhedo 2 para R1…R4: US$
.
- Do Vinhedo 1 para R1…R4: US$
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).
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
Passo 2
Definição das variáveis de decisão (explicando o sentido de cada uma):
- Para cada vinhedo
e restaurante , defina a variável
Cada
é 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
(custo produção ): -
- Para
(custo produção ): -
Colocando em matriz de lucros
:
onde a primeira linha é do Vinhedo
e a segunda do Vinhedo
, 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:
para
e
.
Função objetivo (maximizar lucro total):
Usando os
calculados:
Restrições de capacidade (soma das saídas de cada vinhedo não excede sua capacidade):
Restrições de demanda máxima (cada restaurante recebe no máximo sua demanda):
Não negatividade:
Comentário didático: este é um problema de transporte com oferta
e
e demanda máxima nos destinos. A soma das ofertas é
, menor que a soma das demandas
, 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
com linhas Vinhedos (1,2) e colunas Restaurantes (1…4). Por exemplo: - Células
com as variáveis na linha do Vinhedo 1 e na linha do Vinhedo 2.
- Células
- Em outra área, coloque a matriz de lucros
(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
como soma dos produtos — 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
capacidade (Vinhedo1: , Vinhedo2: ). - Para cada restaurante: soma das respectivas
demanda máxima (R1: , etc.). -
(marcar como restrição de não negatividade).
- Para cada vinhedo: soma das respectivas
- Configuração do Solver:
- Definir célula objetivo como a célula que contém
. - Escolher “Maximizar”.
- Variáveis de decisão: as células
. - Tipo de solução: método Simplex LP (no Excel Solver escolher “Simplex LP” ou equivalente).
- Resolver.
- Definir célula objetivo como a célula que contém
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:
-
Ordenar as rotas por lucro unitário
decrescente: -
Alocar sempre que possível pelas rotas de maior lucro, respeitando capacidades e demandas:
- Primeiro alocar em
(lucro ): R1 pede , V1 tem → envie . (V1 sobra . R1 satisfeita.) - Em seguida, rota com lucro
, : R3 pede , V2 tem → envie . (V2 sobra . R3 satisfeita.) - Próxima rota de lucro
: usar V1→R2 ( ) porque V1 ainda tem capacidade: envie . (V1 fica zerado; R2 ainda pede .) - Completar R2 com V2→R2:
. (V2 sobra . R2 satisfeita.) - Restam R4 com demanda
e V2 com : coloque . (V2 fica zerado; sobra demanda R4 de que não pode ser atendida.)
- Primeiro alocar em
-
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):
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
:
- Vinhedo 1:
- Vinhedo 2:
Somando tudo:
Portanto o lucro máximo é US$
.
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
para
e
.
sujeito a
b) Modelo em planilha e Solver: montar tabela
com células para
; outra tabela com
; calcular somas por linha (oferta) e por coluna (demanda); célula objetivo = SUMPRODUCT(p_{ij},x_{ij}); usar Solver com objetivo “Max”, variáveis
, restrições de oferta e demanda e
; método: Simplex LP.
c) Solução ótima (alocações e lucro máximo):