Úvod do matematické optimalizace

Introduction to Optimization in Python

Jasmin Ludolf

Content Developer

Co nás čeká...

 

Naučíte se...
  • Řešit reálné optimalizační problémy
  • Sestavit sadu nástrojů pro různé typy úloh

 

Co je třeba znát předem...

 

Co znát nepotřebujete...
  • Matematickou analýzu
  • Algoritmy
Introduction to Optimization in Python

Co je matematická optimalizace?

 

  • Hledání ideálních vstupů pro daný problém

 

  • Příklady:
    • Maximalizace výnosů plodin

Plodiny rostoucí na poli.

  • Podmínky půdy, počasí
  • Optimální množství a kvalita plodin
Introduction to Optimization in Python

Co je matematická optimalizace?

 

 

Dodávky jedoucí po doručovací trase.

 

 

  • Optimální distribuční trasy
  • Vzdálenost a dopravní situace
  • Zkrácení doby doručení a snížení nákladů
Introduction to Optimization in Python

Účelová funkce

  • Popisuje vztah mezi vstupními proměnnými a výsledkem

 

Výroba nábytku:

  • Maximalizace zisku, P
  • Množství, q

 

$P = 40q - 0.5q^2$

  • Která hodnota q maximalizuje P?
Introduction to Optimization in Python

Optimalizace v Pythonu

import numpy as np
import matplotlib.pyplot as plt

qs = np.arange(80)


def profit(q): return 40 * q - 0.5 * q**2
plt.plot(qs, profit(qs)) plt.xlabel('Quantity') plt.ylabel('Profit') plt.show()
Introduction to Optimization in Python

Optimalizace ve výrobě

 

  • Maximální hodnota = optimální hodnota

 

  • Možné důvody tvaru křivky:
    • Nedostatek personálu nebo vybavení

 

Zisk v závislosti na množství.

Introduction to Optimization in Python

Vyčerpávající prohledávání

  • Metoda „hrubé síly"
  • Výpočet zisku pro různá množství
  • Výběr hodnoty s nejvyšším ziskem

 

Muž s dalekohledem sedí na balónu s dolarovým znakem a hledá zisk.

Introduction to Optimization in Python

Vyčerpávající prohledávání v Pythonu

import numpy as np

qs = np.arange(80)

def profit(q): 
  return 40 * q - 0.5 * q**2


profits = profit(qs) max_profit = profits.max()
max_ind = np.argmax(profits) q_opt = qs[max_ind]
print(f"The optimum is {q_opt} pieces of furniture, which makes ${max_profit} profit.")
The optimum is 40 pieces of furniture, which makes $800 profit.
Introduction to Optimization in Python

Výhody a nevýhody vyčerpávajícího prohledávání

 

  • Výhody
    • (+) Jednoduchá implementace
    • (+) Nevyžaduje drahý software
    • (+) Minimální předpoklady
  • Nevýhody
    • (-) Nefunguje dobře pro složité případy
Introduction to Optimization in Python

Procvičme si to!

Introduction to Optimization in Python

Preparing Video For Download...