Skip to content

Conversation

@psaahiguera
Copy link
Collaborator

I have added a fix that mostly takes care of the problem. The main issue with the code is that we need to have some estimates (ranges) for DGf_std. Before, I employed a very simple, and seemingly harmless way of computing these ranges. However, for larger models, this resulted to be a bad solution. So, I implemented and solve series of LP problems to determine the max feasible range for these quantities. One of the difficulties of doing so is that some of these quantities remain unbounded, which can have negative consequences when we solve the TMFA. After some trial and errors, I found a reasonable starting range for DGf_std that enables running the subsequent TMFA computations satisfactorily. In the case of Gurobi, if you check the TMFA solution, it shows a couple of discrepancies which are mostly numerical noise (DGr of the order of 1e-6 when it should be zero). However, in the case of linprog, it shows large errors due to the fact that this solver is simply unreliable for larger problems. Ultimately, there is nothing wrong with the problem formulation, but it is an issue of solver robustness.

I have added a fix that mostly takes care of the problem. The main issue with the code is that we need to have some estimates (ranges) for DGf_std. Before, I employed a very simple, and seemingly harmless way of computing these ranges. However, for larger models, this resulted to be a bad solution. So, I implemented and solve series of LP problems to determine the max feasible range for these quantities. One of the difficulties of doing so is that some of these quantities remain unbounded, which can have negative consequences when we solve the TMFA. After some trial and errors, I found a reasonable starting range for DGf_std that enables running the subsequent TMFA computations satisfactorily. In the case of Gurobi, if you check the TMFA solution, it shows a couple of discrepancies which are mostly numerical noise (DGr of the order of 1e-6 when it should be zero). However, in the case of linprog, it shows large errors due to the fact that this solver is simply unreliable for larger problems. Ultimately, there is nothing wrong with the problem formulation, but it is an issue of solver robustness.
@psaahiguera psaahiguera requested a review from martamatos June 12, 2021 07:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants