Бібліотека обмеженої оптимізації для обмежень рівності та нерівності


14

Будь-які рекомендації щодо вибору бібліотеки з обмеженою оптимізацією, що підходить для моєї функції оптимізації? Я звожу до мінімуму ai) нелінійну функцію з лінійними рівностями та обмеженнями нерівності, і ii) наявний градієнт та гессіан функції.

Якщо це допомагає, функція, яку я мінімізую, - це розбіжність Куллбека-Ліблера .

constrOptim має справу лише з обмеженнями нерівності. Квадропрог обробляє квадратику. Довіра не підтримує обмежень. Тож розбіжність KL не вписується в ці рішення.

На сторінці завдань R Cran для оптимізації є досить багато рішень . Я можу виконати оптимізацію в MATLAB за допомогою функції fmincon (), яка, здається, використовує внутрішню точку або довіру, що відбиває область. В ідеалі є бібліотека, яка добре відповідає заданій проблемі.


Чи обмеження лінійні?
кардинал

@cardinal - так - обмеження лінійні
Ram Ahluwalia

2
Отже, якщо вашими обмеженнями рівності є , принаймні обхід для цього повинен включати як і . Ні? Ax=bconstrOptimAxbAxb
кардинал

Це дуже розумно. Я вивчу це і побачу, як це працює. Ви повинні розглянути повідомлення про це як відповідь. Я буду тримати питання відкритим протягом декількох днів, щоб побачити, які інші інструменти доступні
Рам Ахлувалія

2
@cardinal хитрість не допомагає для точкового методу інтер'єру, як метод constrOptim, оскільки метод потребує відправної точки у внутрішніх місцях можливої ​​області - ні на кордоні
stackovergio

Відповіді:


14

Обидва пакети, алабама та Rsolnp, містять "[i] доповнення методу розширеного множника лагранжу для загальної нелінійної оптимізації" --- як випливає з задачі оптимізації --- та є досить надійними та надійними. Знову можна обробляти обмеження рівності та нерівності, визначені як (нелінійні) функції.

Я працював з обома пакетами. Іноді обмеження дещо легше сформулювати за допомогою Rsolnp, тоді як алабама часом буває трохи швидшим.

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


1
Просто хочу додати одну властивість обмежень нерівності в Алабамі, яку я знайшов сьогодні. Якщо ваші обмеження нерівності створюють нездійсненну область, тоді код працює без будь-яких повідомлень про попередження / помилки і приймає середнє значення меж як фіксоване значення параметра. Наприклад, якщо у вас x> 6 і x <4, то рішення забезпечить рішення з x = 5 без будь-якого попередження.
Гаурав Сінгхал

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