I am trying to solve my multi-objective problem in Gurobi using the epsilon-constraint method. I didn't find any sample code in Gurobi(python). I am new to gurobi and have no experience in coding. Please, someone, help me to find the solution.
MO Problem model.
power = ["Lignite", "Oil", "Gas", "RES"]
load = ["base", "middle", "peak"]
pi = [("Lignite","base"),("Lignite","middle"),("Oil","middle"),("Oil","peak"),("Gas","base"),
("Gas","middle"),("Gas","peak"),("RES","base"),("RES","peak")]
es = ["Lignite","RES"]
k = [ "cost", "CO2emission", "endogenous"]
cost = {"Lignite":30,"Oil":75,"Gas":60,"RES":90}
capacity = {"Lignite":31000,"Oil":15000,"Gas":22000,"RES":10000}
CO2emission = { "Lignite":1.44,"Oil":0.72,"Gas":0.45,"RES":0}
demand = {"base": 38400.0, "middle": 19200.0, "peak": 6400.0}
mdl = Model('power')
z = mdl.addVars(k,vtype=GRB.BINARY) #'objective function variables';
x = mdl.addVars(power,load, vtype=GRB.CONTINUOUS) #Positive Variable: production level of unit in load area in GWh
obcost = mdl.setObjectiveN(quicksum(x[p,l]*cost[p] for p in power for l in load), 2, 1)
objes = mdl.setObjectiveN(quicksum(-1 * x[e,l] for e in es for l in load), 0, 1)
obco2 = mdl.setObjectiveN(quicksum(x[p,l]*CO2emission[p] for p in power for l in load),1, 1)
defcap = mdl.addConstrs(quicksum(x[p,l] for l in load) <= capacity[p] for p in power)
defdem = mdl.addConstrs(quicksum(x[p,l] for p in power) >= demand[l] for l in load)
mdl.update()
mdl.optimize()
From this Multi-objective model I need to find a Pareto front using the epsilon-constraint method
Reference:
https://www.gams.com/latest/gamslib_ml/libhtml/gamslib_epscm.html