Otimização convexa - Convex optimization

Otimização convexa é um subcampo da otimização matemática que estuda o problema de minimizar funções convexas sobre conjuntos convexos . Muitas classes de problemas de otimização convexa admitem algoritmos de tempo polinomial, enquanto a otimização matemática é geralmente NP-difícil .

A otimização convexa tem aplicações em uma ampla gama de disciplinas, como sistemas de controle automático , estimativa e processamento de sinais , comunicações e redes, projeto de circuitos eletrônicos , análise e modelagem de dados, finanças , estatísticas ( projeto experimental ideal ) e otimização estrutural , onde o conceito de aproximação tem se mostrado eficiente. Com os avanços recentes em algoritmos de computação e otimização , a programação convexa é quase tão direta quanto a programação linear .

Definição

Um problema de otimização convexa é um problema de otimização em que a função objetivo é uma função convexa e o conjunto viável é um conjunto convexo . Uma função de mapeamento de alguns subconjuntos de dentro é convexa se o seu domínio é convexa e para todos e todos no seu domínio, a seguinte condição: . Um conjunto S é convexo se, para todos os membros e todos , tivermos isso .

Concretamente, um problema de otimização convexa é o problema de encontrar algum consecução

,

onde a função objetivo é convexa, como é o conjunto viável . Se tal ponto existe, ele é referido como um ponto ideal ou solução ; o conjunto de todos os pontos ótimos é chamado de conjunto ótimo . Se for ilimitado abaixo ou se o mínimo não for atingido, o problema de otimização é considerado ilimitado . Caso contrário, se for o conjunto vazio, o problema é considerado inviável .

Forma padrão

Um problema de otimização convexa está na forma padrão se for escrito como

onde é a variável de optimização, a função é convexa, , , são convexos, e , , são afim . Esta notação descreve o problema de encontrar que minimiza entre todos satisfazendo , e , . A função é a função objetivo do problema, e as funções e são as funções de restrição.

O conjunto viável do problema de otimização consiste em todos os pontos que satisfazem as restrições. Este conjunto é convexo porque é convexo, os conjuntos de subnível de funções convexas são convexos, os conjuntos afins são convexos e a interseção de conjuntos convexos é convexa.

Uma solução para um problema de otimização convexa é atingir qualquer ponto . Em geral, um problema de otimização convexa pode ter zero, uma ou várias soluções.

Muitos problemas de otimização podem ser formulados de forma equivalente neste formulário padrão. Por exemplo, o problema de maximizar uma função côncava pode ser reformulado de forma equivalente ao problema de minimizar a função convexa . O problema de maximizar uma função côncava sobre um conjunto convexo é comumente chamado de problema de otimização convexa.

Propriedades

A seguir estão propriedades úteis de problemas de otimização convexa:

  • todo mínimo local é um mínimo global ;
  • o conjunto ótimo é convexo;
  • se a função objetivo for estritamente convexa, o problema terá no máximo um ponto ótimo.

Esses resultados são usados ​​pela teoria da minimização convexa junto com noções geométricas da análise funcional (em espaços de Hilbert), como o teorema da projeção de Hilbert , o teorema do hiperplano de separação e o lema de Farkas .

Formulários

Ben-Hain e Elishakoff (1990), Elishakoff et al. (1994) aplicou a análise convexa para modelar a incerteza .

As seguintes classes de problemas são todos problemas de otimização convexa ou podem ser reduzidas a problemas de otimização convexa por meio de transformações simples:

Uma hierarquia de problemas de otimização convexa. (LP: programa linear, QP: programa quadrático, programa de cone de segunda ordem SOCP, SDP: programa semidefinido, CP: programa de cone.)

A otimização convexa tem aplicações práticas para o seguinte.

Multiplicadores de Lagrange

Considere um problema de minimização convexa dado na forma padrão por uma função de custo e restrições de desigualdade para . Então o domínio é:

A função Lagrangiana para o problema é

Para cada ponto em que minimiza mais , existem números reais chamados multiplicadores de Lagrange , que satisfazem estas condições simultaneamente:

  1. minimiza sobre tudo
  2. com pelo menos um
  3. (folga complementar).

Se existe um "ponto estritamente viável", ou seja, um ponto que satisfaça

então a declaração acima pode ser reforçada para exigir isso .

Por outro lado, se algum em satisfaz (1) - (3) para escalares com, então certamente minimizará over .

Algoritmos

A otimização convexa irrestrita pode ser facilmente resolvida com a descida gradiente (um caso especial de descida mais íngreme ) ou o método de Newton , combinado com a busca em linha para um tamanho de passo apropriado; pode-se provar matematicamente que estes convergem rapidamente, especialmente o último método. A otimização convexa com restrições de igualdade linear também pode ser resolvida usando técnicas de matriz KKT se a função objetivo for uma função quadrática (que generaliza para uma variação do método de Newton, que funciona mesmo se o ponto de inicialização não satisfaz as restrições), mas também pode geralmente resolvido eliminando as restrições de igualdade com álgebra linear ou resolvendo o problema dual. Finalmente, a otimização convexa com restrições de igualdade linear e restrições de desigualdade convexa pode ser resolvida aplicando uma técnica de otimização convexa irrestrita à função objetivo mais os termos de barreira logarítmica . (Quando o ponto de partida não é viável - isto é, satisfazendo as restrições - isso é precedido pelos chamados métodos da fase I , que localizam um ponto viável ou mostram que não existe. Os métodos da Fase I geralmente consistem em reduzir a pesquisa em questão a outro problema de otimização convexa.)

