Ограничения с участием


16

предполагать

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

где - симметричная матрица n × n , а v e c ( U ) преобразует U в одномерный вектор с n 2 элементами.Un×nvec(U)Un2

Часть вышеупомянутой программы, которая доставляет мне проблемы, это . (Ограничение решений для неотрицательных симметричных матриц кажется простым.)max{,}

Заранее спасибо за любую помощь или ссылки!


любая причина, почему вы не можете добавить оба ограничения?
Арон Ахмадиа

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

@ N21: Насколько велика вы ожидаете для проблем, которые вы хотите решить? n
Джефф Оксберри

@Geoff: спасибо! В конечном итоге я надеюсь, что у меня будет большое , но сейчас я больше всего заинтересован в том, чтобы получить предварительное решение с n меньше, скажем, 100 или даже 10.nn
N21

Спасибо за разъяснение @GeoffOxberry, я не продумал это до публикации.
Арон Ахмадиа

Ответы:


14

Изменить: Давайте попробуем это объяснение еще раз, на этот раз, когда я больше не сплю.

Есть три больших проблемы с формулировкой (в порядке серьезности):

  1. Нет очевидной переформулировки проблемы, которая является явно гладкой, выпуклой или линейной.
  2. Это негладко.
  3. Это не обязательно выпукло.

Нет очевидной гладкой / выпуклой / линейной переформулировки

Во-первых, нет стандартной, очевидной переформулировки каждого ограничения. Предложение Арона применимо к более общему минимальному ограничению, в котором ограничение типа U i jmin k { U i k , U k j } заменяется следующими двумя эквивалентными неравенствами: U i jU i k ,maxmin

Uijmink{Uik,Ukj}
U я JU K J ,
UijUik,k
Переформулировка не идеальна, каждое минимальное ограничение заменено 2 n линейными ограничениями, но оно преобразует негладкую нелинейную программу в линейную программу, решение которой на порядки быстрее.
UijUkj,k.
min2n

maxmaxn2max2n

max

негладкости

max

Негладкость - огромная проблема, потому что:

  • это сразу делает вашу проблему нелинейной
  • большинство решателей нелинейного программирования принимают дважды непрерывно дифференцируемые функции

max

Возможная невыпуклость

g(x)0

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

Эти функции вогнуты.

Uijmaxk{Uik,Ukj}

g

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

  • Uijmaxk{Uik,Ukj},i,j,k
    Uijmink{Uik,Ukj},i,j,k,
  • Испытайте свою удачу на своей формулировке, как это с пакетным решателем для негладких программ. У меня нет большого опыта с этими типами решателей. (Мой коллега использует их в своих исследованиях.) Они, вероятно, медленные, так как не могут использовать производную информацию. (Я думаю, что вместо этого они используют субградиент или обобщенную информацию о градиенте Кларка.) Также маловероятно, что вы сможете решать большие экземпляры задач с помощью решателя пакетов.


1
Джефф, хорошие вещи; это затрагивает ключевые моменты и предлагает много конструктивного понимания и предложений. Я проголосовал за это. Но вы, похоже, рассматриваете невыпуклость как нечто отдельное от того факта, что, как вы выразились, «в известной мне проблеме минимизации нет стандартной переформулировки максимальных ограничений». Но на самом деле, именно поэтому последнее невозможно. Невыпуклые ограничения не могут быть выражены в линейном программировании --- полная остановка! Это невыпуклая проблема, и ее придется либо переформулировать как смешанную целочисленную проблему, либо применять какую-то другую эвристическую методику.
Майкл Грант

g(x)0gg(x)0g

1
xmax{y,z}(x,y,z)

1
max{y,z}

3

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

U

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

2

fmax{f1,f2,...,fn}n bi{0,1}1inMf

ffi+(1bi)M,i

ibi=1

M:=maxifiminififi


1

xi<=max(ai1,ai2,...,ain)
xi<=si
si>=ai1
si>=ai2
...
si>=ain
cmax(simax(ai),0)
simax(ai)c

si>=max(ai)xi=sisimax(ai) для проблем, которые уходят в неосуществимый регион.)


Это хорошая идея. Предполагая, что ваше доказательство проходит, проблема становится перемещением нелинейности и негладкости из ограничений в цель, которые все еще являются нежелательными качествами в формулировке.
Джефф Оксберри

aij(xi,ai1,ai2,...,ain)(xi,si,ai1,ai2,...,ain)

1

Я не могу найти кнопку комментария ...

log(x)<5

Если это выпуклый набор, вы можете выполнить градиентный спуск к вашей целевой функции, используя что-то вроде Dykstra's_projection_algorithm, чтобы проецировать обратно в пространство ограничений.


Голосование за комментарий о вогнутых функциях; Я должен был больше думать о своем объяснении. Возможно проецирование на выполнимое множество, хотя я не уверен, что вы можете применить эти алгоритмы с негладкими ограничениями.
Джефф Оксберри

x2+y2<5

«Невыпуклые проблемы NP-сложны, только если у них есть NP-число возможных решений». NP означает «недетерминированный полином». Я полностью потерян о том, о чем ты говоришь. Во-вторых, я упомянул вогнутость, потому что линейные функции вогнутые и выпуклые; функция не выпуклая Тот факт, что функция является негладкой и кусочно-линейной, не исключает сразу возможности переформулировки LP.
Джефф Оксберри

Uijmink{Uik,Ukj}

Извините, пришлось коротко комментировать, поэтому я использовал NP для неполинома и P для полинома. Дело в том, что невыпуклая оптимизация не всегда NP-сложна. Это NP-сложно, если число возможных решений МНОГО БОЛЬШЕ, чем полиномиальное. Извините за путаницу :) Вы правы в отношении переформулировки как линейной. Вы, казалось, сказали: «Следовательно, нет способа переформулировать вашу программу как линейную программу», из-за невыпуклости, я просто заметил, что она связана не с выпуклостью, а с линейностью.
Тим

0

0

U0An0

abccmax(a,b)b=ci,j,k

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

tG(t)Uij=tUij=Ujk=tUj=tUi=Uk=tG(t)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.