-
Notifications
You must be signed in to change notification settings - Fork 437
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Learning sos2 #431
base: master
Are you sure you want to change the base?
Learning sos2 #431
Conversation
for more information, see https://pre-commit.ci
@fneum and @FabianHofmann I am not sure if it is worth it to pull this into the main pypsa code since it is only implemented for gurobi. Another option could be that we just include into pypsa the option to write SOS2 constraints with gurobi and I keep the learning script in my private repository. One could run the learning than just as an |
I'm tending towards including learning functionality in PyPSA. It's quite a nice distinguishing feature. Would it be an option to include SOS2 for Gurobi and MILP formulation for other solvers? |
@lisazeyen I just checked the CPLEX doc at https://www.ibm.com/docs/en/icos/12.8.0.0?topic=representation-mip-features-in-lp-file-format to find that their SOS2 constraint representation is compatible to Gurobi's, so that you at least capture both of them. What's missing here? Apart from porting it to |
Ah great, thanks for checking! Then we can just add a check for the solver and allow learning only for gurobi and cplex. I haven't done the MIP formulation for the other solvers but we could also pull it in now and do the implementation for the others at a later point. |
Closes # (if applicable).
Endogenous technology learning
This PR should include endogenous investment cost reductions based on installed capacities. Cumulative cost curves of one technology are piecewised linearised using SOS2 constraints. This results in an MIP problem. Currently endogenous learning is only implemented for
pyomo=False
andsolver_name="gurobi"
.Checklist
doc
.environment.yaml
,environment_docs.yaml
andsetup.py
(if applicable).doc/release_notes.rst
of the upcoming release is included.