Estou lidando com um problema de otimização que tem um grande número de variáveis para otimizar over - Por exemplo, vamos chamar essas variáveis , y , e z e desejo de minimizar a função f ( x , y , z ) . O método de otimização que estou usando não é capaz de lidar com a otimização de todas as variáveis de uma só vez. Em vez disso, estou simplificando o problema, otimizando uma única variável de cada vez, mantendo as outras variáveis corrigidas.
Ou seja, eu corrijo , e z = z 0 e, em seguida, otimizamos a função apenas sobre x . Essa otimização 1D gera um valor ótimo x ∗ . Corrijo então x = x ∗ , z = z 0 e otimizo sobre y . Sei que isso não necessariamente me fornece uma solução ótima globalmente, mas deve render um mínimo local.
Gostaria de saber qual é o nome desse método e onde posso encontrar qualquer informação sobre ele. Além disso, se houver uma comunidade mais apropriada para perguntar, entre em contato. obrigado
Editar: a otimização é realizada sobre , depois y , depois z , depois x e assim por diante até a solução convergir.
fonte
Respostas:
Esta é a descida de coordenadas . Acredito que seja usado em problemas de larga escala quando outros métodos, como a descida do gradiente, podem ser muito lentos (por exemplo, http://epubs.siam.org/doi/abs/10.1137/100802001 ). Ele deveria convergir para um mínimo local, mas também exigiria mais etapas do que algo como descida de gradiente ou métodos do tipo Newton.
fonte
A abordagem que você descreveu originalmente (apenas uma iteração otimizada em cada uma das três variáveis x, y, z) não garante a convergência para a solução ideal, a menos que F (x, yz) seja variável separável em funções univariadas. Portanto, o que você descreve não é tecnicamente um "método" de otimização, mas uma "heurística" de otimização, semelhante a um método de divisão do operador ou a métodos de direção alternada implícita (ADI).
fonte