Fiquei muito surpreso quando comecei a ler algo sobre otimização não convexa em geral e vi declarações como esta:
Muitos problemas práticos de importância são não convexos e a maioria dos problemas não convexos são difíceis (se não impossíveis) de resolver exatamente em um tempo razoável. ( fonte )
ou
Em geral, é difícil para o NP encontrar um mínimo local e muitos algoritmos podem ficar presos em um ponto de sela. ( fonte )
Estou fazendo um tipo de otimização não convexa todos os dias - ou seja, relaxamento da geometria molecular. Eu nunca considerei algo complicado, lento e propenso a ficar preso. Nesse contexto, temos claramente superfícies não convexas multidimensionais (> 1000 graus de liberdade). Usamos principalmente técnicas de primeira ordem derivadas de descidas mais íngremes e têmpera dinâmica como o FIRE , que convergem em poucas centenas de etapas para um mínimo local (menor que o número de DOFs). Espero que, com a adição de ruído estocástico, ele seja robusto como o inferno. (A otimização global é uma história diferente)
De alguma forma, não consigo imaginar como deveria ser a superfície da energia potencial para tornar esses métodos de otimização presos ou lentamente convergentes. Por exemplo, um PES muito patológico (mas não devido à não-convexidade) é essa espiral , mas não é um problema tão grande. Você pode dar um exemplo ilustrativo de PES não-convexo patológico?
Portanto, não quero discutir com as citações acima. Em vez disso, sinto que estou perdendo algo aqui. Talvez o contexto.
fonte
Respostas:
O mal-entendido está no que constitui "resolver" um problema de otimização, por exemplo, . Para os matemáticos, o problema só é considerado "resolvido" quando tivermos:argminf(x)
Quando é convexo, ambos os ingredientes são facilmente obtidos. A descida do gradiente localiza uma solução candidata que faz com que o gradiente desapareça . A prova de otimalidade segue de um fato simples ensinado na MATH101 que, se é convexo e seu gradiente desaparece em , então é uma solução global.f x⋆ ∇f(x⋆)=0 f ∇f x⋆ x⋆
Quando é não-convexo, uma solução candidata ainda pode ser fácil de encontrar, mas a prova de otimização se torna extremamente difícil. Por exemplo, podemos executar uma descida de gradiente e encontrar um ponto . Mas quando é não-convexo, a condição é necessária, mas não é suficiente para otimizar globalmente. De fato, isso nem é suficiente para otimizar localmente , ou seja, não podemos garantir que seja um mínimo local com base apenas nas informações de gradiente. Uma abordagem é enumerar todos os pontos que satisfazem , e isso pode ser uma tarefa formidável mesmo em apenas uma ou duas dimensões.f ∇f(x⋆)=0 f ∇f(x)=0 x⋆ ∇f(x)=0
Quando os matemáticos dizem que a maioria dos problemas é impossível de resolver, estão realmente dizendo que é impossível construir a prova da otimização (mesmo local) . Mas, no mundo real, geralmente estamos interessados apenas em calcular uma solução "suficientemente boa", e isso pode ser encontrado de inúmeras maneiras. Para muitos problemas altamente não-convexos, nossa intuição nos diz que as soluções "suficientemente boas" são realmente ótimas em todo o mundo, mesmo que não possamos provar isso!
fonte
Um exemplo de um problema complicado de baixa dimensão pode ser:
Como você atinge um mínimo local, como pode ter certeza de que é algo tão bom quanto o mínimo global? Como você sabe se o seu resultado é uma solução ideal única, dado que é globalmente ideal? Como você pode criar um algoritmo robusto para todas as colinas e vales, para que não fique preso em algum lugar?
Um exemplo como este é onde as coisas podem ficar difíceis. Obviamente, nem todos os problemas são assim, mas alguns são. O pior é que, em um ambiente industrial, a função de custo pode levar muito tempo para calcular E ter uma superfície problemática como a acima.
Exemplo de problema real
Um exemplo que eu poderia abordar no trabalho é fazer uma otimização para um algoritmo de orientação de mísseis que poderia ser robusto em muitas condições de lançamento. Usando nosso cluster, eu poderia obter as medições de desempenho necessárias em cerca de 10 minutos para uma única condição. Agora, para julgar adequadamente a robustez, gostaríamos de ter pelo menos uma amostra de condições para julgar. Então, digamos que executamos seis condições, fazendo uma avaliação dessa função de custo levar uma hora.
A dinâmica de mísseis não lineares, dinâmica atmosférica, processos discretos de tempo, etc. resultam em uma reação bastante não-linear a mudanças no algoritmo de orientação, dificultando a solução da otimização. O fato de essa função de custo não ser convexa faz com que seja demorado avaliar um grande problema. Um exemplo como esse é o de nos esforçarmos para obter o melhor possível no tempo que nos é dado.
fonte
O problema é o dos pontos de sela, discutidos na postagem que você vinculou. Do resumo de um dos artigos vinculados :
Essencialmente, você pode ter funções nas quais possui pontos de sela indistinguíveis dos mínimos locais ao olhar para a 1ª, 2ª e 3ª derivadas. Você pode resolver isso acessando um otimizador de pedidos mais alto, mas eles mostram que financiar um mínimo local de quarta ordem é NP difícil.
Eu recomendo a leitura do artigo, pois eles também mostram vários exemplos de tais funções. Por exemplo, a função tem esse ponto em (0,0).x2y+y2
Você pode usar várias heurísticas para escapar desses pontos, o que pode funcionar para muitos (a maioria?) Exemplos do mundo real, mas não se pode provar que sempre funcione.
Na postagem do blog que você vinculou, eles também discutem as condições sob as quais você pode escapar desses pontos de sela no tempo polinomial.
fonte