Skip to main content

model.py

In this section, we describe both the mathemical model and the code implementation of the function execution.py

Objective function

maxwx(jWPaAprjxaj)/ubx+wy(aAjWPkKfFyajkf)/ubyMaAkKfFsakf\max \, w_x\Big(\sum_{j \in WP}\sum_{a \in A}pr_j x_{aj}\Big)/ub_x + w_y\Big( \sum_{a \in A}\sum_{j \in WP}\sum_{k \in K}\sum_{f\in F}y_{ajkf}\Big)/ub_y - M\sum_{a \in A}\sum_{k \in K}\sum_{f\in F}s_{akf}

Implementation in Pyomo:

    def obj_rule(m):
return (float(w1)*(sum(pr[j] * m.x[a, j] for j in WP for a in A))/ub_x +
float(w2)*(sum(m.y[a, j, k, f] for a in A for j in WP for k in K for f in F))/ub_y -
1000*sum(m.s[a, k, f] for a in A for k in K for f in F))
model.obj = pe.Objective(rule=obj_rule, sense=pe.maximize)

Constraints

Fractionation pattern - Daily