O seminário apresentou introdução à otimização convexa e resolução de problemas utilizando CVX. Foi discutido breve histórico da otimização, conceitos de funções e conjuntos convexos, problemas de otimização convexa e métodos de resolução como o método de pontos interiores. O software CVX foi apresentado como ferramenta para modelagem e resolução de problemas de otimização convexa.
3. Breve Histórico de Otimização
1939-1945: A otimização teve início durante a 2a Guerra
Mundial.
1947: Início do interesse das indústrias na utilização das
técnicas desenvolvidas na área militar, para auxiliar no
planejamento e controle da produção.
1949: George B. Dantzig apresenta o Método Simplex para
resolver problemas de otimização linear (equações e (ou)
inequações lineares).
5. Otimização
Harrel et al. (2000) define otimização como o processo de
tentar diferentes combinações de valores para variáveis que
podem ser controladas (variáveis independentes), buscando a
combinação de valores que leva à saída mais desejada.
De acordo com Torga (2007), a procura pela solução ótima
pode ser conduzida manualmente ou automatizada com
algoritmos especialmente designados para procurar a solução
ótima sem executar a avaliação de todas as soluções
possíveis.
6. Alguns métodos de otimização:
Programação Linear
Programação Não-Linear
7. Programação Linear
Distribuição eficiente de recursos limitados para atender um
determinado objetivo.
Função linear: suas variáveis possuem relações proporcionais
entre si.
8. Programação Linear
Exemplo: Função y = 2x , y = f(x) , x = Valores de 0 a 10
2*X=Y
2*0= 0 y
2*1= 2
20
2*2= 4
2*3= 6 15
2*4= 8
2 * 5 = 10 10
2 * 6 = 12
5
2 * 7 = 14
2 * 8 = 16
5 10
2 * 9 = 18 x
2 * 10 = 20 Figura 1: Gráfico da função y = 2x
9. Programação Não-Linear
Finalidade: resolver problemas que envolvem funções
constituídas de variáveis que compartilham relações
desproporcionais entre si (não-linearidade).
Uma função é considerada não linear quando uma ou mais de
suas variáveis possuem relações desproporcionais entre si.
10. Programação Não-Linear
Exemplo: Função y = x2 , y = f(x) , x = Valores de 0 a 10
X2 = Y
02 = 0
12 = 1
22 = 4
32 = 9
42 = 16
52 = 25
62 = 36
72 = 49
82 = 64
92 = 81
Figura 2: Gráfico da função y = X2
102 = 100
11. Programação Não-Linear
De acordo com Winston (2001), para determinar se o problema
de PNL possui solução ótima ou não, é necessário definir a
função de concavidade e convexidade.
13. Funções
Função Convexa
Inclinação na região é sempre crescente;
A linha que conecta dois pontos na função nunca se estende
abaixo dela.
Figura 3: Função estritamente convexa Figura 4: Função convexa
Fonte: H. Hindi – A Tutorial on Convex Optimization
14. São exemplos de funções convexas:
Figura 5: Função convexa Figura 6: Função convexa
15. Funções
Função Côncava
Inclinação na região é sempre decrescente;
A linha que conecta dois pontos na função nunca se estende
acima dela.
Figura 7: Função estritamente côncava Figura 8: Função côncava
Fonte: H. Hindi – A Tutorial on Convex Optimization
16. São exemplos de funções côncavas:
Figura 9: Função côncava Figura 10: Função côncava
18. Conjunto Convexo
Um conjunto é convexo se, dados dois pontos X1 e X2 do
conjunto, o segmento que os une também pertence ao conjunto.
S = { x | x = λx1 + ( 1 – λ) x2 , 0≤λ≤1}
Figura 11: Conjunto Convexo Figura 12: Conjunto Não Convexo
Fonte: H. Hindi – A Tutorial on Convex Optimization
20. Otimização Convexa - Formulação geral
Minimize: f 0( x )
Sujeito a:
fi ( x) ≤ 0 , i =1,..., m
hi ( x) = 0 , j =1,..., p
21. Otimização convexa
Parâmetros para um problema ser considerado convexo:
Função Objetivo ( funções convexas);
Inequações de Restrições ( funções convexas);
Equações de Restrições ( funções afins).
E deve-se minimizar uma função objetivo convexa sobre um
conjunto convexo.
22. Otimização Convexa
Evolução nas técnicas de Otimização Convexa visando obter os
parâmetros para a formulação adequada:
Problemas:
Muitos pontos locais “ótimos”;
Difícil encontrar um ponto ótimo (X*) que satisfaça todas as
restrições;
Critérios de parada, muitas vezes aleatórias;
Algoritmos de baixa taxa de convergência;
Problemas numéricos faziam com que os algoritmos de
minimização parassem em vários pontos ou ficassem
flutuando.
23. Segundo D.P. Bertrekas (1999)
Se:
Sujeito a fi (x) (convexas)
hi (x) (afins)
Os três primeiros problemas são eliminados
Mesmo assim:
A baixa taxa de convergência permanece como problema.
24. De acordo com A. Nemirovskii (1994), até o final dos anos 80 e 90,
foi descoberto na antiga União Soviética e Estados Unidos que:
Se:
fi (x) (além de convexas) fosse baseada no método
de pontos interiores, o problema de baixa taxa de
convergência seria evitado.
25. Otimização convexa
Base matemática:
fi(αx + β y) ≤ αfi(x) + β fi ( y )
para todo x, y ∈ ℜ n e todo α, β ∈ ℜ com α + β = 1, α, β ≥ 0
f(x) ≥ ( x , f(x ))
* *
27. Otimização Quase Convexa
Figura 13: Função quase convexa
Fonte: H. Hindi – A Tutorial on Convex Optimization
28. Otimização Quase Convexa
Figura 14: Função quase-convexa entre x e y
Fonte: H. Hindi – A Tutorial on Convex Optimization
.
29. Quase Convexa - Diferença Importante
Um problema de otimização quase convexa pode ter soluções
ótimas locais que não são (globalmente) ótimas.
O que não ocorre na otimização convexa, uma vez que, uma
solução ótima local é também uma solução ótima global.
31. Problemas de Otimização Convexa
(Forma Padrão)
O problema de otimização é convexo? Não.
Minimize: O problema encontra-se na forma padrão
Sujeito a: A inequação de restrição não é convexa
A equação de restrição não é afim
32. Problemas de Otimização Convexa
(Forma Padrão)
Reform ulando o problem a anterior de form a que
atenda todos os pré-requisitos vistos
anteriorm ente:
M inim ize:
Sujeito a:
33. A interpretação geométrica para esse fato é apresentado na
figura abaixo:
Figura 15: Interpretação geométrica para problema convexo Figura 16: Poliedro – Região Realizável
Fonte: S.P. Boyd Convex Optimization Fonte: S.P. Boyd Convex Optimization
A região realizável é mostrada na parte escura. Algumas curvas
de nível da função objetivo são mostradas nas linhas pontilhadas.
O ponto mostrado é ótimo.
35. Algoritmos de resolução geral
A ideia de que os problemas de otimização convexa eram factíveis
e que, a teoria da otimização convexa é mais simples e mais
completa do que a teoria geral da otimização não-linear não é
recente.
Diversos métodos como, por exemplo, método do sub-gradiente,
método de planos cortados e método do elipsoide foram
desenvolvidos na União Soviética entre 1960 e 1970.
Apesar desses métodos serem algoritmos de resoluções universais
para otimização convexa, funcionando até mesmo para funções não
diferenciável, eles não são eficientes.
36. Método de Pontos interiores
Útil para problemas de:
Programação linear
Programação geométrica
Programação quadrática
Além de lidar com problemas de forma cônica.
Método mais eficiente de resolução de problemas - Quase
independente do tipo e do tamanho do problema.
Cada iteração envolve a resolução de um conjunto de equações
lineares (problemas de mínimos quadrados) com o mesmo tamanho
e estrutura do problema.
37. Método de Pontos interiores
Busca chegar a uma solução ótima caminhando através de pontos
interiores da região realizável.
Baseado no método de Newton e na Função Logarítmica de
Barreira – Aplica funções que atuam como barreiras armazenando
as variáveis em pontos interiores a região realizável.
Técnica para resolver um problema cuja restrição é uma equação
linear, e a função objetivo é duas vezes diferenciável.
O usuário deve fornecer uma tolerância desejável para o vetor de
decisão.
38. Método de Newton para Problemas de Minimização
com Restrições de Igualdade.
Dado o ponto ∈ com = e tolerância > 0
1 – Calcule o passo de Newton ∆ e o decremento ( ):
Onde: ∆ = −(∇2 ( ))−1 ∇ ( ) e ( ) = (Δ ∇2 ( )∆ )1⁄2
2⁄
2 – Observe o critério de parada: 2≤ .
3 – Escolha o valor de relacionado com a linha de busca
3 – Atualização: + ∆
∆ é sempre uma direção de descida viável, exceto no ponto ótimo onde ∆ =0
39. Funções de Barreira Logarítmica e Trajetória Central
O objetivo é reformular as inequações de restrição do problema, de
tal forma que seja possível aplicar o método de Newton.
Torne as restrições de inequação implícitas na função objetivo. Para
isso, uma função de barreira é adicionada na função objetivo, tal
como a função de barreira logarítmica :
#
∅( ) = − log (− " ( ))
"=1
O problema fica da seguinte forma:
Minimize: 0( ) − (1/ ) ∑# log (− " ( ))
"=1
Sujeito a: =
40. Funções de Barreira Logarítmica e Trajetória Central
A medida que o parâmetro t é incrementado, mais o problema
reformulado se aproxima do problema original. Por outro lado,
quanto maior o valor de t, mais difícil se torna minimizar a função
pelo método de Newton, uma vez que, o Hessiano varia mais
rapidamente próximo da fronteira da região realizável.
O gradiente e o hessiano da função de barreira logarítmica é dado,
respectivamente por:
#
1
∇∅( ) = ∇ ( )
− "( ) "
"=1
# #
1 1
∇2 ∅( ) = ∇ ( )∇ " ( ) + ∇2 " ( )
" ( )2 " − "( )
"=1 "=1
41. Funções de Barreira Logarítmica e Trajetória Central
Agora, multiplicando-se a função objetivo por t, teremos o seguinte
problema equivalente:
Minimizar: 0( ) + ∅( )
Sujeito a: =
De modo que o novo problema possa ser resolvido pelo método de
Newton e que possua apenas uma única solução para cada > 0. A
trajetória central, associada com o problema original, é definida
como o conjunto de pontos ⋆ ( ) que garantem as condições
necessárias e suficientes exigidas nas restrições do problema
original. Assuma que = #/'
42. Funções de Barreira Logarítmica e Trajetória Central
Figura 17 - Interpretação geométrica para função de barreira logarítmica e trajetória central
Fonte: S.P. Boyd Convex Optimization
Nesse exemplo, as curvas pontilhadas mostram três linhas de
contorno da função de barreira logarítmica. A trajetória central
converge para o ponto ótimo a medida que t tende ao infinito.
43. Método da barreira
O método da Barreira
(0)
Forneça: , = > 0, ) > 1, ' > *
∗
1 – calcule ( ) que minimiza 0( ) + ,( )
sujeito a = iniciando em
∗
2 – atualize : = ( )
3 – critério de parada: Pare se #/ < '
4 – incremente : = )
44. Funções auto concordantes
Importante pois:
Incluem a função de barreira logarítmica que apresenta grande
importância no Método de Pontos Interiores.
A analise do Método de Newton para funções auto-
concordantes não depende de constantes desconhecidas.
Se realizarmos uma transformação linear de variável em uma
função auto-concordante, teremos uma função auto-
concordante.
32
Uma função convexa é auto-concordante se |
concordante se ′′′
( )| ≤ 2 ′′
( ) 2 .
46. O que é o CVX?
CVX fornece métodos para simplificar a construção de
problemas e obedece um conjunto de regras denominada
DCP.
Modos de construção de problema
SDP – Programação Semidefinida Positiva
Utiliza uma matriz de inequações lineares (LMIs)
GP – Programação Geométrica
Aceita todas as funções e regras da programação convexa.
Plataforma - MatLab
47. O que o CVX não é?
O CVX não é uma ferramenta para:
Verificar se determinado problema é convexo ou não.
Resolução de problemas de larga escala.
48. Programação Convexa Disciplinada
A programação convexa disciplinada é uma metodologia
destinada a construção de problemas de otimização convexa
proposta por Michael Grant, Stephen Boyd e Yinyu Ye.
Problemas que aderem a esse conjunto de regras DCP podem
ser resolvidos rapidamente. Porém, os problemas que violam
essas regras são rejeitados, mesmos que esses problemas
sejam convexos.
49. Inicialização
As especificações do CVX no prompt de comando do MatLab
são precedidas por cvx_begin e finalizadas por cvx_end.
As variáveis de otimização não possuem valor numérico. Elas
são caracterizadas como objetos.
Caso alguma regra seja violada, uma mensagem de erro é
gerada. Caso contrário, as especificações são convertidas para
a forma canônica e solucionadas.
50. Panorama do conjunto de regras DCP
Como vimos anteriormente o conjunto de regras DCP retorna
uma mensagem de erro quando uma de suas regras é violada.
Esse conjunto de regras é suficiente, porém incompleto, para
garantir que determinada função seja convexa, ou seja, é
possível elaborar expressões que violem essas regras e que
sejam de fato convexas.
51. Conjunto de Regras DCP
Regras de alto nível
O CVX suporta dois diferentes tipos de programação convexa
disciplinada.
Problemas de minimização
É necessário que a função objetivo seja convexa e nenhuma
ou mais restrições.
Problemas de maximização
É necessário que a função objetivo seja côncava e nenhuma
ou mais restrições.
52. Restrições
Três tipos de restrições podem ser especificadas no DCP:
Restrição de igualdade ==
Ambos os lados são afim (um ou ambos os lados podem ser complexos).
Restrição de desigualdade menor que <=
O lado esquerdo é convexo e o lado direito é côncavo (ambos os lados
deve ser real).
Restrição de desigualdade maior que >=
O lado esquerdo é côncavo e o lado direito é convexo (ambos os lados
deve ser real).
53. Funções
As funções são caracterizadas por dois atributos.
Curvatura
Pode ser constante, afim, convexa ou côncava.
Determina as condições pela qual as expressões entram em
concordância com as regras de expressões.
Monotonicidade
Pode ser não-crescente, não-decrescente ou não-monótona.
Determina como as expressões podem ser usadas para a criação de
funções.
54. Compondo Funções
Regras de composição para funções convexas:
Se a função possui argumento não-decrescente, este argumento deve
ser convexo.
Se a função possui argumento não-crescente, esse argumento deve
ser côncavo.
Regras de composição para funções côncavas:
Se a função possui argumento não-decrescente, este argumento deve
ser côncavo.
Se a função possui argumento não-crescente, esse argumento deve
ser convexo.
55. Mínimos-quadrados
Dados de entrada
m = 16; n = 8;
A = randn(m,n);
b = randn(m,1);
Solução através do Matlab
x_ls = A b;
Solução através do cvx
cvx_begin;
variable x(n);
minimize(norm(A*x-b) );
cvx_end;
57. Mínimos-quadrados com restrições
Dados de entrada
bnds = randn(n,2);
l = min( bnds, [ ] ,2 );
u = max( bnds, [ ], 2 );
Solução através do Quadprog
x_qp = quadprog( 2*A'*A, -2*A'*b, [], [], [], [], l, u );
Solução através do CVX
cvx_begin
variable x(n);
minimize( norm(A*x-b) );
subject to
x >= l;
x <= u;
cvx_end
59. Arranjo de Antenas
A título aplicação será demonstrado um problema de arranjos de
antenas formulado por H. Lebret, S. Boynd e A. Mutapcic.
Arranjos de antenas proporcionam um meio eficiente de detectar e
processar sinais provenientes de diferentes direções. Comparando
uma única antena, que é limitada em diretividade e largura de
banda, um conjunto de sensores pode ter seu diagrama de
irradiação modificado através de um distribuição de amplitude e
fase denominada de pesos do arranjo.
Após o processamento das saídas das antenas, os sinais são
pesados e somados afim de fornecerem o diagrama de irradiação
do arranjo. O problema em questão consiste em encontrar pesos
que satisfaçam ao conjunto de especificações.
60. Arranjo de Antenas
Considere um arranjo linear de N antenas isotrópicas localizadas em " , … 4 e
5" , … 54 . Uma onda harmônica plana com freqüência 6 e comprimento de onda
vinda de uma direção 7 que se propaga ao longo do arranjo. Os N sinais de
saída são convertidos para banda-base, ponderadas pelos pesos 8" , e
somadas para fornecer o diagrama de irradiação do arranjo dado por:
4
5 (7 ) = 8" 9 : ( " ;*< 7+5 " <9 7)
"=1
Onde desejamos encontrar um vetor 8 tal que, 5(7 => ) = 1 e que |5(7)| seja
pequeno para |7 − 7 => | ≥ ∆ ( onde 2∆ é a largura do feixe).
61. Arranjo de Antenas
O problema se torna, então:
Minimizar: #= "=1,…,4 |5(7" )|
Sujeito a: 5(7 => ) = 1
Onde minimizamos os valores dos lóbulos laterais. No CVX, o problema é
descrito da seguinte forma:
cvx_begin
variable 8( ) complex
minimize (max(= <( ℎ9 =_*E _ 9=# ∗ 8)))
subject to
ℎ9 =_ =>′ ∗ 8 == 1;
Cvx_end
Observe que foi criada uma matriz , que possui as especificações e
configurações acerca do arranjo de antenas e que relaciona 8 e 5(7 ) tal como
5 = ∗ 8.
62. Ilustração do problema
Figura 18 – A figura apresenta um arranjo linear de N antenas isotrópicas e uma onda harmônica
plana incidindo de uma direção 7.
Fonte: S.P. Boyd Convex Optimization
63. Ilustração do problema
Figura 19 – A figura A apresenta o diagrama de irradiação para um arranjo de antenas cuja diretividade não é
particularizada.
Fonte: S. Boyd, H. Lebret , Antenna Array Pattern Synthesis via Convex Optimization
64. Ilustração do problema
Figura 20 - A figura mostra o ganho unitário na direção alvo com os lóbulos laterais, externos ao feixe, minimizados.
Fonte: S. Boyd, H. Lebret , Antenna Array Pattern Synthesis via Convex Optimization
65. Ilustração do problema
w= 0.0021 - 0.0423i
0.0588 - 0.0487i
-0.1950 - 0.0278i
-0.0226 - 0.0379i
-0.0268 + 0.0810i
.
.
.
0.1390 - 0.0414i
0.0236 - 0.0124i
0.0252 - 0.1129i
-0.0664 - 0.1135i
0.0748 - 0.1329i
0.0161 - 0.0450i
0.0070 + 0.0579i
Figura 21: Diagrama de Irradiação para arranjo otimizado
Fonte: S. Boyd, H. Lebret , Antenna Array Pattern Synthesis via Convex Optimization
A figura 21 apresenta o diagrama de irradiação do arranjo após o
processo de otimização e o vetor peso w.
68. Agradecimentos
Agradecemos ao Prof. Dr. Dayan Adionel Guimarães (Inatel) pelo
apoio e material disponibilizado;
Ao Prof. Dr. Takaaki Ohishi (Unicamp) pela valiosa orientação e
atenção;
Ao Prof. Dr. Paulo Augusto Valente Ferreira (Unicamp) pela valiosa
orientação e atenção.
70. Referências Bibliográficas
D.P. Bertrekas. Nolinear Programming. Athena Scientific,1999
HARREL, Charles R.; GHOSH, Biman K.; BOWDEN, Royce.
Simulation Using ProModel. New York, McGraw-Hill, 2000.
O.M Bucci, D. D’Elia, G. Mazzarella, and G. Panatiello, “Antenna
pattern synthesis: A new approach,”Proc.IEEE, vol.82,pp.358-357,
Mar. 1996.
S.P. Boyd and L. Vandenberghe. Convex Optimization, Cambridge
University Press, 2003. In press. Material avaible at
www.stanford.edu/~boyd
71. TORGA, Bruno Lopes Mendes. Modelagem, Simulação e
Otimização em Sistemas Puxados de Manufatura. Dissertação
(Mestrado em Engenharia de Produção). UNIFEI. Itajubá-MG.
2007.
WINSTON, Wayne; ALBRIGHT, S. Christian. Practical
Management Science. 2nd, Duxbury Thomson Learning, 2001.
Y. Nesterov and A. Nemirovskii. Interior-Point Polynomial
Methods in Convex Programming. Society for Industrial and
Applied Mathematics, 1994.