Implementation of MILP solver rather than just linear optimization
Currently the scheduling models based optimization use GLPK, a linear programming solving kit.
Some of the constraints are actually non-linear, e.g. the charging penalty that kicks in only when a load is above a certain value, this is rather expressed as a binary constraints.
In order to be able to fully represent this in the model, we need to go to a more powerful MILP solver that can take binary and mixed constraints. This will also be better in the future when more types of loads may be added and some will have priority over others (e.g. heat pumps are running first when it is getting too cold).
A solving kit recommended by my supervisors is https://www.gurobi.com/