# GLPK/Application projects utilizing GLPK

A number of application programming projects rely on GLPK to solve their underlying optimization problems. A few projects are listed here. Some have been released, others represent work in progress. The programming languages include C++ (native linking) and Java (with the appropriate language bindings).
As can be seen, the application domain is quite varied.
Designing and programming models which use the GLPK API is rather different from writing models in MathProg. If you are unsure about which approach to use, then almost certainly MathProg would be the better option.

## Application projects
### Clepsydra

Clepsydra is a static worst-case execution time analyzer for the Java Optimized Processor. It uses GLPK's integer linear programming to find the longest path through a program's control flow graph.

### cspsol

cspsol is a cutting stock problem solver which uses GLPK. The cutting stock problem (CSP) attempts to find the best way of cutting a set of large objects into smaller items. Such tasks are common in manufacturing.

### OSEMOSYS

OSEMOSYS is a major open source energy modeling system, based on partial (economic) equilibrium.
The model draws inspiration from MESSAGE and the model "envelope" is written in Java. The project has an associated wiki.

### Praat

Praat is a computational phonetics project, based at the Institute of Phonetic Sciences, University of Amsterdam. Praat is used to study human speech analysis and synthesis. Praat uses GLPK to find the minimal positive weights for problems involving harmonic grammar.

### Shogun

The shogun project provides a toolbox with algorithms for machine learning. GLPK is one of the solvers that can be used for multiple kernel learning.

### stan

The stan project is a java decision support application for the urban planning domain. It is designed as a desktop front-end to a mixed integer programming engine and currently uses GLPK.

### TEMOA

The TEMOA Project provides tools for energy model optimization and analysis.
TEMOA uses Pyomo which, in turn, defaults to GLPK (however future developments may require the use of nonlinear solvers). The design of TEMOA is strongly influenced by the well-documented MARKAL/TIMES model generators. The project has an associated wiki.

### xeona

xeona is a part-complete energy system simulation project designed to support energy and climate policy development. xeona uses GLPK to solve a number of technical and microeconomic subproblems within a system traversal process that also tries to make best use of standing capacity and intermittent resources. The application is written in C++ and is strongly object-oriented. The GLPK solver itself is encapsulated in a semi-intelligent wrapper class named svif::SiGlpk which exposes a more convenient call set than the one provided by GLPK directly. xeona can also output table-based HTML representations of each GLPK subproblem encountered — a feature which has proved itself invaluable when debugging. xeona is being developed by Robbie Morrison. This codebase is due to be open-sourced at the end of 2010. There is no associated website.

### KuKu3

https://sourceforge.net/projects/kuku3/
KuKu3 uses glpk to solve various puzzles.
Verion 3.2.1 provides:
Incorperates Sudoku into Internet Explorer or Firefox.
Solves Gattai5 (Samuri Sudoku) Puzzles. Additional puzzles can be obtained from (http://www.samurai-sudoku.com/)
Solves Hidato Puzzles. Additional puzzles can be obtained from http://www.smithsonianmag.com/games/hidato.html
Solves Numbrix Puzzles. Additional puzzles can be obtained from http://www.latimes.com/games/numbrix/
Source code for Gattai5 is available as Visual Studio solutions in the sources directory.
Source code for Hidato/Numbrix is available as a QT4 project in the sources directory
The binary distribution should be unzipped to C:\KuKu3. It requires dotNetFx40.
ieSudoku is started by dropping the file C:\KuKu3\iesudoku\iesudoku (XAML Browser Application) onto Internet Explorer or Firefox (Plugin required)
Version 3.3.0 adds support for Set Square, source available as a Visual Studio 10 project in the source directory.
Version 3.4.0 adds support for Futoshiki. Ada source available in the source directory requires gtkAda. Additional puzzles can be found at http://www.thepuzzleclub.com/futoshiki.php

## References

* ↑ Howells, M.; Rogner, H.H.; Jalal, I.; Isshiki, M. (2008). An open source energy planning approach : SOFT-MESSAGE (PDF) (presentation). {{cite book}}: Unknown parameter |month= ignored (help)
* ↑ Joseph, DeCarolis; Kevin, Hunter; Sarat, Sreepathi (June 2010). "The TEMOA project : tools for energy model optimization and analysis". International Energy Workshop 2010. Stockholm, Sweden. http://www.kth.se/polopoly_fs/1.61926!E1_DeCarolis.pdf.