Обмеження за участю


16

Припустимо

minAvec(U)subject to Ui,jmax{Ui,k,Uk,j},i,j,k=1,,n

де U - симетрична n×n матриця, а vec(U) перетворює U в одновимірний вектор з n2 записами.

Частина вищевказаної програми, яка створює мені проблеми, - це max{,} . (Обмеження розв'язків на негативні симетричні матриці здається простим.)

Заздалегідь дякую за будь-яку допомогу чи рекомендації!


будь-яка причина, чому ви не можете додати обидва обмеження?
Арон Ахмадія

1
@AronAhmadia: Він не може додати обидві обмеження, оскільки це було б рівнозначно для всіх i , j , k . Я не думаю, що в цій проблемі є переформулювання LP, але це може бути переформулювання MILP, хоча це, ймовірно, робить дорогішим рішення. Ui,jmin{Ui,k,Uk,j}i,j,k
Джефф Оксберрі

@ N21: Наскільки велика ви очікуєте бути для задач , які ви хочете вирішити? n
Джефф Оксберрі

@Geoff: Дякую! Я в кінцевому рахунку сподіваюся мати велику , але зараз я найбільше стурбований отриманням попереднього рішення з n меншим, ніж, скажімо, 100, або навіть 10.нн
N21,

Дякую за уточнення @GeoffOxberry, я не додумався до цього, перш ніж публікувати.
Арон Ахмадія

Відповіді:


14

Редагувати: Давайте спробуємо це пояснення ще раз, цього разу, коли я більше прокинувся.

Існує три великі проблеми з формулюванням (в порядку вираженості):

  1. Немає очевидного переформулювання проблеми, яка, очевидно, гладка, опукла або лінійна.
  2. Це не гладко.
  3. Це не обов'язково опукло.

Немає очевидного плавного / опуклого / лінійного переформулювання

По-перше, не існує стандартного, очевидного переформулювання кожного обмеження. Пропозиція Арона відноситься до найбільш поширених хв обмеженням, в якому обмеження , як U я Jхв K { U я до , U до J } замінюється на наступних двох еквівалентних нерівностей: U я JU я K ,maxmin

Uijmink{Uik,Ukj}
U i jU k j ,
UijUik,k
Переформулювання не є ідеальним, кожне мінімальне обмеження було замінене на 2 n лінійних обмежень, але воно перетворює негладку нелінійну програму в лінійну програму, яка набирає порядку на швидкість.
UijUkj,k.
min2n

Вольфганг зазначає, що можливо (він не містить доказів) переформулювати обмежень, щоб вони були лінійними та гладкими, додаючи слабкі змінні. Для кожного максимуму обмеження в оригінальній рецептурі потрібно додати слабку змінну , це означає, що ми додаємо n 2 обмежень у цій формулюванні. Крім того, кожне максимальне обмеження замінюється на 2 n (або близько того) лінійних обмежень. Справжній вбивця полягає в тому, що негладка переміщується від обмежень до об'єктивної, тому формулювання Вольфганга все ще дає негладку нелінійну програму.maxmaxn2max2n

Не існує стандартного переформулювання обмежень у проблемі мінімізації, про яку я знаю, перевіривши свій підручник з лінійним програмуванням та здійснивши пошук літератури. Це не означає, що такого переформулювання не існує; це просто означає, що я не натрапив на нього. Якби я мав здогадуватися, я б сказав, що формулювання LP не існує.max

Негладкість

У цьому контексті негладка означає, що принаймні одна з функцій у формулюванні (мета чи обмеження) не є вдвічі безперервно диференційованою. Негладкі функції в цій формулюванні є функціями .max

Негладкість - це величезна проблема, оскільки:

  • це негайно робить вашу проблему нелінійною
  • більшість нелінійних розв'язувачів програмування беруть на себе двічі безперервно диференційовані функції

Оскільки функції навіть не один раз безперервно диференціюються, ви навіть без труднощів не можете використовувати традиційні методи спуску градієнта. Негладкі алгоритми нелінійного програмування повільніше, ніж їх плавні аналоги.max

Можлива невипуклість

Ваша проблема може бути невипуклою, оскільки у "стандартній формі" для нелінійних програм (тобто, висловлюючи всі обмеження у формі ), проблемні обмеження у вашій формулюванні єg(x)0

Uijmaxk{Uik,Ukj}0,i,j,k.

Ці функції увігнуті.

Доведення: У цьому випадку функції і max k { U i k , U k j } обидві опуклі. Сума опуклих функцій опукла, а множення опуклої функції на -1 призводить до увігнутої функції. (QED.)Uijmaxk{Uik,Ukj}

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

Варіанти вирішення проблеми

  • Постановтеся щодо можливого пошуку можливого рішення. У цьому випадку зробіть те, що сказав Арон, і замініть при U i jmin k { U i k , U k j } ,

    Uijmaxk{Uik,Ukj},i,j,k
    які потім можуть бути повторно виражені у вигляді двох окремих нерівностей, використовуючи стандартну формулювання LP. Виникаюча проблема буде обмеженням проблеми LP, яку ви хочете вирішити; воно має вирішуватися швидко відносно вашої початкової проблеми, і якщо воно має рішення, це рішення буде можливим для вашої початкової проблеми, а його цільове значення функції буде нижньою межею щодо оптимального значення об'єктивної функції вашої вихідної проблеми.
    Uijmink{Uik,Ukj},i,j,k,
  • Спробуйте свою удачу в рецептурі, як і у вирішенні пакетів для негладких програм. Я не маю великого досвіду роботи з цими видами вирішувачів. (Мій колега використовує їх у своїх дослідженнях.) Вони, ймовірно, повільні, оскільки не можуть використовувати похідну інформацію. (Я думаю, що вони використовують замість них узагальнену інформацію про градієнт або Кларк.) Також малоймовірно, що вам вдасться вирішити великі екземпляри проблеми за допомогою розв'язувача.


1
Джефф, хороший матеріал; це підходить до ключових моментів і пропонує багато конструктивного розуміння та пропозицій. Я проголосував за це. Але ти, здається, трактуєш невипуклість як щось, що є окремим від того, що, як ви сказали, "немає стандартного переформулювання максимальних обмежень у проблемі мінімізації, про яку я знаю". Але насправді перше саме тому останнє неможливо. Невипуклі обмеження не можуть бути виражені в лінійному програмуванні --- повна зупинка! Це проблема, яка не є опуклою, і її потрібно буде або переформулювати як змішану цілу задачу, або застосувати якусь іншу евристику.
Майкл Грант

@MichaelGrant: Я висловив цей аргумент у редакціях 1 і 2 понад рік тому, а потім потрапив у довгу нитку коментарів щодо мого твердження, що проблема не випукла. (Дивіться відповідь Тіма нижче.) Як я пам’ятаю, Тим на той час стверджував, що нерівність з g увігнутою не робить можливим множину невипуклою. Я не впевнений, чому, оскільки за визначенням, опукла програма повинна бути спроможна виразити так, що g ( x ) 0 для g опуклої. Я втомився сперечатися з Тімом про це; Я повинен скасувати деякі попередні зміни. g(x)0gg(x)0g
Джефф Оксберрі

1
Це правда, що невипуклі функції обмеження можуть описувати опуклі множини (насправді поняття квазісупуклості охоплює більшість цих випадків). Але факт полягає в тому, що описує невипуклий множину в ( x , y , z ) . Тож претензія Тіма не має значення для цієї конкретної проблеми. Можливо також, що перетин невипуклих множин закінчується опуклим, але це малоймовірно. xmax{y,z}(x,y,z)
Майкл Грант

1
Так, ви можете довести саме це твердження, оскільки такий набір є гіпографом , а множина, визначена гіпографом функції, опукла, якщо функція увігнута. max{y,z}
Джефф Оксберрі

3

Рішення вашого питання - це .

Нехай ТакVEC(U)і ваші обмеження є лінійними вU, будь позитивному багаторазовимтв±Uзадовольняє обмеження. ТомуminV(Avec(V))mint(Avec(tU))=-.

U=(1111).
Avec(U)Ut±UminV(Avec(V))mint(Avec(tU))=

Однозначно вирішення поставленого питання. Я здогадуюсь, що ОП буде створювати певне обмеження негативу на , і в цьому випадку оптимальне значення цільової функції може бути - . U
Джефф Оксберрі

U02tr(A^U)=A^U2A^2U2

2

Для того, щоб сформулювати обмеження fмакс{f1,f2,...,fн}, ми створюємо н бінарні змінні,bi{0,1}, 1in. Let M be the bound of variable f, then we only need to add the following constraints:

1) ffi+(1bi)M,i

