Виходячи з особистого досвіду, я б сказав, що симплексні методи дещо легше зрозуміти, як реалізувати, ніж методи інтер’єрних точок, засновані на особистому досвіді впровадження як первинного симплекса, так і базового методу інтер'єрної точки в MATLAB як частина прийняття лінійного класу програмування . Основні перешкоди в простому симплексі - це впевненість у тому, що ви правильно реалізуєте Першу та І фазу, а також правильно застосовуєте антициклічне правило. Основні перешкоди в реалізації методу внутрішньої точки для лінійного програмування, як правило, полягають у правильному застосуванні ітеративного методу та відповідному масштабуванні параметра бар'єру.
Ви можете знайти більш повне обговорення плюсів і мінусів кожного алгоритму в підручнику з лінійного програмування, наприклад, Введення в лінійну оптимізацію Берцімаса і Цицикліса. ( Відмова: Я дізнався лінійне програмування з цього підручника і взяв лінійне програмування на MIT від дружини Берцімаса.) Ось деякі основи:
Плюси симплексу:
- nO(n)O(n)
- Скористається геометрією задачі: відвідує вершини можливого набору і перевіряє кожну відвідану вершину на оптимальність. (У первинному симплексі для цієї перевірки можна використовувати знижену вартість.)
- Добре підходить для невеликих проблем.
Мінуси симплексу:
- nO(2n)
- Не настільки чудово для великих проблем, тому що обертові операції стають дорогими. Алгоритми різання площини або алгоритми генерації колонок із запізненням на зразок Данціг-Вулфа іноді можуть компенсувати цей недолік.
Плюси методів точок інтер’єру:
- O(n3.5L2logLloglogL)L
- Краще для великих, розріджених проблем, оскільки лінійна алгебра, необхідна для алгоритму, швидша.
Мінуси методів точок інтер’єру:
- Це не так інтуїтивно задовільно, оскільки ви праві, ці методи не відвідують вершин. Вони блукають по області інтер’єру, на шляху успіху сходячись.
- Для невеликих проблем симплекс, ймовірно, буде швидшим. (Ви можете сконструювати патологічні випадки, наприклад, куб Клі-Мінти.)