Exercício de restrição lógica
Seu cliente encomendou seis produtos para serem entregues ao longo do próximo mês. Você precisará enviar várias cargas de caminhão para entregar todos os produtos. Há um limite de peso nos seus caminhões de 25.000 lb. Por motivos de fluxo de caixa, você deseja enviar a combinação de produtos mais lucrativa que caiba no seu caminhão.
| Product | Weight (lbs) | Profitability ($US) |
|---|---|---|
| A | 12,583 | 102,564 |
| B | 9,204 | 130,043 |
| C | 12,611 | 127,648 |
| D | 12,131 | 155,058 |
| E | 12,889 | 238,846 |
| F | 11,529 | 197,030 |
Dois dicionários Python, weight e prof, e uma lista prod foram criados para você, contendo o peso, a lucratividade e o nome de cada produto. Você pode explorá-los no console.
Este exercício faz parte do curso
Análise de Cadeia de Suprimentos em Python
Instruções do exercício
- Adicione uma restrição para garantir que o peso total do caminhão seja menor ou igual a 25.000 lb.
- Adicione uma restrição para que o modelo selecione, no máximo, apenas um dos produtos entre D, E e F.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Initialized model, defined decision variables and objective
model = LpProblem("Loading Truck Problem", LpMaximize)
x = LpVariable.dicts('ship_', prod, cat='Binary')
model += lpSum([prof[i] * x[i] for i in prod])
# Define Constraint
model += lpSum([weight[i] * x[i] for i in prod]) ____ ____
model += ____
model.solve()
for i in prod:
print("{} status {}".format(i, x[i].varValue))