2) ibi=1

Normally, set M:=maxifiminifi if we can estimate the value of fi.


1

Can't you introduce a slack variable? So to reformulate the constraint

xi<=max(ai1,ai2,...,ain)
write it as follows:
xi<=si
si>=ai1
si>=ai2
...
si>=ain
This will have an infeasible solution with respect to the original problem if you choose s=infinity. But I'm pretty sure you can show that if you add a term
cmax(simax(ai),0)
to the objective function (i.e., you want to have simax(ai) as small as possible, preferably zero) and c sufficiently large, then you'll get back a feasible solution if the original problem had feasible solutions with objective value less than infinity.

(A proof would go along the lines of showing that if si>=max(ai) and if xi=si, then the solution is infeasible; in other words, simax(ai) is a measure of infeasibility wrt to the original problem. If the problem is stable, there should be a finite improvement in objective function value for a finite violation of feasibility. If you choose c to be larger than the ratio between change in objective value and violation of feasibility, then the modified objective function would grow for problems that go into the infeasible region.)


It's a good idea. Assuming your proof goes through, the issue then becomes moving the nonlinearity and nonsmoothness from the constraints into the objective, both of which are still undesirable qualities in a formulation.
Geoff Oxberry

I'm afraid this will not work. If the aij quantities are variables, not constants, then your original constraint is not a convex set in (xi,ai1,ai2,...,ain). Your reformulated set of constraints, on the other hand, is a convex set in (xi,si,ai1,ai2,...,ain). The two sets of constraints cannot be equivalent.
Michael Grant

