IniziaInizia gratis

Trova l'ottimo globale

Ti è stato fornito il seguente problema di massimizzazione del profitto e ti viene chiesto di trovare il massimo globale.

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

\(0\) è un limite inferiore naturale per la quantità e hai osservato che a \(q=30\) il profitto è negativo, quindi \(30\) è un buon candidato per il limite superiore.

Trova l'ottimo globale per questo problema.

basinhopping è già stato importato per te.

Questo esercizio fa parte del corso

Introduzione all'ottimizzazione in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci il dizionario kwargs degli argomenti con parola chiave, con limiti \(0\) e \(30\).
  • Esegui basinhopping, con l'obiettivo come negativo di profit e la stima iniziale x0 passata a minimizer tramite kwargs.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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")
Modifica ed esegui il codice