Método do ponto interior - Interior-point method

Exemplo de busca por uma solução. As linhas azuis mostram restrições, os pontos vermelhos mostram soluções iteradas.

Os métodos de ponto interior (também chamados de métodos de barreira ou IPMs ) são uma determinada classe de algoritmos que resolvem problemas de otimização convexa linear e não linear .

Um método de pontos interiores foi descoberto pelo matemático soviético II Dikin em 1967 e reinventado nos Estados Unidos em meados da década de 1980. Em 1984, Narendra Karmarkar desenvolveu um método para programação linear chamado algoritmo de Karmarkar , que roda em tempo comprovadamente polinomial e também é muito eficiente na prática. Ele permitiu soluções de problemas de programação linear que estavam além das capacidades do método simplex . Ao contrário do método simplex, ele atinge a melhor solução percorrendo o interior da região viável . O método pode ser generalizado para programação convexa com base em uma função de barreira auto-concordante usada para codificar o conjunto convexo .

Qualquer problema de otimização convexa pode ser transformado em minimizar (ou maximizar) uma função linear sobre um conjunto convexo, convertendo para a forma de epígrafe . A ideia de codificar o conjunto viável usando uma barreira e projetar métodos de barreira foi estudada por Anthony V. Yurii Nesterov , e Arkadi Nemirovski propôs uma classe especial de tais barreiras que podem ser usadas para codificar qualquer conjunto convexo. Eles garantem que o número de iterações do algoritmo é limitado por um polinômio na dimensão e precisão da solução.

O avanço de Karmarkar revitalizou o estudo de métodos de pontos interiores e problemas de barreiras, mostrando que era possível criar um algoritmo de programação linear caracterizado pela complexidade polinomial e, além disso, competitivo com o método simplex. O método elipsóide de Khachiyan já era um algoritmo de tempo polinomial; no entanto, era lento demais para ser de interesse prático.

A classe de métodos de ponto interior de seguimento de caminho primal-dual é considerada a mais bem-sucedida. O algoritmo preditor-corretor de Mehrotra fornece a base para a maioria das implementações desta classe de métodos.

Método de ponto interior duplo primário para otimização não linear

A ideia do método primal-dual é fácil de demonstrar para otimização não linear restrita . Para simplificar, considere a versão de todas as desigualdades de um problema de otimização não linear:

minimizar assunto para onde

Este problema de otimização com restrição de desigualdade é então resolvido convertendo-o em uma função objetivo irrestrita cujo mínimo esperamos encontrar de forma eficiente. Especificamente, a função de barreira logarítmica associada a (1) é

Aqui está um pequeno escalar positivo, às vezes chamado de "parâmetro de barreira". Como converge para zero, o mínimo de deve convergir para uma solução de (1).

O gradiente da função de barreira é

onde é o gradiente da função original e é o gradiente de .

Além da variável original ("primal") , introduzimos uma variável dupla inspirada no multiplicador de Lagrange

(4) às vezes é chamada de condição de "complementaridade perturbada", por sua semelhança com a "folga complementar" nas condições KKT .

Tentamos encontrar aqueles para os quais o gradiente da função de barreira é zero.

Aplicando (4) a (3), obtemos uma equação para o gradiente:

onde a matriz é o Jacobiano das restrições .

A intuição por trás de (5) é que o gradiente de deve estar no subespaço estendido pelos gradientes das restrições. A "complementaridade perturbada" com pequeno (4) pode ser entendida como a condição de que a solução deve estar próxima da fronteira , ou que a projeção do gradiente no componente de restrição normal deve ser quase zero.

Aplicando o método de Newton a (4) e (5), obtemos uma equação para atualização :

onde é a matriz Hessiana de , é uma matriz diagonal de e é uma matriz diagonal com .

Por causa de (1), (4) a condição

deve ser aplicada em cada etapa. Isso pode ser feito escolhendo apropriado :

Trajetória das iterações de x usando o método do ponto interior.

Veja também

Referências

Bibliografia