1

I can't find the comment button...

As Geoff pointed out, it is a concave constraint function. However, it doesn't matter if the function itself is concave or not. Concave functions under linear constraints can be convex sets ( e.g. log(x)<5 ).

If it is a convex set, you could perform gradient descent on your objective function, using something like Dykstra's_projection_algorithm to project back onto the space of constraints.


Запропонований за коментар щодо увігнутих функцій; Я повинен був би більше подумати над своїм поясненням. Проектування на можливий набір - це можливість, хоча я не впевнений, що ти можеш застосувати ці алгоритми з негладкими обмеженнями.
Джефф Оксберрі

I'm not sure if they apply to non-smooth constraints. Also note, non-convex problems are only NP-hard if they have an NP number of possible solutions. If the number of possible solutions is in P, brute force exactly solves a non-convex optimization task. Lastly, the method cannot be formed as an LP, but this has nothing to do with the concave nature of the constraint. It's because the constraint is a non-linear function that also yeilds a non-linear (convex or not) constraint space. There are many convex constraints that also can't be solved using LPs. e.g. x2+y2<5
Tim

"Nonconvex problems are only NP-hard if they have an NP number of possible solutions." NP stands for "nondeterministic polynomial". I'm completely lost about what you're talking about. Secondly, I mentioned concavity because linear functions are concave and convex; the function isn't convex. Just because the function is nonsmooth and piecewise linear does not immediately exclude the possibility that an LP reformulation exists.
Geoff Oxberry

For instance, Uijmink{Uik,Ukj} is "nonlinear" and can be reformulated as a pair of linear constraints, and thus, admits an LP reformulation. Finally, you're right, there are many constraints that can't be reformulated as linear constraints, such as smooth nonlinear constraints.
Geoff Oxberry

Sorry, had to short-hand the comment, so I used NP for non-polynomial, and P for polynonomial. The point was that non-convex optimization isn't always NP-hard. It's only NP-hard if the number of possible solutions is WORSE than polynomnial. Sorry for the confusion :) You're right about the reformulating as linear. You seemed to say "Consequently, there is no way to reformulate your program as a linear program," because of the non-convexity, I was just noting that its not related to convexity but linearity.
Tim

0

Are there more inequality constraints not being mentioned? As stated, the problem is to minimize a linear function over a cone, so the optimal value is always either or 0.

Even with the constraint U0, the problem reduces to a discrete decision problem. Think of the linear function A as corresponding to positive/negative weights of the edges of the complete graph on n vertices. If there is a graph of diameter 2 connecting all the vertices with the sum of its weights strictly negative, then the optimal value is , otherwise the optimal value is 0.

A quick sketch on how to prove this. First note that if abc, then cmax(a,b) implies b=c. So then the inequalities imply that for every triple i,j,k, exactly one of the following must be true:

  1. Uij<Ujk=Uik
  2. Uik<Ujk=Uij
  3. Ujk<Uik=Uij
  4. Uij=Ujk=Uik

So if you fix some threshold t and form a graph G(t) with an edge wherever Uij=t, then every 3 vertices must have exactly 0,2, or 3 edges connecting them. So if Uij=Ujk=t, then for every other vertex , we must have either Uj=t or Ui=Uk=t. So if the graph G(t) has any edges, it must be of diameter 2.

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