Редагувати: Давайте спробуємо це пояснення ще раз, цього разу, коли я більше прокинувся.
Існує три великі проблеми з формулюванням (в порядку вираженості):
- Немає очевидного переформулювання проблеми, яка, очевидно, гладка, опукла або лінійна.
- Це не гладко.
- Це не обов'язково опукло.
Немає очевидного плавного / опуклого / лінійного переформулювання
По-перше, не існує стандартного, очевидного переформулювання кожного обмеження. Пропозиція Арона відноситься до найбільш поширених хв обмеженням, в якому обмеження , як U я J ≤ хв K { U я до , U до J } замінюється на наступних двох еквівалентних нерівностей: U я J ≤ U я K ,maxmin
Uij≤mink{Uik,Ukj}
U i j ≤ U k j ,Uij≤Uik,∀k
Переформулювання не є ідеальним, кожне
мінімальне обмеження було замінене на
2 n лінійних обмежень, але воно перетворює негладку нелінійну програму в лінійну програму, яка набирає порядку на швидкість.
Uij≤Ukj,∀k.
min2n
Вольфганг зазначає, що можливо (він не містить доказів) переформулювати обмежень, щоб вони були лінійними та гладкими, додаючи слабкі змінні. Для кожного максимуму обмеження в оригінальній рецептурі потрібно додати слабку змінну , це означає, що ми додаємо n 2 обмежень у цій формулюванні. Крім того, кожне максимальне обмеження замінюється на 2 n (або близько того) лінійних обмежень. Справжній вбивця полягає в тому, що негладка переміщується від обмежень до об'єктивної, тому формулювання Вольфганга все ще дає негладку нелінійну програму.maxmaxn2max2n
Не існує стандартного переформулювання обмежень у проблемі мінімізації, про яку я знаю, перевіривши свій підручник з лінійним програмуванням та здійснивши пошук літератури. Це не означає, що такого переформулювання не існує; це просто означає, що я не натрапив на нього. Якби я мав здогадуватися, я б сказав, що формулювання LP не існує.max
Негладкість
У цьому контексті негладка означає, що принаймні одна з функцій у формулюванні (мета чи обмеження) не є вдвічі безперервно диференційованою. Негладкі функції в цій формулюванні є функціями .max
Негладкість - це величезна проблема, оскільки:
- це негайно робить вашу проблему нелінійною
- більшість нелінійних розв'язувачів програмування беруть на себе двічі безперервно диференційовані функції
Оскільки функції навіть не один раз безперервно диференціюються, ви навіть без труднощів не можете використовувати традиційні методи спуску градієнта. Негладкі алгоритми нелінійного програмування повільніше, ніж їх плавні аналоги.max
Можлива невипуклість
Ваша проблема може бути невипуклою, оскільки у "стандартній формі" для нелінійних програм (тобто, висловлюючи всі обмеження у формі ), проблемні обмеження у вашій формулюванні єg(x)≤0
Uij−maxk{Uik,Ukj}≤0,∀i,j,k.
Ці функції увігнуті.
Доведення: У цьому випадку функції і max k { U i k , U k j } обидві опуклі. Сума опуклих функцій опукла, а множення опуклої функції на -1 призводить до увігнутої функції. (QED.)−Uijmaxk{Uik,Ukj}
Як вказує Тім, тільки те, що невипуклий, не означає, що ваша проблема насправді не випукла, але якщо ви намагаєтеся вирішити проблему оптимізації до глобальної оптимальності, ви можете лише гарантувати, що вирішувач випуклої оптимізації поверне глобальний оптимум якщо ваша проблема опукла. Якщо ви дійсно хочете глобального оптимуму, радимо вам визначити, чи є ваш здійсненний набір опуклим (чи ні). За відсутності такої інформації, ви повинні припустити, що ваша проблема може бути невипуклою, і використовувати алгоритми, які не покладаються на інформацію про опуклість. Вже тоді нерівномірність і відсутність хорошої переформулювання - це набагато більші проблеми.g
Варіанти вирішення проблеми
Постановтеся щодо можливого пошуку можливого рішення. У цьому випадку зробіть те, що сказав Арон, і замініть при U i j ≤ min k { U i k , U k j } ,
Uij≤maxk{Uik,Ukj},∀i,j,k
які потім можуть бути повторно виражені у вигляді двох окремих нерівностей, використовуючи стандартну формулювання LP. Виникаюча проблема буде обмеженням проблеми LP, яку ви хочете вирішити; воно має вирішуватися швидко відносно вашої початкової проблеми, і якщо воно має рішення, це рішення буде можливим для вашої початкової проблеми, а його цільове значення функції буде нижньою межею щодо оптимального значення об'єктивної функції вашої вихідної проблеми.Uij≤mink{Uik,Ukj},∀i,j,k,
Спробуйте свою удачу в рецептурі, як і у вирішенні пакетів для негладких програм. Я не маю великого досвіду роботи з цими видами вирішувачів. (Мій колега використовує їх у своїх дослідженнях.) Вони, ймовірно, повільні, оскільки не можуть використовувати похідну інформацію. (Я думаю, що вони використовують замість них узагальнену інформацію про градієнт або Кларк.) Також малоймовірно, що вам вдасться вирішити великі екземпляри проблеми за допомогою розв'язувача.