[Completed] #SE4All - MathProg Challenge

Watch #SE4All Q&A on YoutubeJoin the discussion on Unite Ideas Slack  



With around 1.1 billion people globally lacking access to electricity, the Sustainable Development Goal 7 (SDG7) aims at universal access to sustainable, affordable, reliable, and modern energy by 2030. In taking on the challenge of restructuring energy infrastructure, planning its long-term development and making it climate resilient, national governments must answer several questions. Will available resources be enough to meet growing demands and development needs? What will the environmental and economic costs of energy transitions be? Can a tradeoff between them be found?

Energy system models are mathematical tools that can help to find answers to these questions. The focus of this challenge is OSeMOSYS (the Open Source energy MOdelling SYStem), a long-term energy systems modelling  tool that uses linear optimisation to determine the least-cost energy system configuration for a specified time horizon (for e.g. 2015 – 2050).

Relevant applications of OSeMOSYS are featured on UNDESA platform Modelling Tools for Sustainable Development Policies in a case study called Atlantis- Integrated Systems Analysis of Energy.

We challenge you to:

In OSeMOSYS, energy systems are represented as sets of ‘Technologies’ and ‘Fuels’. When using the model, users specify which Technologies (e.g. a coal power plant) are linked to which Fuels through specific input parameters: e.g. users will specify that a coal power plant (Technology) receives as input coal (Fuel) and produces electricity (Fuel). This way Fuels that are not outcomes of the specified Technology will not be connected to the Technology (e.g. If any Fuel ‘natural gas’ is present, it won’t be connected to the coal power plant.)

Nonetheless behind the scenes, when the linear program creates the final matrix, the model creates every possible combination of ‘Technologies’ and ‘Fuels’, instead of just including the user-specified combinations. This does not affect the results of the model, but creates a large, sparse matrix to be optimized. For this reason the matrix generation becomes the bottleneck dampening the usability of OSeMOSYS to energy planners and other stakeholders worldwide.

Therefore, we challenge you to reduce the size and generation time of the Linear Programming (LP) matrix generated by OSeMOSYS.

By solving this challenge, you will make possible for KTH and other developers to build even bigger and more detailed models, and for energy planners across the world to explore more pathways for granting electricity for all.  


The task  

1) Familiarize yourself with OSeMOSYS and its documentation

2) Run OSeMOSYS with two case studies

3) Modify OSeMOSYS (Change the code of osemosys_modelfile.txt)

4) Write Change Log

5) Write readme file

Read the detailed description of the steps at the KTH GitHub repository here.



The following datasets are necessary to complete the challenge:

1) osemosys_modelfile.txt: The code of OSeMOSYS (in GNU MathProg language);

2) country_casestudy.txt:The datafile of the country case study which collects all the numerical inputs to run the simulations. Your results shall be evaluated on this case study. Please submit your solution using this case study;

3) utopia.txt: A test case study based on an imaginary country, Utopia. You may use this case study to perform quick tests (runs in few seconds). Do not submit your submission using this case study.

Download the datasets from the KTH GitHub repository here.



The solutions should be submitted through Unite Ideas platform ("Propose a Solution" at the bottom of the Challenge page). Participants should deliver their solution as a link to their github repository.

Participants’ workspace should include:

‣ The OSeMOSYS new code written in GNU MathProg, named osemosys_dateofsubmission;

‣ A .doc or .docx document with the Change Log in the same format as specified in section ‘Task’ above, reporting changes with respect to the original code in osemosys_modelfile.txt;

‣ The results_countrycasestudy.txt and SelectedResults.csv files of the results of the simulations using the new code and country_casestudy.txt;

‣ The readme file.


Review process

The judges will review the submitted solutions within three weeks after the closure of the challenge. Qualified submissions will be judged on a combination of the following criteria:

‣​ ​Efficacy of conversion - The successful modification of the code in Gnu MathProg, while maintaining the ability to run existing models.  

‣​ ​Accuracy - The participant(s) should be able to obtain the same results with the new and the old version of the code. In case of discrepancies, these should be restrained and the participant(s) should explain the difference.

‣​ ​Speed - the time for generating the matrix and solving the optimisation must be reduced at least by 75%; the size of the LP matrix must be significantly reduced. Participants must report the times and the LP matrix dimensions in their submissions (see Deliverables).

‣​ ​Elegance - Create a user-friendly, clean and understandable formulation, in line with the structure and ethos of OSeMOSYS.

‣​ ​Documentation - The new code must be well-documented by an English description and a mathematical formulation, according to the guidelines given above.


Judging panel

The judging panel consists of energy analysts, researchers and modelling experts from KTH Royal Institute of Technology of Sweden and United Nations Department of Economic and Social Affairs (UN-DESA).


Prizes & Recognition

The winner (or group of winners) and the winning solution will:

‣​ Receive a letter of recognition from UN DESA;

‣​ Be featured and referenced at the Open Energy Modelling Initiative meeting to take place in April 2017 and at the International Energy Workshop 2017 in Maryland, USA;

‣​ Be featured and referenced on osemosys.org web platform and on reports and publications presenting developments and applications of OSeMOSYS;

‣​ Be featured on UN Press and UN-DESA Modeling tools for Sustainable Development websites;  

‣​ Be offered the opportunity to have an advisory role in the further development of the submitted code.


Collaborate with the experts and other participants

‣​ #SE4All Online Q&A on Fri 18 November - Watch the Q&A on Youtube

‣​ Join the discussion on Unite Ideas Slack channel  - Join the UN Unite Ideas Slack channel to discuss the challenge, work together, share resources and find like-minded people across the world. Sign up for the channel here: https://ununiteideas.signup.team/

‣​ Tweet or email us!  You can also ask us question using @UN_UniteIdeas on Twitter or emailing us at uniteideas@un.org.


Submission guidelines

‣​  This challenge is open to the general public, private, and academic organizations.

‣​  We welcome the participation of students and GNU MathProg literate programmers.

‣​  Teaming up is encouraged. Please acknowledge all contributors under the “description” field on the Unite Ideas submission form.

‣​  Participants should submit the final challenge submissions (link to Github with new code, Change Log, result files and readme) through the Unite Ideas Website by Sunday December 18, 2016 midnight (EST).

‣​  Only original, open source work will be accepted. It is acceptable that your solution uses other existing open source libraries.

‣​  There are no limitations on the number of submissions per participant / participating team.

‣​  The participants are required to agree on the terms and conditions.​


Solution Terms & Conditions: 
When you submit a solution to this challenge you agree to license it as follows:

Infographics and databases are licensed under a Creative Commons Attribution 4.0 International license. Read the full text of the license here: https://creativecommons.org/licenses/by/4.0/legalcode

Software (e.g. dynamic visualizations) is licensed under a GNU General Public License Version 3 as published by the Free Software Foundation here: https://www.gnu.org/licenses/gpl.html

You represent and warrant that you have all necessary rights, licenses, and permissions to grant the above license and that the content submitted by you and the submission of such content, do not and will not violate any intellectual property rights (including but not limited to copyrights and trademark rights) of any third party.

Submission Deadline: 
Sun. Dec. 18/16
Challenge Status: 
Challenger Organization: 
United Nations Division for Sustainable Development, DESA

The Division for Sustainable Development (DSD) provides leadership in promoting and coordinating implementation of the sustainable development agenda of the United Nations. The work of the Division translates into five core functions: (1) Support to UN intergovernmental processes on sustainable development; (2) Analysis and policy development; (3) Capacity development at the country level; (4) Inter-agency coordination; and (5) Knowledge management, communication and outreach.

DESA, energy, SDG7, SDGs, 2016