ComeçarComece de graça

Biscoitos com restrições lineares

Parabéns! Seu negócio de biscoitos cresceu. Agora você tem duas padarias, \(A\) e \(B\), para ajudar a entregar seus biscoitos em todo o país.

Cada padaria pode fazer 100 biscoitos por dia e o custo de fazer um biscoito na padaria \(A\) é \(1.5\) vezes a quantidade \(q\), enquanto na padaria \(B\) é \(1.75q\).

O preço é definido por \(150 - q\).

Seu negócio está bombando e você já tem 140 pré-vendas de biscoitos para o dia. Você quer maximizar seu lucro no dia. Quantos biscoitos você deve fazer em cada padaria?

minimize, Bounds e LinearConstraint já foram carregados para você e a função de receita R já está definida.

Este exercício faz parte do curso

Introdução à Otimização em Python

Ver curso

Instruções do exercício

  • Defina a função de custo C usando q[0] para as quantidades na padaria \(A\) e `q[1]$ para a padaria \(B\).
  • Defina a função profit.
  • Defina os bounds e constraints para o seu problema de otimização.
  • Realize a otimização, salvando em result.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

def R(q):
    return (150 - q[0] - q[1]) * (q[0] + q[1])

# Define the cost function
def C(q): 
  return ____

# Define the profit function
def profit(q): 
  return ____

# Define the bounds and constraints
bounds = Bounds(____, ____) 
constraints = LinearConstraint([1, 1], ____) 

# Perform optimization
result = ____(lambda q: ____,                 
                  [50, 50],              
                  bounds=bounds,
                  constraints=constraints)

print(result.message)
print(f'The optimal number of biscuits to bake in bakery A is: {result.x[0]:.2f}')
print(f'The optimal number of biscuits to bake in bakery B is: {result.x[1]:.2f}')
print(f'The bakery company made: ${-result.fun:.2f}')
Editar e executar o código