O algoritmo simplex não está em P. CLRS, portanto, afirma que, embora na prática funcione "bem", há algumas entradas que fazem com que o algoritmo seja executado em tempo exponencial. Isso está estritamente relacionado ao algoritmo, não à sua implementação: você enfrentará isso independentemente de como exatamente implementa o algoritmo. No entanto, LP está em P. Isso foi provado por Khachian em 1979, porém seu algoritmo elipsóide não é prático. Hoje, os métodos de pontos interiores são amplamente utilizados. O primeiro foi descoberto por Karmarkar em 1984.
Se você estiver interessado em implementações práticas, dê uma olhada em:
O GUROBI, gratuito para uso acadêmico, é atualmente o melhor otimizador disponível (nas versões paralela e sequencial de memória compartilhada):
http://www.gurobi.com
a biblioteca GLPK:
http://www.gnu.org/software/glpk/
este é um projeto de código aberto, fornecendo implementações para:
- métodos simplais e duplos simplex
- método de ponto interior duplo-primal
- método de ramificação e corte
- tradutor para GNU MathProg
- API (Application Program Interface)
- solucionador de LP / MIP independente