An implementation of Simplex Algorithm

Optima is an implementation of  Simplex Algorithm for solving Linear Programming Problems.

Download Optima

source code in Visual C++

Some of its features are :

Interface Features

 ·       Easy to use GUI ( Graphical User Interface )

Optima is developed for Windows Platform thus providing a Graphical Interface which makes it very easy to use with drop-down menus , toolbars and easy file management.

·       Built in editor with file-management capabilities and multiple document capability

It features a word-processor like interface which provides a built in editor. You can directly enter the problem into the editor as you would write it on paper and solution will also be written to the same window. Moreover , the document can be saved to a file for later use.

Also it supports multiple documents i.e. you can work on more than one problem simultaneously. Just open a new window and start working !

·       Supports Printing directly , Printer Setup and other Windows features

In Optima , you can directly print the solution to the printer from within the program . You can also directly Setup the printer from within the program.

It also supports other traditional features of Windows like Cut , Copy , Paste from/to ClipBoard and Undo.

Program Features

·       Fully Object Oriented

Optima uses Object Oriented methods (OOP) and implements a Class Simplex for solving Simplex Algorithm Problems in C++ language. This means that the class can be easily integrated into other software without affecting its implementation just by copying the Class definitions and can be used as it is. It can also be easily extended to support other features and to add more capabilities to it.

If defines two main functions :

FillSimplexTable() - It makes the initial Simplex Tableau from the problem values

Iterate() - This function iterates through the table and creates a new table.

Other details can be had from the Author of the program.

·       Works in Fractions                        

One unique aspect of this program is its capability to work in fractions. It can do all the calculations in fractions and results are also displayed in fractions thus making the program very convenient to use. 

·      Supports Two Phase method and capability for giving any sign to the variables           ( <=0, >=0 , unrestricted in sign ).


Using the Program


The problem is entered simply by entering the numerical values seperated by commas.

Then is executed by pressing the “Cross” button on the toolbar , besides the “question mark”.




Max 4x1+3x2+3x3





x1>=0 , x2<=0 ,  x3 unrest. In sign


will be written as











Things to Note

1.     The Objective function values are entered on the very first line

2.     After the O.F. constraints are entered with A( i , j ) for each variable.

3.     The signs of the variables are entered after the tag “signs”.Just enter the variable no. and the condition seperated by a comma. For unrestricted sign  Use “*”. For e.g.  x1>=0 ,  write “1,>=”. ( See example above ). If the sign is not mentioned for a variable it is assumed to be >=0.

4.     Write “end” to indicate the end of problem.