Skip to content

Julia port of schedule optimization code (MILP) originally written in Matlab

License

Notifications You must be signed in to change notification settings

winkmal/jumpingSchedule

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jumpingSchedule

Julia port of schedule optimization code (MILP) originally written in Matlab

What is this repository about?

In the context of renewable energy generation, it has become essential to compensate fluctuating electricity production with flexible on-demand delivery solutions. The examples presented in this repository are from Combined Heat and Power Units (CHP) converting biomethane to electricity and heat.

From the plant owner's point of view, the objective is to maximize direct marketing revenue, which mainly depends on current prices at the European Power Exchange (EPEX). Since prices are only known one day in advance, prediction algorithms have been developed to forecast future market development. One such approach is published in the GermanPowerMarket.database.toolbox, which also served as a source of some of the raw data in this repository.

Mathematically, this kind of optimization problem is known as mixed-integer linear programming (MILP).

Why did I create this repository?

I have been developing and running several schedule optimization codes in Matlab as part of my research work. Apart from intlinprog (Matlab Optimization Toolbox™), I have mainly used CBC through the great OPTI toolbox by Jonathan Currie, which unfortunately is no longer maintained. This means that with the next Matlab update, all my scripts could stop working.

Also, I want to include more free and open-source software in my research, and showcase its usage so others can benefit from it.

Those are the main reasons I decided to rewrite some of my scripts in Julia. Initially, I have started using the JuMP modeling language for mathematical optimization, hence the name jumpingSchedule.

Disclaimer

This repository also serves as a "learning-by-doing" project for my Julia skills. Please be aware there can be dramatic changes as my knowledge evolves. Also, consider any of the scripts work-in-progress.

If you can and are willing to improve anything in or contribute to this repository, I am happy to receive your pull request.

About

Julia port of schedule optimization code (MILP) originally written in Matlab

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages