IniziaInizia gratis

Prezzi ombra con i succhi

Un’azienda utilizza due macchine \(M_1\) e \(M_2\) per imbottigliare succo di pompelmo (\(g\)) e succo d’arancia (\(o\)). L’obiettivo è massimizzare il profitto nel rispetto dei vincoli

M1: \(6g + 5.5o \leq 40\) e M2: \(3g + 2.5o \leq 20\)

I vincoli riflettono la produttività e la disponibilità delle macchine. Ad esempio, M1 è disponibile per 40 ore a settimana e richiede 6 ore per imbottigliare 1 tonnellata di succo di pompelmo e 5,5 ore per una tonnellata di succo d’arancia.

C’è anche un vincolo di approvvigionamento: l’azienda riceve al massimo 6 tonnellate di pompelmi a settimana e 12 tonnellate di arance. Questi sono i limiti superiori.

pulp è già stato importato e model è stato definito, così come le variabili g e o per i succhi di pompelmo e arancia.

Questo esercizio fa parte del corso

Introduzione all'ottimizzazione in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Completa il ciclo for includendo un controllo per verificare se il prezzo ombra è positivo.
  • Inserisci la variabile che misura l’aumento marginale dell’obiettivo quando il vincolo è allentato.
  • Inserisci la variabile che misura quanto è “tirato” il vincolo (slack).

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

print(LpStatus[model.status])
print(f'The optimal amount of {g.name} embottled is: {g.varValue:.2f} tons')
print(f'The optimal amount of {o.name} embottled is: {o.varValue:.2f} tons')

for name, c in model.constraints.items():
    # Check if shadow value is positive 
    if c.____ > 0:
    # Enter the variable that measures marginal increase in objective when constraint is relaxed
        print(f"Increasing the capacity of {name} by one unit would increase profit by {c.____} units.")
    else:
    # Enter the variable that measures how tight the constraint is
        print(f"{name} has {c.____} units of unused capacity.")
Modifica ed esegui il codice