Problema dietei

Scopul problemei dietetice este de a selecta alimentele care satisfac cerințele nutriționale zilnice la un cost minim. Această problemă poate fi formulată ca un program liniar, pentru care constrângerile limitează numărul de calorii și cantitatea de vitamine, minerale, grăsimi, sodiu și colesterol din dietă. Danzig (1990) remarcă faptul că problema dietei a fost motivată de dorința armatei SUA de a reduce la minimum costul hrănirii cu Gls în câmp, în timp ce oferă în continuare o dietă sănătoasă.

Declarație problemă

Problema dietei poate fi formulată matematic ca o problemă de programare liniară utilizând următorul model din Pyomo:

Seturi

Setați datele care sunt utilizate pentru a defini o instanță de model.

Parametri (Param)

Date despre parametri care sunt utilizate pentru a defini o instanță de model.

Variabile (Var)

Variabile de decizie într-un model.

Obiectiv

Expresii care sunt minimizate sau maximizate într-un model.

Constrângeri

Expresii de constrângere care impun restricții asupra valorilor variabile într-un model.

Notă: Toate pachetele sunt deja în Qusandbox, nu trebuie să instalați niciun pachet dacă rulați proiectul în Qusandbox. Dacă rulați proiectul în notebook-ul local Jupyter, asigurați-vă că ați instalat toate pachetele de mai sus.

În primul rând, trebuie să declarați un model abstract prin crearea unui obiect model. Model abstract clasa oferă un context pentru definirea și inițializarea modelelor de optimizare abstractă în Pyomo atunci când valorile datelor vor fi furnizate în momentul obținerii unei soluții.

Apoi, utilizați A stabilit componentă pentru a declara mulțimile F și abstract. Când lucrați cu Pyomo, este convenabil să scrieți modele abstracte într-un mod oarecum mai abstract, utilizând seturi de indexuri care conțin șiruri, mai degrabă decât seturi de indexuri care sunt implicate de 1,. m sau însumarea de la 1 la n.