Исходя из личного опыта, я бы сказал, что симплекс-методы немного легче понять, как реализовать, чем методы внутренних точек, основываясь на личном опыте реализации как основного симплексного метода, так и базового метода внутренних точек в MATLAB в рамках изучения линейного программирования. , Основными препятствиями в простейшем симплексе являются правильная реализация Фазы I и Фазы II, а также правильное выполнение правила антициклирования. Основные препятствия в реализации метода внутренних точек для линейного программирования, как правило, заключаются в правильной реализации итерационного метода и соответствующем масштабировании параметра барьера.
Вы можете найти более полное обсуждение плюсов и минусов каждого алгоритма в учебнике по линейному программированию, таких как Введение в линейную оптимизацию Берцимаса и Цициклиса. ( Отказ от ответственности: я изучил линейное программирование из этого учебника и взял линейное программирование в Массачусетском технологическом институте от жены Берцимаса.) Вот некоторые из основ:
Плюсы симплекса:
- Учитывая переменных решения, обычно сходится в O ( n ) операциях с O ( n ) осями.nO(n)O(n)
- Использует преимущества геометрии задачи: посещает вершины допустимого множества и проверяет оптимальность для каждой посещенной вершины. (В простом симплексе для этой проверки можно использовать уменьшенную стоимость.)
- Хорошо для небольших проблем.
Минусы симплекса:
- nO(2n)
- Не так хорошо для больших проблем, потому что операции поворота становятся дорогими. Алгоритмы отсечения или алгоритмы генерации отложенных столбцов, такие как Dantzig-Wolfe, могут иногда компенсировать этот недостаток.
Плюсы методов интерьерной точки:
- O(n3.5L2logLloglogL)L
- Лучше для больших, разреженных задач, потому что линейная алгебра, требуемая для алгоритма, быстрее.
Минусы методов внутренней точки:
- Это не так интуитивно удовлетворяет, потому что вы правы, эти методы не посещают вершины. Они бродят по внутренней области, сходясь к решению в случае успеха.
- Для небольших задач симплекс, вероятно, будет быстрее. (Вы можете построить патологические случаи, как куб Кли-Минти.)