Presumo que você esteja falando de minimização irrestrita. Sua pergunta deve especificar se você está considerando uma estrutura de problemas específica. Caso contrário, a resposta é não.
Primeiro eu deveria dissipar um mito. O método clássico de descida com gradiente (também chamado de método de descida mais íngreme ) nem garante que encontre um minimizador local. Para quando encontra um ponto crítico de primeira ordem, ou seja, onde o gradiente desaparece. Dependendo da função específica que está sendo minimizada e do ponto de partida, você pode muito bem acabar em um ponto de sela ou mesmo em um maximizador global!
f(x,y)=x2−y2(x0,y0):=(1,0)−∇f(1,0)=(−2,0)(0,0)f(x,y)=x2−10−16y2(0,0)∇2f(x∗,y∗)−10−16+10−16
f(x)=⎧⎩⎨1cos(x)−1if x≤0if 0<x<πif x≥π.
x0=−2
Agora praticamente todos os métodos de otimização baseados em gradiente sofrem com isso por design. Sua pergunta é realmente sobre otimização global . Novamente, a resposta é não, não há receitas gerais para modificar um método, a fim de garantir que um minimizador global seja identificado. Apenas pergunte a si mesmo: se o algoritmo retorna um valor e diz que é um minimizador global, como você verificaria se é verdade?
Existem classes de métodos na otimização global. Alguns introduzem a randomização. Alguns usam estratégias multi-start. Alguns exploram a estrutura do problema, mas são para casos especiais. Pegue um livro sobre otimização global. Você vai se divertir.