Problemas de otimização convexa também podem ser resolvidos pelos seguintes métodos contemporâneos:

Os métodos de subgradiente podem ser implementados de forma simples e, portanto, são amplamente usados. Os métodos de subgradiente duplo são métodos de subgradiente aplicados a um problema duplo . O método de deriva mais penalidade é semelhante ao método de subgradiente duplo, mas leva uma média de tempo das variáveis ​​primárias.

Implementações

Otimização convexa e algoritmos relacionados foram implementados nos seguintes programas de software:

Programa Língua Descrição FOSS ? Ref
CVX MATLAB Interfaces com solucionadores SeDuMi e SDPT3; projetado para expressar apenas problemas de otimização convexa. sim
CVXMOD Pitão Interface com o solver CVXOPT. sim
CVXPY Pitão
CVXR R sim
YALMIP MATLAB Interfaces com os solucionadores CPLEX, GUROBI, MOSEK, SDPT3, SEDUMI, CSDP, SDPA, PENNON; também suporta otimização inteira e não linear, e alguma otimização não convexa. Pode realizar otimização robusta com incerteza nas restrições LP / SOCP / SDP. sim
Laboratório LMI MATLAB Expressa e resolve problemas de programação semidefinida (chamados de "desigualdades matriciais lineares") Não
Tradutor LMIlab Transforma problemas de laboratório de LMI em problemas de SDP. sim
xLMI MATLAB Semelhante ao laboratório LMI, mas usa o solucionador SeDuMi. sim
AIMMS Pode fazer otimização robusta em programação linear (com MOSEK para resolver a programação de cone de segunda ordem) e programação linear inteira mista . Pacote de modelagem para LP + SDP e versões robustas. Não
ROMA Sistema de modelagem para otimização robusta. Suporta otimização distribuída robusta e conjuntos de incertezas . sim
GLOPTIPOLY MATLAB sim
SOSTOOLS Sistema de modelagem para otimização polinomial . Usa SDPT3 e SeDuMi. Requer caixa de ferramentas de computação simbólica. sim
SparsePOP Sistema de modelagem para otimização polinomial. Usa os solucionadores SDPA ou SeDuMi. sim
CPLEX Suporta métodos primal-duais para LP + SOCP. Pode resolver LP, QP, SOCP e problemas de programação linear inteira mista. Não
CSDP C Suporta métodos primal-duais para LP + SDP. Interfaces disponíveis para MATLAB, R e Python. Versão paralela disponível. Solucionador SDP. sim
CVXOPT Pitão Suporta métodos primal-duais para LP + SOCP + SDP. Usa escala de Nesterov-Todd. Interfaces para MOSEK e DSDP. sim
MOSEK Suporta métodos primal-duais para LP + SOCP. Não
SeDuMi MATLAB, MEX Resolve LP + SOCP + SDP. Suporta métodos primal-duais para LP + SOCP + SDP. sim
SDPA C ++ Resolve LP + SDP. Suporta métodos primal-duais para LP + SDP. Versões paralelizadas e de precisão estendida estão disponíveis. sim
SDPT3 MATLAB, MEX Resolve LP + SOCP + SDP. Suporta métodos primal-duais para LP + SOCP + SDP. sim
ConicBundle Suporta códigos de uso geral para LP + SOCP + SDP. Usa um método de pacote. Suporte especial para restrições SDP e SOCP. sim
DSDP Suporta códigos de uso geral para LP + SDP. Usa um método de ponto interno duplo. sim
LOQO Oferece suporte a códigos de uso geral para SOCP, que trata como um problema de programação não linear. Não
PENNON Suporta códigos de uso geral. Usa um método Lagrangiano aumentado, especialmente para problemas com restrições SDP. Não
SDPLR Suporta códigos de uso geral. Usa fatoração de baixa classificação com um método Lagrangiano aumentado. sim
GAMS Sistema de modelagem para problemas de programação linear, não linear, linear / não linear inteiro misto e cone de segunda ordem. Não
Gloptipoly3 Sistema de modelagem para otimização polinomial. sim
Serviços de Otimização Padrão XML para problemas e soluções de otimização de codificação.

Extensões

Extensões de otimização convexa incluem a otimização de funções biconvexas , pseudo-convexas e quase -convexas . Extensões da teoria da análise convexa e métodos iterativos para resolver aproximadamente problemas de minimização não convexa ocorrem no campo da convexidade generalizada , também conhecida como análise convexa abstrata.

Veja também

