programação semidefinida - Semidefinite programming
Programação semidefinite ( SDP ) é um subcampo de optimização convexo em causa com a optimização de uma linear função de objectivo (uma função especificada pelo utilizador que o utilizador pretende minimizar ou maximizar a) ao longo da intersecção do cone de semidefinite positivos matrizes com um espaço afim , ou seja, um spectrahedron .
Programação semidefinida é um campo relativamente novo de otimização que é de crescente interesse por várias razões. Muitos problemas práticos em operações de pesquisa e otimização combinatória podem ser modelados ou aproximada como problemas de programação semidefinida. Em teoria de controlo automático, PDS são utilizados no contexto de desigualdades matriciais . SDPs são, na verdade um caso especial de programação cone e podem ser eficientemente resolvidos por métodos de pontos interiores . Todos os programas lineares pode ser expressa como PDS, e através de hierarquias de SDPs as soluções de problemas de otimização polinomiais pode ser aproximada. Programação semidefinida tem sido utilizado na otimizaçãode sistemas complexos. Nos últimos anos, problemas de complexidade alguns quântica consulta ter sido formulada em termos de programas semidefinite.
Motivação e definição
motivação inicial
A programação linear problema é aquele em que desejamos maximizar ou minimizar uma função objetivo linear das variáveis reais ao longo de um politopo . Na programação semidefinida, nós em vez usar vetores de valor real e estão autorizados a tomar o produto escalar de vetores; restrições de não negatividade sobre variáveis reais em LP ( programação linear ) são substituídas por restrições semidefiniteness sobre variáveis matriciais em SDP ( programação semidefinite ). Especificamente, um problema de programação semidefinido geral pode ser definida como qualquer problema de programação matemática de forma
onde a , eo são números reais e é o produto escalar de e .
formulações equivalentes
Uma matriz é dito ser semidefinido positivo se for a matriz Gramian de alguns vectores (por exemplo, se existem vectores de tal modo que para todos ). Se este for o caso, denotamos isso como . Note-se que existem várias outras definições equivalentes de ser semidefinite positivo, por exemplo, matrizes positiva semidefinida são matrizes auto-adjuntos que têm valores próprios único não-negativos.
Denote pelo espaço de todas as matrizes simétricas reais. O espaço é equipado com o produto interno (onde indica o traço )
Podemos reescrever o programa de matemática dada na seção anterior equivalentemente como
em que a entrada em é dada pela partir da secção anterior e é um simétrica matriz tendo th entrada a partir da secção anterior. Assim, as matrizes e são simétricos e os produtos internos acima são bem definida.
Note-se que se somarmos variáveis de folga de forma adequada, esta SDP pode ser convertido para uma das formas
Por conveniência, um SDP pode ser especificado em uma forma ligeiramente diferente, mas equivalente. Por exemplo, expressões envolvendo lineares não negativos escalares variáveis podem ser adicionados à especificação do programa. Este continua a ser um SDP porque cada variável pode ser incorporado na matriz como uma entrada diagonal ( para alguns ). Para garantir que , as restrições podem ser adicionadas para todos . Como outro exemplo, nota que para qualquer matriz semidefinido positiva , existe um conjunto de vectores de tal forma que o , entrada de é o produto escalar de e . Portanto, SDPs são frequentemente formuladas em termos de expressões lineares sobre produtos escalares de vetores. Dado a solução do SDP na forma padrão, os vectores podem ser recuperadas em tempo (por exemplo, usando um incompleta decomposição de Cholesky de X).
teoria da dualidade
definições
Analogamente ao de programação linear, dado um SDP geral da forma
(o problema primordial ou P-SDP), define-se a dupla programa semidefinido (D-SDP) quanto
onde para quaisquer duas matrizes e , meios .
dualidade fraco
O fraco dualidade teorema estabelece que o valor do SDP primal é pelo menos o valor da dupla SDP. Portanto, qualquer solução viável para a dupla SDP inferior-delimita o valor SDP primordial, e, inversamente, qualquer solução viável para o SDP primordial superior delimita o valor SDP dupla. Isto é porque
onde a última desigualdade é porque ambas as matrizes são semidefinite positiva, eo resultado desta função é por vezes referido como lacuna dualidade.
dualidade forte
Sob uma condição conhecida como condição de Slater , o valor das SDPs primal e dual são iguais. Isto é conhecido como forte dualidade . Ao contrário de programas lineares , no entanto, nem todos os SDP satisfaz forte dualidade; em geral, o valor da dupla SDP pode estar estritamente inferior ao valor da primitiva.
(i) Suponhamos que o problema primário (P-SDP) é delimitada abaixo e estritamente viável (ou seja, não existe tal que , ). Em seguida, há uma solução óptima para (D-SDP) e
(ii) Suponhamos que o problema duplo (D-SDP) é delimitada por cima e estritamente viável (ou seja, para alguns ). Em seguida, há uma solução óptima para (P-SDP) e a igualdade a partir de (i) se mantém.
Exemplos
Exemplo 1
Considere três variáveis aleatórias , e . Por definição, os seus coeficientes de correlação são válidos se e somente se
no caso em que esta matriz é chamada a matriz de correlação . Suponha que nós sabemos de algum conhecimento prévio (resultados empíricos de um experimento, por exemplo) que e . O problema de determinar os valores menor e maior que pode tomar é dada por:
- minimizar / maximizar
- sujeito a
Nós estabelecemos para obter a resposta. Isto pode ser formulado por um SDP. Nós lidar com as restrições de desigualdade aumentando a matriz variável e introduzindo variáveis de folga , por exemplo
Resolver este SDP dá os valores mínimos e máximos de como e respectivamente.
exemplo 2
Considere o problema
- minimizar
- sujeito a
onde assumimos que sempre .
Apresentando uma variável auxiliar o problema pode ser reformulada:
- minimizar
- sujeito a
Nesta formulação, o objetivo é uma função linear das variáveis .
A primeira restrição pode ser escrito como
em que a matriz é a matriz quadrada com valores na diagonal para igualar os elementos do vector .
A segunda restrição pode ser escrito como
Definindo como se segue
Nós podemos usar a teoria dos complementos de Schur para ver que
(Boyd e Vandenberghe, 1996)
O programa semidefinite associado a este problema é
- minimizar
- sujeito a
Exemplo 3 (algoritmo de aproximação Goemans-Williamson MAX CUT)
Programas semidefinite são ferramentas importantes para o desenvolvimento de algoritmos de aproximação para problemas de maximização NP-difíceis. O primeiro algoritmo de aproximação com base em uma SDP é devido a Michel Goemans e David P. Williamson (JACM, 1995). Eles estudaram o problema CUT MAX : Dado um gráfico G = ( V , E ), a saída de uma partição dos vértices V , de modo a maximizar o número de extremidades que atravessam de um lado para o outro. Este problema pode ser expressa como um programa quadrática inteiro :
- Maximize de tal modo que cada .
A menos que P = NP , não podemos resolver este problema de maximização de forma eficiente. No entanto, Goemans e Williamson observou um procedimento geral de três etapas para atacar esse tipo de problema:
- Relaxe o programa quadrática inteiro em uma SDP.
- Resolver o SDP (para dentro de uma arbitrariamente pequeno erro aditivo ).
- Rodada a solução SDP para obter uma solução aproximada para o programa quadrática originais inteiro.
Para MAX CUT, o relaxamento mais natural é
- de tal modo que , quando a maximização é sobre vectores em vez de escalares inteiros.
Este é um SDP, porque a função de objectivo e constrangimentos são funções lineares do vetor produtos internos. Resolvendo o SDP dá um conjunto de vetores unitários em ; desde os vetores não são obrigados a ser colineares, o valor deste programa relaxado só pode ser superior ao valor do programa inteiro quadrática originais. Finalmente, um procedimento de arredondamento é necessária para obter uma partição. Goemans e Williamson simplesmente escolher um hiperplana uniformemente aleatória através da origem e dividir os vértices de acordo com qual o lado do hiperplana os vectores correspondentes mentir. Programas de análise directa que este processo atinge um esperado proporção aproximação (garantia de execução) de 0,87856 - ε. (O valor esperado do corte é a soma sobre bordos da probabilidade de que a borda é cortada, que é proporcional ao ângulo entre os vectores nos pontos de extremidade do bordo longo . Comparando essa probabilidade de , na expectativa da razão é sempre a menos 0,87856.) Supondo que a conjectura originais jogos , pode ser mostrado que esta relação é essencialmente aproximação óptima.
Uma vez que o artigo original de Goemans e Williamson, SDPs foram aplicadas para desenvolver inúmeros algoritmos de aproximação. Recentemente, Prasad Raghavendra desenvolveu um quadro geral de problema da satisfação de restrições com base na conjectura únicos jogos .
algoritmos
Existem vários tipos de algoritmos para a resolução SDPs. Estes algoritmos de saída o valor do SDP-se a um erro aditivo no tempo que é polinomial no tamanho descrição do programa e .
métodos de pontos interiores
A maioria dos códigos são baseados em métodos de pontos interiores (PCSD, MOSEK , SeDuMi, SDPT3, DSDP, SDPA). Robusto e eficiente para problemas SDP lineares gerais. Restringida pelo fato de que os algoritmos são métodos de segunda ordem e necessidade de armazenar e fatorar uma matriz grande (e muitas vezes densa).
métodos de primeira ordem
Primeira ordem métodos para cónica optimização computação evitar, armazenamento e factorizing uma grande matriz de Hesse e escala para os problemas muito maiores do que os métodos de pontos interiores, em algum custo na precisão. Um método de primeira ordem é implementado na separação do cone Solver (SCS). Outro método de primeira ordem é o método de direcção alternada de multiplicadores (ADMM). Este método requer, em cada passo de projecção sobre o cone de matrizes semidefinite.
método Bundle
O código ConicBundle formula o problema SDP como uma optimização nonsmooth problema e resolve-o pelo método espectral Pacote de optimização nonsmooth. Esta abordagem é muito eficiente para uma classe especial de problemas SDP lineares.
De outros
Algoritmos baseados no método Aumentada de Lagrange (PENSDP) possuem um comportamento semelhante para os métodos de pontos interiores e pode ser especializado para alguns problemas muito grande escala. Outros algoritmos usar informação de baixo grau e reformulação do SDP como uma programação não-linear problema (SDPLR).
Formulários
Semidefinite programação tem sido aplicado para encontrar soluções aproximadas para os problemas de optimização combinatória, tais como a solução do corte max problema com um rácio de aproximação de 0,87856. PDS também são utilizadas na geometria para determinar gráficos Tensegrity, e surgem na teoria de controlo como IBLs .
Referências
- Lieven Vandenberghe, Stephen Boyd, "Programação semidefinite", SIAM avaliação 38, Março de 1996, pp. 49-95. pdf
- Monique Laurent, Franz Rendl, "Programação semidefinite e Programação Inteira", Relatório PNA-R0210, CWI, Amsterdam, de Abril de 2002. otimização-online
- E. de Klerk, "aspectos da programação semidefinida: Interior Ponto Algoritmos e aplicações seleccionadas", Kluwer Academic Publishers, março de 2002, ISBN 1-4020-0547-4 .
- Robert M. Freund, "Introdução à programação semidefinida (SDP), SDP-Introdução
links externos
- Links para apresentações e eventos no campo
- Notas de aula de László Lovász sobre programação semidefinida