Introduction à l'optimisation mathématique

Introduction à l'optimisation en Python

Jasmin Ludolf

Content Developer

À venir...

 

Vous apprendrez...
  • À résoudre des problèmes d'optimisation concrets
  • À bâtir une trousse pour traiter divers problèmes

 

Ce qu'il faut savoir avant...

 

Ce que vous n'avez pas besoin de savoir...
  • Calcul différentiel et intégral
  • Algorithmes
Introduction à l'optimisation en Python

Qu'est-ce que l'optimisation mathématique ?

 

  • Trouver les intrants idéaux pour un problème donné

 

  • Exemples :
    • Maximiser le rendement des cultures

Des cultures poussent dans un champ.

  • Conditions du sol, météo
  • Meilleure quantité et qualité de récolte
Introduction à l'optimisation en Python

Qu'est-ce que l'optimisation mathématique ?

 

 

Fourgonnettes roulant sur un itinéraire de livraison.

 

 

  • Itinéraires de distribution optimaux
  • Distance et circulation
  • Améliorer les délais de livraison et réduire les coûts
Introduction à l'optimisation en Python

La fonction objectif

  • Décrit le lien entre variables d'entrée et résultat

 

Fabrication de meubles :

  • Maximiser le profit, P
  • Quantité, q

 

$P = 40q - 0.5q^2$

  • Quelle valeur de q maximise P ?
Introduction à l'optimisation en Python

Optimiser avec 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()
Introduction à l'optimisation en Python

Optimisation en fabrication

 

  • Valeur maximale = valeur optimale

 

  • Raisons possibles de cette forme :
    • Pas assez de personnel ou d'équipement

 

Profit variant selon la quantité.

Introduction à l'optimisation en Python

Recherche exhaustive

  • Méthode « brute force »
  • Calculer le profit pour un éventail de quantités
  • Choisir celle qui donne le plus grand profit

 

Une personne avec des jumelles assise sur un ballon portant un signe dollar, à la recherche de profit.

Introduction à l'optimisation en Python

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

Recherche exhaustive : avantages et inconvénients

 

  • Avantages
    • (+) Mise en œuvre simple
    • (+) Aucun logiciel coûteux requis
    • (+) Hypothèses minimales
  • Inconvénients
    • (-) Ne passe pas à l'échelle pour les cas complexes
Introduction à l'optimisation en Python

Passons à la pratique !

Introduction à l'optimisation en Python

Preparing Video For Download...