ComeçarComece de graça

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

Ver curso

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))
Editar e executar o código