Optimisation univariée

Introduction à l'optimisation en Python

Jasmin Ludolf

Content Developer

Exemple : optimisation en fabrication

 

Fonction objectif :

$P = 40q - 0.5q^2$

  • Univariée : une seule variable

Profits selon la quantité.

Introduction à l'optimisation en Python

Exemple : optimisation en fabrication

 

Fonction objectif :

$P = 40q - 0.5q^2$

  • Univariée : une seule variable

Profits selon la quantité.

Introduction à l'optimisation en Python

Calcul des dérivées

 

Fonction objectif :

$P = 40q - 0.5q^2$

Dérivée : décrit le comportement de la pente

$\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
Introduction à l'optimisation en Python

Le point critique

L'optimum se trouve où la dérivée est nulle

  • Points critiques : points où la dérivée est nulle

L'optimum $q$ satisfait :

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

q_opt = solve(dp_dq)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Introduction à l'optimisation en Python

Maximum, minimum ou aucun des deux ?

 

Profits selon la quantité.

 

Fonction objectif :

$p = 40q - 0.5q^2$

q_opt = solve(p_prime)
print(f"Optimum quantity: {q_opt}")
Optimum quantity: [40.0000000000000]
Introduction à l'optimisation en Python

Convexité et concavité

 

Fonction concave.

  • Maximum

 

Fonction convexe.

  • Minimum
Introduction à l'optimisation en Python

Deuxième dérivée

 

  • La dérivée de la dérivée
  • Taux de variation de la pente quand la variable change

 

  • Si la 2e dérivée au point $< 0$ : maximum
  • Si la 2e dérivée au point $> 0$ : minimum
  • Si la 2e dérivée au point $= 0$ : aucun des deux

Profits selon la quantité.

Introduction à l'optimisation en Python

Exemple : maximum, minimum ou aucun des deux ?

 

Dérivée :

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

 

Deuxième dérivée :

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

  • Maximum !

 

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
Introduction à l'optimisation en Python

Rôle des dérivées en optimisation

 

  • Premières dérivées
    • Trouver les points critiques en optimisation
  • Deuxièmes dérivées
    • Distinguer minimum et maximum
Introduction à l'optimisation en Python

Passons à la pratique !

Introduction à l'optimisation en Python

Preparing Video For Download...