Giter Club home page Giter Club logo

kleeminty_solver's Introduction

Klee-Minty Problem Solver

Author: Luiz Henrique de Bastos Souza

This program is designed to solve the Klee-Minty problem using three different algorithms: Simplex, Interior Points and Murty Hybrid.

What is the Klee-Minty Problem?

The Klee-Minty problem is a special case of linear programming problem that was introduced by Victor Klee and George Minty in 1972. It has the following form:

Maximize

$$ \sum_{j=1}^{n} 2^{n-j}x_j $$

subject to:

$$ 2\sum_{j=1}^{i-1} 2^{i-j}x_j + x_i \leq valb^{i-1}, \quad i=1,2,\ldots,n \quad x_j \geq 0, \quad j=1,2,\ldots,n$$

This problem is interesting because the Simplex algorithm takes an exponential amount of time to solve it in the worst case, while Interior Point algorithms can solve it in polynomial time. The Murty Hybrid algorithm is a combination of both Simplex and Interior Point algorithms that aims to exploit the advantages of both methods.

How to Use the Program

The program is written in Python and can be run from the command line. To use it, follow these steps:

  • Download or clone the repository to your computer.
  • Install the required dependencies by running pip install -r requirements.txt in your command prompt or terminal.
  • Run the program by executing the command python main.py --dimensions <dimensions> --val_b <value_b> --algorithm <algorithm> in your command prompt or terminal, where is the dimension of the problem, <value_b> is the vector b $(5 \leq val_b \leq 100)$ and is one of the following: simplex, interior, or murty.
  • The program will output the solution to the Klee-Minty problem using the specified algorithm.

Results

The program will output the optimal solution to the Klee-Minty problem using the specified algorithm. The output will include the objective function value, the number of iterations and the time required to obtain the solution.

Conclusion

The Klee-Minty problem is a challenging linear programming problem that requires specialized algorithms to solve efficiently. This program offers three different algorithms to solve the problem, each with its own advantages and disadvantages. By using this program, you can explore the performance of these algorithms and gain a deeper understanding of linear programming.

Acknowledgments

Based on the work of Amanda Dusse and Igor Baratta, former students of professor Rodney Rezende Saldanha at UFMG.

References:

Katta G. Murty. "Linear complementarity, linear and non linear programming", pag 474-477, 1997 Vannelli.(1993). "Teaching Large-Scale Optimization by an Interior Point Approach"; IEEE Trans. on Education. (36)1:204-209 Kartik's MATLAB code for MA/OR/IE 505

kleeminty_solver's People

Watchers

 avatar

Forkers

chapie1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.