Biblioteca de otimização restrita para restrições de igualdade e desigualdade

14

Alguma recomendação para a escolha de uma biblioteca de otimização restrita adequada para a minha função de otimização? Estou minimizando ai) a função não linear com restrições lineares de igualdade e desigualdade e ii) tenho disponível o gradiente e o hessiano da função.

Se ajudar, a função que estou minimizando é a divergência Kullback-Liebler .

O constrOptim lida apenas com restrições de desigualdade. Quadprog lida com quadráticos. A confiança não suporta restrições. Portanto, a divergência KL não se encaixa nessas soluções.

Existem algumas soluções na página Tarefa do R Cran para otimização . Sou capaz de executar a otimização no MATLAB usando a função fmincon () que parece usar um ponto interno ou um reflexo de região de confiança. Idealmente, existe uma biblioteca que é adequada ao problema definido.

Ram Ahluwalia
fonte
As restrições são lineares?
cardeal
@cardinal - sim - as restrições são lineares
Ram Ahluwalia
2
UMAx=bconstrOptimUMAxbUMAxb
Isso é muito inteligente. Vou explorar isso e ver como ele funciona. Você deve postar isso como uma resposta. Vou manter a questão em aberto para um par de dias para ver o que estão disponíveis outras ferramentas
Ram Ahluwalia
1
truque @cardinal não ajuda para o método de pontos interiores, como a de constrOptim, já que a necessidade método um ponto de partida para o interior do -não região factível na fronteira
stackovergio

Respostas:

14

Ambos os pacotes, alabama e Rsolnp, contêm "[i] implementações do método multiplicador de lagrange aumentado para otimização não-linear geral" --- como diz a visão da tarefa de otimização --- e são bastante confiáveis ​​e robustas. O pode lidar com restrições de igualdade e desigualdade definidas como funções (não lineares) novamente.

Eu trabalhei com os dois pacotes. Às vezes, as restrições são um pouco mais fáceis de formular com o Rsolnp, enquanto o Alabama parece ser um pouco mais rápido às vezes.

Há também o pacote Rdonlp2, que depende de uma biblioteca de software conhecida externa e da comunidade de otimização. Infelizmente, seu status de licença é um pouco incerto no momento.

Hans W.
fonte
1
Só quero adicionar uma propriedade das restrições de desigualdade do Alabama que encontrei hoje. Se suas restrições de desigualdade criarem uma região inviável, o código será executado sem nenhuma mensagem de aviso / erro e utilizará o valor médio dos limites como valor fixo do parâmetro. Por exemplo, se você tiver x> 6 e x <4, a solução fornecerá uma solução com x = 5 sem nenhum aviso.
Gaurav Singhal #
Parece que esta resposta ainda é visitada e lida. Portanto, gostaria de acrescentar que existe um novo pacote NlcOptim (desde 2015). Resolve problemas de otimização com funções de objetivo e restrição não lineares, onde restrições de igualdade e desigualdade não lineares são permitidas. Eu o uso regularmente.
Hans W.