pa01
pa01
1. Programming exercise
Hand-over: 18.1.2012
Presentation: Please, arrange time and place with Christoph Hansknecht.
Implement the revised simplex algorithm as presented in the lecture using Java or C/C++ as
programming language. Your program should
• read .lp-files.
• solve linear programs and display one optimal solution or the information that the LP is
infeasible/unbounded.
• print the values of the variables and the objective for a solution or write it to a file.
• give informations about the reduced cost and the variables that are leaving or entering the
basis in every step, if requested.
• be fully and proper documented using JavaDoc, Doxygen or another system that is available
in the Unixpool.
We will provide some example LPs on our website. Your program has to solve them correctly.
When you are done with this exercise please create an archive with a README file that contains
a short instruction about the compilation procedure for your code. Send an email with this archive
by the 18.1.2012 to [email protected]. Other uncertainties can be discussed in
the exercise session or will be purged via a comment on our website.
Here are some tips that might help you(you don’t have to follow them):
• Split up the work and define some milestones. The availible time might look like a lot but
there are many things to do. There will be some surprising bugs in the end.
• Take the time to sketch a concept for your code before you start to write the first line of code.
• Use a version control system like svn.
• Integrate a parser for the .lp-files. Due to Dr. Axel Werner we can provide you a parser
written in Java which can be found on the webpage. We don not guarantee its correctness.
• Execute diligent tests of each part of the code as early as possible. The simpler a piece of
code is the easier any bugs are found.
• Integrate the possibility to adjust the level of details for the displayed improvements of your
program. In the end it may be usefull to get rid of a bunch of meaningless output.
Good Luck!