Problema de planejamento logístico 2
Você está novamente prestando consultoria para um fabricante de fornos de cozinha, ajudando a planejar a logística. Desta vez, você vai montar um plano para os próximos seis meses (jan.-jun.). Ainda há dois locais de armazém (New York e Atlanta) e quatro regiões de clientes (East, South, Midwest, West). O custo de envio de cada um dos armazéns para cada região de clientes está na tabela abaixo. Seu objetivo é determinar o número de remessas de cada armazém para os clientes que resulte no menor custo.
| Customer | New York | Atlanta |
|---|---|---|
| East | $211 | $232 |
| South | $232 | $212 |
| Midwest | $240 | $230 |
| West | $300 | $280 |
Um dicionário do Python chamado costs, contendo os custos do modelo, e três listas months, warehouse e customers já foram criados para você. costs já foi impresso; você também pode explorar as listas no console. Além disso, o modelo já foi inicializado para você.
Este exercício faz parte do curso
Análise de Cadeia de Suprimentos em Python
Instruções do exercício
- Defina as variáveis de decisão no modelo usando primeiro uma list comprehension para iterar sobre as listas
months,warehouseecustomerse criar uma lista de chaves. Use essa lista de chaves comLpVariable.dicts()para definir as variáveis necessárias. - Defina a função objetivo somando todos os custos de envio de um determinado armazém para um cliente ao longo dos seis meses.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Define decision variables
key = [(m, w, ____) for m in months for w in warehouse for c in customers]
var_dict = LpVariable.dicts('num_of_shipments',
key,
lowBound=____, cat=____)
# Use the LpVariable dictionary variable to define objective
model += lpSum([costs[(w, c)] * ____[(____, ____, ____)]
for m in months for w in warehouse for c in customers])