Optymalizacja jednowymiarowa

Wprowadzenie do optymalizacji w Pythonie

Jasmin Ludolf

Content Developer

Przykład: Optymalizacja w produkcji

 

Funkcja celu:

$P = 40q - 0.5q^2$

  • Jednowymiarowa: zawiera jedną zmienną

Zysk w zależności od ilości.

Wprowadzenie do optymalizacji w Pythonie

Przykład: Optymalizacja w produkcji

 

Funkcja celu:

$P = 40q - 0.5q^2$

  • Jednowymiarowa: zawiera jedną zmienną

Zysk w zależności od ilości.

Wprowadzenie do optymalizacji w Pythonie

Obliczanie pochodnych

 

Funkcja celu:

$P = 40q - 0.5q^2$

Pochodna: opisuje zachowanie nachylenia

$\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
Wprowadzenie do optymalizacji w Pythonie

Punkt krytyczny

Optimum wyznaczamy tam, gdzie pochodna równa się zero

  • Punkty krytyczne: miejsca, gdzie pochodna równa się zero

Optimum $q$ spełnia:

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

q_opt = solve(dp_dq)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Wprowadzenie do optymalizacji w Pythonie

Maksimum, minimum czy żadne?

 

Zysk w zależności od ilości.

 

Funkcja celu:

$p = 40q - 0.5q^2$

q_opt = solve(p_prime)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Wprowadzenie do optymalizacji w Pythonie

Wypukłość i wklęsłość

 

Funkcja wklęsła.

  • Maksimum

 

Funkcja wypukła.

  • Minimum
Wprowadzenie do optymalizacji w Pythonie

Druga pochodna

 

  • Pochodna pochodnej
  • Tempo zmiany nachylenia wraz ze zmianą zmiennej

 

  • Jeśli 2. pochodna w punkcie $< 0$: Maksimum
  • Jeśli 2. pochodna w punkcie $> 0$: Minimum
  • Jeśli 2. pochodna w punkcie $= 0$: żadne

Zysk w zależności od ilości.

Wprowadzenie do optymalizacji w Pythonie

Przykład: Maksimum, minimum czy żadne?

 

Pochodna:

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

 

Druga pochodna:

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

  • Maksimum!

 

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
Wprowadzenie do optymalizacji w Pythonie

Pochodne w optymalizacji

 

  • Pierwsza pochodna
    • Wyznacza punkty krytyczne w zagadnieniach optymalizacji
  • Druga pochodna
    • Określa, czy punkt to minimum czy maksimum
Wprowadzenie do optymalizacji w Pythonie

Czas na ćwiczenia!

Wprowadzenie do optymalizacji w Pythonie

Preparing Video For Download...