Pós-graduação → Personalização → Programação não linear ↓
Programação quadrática
A Programação Quadrática (QP) é um tipo especial de problema de otimização matemática. É um tópico importante no campo da otimização, amplamente utilizado em muitas outras aplicações práticas, como finanças, aprendizado de máquina e sistemas de controle. O objetivo deste guia é explicar os conceitos, a matemática e as aplicações da Programação Quadrática em termos simples.
O que é programação quadrática?
A programação quadrática lida com a otimização (minimização ou maximização) de uma função objetivo quadrática sujeita a restrições lineares. Vamos detalhar:
- A função objetivo quadrática é uma função matemática onde o termo com a maior potência é o quadrado. Em forma geral, é escrita como:
f(x) = 0.5 * x t qx + c t x,
ondeQ
é uma matriz simétricanxn
,c
é um vetor den
números reais, ex
é um vetor de variáveis. - Restrições lineares são restrições que limitam os valores que uma variável pode assumir. Sua forma geral é:
a ≤ b,
ondeA
é uma matriz,x
é um vetor de variáveis, eb
é um vetor de restrições. As restrições podem ser igualdades ou desigualdades.
Representação matemática
A forma padrão de um problema de programação quadrática é a seguinte:
Minimizar: f(x) = 0.5 * x T Qx + c T x sujeito a: axis ≤ b x = d x ≥ 0
Aqui:
x T
é a transposta do vetorx
.Q
é uma matriz positiva semi-definida que garante que o problema seja convexo.A
eE
são matrizes que representam restrições de desigualdade e igualdade, respectivamente.b
ed
são vetores que representam constantes para as restrições de desigualdade e igualdade, respectivamente.
Compreensão por meio de exemplos simples
Para melhor compreensão, vejamos um simples problema de programação quadrática.
Exemplo 1: Otimização simples de portfólio
Imagine que você tem duas opções de investimento e precisa decidir quanto investir em cada opção. O objetivo é minimizar o risco (variância) enquanto se alcança um determinado retorno esperado. A função quadrática pode representar a variância (risco) do portfólio.
Suponha que a variância possa ser representada pela seguinte equação quadrática:
Minimizar: f(x) = 0.5 * (x 1 2 + 2x 1 x 2 + x 2 2 ) sujeito a: x 1 + x 2 = 1 (a soma das alocações deve ser 1) x 1 ≥ 0 x 2 ≥ 0
O problema nos pede para encontrar os valores de x 1
e x 2
que minimizam o risco, desde que sua soma seja 1 e ambos não sejam negativos.
Visualização da programação quadrática
Olhar para funções quadráticas e restrições pode ajudar a entender o espaço de solução de um problema:
Na visualização acima, o círculo azul claro representa a natureza quadrática da função. As linhas vermelhas representam as restrições. A região viável (onde as soluções podem existir) é a intersecção das restrições e dos valores possíveis da função objetivo.
Resolvendo problemas de programação quadrática
Os problemas de programação quadrática podem ser resolvidos usando diferentes métodos, dependendo do tamanho e da complexidade do problema. Alguns dos métodos comuns são os seguintes:
- Métodos analíticos: Adequados para problemas pequenos, esses métodos envolvem calcular derivadas e igualá-las a zero para encontrar o ponto mínimo.
- Métodos numéricos: Para problemas maiores, são utilizados métodos numéricos, como o método do conjunto ativo ou o método do ponto interior. Esses métodos começam buscando dentro da região viável para encontrar a solução ótima.
- Ferramentas de software: Ferramentas como MATLAB, CVX e a biblioteca SciPy do Python permitem a fácil configuração e solução de problemas QP.
Aplicações da programação quadrática
A Programação Quadrática é utilizada em várias indústrias e campos devido à sua capacidade de lidar de forma eficiente com relações quadráticas e restrições.
Finanças
Em finanças, QP é usado para otimização de portfólio, onde a variância (ou risco) dos retornos do portfólio é minimizada, dadas restrições como alcançar um nível desejado de retorno.
Aprendizado de máquina
No aprendizado de máquina, QP é utilizado em máquinas de vetores de suporte para tarefas de classificação, onde ajuda a encontrar o hiperplano de maior margem que separa diferentes classes.
Sistema de controle
A Programação Quadrática também é utilizada no controle preditivo de modelos (MPC), onde otimiza as entradas de controle sujeitas a dinâmicas do sistema e restrições para alcançar o desempenho desejado.
Entendimento matemático profundo
Para obter um entendimento mais formal da Programação Quadrática, vamos examinar alguns aspectos matemáticos:
Convexidade
A matriz Q
garante que a função quadrática seja convexa. Funções convexas têm a propriedade especial de que qualquer mínimo local também é um mínimo global, o que simplifica o processo de resolução de problemas.
Para uma matriz ser positiva semi-definida (PSD), todos os seus autovalores devem ser não negativos. Essa propriedade garante a convexidade.
Problema dual
A programação quadrática também tem um problema de dualidade, que é semelhante à programação linear. A resolução do problema de dualidade muitas vezes fornece insights ou soluções numéricas alternativas.
O dual de um programa quadrático conecta-se ao problema original através de variáveis duais e oferece limites na função objetivo do problema original.
Conclusão
A Programação Quadrática é um método versátil e poderoso para otimização onde a função objetivo é quadrática e está sujeita a restrições lineares. Sua capacidade de lidar com problemas grandes e complexos a torna inestimável em muitos campos. Ao entender os conceitos básicos, aplicações e técnicas de solução, pode-se enfrentar efetivamente os desafios da programação quadrática em cenários do mundo real.