Які переваги / недоліки методів точок інтер’єру перед симплекс-методом лінійної оптимізації?


14

Як я розумію, оскільки рішення лінійної програми завжди виникає у вершині її багатогранного можливого набору (якщо рішення існує і оптимальне значення цільової функції обмежено знизу, передбачаючи проблему мінімізації), як можна здійснити пошук через інтер'єр здійсненного регіону буде кращим? Чи швидше воно сходиться? За яких обставин було б вигідніше використовувати симплексний метод над точковими методами інтер'єру? Чи одне простіше реалізувати в коді, ніж інше?


Одне з ваших тверджень невірне. Рішення проблеми опуклої оптимізації НЕ завжди відбувається на кордоні. Візьмемо, наприклад, , де оптимальне рішення відбувається при x = 0 , що знаходиться у внутрішній частині досяжної області. Крім того, поза контекстом лінійного програмування метод симплекс, як правило, відноситься до симплексного методу Нельдера-Міда, який може навіть не сходити до оптимального рішення розміром, що перевищує 1. Цей спосіб не рекомендується для опуклого програмування. Будь ласка, відредагуйте своє запитання, щоб зрозуміти та коректувати. minx[1,1]x2x=0
Джефф Оксберрі

Чи було б доречніше сказати "лінійна оптимізація" замість "опукла оптимізація"?
Павло

Так, тоді ваше твердження правильне. Дякуємо, що відредагували своє запитання.
Джефф Оксберрі

Проблема симплексного методу полягає в тому, що його неможливо узагальнити до нелінійних задач, тобто більшості проблем реального світу.

Відповіді:


17

Виходячи з особистого досвіду, я б сказав, що симплексні методи дещо легше зрозуміти, як реалізувати, ніж методи інтер’єрних точок, засновані на особистому досвіді впровадження як первинного симплекса, так і базового методу інтер'єрної точки в MATLAB як частина прийняття лінійного класу програмування . Основні перешкоди в простому симплексі - це впевненість у тому, що ви правильно реалізуєте Першу та І фазу, а також правильно застосовуєте антициклічне правило. Основні перешкоди в реалізації методу внутрішньої точки для лінійного програмування, як правило, полягають у правильному застосуванні ітеративного методу та відповідному масштабуванні параметра бар'єру.

Ви можете знайти більш повне обговорення плюсів і мінусів кожного алгоритму в підручнику з лінійного програмування, наприклад, Введення в лінійну оптимізацію Берцімаса і Цицикліса. ( Відмова: Я дізнався лінійне програмування з цього підручника і взяв лінійне програмування на MIT від дружини Берцімаса.) Ось деякі основи:

Плюси симплексу:

  • nO(n)O(n)
  • Скористається геометрією задачі: відвідує вершини можливого набору і перевіряє кожну відвідану вершину на оптимальність. (У первинному симплексі для цієї перевірки можна використовувати знижену вартість.)
  • Добре підходить для невеликих проблем.

Мінуси симплексу:

  • nO(2n)
  • Не настільки чудово для великих проблем, тому що обертові операції стають дорогими. Алгоритми різання площини або алгоритми генерації колонок із запізненням на зразок Данціг-Вулфа іноді можуть компенсувати цей недолік.

Плюси методів точок інтер’єру:

  • O(n3.5L2logLloglogL)L
  • Краще для великих, розріджених проблем, оскільки лінійна алгебра, необхідна для алгоритму, швидша.

Мінуси методів точок інтер’єру:

  • Це не так інтуїтивно задовільно, оскільки ви праві, ці методи не відвідують вершин. Вони блукають по області інтер’єру, на шляху успіху сходячись.
  • Для невеликих проблем симплекс, ймовірно, буде швидшим. (Ви можете сконструювати патологічні випадки, наприклад, куб Клі-Мінти.)

2
Гарне резюме. Клі-Мінті насправді, здається, створений для того, щоб заплутувати симплексні методи LP ...
JM

@JM Так, саме в цьому суть - це явна побудова, яка показує, що симплексні методи не є поліноміальними (хоча є варіанти, які також змушують плакати методи внутрішніх точок).
Крістіан Класон

Дякую за цей інформаційний пост. Цікаво, скільки змінних роблять проблему великою? Десятки? Сотні? Тисячі?
KjMag

Клі-Мінті Куб працює в <0,1 секунди в OpenSource решателя GLPK 4,65 симплекс. (Цінності5D в А і хзмусити багато вирішувачів погано поводитись при D = 100, але це інакше.) Чи є взагалі якісь проблеми, для яких симплексний метод працює повільно, скажімо, рідко з <1М ненулями?
denis

3

Відповідь проста. Вони обидва (симплексний та внутрішній методи точки) є зрілим полем з алгоритмічної точки зору. Вони обоє дуже добре працюють на практиці. Гарна репутація IPM (внутрішніх точкових методів) пояснюється його поліноміальною складністю в гіршому випадку. Це не так для симплекса, який має комбінаторну складність. Тим не менш, комбінаторні лінійні програми практично ніколи не трапляються на практиці. Для дуже великих масштабних проблем IP здається трохи швидшим, але це не обов'язково правило. На мою думку, ІР може бути легко зрозуміти та реалізувати, але точно, хтось інший може погодитися, і це нормально. Тепер у LP, якщо рішення унікальне, воно, безумовно, знаходиться у вершині, (і IP, і Simplex добре справляються і тут). Розчин також може бути на обличчі багатогранника або на краю, в цьому випадку, сусідня вершина є (або вершини є) також рішення (знову ж, і IP, і симплекс добре справляються). Тож вони майже однакові.


Я усвідомлюю, що приклад, який я дав, - це не лінійна програма; Якщо ви подивитесь на історію редагування, попередня версія цього запитання попросила порівняти метод симплекса та методи точок інтер'єру для проблем з опуклою оптимізацією. Я дав контрприклад, щоб виправдати внесені вами зміни та заохотити оригінальний плакат виправити своє запитання, що він і зробив.
Джефф Оксберрі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.