Introducere în optimizarea matematică

Introducere în optimizare în Python

Jasmin Ludolf

Content Developer

În continuare...

 

Veți învăța despre...
  • Rezolvarea problemelor reale de optimizare
  • Construirea unui set de instrumente pentru diferite probleme

 

Ce trebuie să știți în prealabil...

 

Ce nu este necesar să știți...
  • Calcul diferențial
  • Algoritmi
Introducere în optimizare în Python

Ce este optimizarea matematică?

 

  • Găsirea intrărilor ideale pentru o problemă specifică

 

  • Exemple:
    • Maximizarea producției agricole

Culturi agricole pe un câmp.

  • Condiții de sol, vreme
  • Cantitate și calitate optime ale culturilor
Introducere în optimizare în Python

Ce este optimizarea matematică?

 

 

Vehicule utilitare pe un traseu de livrare.

 

 

  • Rute de distribuție optime
  • Distanță și trafic
  • Îmbunătățirea timpilor de livrare și reducerea costurilor
Introducere în optimizare în Python

Funcția obiectiv

  • Descrie relația dintre variabilele de intrare și rezultat

 

Producție de mobilă:

  • Maximizarea profitului, P
  • Cantitate, q

 

$P = 40q - 0.5q^2$

  • Ce valoare a lui q maximizează P?
Introducere în optimizare în Python

Optimizare cu Python

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

Optimizare în producție

 

  • Valoarea maximă = valoarea optimă

 

  • Posibile cauze ale formei:
    • Personal sau echipament insuficient

 

Profitul în funcție de cantitate.

Introducere în optimizare în Python

Căutare exhaustivă

  • Metoda „forței brute"
  • Calculul profitului pentru un interval de cantități
  • Selectarea valorii cu cel mai mare profit

 

Un bărbat cu binocluri, așezat pe un balon cu semnul dolarului, căutând profit.

Introducere în optimizare în Python

Căutare exhaustivă în Python

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

Avantajele și dezavantajele căutării exhaustive

 

  • Avantaje
    • (+) Implementare simplă
    • (+) Nu necesită software costisitor
    • (+) Ipoteze minime
  • Dezavantaje
    • (-) Nu se scalează pentru cazuri complexe
Introducere în optimizare în Python

Să exersăm!

Introducere în optimizare în Python

Preparing Video For Download...