Otimização univariada

Introdução à Otimização em Python

Jasmin Ludolf

Content Developer

Exemplo: Otimização na manufatura

 

Função objetivo:

$P = 40q - 0.5q^2$

  • Univariada: tem uma variável

Lucro variando com a quantidade.

Introdução à Otimização em Python

Exemplo: Otimização na manufatura

 

Função objetivo:

$P = 40q - 0.5q^2$

  • Univariada: tem uma única variável

Lucro variando com a quantidade.

Introdução à Otimização em Python

Calculando derivadas

 

Função objetivo:

$P = 40q - 0.5q^2$

Derivada: descreve o comportamento da inclinação

$\frac{dP}{dq} = 40 - q$

from sympy import symbols, diff, solve


q = symbols('q')
P = 40 * q - 0.5 * q**2
dp_dq = diff(P)
print(f"The derivative is: {dp_dq}")
The derivative is: 40 - 1.0*q
1 https://docs.sympy.org/latest/index.html
Introdução à Otimização em Python

O ponto crítico

O ótimo é onde a derivada é igual a zero

  • Pontos críticos: pontos onde a derivada é zero

O $q$ ótimo satisfaz:

$\frac{dP}{dq} = 40 - q = 0$

q_opt = solve(dp_dq)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Introdução à Otimização em Python

Máximo, mínimo ou nenhum dos dois?

 

Lucro variando com a quantidade.

 

Função objetivo:

$p = 40q - 0.5q^2$

q_opt = solve(p_prime)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Introdução à Otimização em Python

Convexidade e concavidade

 

Função côncava.

  • Máximo

 

Função convexa.

  • Mínimo
Introdução à Otimização em Python

Segunda derivada

 

  • A derivada da derivada
  • Taxa de mudança da inclinação conforme a variável muda

 

  • Se a 2ª derivada no ponto $< 0$: Máximo
  • Se a 2ª derivada no ponto $> 0$: Mínimo
  • Se a 2ª derivada no ponto $= 0$: nenhum

Lucro variando com a quantidade.

Introdução à Otimização em Python

Exemplo: Máximo, mínimo ou nenhum?

 

Derivada:

$\frac{dp}{dq} = 40 - q$

 

Segunda derivada:

$\frac{d^2p}{dq^2} = -1 < 0$

  • Máximo!

 

d2p_dq2 = diff(dp_dq)

sol = d2p_dq2.subs('q', q_opt)
print(f"The 2nd derivative is: {sol}")
The 2nd derivative is: -1.0000000000000
Introdução à Otimização em Python

Derivadas na otimização

 

  • Primeiras derivadas
    • Encontrar pontos críticos em problemas de otimização
  • Segundas derivadas
    • Identificar como mínimos ou máximos
Introdução à Otimização em Python

Vamos praticar!

Introdução à Otimização em Python

Preparing Video For Download...