"""
    Esercitazione 1
    Esercizio 2
    Autore: Mauro Maria Baldi
"""
import pulp

# Definizione del modello
model = pulp.LpProblem("EtaBeta", pulp.LpMaximize)

# Insieme degli indici
I = [1, 2, 3, 4, 5]

# Definizione delle variabili
x = pulp.LpVariable.dicts("x", (i for i in I), cat = "Binary")

# Funzione obiettivo
model+= 20*x[1] + 8*x[2] + 3*x[3] + 23*x[4] + 15*x[5], "FO"

# Vincolo sul budget
model+= 10*x[1] + 5*x[2] + 4*x[3] + 23*x[4] + 5*x[5] <= 30, "budget"

# Stampa a video del modello
print(model)
print()

# Risoluzione e stato
model.solve()
status = pulp.LpStatus[model.status]
print(status)
print()

# Valore delle variabili
for var in x:
    print(x[var].name, "=", x[var].varValue)
print()

# Valore della funzione obiettivo
FO = pulp.value(model.objective)
print("FO =", FO)
