Answers:
我强烈推荐CPLEX的“父亲”比克斯比(Bixby)撰写的论文,该论文不仅调查(修订的)单纯形算法的实现方面:罗伯特·比克斯比(Robert E. Bixby),解决现实世界中的线性程序:十年以及更多的进展,操作研究(50)2002,3-15。
单纯形算法不在P中。因此,CLRS指出,即使在实践中它“运行良好”,也有一些输入导致算法在指数时间内运行。这与算法严格相关,与算法的实现无关:您将面对此问题,而与实现算法的精确程度无关。但是,LP在P中。1979年Khachian证明了这一点,但是他的椭球算法不切实际。如今,内部积分方法已被广泛使用。第一个是1984年由Karmarkar发现的。
如果您对实际实现感兴趣,请查看:
GUROBI是免费的,目前可用于学术领域,是目前可用的最佳优化程序(顺序和共享内存并行版本):
GLPK库:
http://www.gnu.org/software/glpk/
这是一个开源项目,提供以下方面的实现:
范德贝的线性规划 一书详细介绍了许多底层细节...但是,正如其他答案/评论所建议的那样,实现LP解算器是一项艰巨而艰巨的任务。现成的求解器可能是要走的路...(还有一些开源的LP求解器...)
有时幼稚的实现有时会以指数方式运行。实际上,我认为所有已知的确定性和随机规则都具有超多项式最坏情况输入。产生这种最坏情况行为的大多数已知输入都是高度结构化的,一个相关的问题:
但是,在实践中,SM效果很好。这已通过引入平滑分析而正式化,该分析基本上是在输入稍有干扰的情况下进行的最坏情况分析。在这种分析下,SM是多时的,换句话说,对于每个输入(甚至是病理输入),都会有轻微的扰动,从而使算法能够很好地执行。这种见解已转化为可以在多时执行的随机算法。但是,据我了解,关于该算法是否符合“真正的”单纯形算法的说法,仍有一些争议。我也不知道标准软件包是否按照这种方式实现了某些功能,但是由于搜索结果已有5年以上的历史了,因此您应该能够找到一些实现方式。