There are applications in which the user would want to use a given expression of variables and parameters as the assessment cost function to train the model. This is specially the case when uncertainty (forecasts) go into the LHS or RHS of the constraints because it creates a scenario where:
- Optimal solution from the planning model may be infeasible given the observed values;
- One way of dealing with that is creating slack variables that are penalized in the objective function of the assessment model;
- But it is not desired for the forecast model to be trained with this signal.
This is just an example, there are certainly many more.
In order to deal with that it will be necessary to use DiffOpt.jl for the third term of the chain rule gradient computation, which shouldn't be very different than what is already done.
There are applications in which the user would want to use a given expression of variables and parameters as the assessment cost function to train the model. This is specially the case when uncertainty (forecasts) go into the LHS or RHS of the constraints because it creates a scenario where:
This is just an example, there are certainly many more.
In order to deal with that it will be necessary to use DiffOpt.jl for the third term of the chain rule gradient computation, which shouldn't be very different than what is already done.