Edit: Vamos tentar esta explicação novamente, desta vez quando estou mais acordado.
Há três grandes problemas com a formulação (em ordem de gravidade):
- Não há reformulação óbvia do problema que seja obviamente suave, convexa ou linear.
- Não é bom.
- Não é necessariamente convexo.
Nenhuma reformulação suave / convexa / linear óbvia
Primeiro, não existe uma reformulação padrão e óbvia de cada restrição . A sugestão de Aron se aplica à restrição min mais comum , na qual uma restrição como U i j ≤ min k { U i k , U k j } é substituída pelas duas desigualdades equivalentes a seguir: U i j ≤ U i k ,maxmin
Uij≤mink{Uik,Ukj}
L i j ≤ L k j ,Uij≤Uik,∀k
A reformulação não é ideal, cadarestrição
mínima foi substituída por
2 n restrições lineares, mas converte um programa não-linear não suave em um programa linear, cuja ordem de magnitude é mais rápida de resolver.
Uij≤Ukj,∀k.
min2n
Wolfgang ressalta que pode ser possível (ele não inclui uma prova) reformular as restrições para que elas sejam lineares e suaves, adicionando variáveis de folga. Uma variável de folga precisa ser adicionada para cada restrição máxima na formulação original, o que significa que estamos adicionando n 2 restrições nessa reformulação. Além disso, toda restrição máxima é substituída por 2 n (mais ou menos) restrições lineares. O verdadeiro assassino é que a não suavidade é movida das restrições para o objetivo, de modo que a formulação de Wolfgang ainda produz um programa não linear não suave.maxmaxn2max2n
Não há uma reformulação padrão das restrições em um problema de minimização que eu conheço, depois de verificar meu livro de programação linear e fazer uma pesquisa na literatura. Isso não significa que essa reformulação não exista; isso apenas significa que não me deparei com isso. Se eu tivesse que adivinhar, diria que não existe uma formulação de LP.max
Não suavidade
Nesse contexto, não suavidade significa que pelo menos uma das funções da formulação (o objetivo ou as restrições) não é duas vezes continuamente diferenciável. As funções não suaves nesta formulação são as funções .max
A não lisura é um grande problema porque:
- imediatamente torna seu problema não linear
- a maioria dos solucionadores de programação não-linear assume duas funções continuamente diferenciáveis
Como as funções não são nem uma vez continuamente diferenciáveis, você não pode nem usar os métodos tradicionais de descida de gradiente sem dificuldade. Os algoritmos de programação não linear não suaves são mais lentos do que seus equivalentes suaves.max
Possível não convexidade
Seu problema pode ser não-convexo, porque na "forma padrão" para programas não lineares (ou seja, expressando todas as restrições na forma ), as restrições problemáticas em sua formulação sãog ( x )≤ 0
vocêeu j- maxk{ Ueu k, Uk j} ≤ 0 ,∀ i , j , k .
Essas funções são côncavas.
Prova: Nesse caso, as funções e max k { U i k , U k j } são ambas convexas. A soma das funções convexas é convexa, e multiplicar uma função convexa por -1 resulta em uma função côncava. (QED.)- Ueu jmaxk{ Ueu k, Uk j}
Como Tim ressalta, apenas porque é não-convexo não significa que seu problema seja realmente não-convexo, mas se você estiver tentando resolver um problema de otimização para otimizar globalmente, poderá garantir apenas que um solucionador de otimização convexo retornará um ótimo global se o seu problema for convexo. Se você realmente deseja um ótimo global, caberia a você determinar se seu conjunto viável é convexo (ou não). Na ausência de tais informações, você deve assumir que seu problema pode não ser convexo e usar algoritmos que não dependem de informações de convexidade. Mesmo assim, a não suavidade e a falta de uma boa reformulação são questões muito maiores.g
Opções para resolver o problema
Aceite possivelmente encontrar uma solução viável. Nesse caso, faça o que Aron disse e substitua com U i j ≤ min k { U i k , U k j } ,
vocêeu j≤ maxk{ Ueu k, Uk j} ,∀i,j,k
que podem ser reexpressos como duas desigualdades separadas usando uma reformulação padrão do LP. O problema resultante será uma restrição de LP do problema que você deseja resolver; ela deve ser resolvida rapidamente em relação ao seu problema original e, se houver uma solução, essa solução será viável para o seu problema original e seu valor de função objetivo será um limite inferior ao valor ideal de função objetivo de seu problema original.Uij≤mink{Uik,Ukj},∀i,j,k,
Tente sua sorte em sua formulação, como é o caso de um solucionador de pacotes para programas não suaves. Não tenho muita experiência com esses tipos de solucionadores. (Um colega meu os usa em sua pesquisa.) Provavelmente são lentos, pois não podem usar informações derivadas. (Eu acho que eles usam informações de gradiente generalizadas do subgradiente ou de Clarke.) Também é improvável que você consiga resolver grandes instâncias de problemas com um solucionador de pacotes.