Lucro Atual R$ 0,00

Dashboard Interativo de
Otimização de Pizzas

Monte seu pedido, monitore o estoque em tempo real e descubra a solução ótima

📦
Configurar Estoque
🍕
Monte seu Pedido
🧀

Muçarela

Lucro por pizza: R$ 20,00
0,5 kg massa 0,3 kg queijo 0,2 kg molho
0
Subtotal: R$ 0,00
🌶️

Calabresa

Lucro por pizza: R$ 25,00
0,5 kg massa 0,2 kg queijo 0,2 kg molho 0,15 kg calabresa
0
Subtotal: R$ 0,00
Total: 0 pizzas
Lucro: R$ 0,00
📊
Dashboard de Ingredientes

Uso dos Ingredientes

Lucro: Atual vs Ótimo

🌾 Massa 0,00 / 10 kg (0%)
🧀 Queijo 0,00 / 5 kg (0%)
🍅 Molho 0,00 / 4 kg (0%)
🌶️ Calabresa 0,00 / 2 kg (0%)
🎯
Otimizador Automático
📐
Modelo Matemático
Variáveis de decisão
x₁ = número de pizzas de Muçarela  |  x₂ = número de pizzas de Calabresa
Função Objetivo
Maximizar Z = 20x₁ + 25x₂
Sujeito às restrições de estoque
IngredienteRestriçãoEstoque
🌾 Massa 0,5x₁ + 0,5x₂ ≤ 1010 kg
🧀 Queijo 0,3x₁ + 0,2x₂ ≤ 5 5 kg
🍅 Molho 0,2x₁ + 0,2x₂ ≤ 4 4 kg
🌶️ Calabresa0,15x₂ ≤ 2 2 kg
Não-negatividade inteirax₁, x₂ ≥ 0 ∈ ℤ
💻
Código Python (PuLP)
otimizapizza.py
import pulp

# ── Criar o problema ─────────────────────────────────────────
prob = pulp.LpProblem("Maximizacao_Lucro_Pizzas", pulp.LpMaximize)

# ── Variáveis de decisão (inteiras, não-negativas) ───────────
x1 = pulp.LpVariable("muccarela", lowBound=0, cat='Integer')
x2 = pulp.LpVariable("calabresa", lowBound=0, cat='Integer')

# ── Função objetivo: maximizar lucro ─────────────────────────
prob += 20 * x1 + 25 * x2, "Lucro_Total"

# ── Restrições de estoque ─────────────────────────────────────
prob += 0.50 * x1 + 0.50 * x2 <= 10, "Massa"
prob += 0.30 * x1 + 0.20 * x2 <=  5, "Queijo"
prob += 0.20 * x1 + 0.20 * x2 <=  4, "Molho"
prob += 0.15 * x2               <=  2, "Calabresa"

# ── Resolver ──────────────────────────────────────────────────
prob.solve(pulp.PULP_CBC_CMD(msg=0))

# ── Resultado ─────────────────────────────────────────────────
print(f"Status: {pulp.LpStatus[prob.status]}")
print(f"Pizzas de Muçarela:  {int(x1.varValue)}")
print(f"Pizzas de Calabresa: {int(x2.varValue)}")
print(f"Lucro máximo: R$ {pulp.value(prob.objective):.2f}")

# Saída:
# Status: Optimal
# Pizzas de Muçarela:  7
# Pizzas de Calabresa: 13
# Lucro máximo: R$ 465.00