Симплексный алгоритм отсутствует в P. CLRS, следовательно, утверждает, что, хотя на практике он работает «хорошо», есть некоторые входные данные, заставляющие алгоритм работать в экспоненциальном времени. Это строго связано с алгоритмом, а не с его реализацией: вы столкнетесь с этим независимо от того, как именно вы реализуете алгоритм. Однако LP находится в P. Это было доказано Хачианом в 1979 году, однако его алгоритм эллипсоида не практичен. Сегодня методы внутренних точек широко используются. Первый был обнаружен Кармаркаром в 1984 году.
Если вы заинтересованы в практической реализации, взгляните на:
GUROBI, бесплатный для академического использования, на данный момент является лучшим доступным оптимизатором (как для последовательной, так и для параллельной версий с общей памятью):
http://www.gurobi.com
библиотека GLPK:
http://www.gnu.org/software/glpk/
это проект с открытым исходным кодом, обеспечивающий реализацию для:
- простые и двойственные симплекс-методы
- прямой двойственный метод внутренней точки
- метод разветвления
- переводчик для GNU MathProg
- прикладной программный интерфейс (API)
- автономный LP / MIP решатель