Изменить: Давайте попробуем это объяснение еще раз, на этот раз, когда я больше не сплю.
Есть три больших проблемы с формулировкой (в порядке серьезности):
- Нет очевидной переформулировки проблемы, которая является явно гладкой, выпуклой или линейной.
- Это негладко.
- Это не обязательно выпукло.
Нет очевидной гладкой / выпуклой / линейной переформулировки
Во-первых, нет стандартной, очевидной переформулировки каждого ограничения. Предложение Арона применимо к более общему минимальному ограничению, в котором ограничение типа U i j ≤ min k { U i k , U k j } заменяется следующими двумя эквивалентными неравенствами: U i j ≤ U i k ,maxmin
Uij≤mink{Uik,Ukj}
U я J ≤ U K J ,Uij≤Uik,∀k
Переформулировка не идеальна, каждое
минимальное ограничение заменено
2 n линейными ограничениями, но оно преобразует негладкую нелинейную программу в линейную программу, решение которой на порядки быстрее.
Uij≤Ukj,∀k.
min2n
maxmaxn2max2n
max
негладкости
max
Негладкость - огромная проблема, потому что:
- это сразу делает вашу проблему нелинейной
- большинство решателей нелинейного программирования принимают дважды непрерывно дифференцируемые функции
max
Возможная невыпуклость
g(x)≤0
Uij−maxk{Uik,Ukj}≤0,∀i,j,k.
Эти функции вогнуты.
−Uijmaxk{Uik,Ukj}
g
Варианты решения проблемы
Uij≤maxk{Uik,Ukj},∀i,j,k
Uij≤mink{Uik,Ukj},∀i,j,k,
Испытайте свою удачу на своей формулировке, как это с пакетным решателем для негладких программ. У меня нет большого опыта с этими типами решателей. (Мой коллега использует их в своих исследованиях.) Они, вероятно, медленные, так как не могут использовать производную информацию. (Я думаю, что вместо этого они используют субградиент или обобщенную информацию о градиенте Кларка.) Также маловероятно, что вы сможете решать большие экземпляры задач с помощью решателя пакетов.