Notas

  1. ^ a b Nesterov & Nemirovskii 1994
  2. ^ Murty, Katta; Kabadi, Santosh (1987). "Alguns problemas NP-completos em programação quadrática e não linear". Programação matemática . 39 (2): 117–129. doi : 10.1007 / BF02592948 . hdl : 2027,42 / 6740 . S2CID 30500771 .  
  3. ^ Sahni, S. "Computationally related problems," in SIAM Journal on Computing, 3, 262--279, 1974.
  4. ^ A programação quadrática com um autovalor negativo é NP-difícil , Panos M. Pardalos e Stephen A. Vavasis em Journal of Global Optimization , Volume 1, Número 1, 1991, pág.15-22.
  5. ^ Boyd & Vandenberghe 2004 , p. 17
  6. ^ Chritensen / Klarbring, cap. 4
  7. ^ Boyd & Vandenberghe 2004
  8. ^ Schmit, LA; Fleury, C. 1980: Síntese estrutural combinando conceitos de aproximação e métodos duais . J. Amer. Inst. Aeronauta. Astronauta 18, 1252-1260
  9. ^ Boyd & Vandenberghe 2004 , p. 8
  10. ^ Hiriart-Urruty, Jean-Baptiste; Lemaréchal, Claude (1996). Análise convexa e algoritmos de minimização: fundamentos . p. 291. ISBN 9783540568506.
  11. ^ Ben-Tal, Aharon; Nemirovskiĭ, Arkadiĭ Semenovich (2001). Aulas sobre otimização convexa moderna: análises, algoritmos e aplicações de engenharia . pp. 335-336. ISBN 9780898714913.
  12. ^ a b c d Boyd & Vandenberghe 2004 , chpt. 4
  13. ^ Boyd & Vandenberghe 2004 , cap. 2
  14. ^ Rockafellar, R. Tyrrell (1993). "Multiplicadores de Lagrange e otimização" (PDF) . Revisão do SIAM . 35 (2): 183–238. CiteSeerX  10.1.1.161.7209 . doi : 10.1137 / 1035044 .
  15. ^ Ben Haim Y. e Elishakoff I., Modelos convexos de incerteza em mecânica aplicada, Elsevier Science Publishers, Amsterdã, 1990
  16. ^ I. Elishakoff, I. Lin YK e Zhu LP, Probabilistic and Convex Modeling of Acoustically Excited Structures, Elsevier Science Publishers, Amsterdam, 1994
  17. ^ Agrawal, Akshay; Verschueren, Robin; Diamond, Steven; Boyd, Stephen (2018). "Um sistema de reescrita para problemas de otimização convexa" (PDF) . Controle e decisão . 5 (1): 42–60. arXiv : 1709.04494 . doi : 10.1080 / 23307706.2017.1397554 . S2CID 67856259 .  
  18. ^ a b c d e Boyd, Stephen; Diamond, Stephen; Zhang, Junzi; Agrawal, Akshay. "Aplicativos de otimização convexa" (PDF) . Recuperado em 12 de abril de 2021 .
  19. ^ a b c Malick, Jérôme (2011-09-28). "Otimização convexa: aplicações, formulações, relaxamentos" (PDF) . Recuperado em 12 de abril de 2021 .
  20. ^ a b c d Boyd, Stephen; Vandenberghe, Lieven (2004). Otimização convexa (PDF) . Cambridge University Press . ISBN 978-0-521-83378-3. Recuperado em 12 de abril de 2021 .
  21. ^ Para métodos de minimização convexa, consulte os volumes de Hiriart-Urruty e Lemaréchal (pacote) e os livros de Ruszczyński , Bertsekas e Boyd e Vandenberghe (ponto interior).
  22. ^ Nesterov, Yurii; Arkadii, Nemirovskii (1995). Algoritmos Polinomiais de Ponto Interior em Programação Convexa . Society for Industrial and Applied Mathematics. ISBN 978-0898715156.
  23. ^ Peng, Jiming; Roos, Cornelis; Terlaky, Tamás (2002). "Funções auto-regulares e novas direções de pesquisa para otimização linear e semidefinida". Programação matemática . 93 (1): 129–171. doi : 10.1007 / s101070200296 . ISSN  0025-5610 . S2CID  28882966 .
  24. ^ Bertsekas
  25. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z Borchers, Brian. "Uma visão geral do software para otimização convexa" (PDF) . Arquivado do original (PDF) em 18/09/2017 . Recuperado em 12 de abril de 2021 .
  26. ^ "Bem-vindo à documentação CVXPY 1.1 - CVXPY 1.1.11" . www.cvxpy.org . Recuperado em 2021-04-12 .
  27. ^ "Otimização Convexa Disciplinada - CVXR" . www.cvxgrp.org . Recuperado em 2021-06-17 .

Referências

  • Ruszczyński, Andrzej (2006). Otimização não linear . Princeton University Press.
  • Schmit, LA; Fleury, C. 1980: Síntese estrutural pela combinação de conceitos de aproximação e métodos duais . J. Amer. Inst. Aeronauta. Astronauta 18, 1252-1260

links externos