CommencezCommencez gratuitement

Trouver l'optimum global

On vous propose le problème de maximisation du profit suivant et vous devez en trouver le maximum global.

\(\Pi= -\frac{1}{4}q^4 + 11q^3 - 160q^2 + 900q\)

\(0\) est une borne inférieure naturelle pour la quantité et vous avez observé qu'à \(q=30\) le profit est négatif, donc \(30\) est une bonne borne supérieure candidate.

Trouvez l'optimum global pour ce problème.

basinhopping a été importé pour vous.

Cette activité fait partie du cours

Introduction à l'optimisation en Python

Voir le cours

Instructions de l’exercice

  • Définissez le dictionnaire kwargs des arguments nommés, avec des bornes \(0\) et \(30\).
  • Exécutez basinhopping, avec l'objectif égal au négatif de profit et la valeur initiale x0 transmise au minimizer via kwargs.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

def profit(q): 
	return -q**4 / 4 + 11 * q**3 - 160 * q**2 + 900 * q
  
x0 = 0

# Define the keyword arguments for bounds
kwargs = {"bounds": [(____, ____)]} 

# Run basinhopping to find the optimal quantity
result = basinhopping(____ q: -profit(q), ____, ____=kwargs)

print(f"{result.message}")
print(f"The maximum according to basinhopping(x0={x0}) is at {result.x[0]:.2f}\n")
Modifier et exécuter le code