Optimizare univariată

Introducere în optimizare în Python

Jasmin Ludolf

Content Developer

Exemplu: Optimizare în producție

 

Funcția obiectiv:

$P = 40q - 0.5q^2$

  • Univariată: are o singură variabilă

Profitul în funcție de cantitate.

Introducere în optimizare în Python

Exemplu: Optimizare în producție

 

Funcția obiectiv:

$P = 40q - 0.5q^2$

  • Univariată: are o singură variabilă

Profitul în funcție de cantitate.

Introducere în optimizare în Python

Calculul derivatelor

 

Funcția obiectiv:

$P = 40q - 0.5q^2$

Derivata: descrie comportamentul pantei

$\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
Introducere în optimizare în Python

Punctul critic

Optimul se găsește acolo unde derivata este zero

  • Puncte critice: puncte unde derivata este zero

Optimul $q$ satisface:

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

q_opt = solve(dp_dq)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Introducere în optimizare în Python

Maxim, minim sau niciunul?

 

Profitul în funcție de cantitate.

 

Funcția obiectiv:

$p = 40q - 0.5q^2$

q_opt = solve(p_prime)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Introducere în optimizare în Python

Convexitate și concavitate

 

Funcție concavă.

  • Maxim

 

Funcție convexă.

  • Minim
Introducere în optimizare în Python

Derivata a doua

 

  • Derivata derivatei
  • Rata de variație a pantei în raport cu variabila

 

  • Dacă derivata a 2-a în punct $< 0$: Maxim
  • Dacă derivata a 2-a în punct $> 0$: Minim
  • Dacă derivata a 2-a în punct $= 0$: niciunul

Profitul în funcție de cantitate.

Introducere în optimizare în Python

Exemplu: Maxim, minim sau niciunul?

 

Derivata:

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

 

Derivata a doua:

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

  • Maxim!

 

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
Introducere în optimizare în Python

Derivate în optimizare

 

  • Derivatele de ordinul întâi
    • Identifică punctele critice în problemele de optimizare
  • Derivatele de ordinul doi
    • Clasifică punctele drept minime sau maxime
Introducere în optimizare în Python

Să exersăm!

Introducere în optimizare în Python

Preparing Video For Download...