"""
    Esercitazione 1
    Esercizio 1
    Autore: Mauro Maria Baldi
"""
import pulp

# Definizione del modello
model = pulp.LpProblem("Svivon", pulp.LpMaximize)

# Definizione delle variabili
xA = pulp.LpVariable("xA", lowBound = 0, cat = "Integer")
xB = pulp.LpVariable("xB", lowBound = 0, cat = "Integer")
xG = pulp.LpVariable("xG", lowBound = 0, cat = "Integer")

# Funzione obiettivo
model+= 13*xA + 9*xB + 16*xG, "FO"

# Vincoli
model+= xB + 2*xG <= 4000, "rame"
model+= xA >= 2*xB, "V2"
model+= xA <= xG, "V3"

# Stampa del modello
print(model)
print()

# Risoluzione e stato
model.solve()
status = pulp.LpStatus[model.status]
print(status)
print()

# Valore delle variabili
for var in model.variables():
    print(var.name, "=", var.varValue)
print()

# Valore della funzione obiettivo
FO = pulp.value(model.objective)
print("FO =", FO)
