Você está na página 1de 12

UNIVERSIDADE DA BEIRA INTERIOR

Departamento de Ciências Aeroespaciais

Métodos e Algoritmos de Otimização Paramétrica

K. Bousson

Outubro de 2023
A maioria dos problemas em engenharia, principalmente em controlo, em
estimação de estados e em design, podem ser colocados sob a forma de
problemas de otimização. No que se segue, começaremos por definir o que
é um problema de otimização, e a seguir apresentaremos os métodos de
otimização baseados no conceito de gradiente que lidam essencialmente
com as funções deriváveis.
n
No presente capítulo, assumimos o espaço ( n 1, n finito) equipado
com uma norma . .

1. Definições

Definição 1. Seja um subconjunto D do espaço normado ( n , . ) . D é


dito:
fechado se a fronteira D de D for contida em D (i.e. D D );
limitado se existir um escalar 0 tal que quaisquer que sejam x e y
em D , x y ;
compacto se é fechado e limitado.

Definição 2. Sejam D um subconjunto de n e f : D uma função. Um


ponto x * D é um minimizador local de f em D se existir uma vizinhança
V de x*, com V D, tal que:

x ( x1 , ..., x n ) V , f (x* ) f ( x) (1)

Neste caso o número y * f ( x * ) é um mínimo local de f em D. Uma função


pode ter vários minimizadores locais com os mínimos locais
correspondentes sendo eventualmente diferentes uns dos outros.

Definição 3. O ponto x * D é um minimizador global de f em D se:

x D, f ( x* ) f ( x) (2)

Neste caso o número y * f ( x * ) é o mínimo global de f em D.

1
Embora uma função possa ter vários minimizadores globais, tem apenas
um mínimo global, isto é, se houver vários minimizadores globais
x1* , x 2* , ..., x *p , então: f ( x1* ) f ( x 2* ) ... f ( x *p ).

Para definir o que é um maximizador (local ou global) de f em D, basta


substituir a desigualdade ( ) nas definições precedentes pela desigualdade
( ).

Proposição 1. Qualquer minimizador global de f : D é também um


minimizador local de f em D, mas há minimizadores locais que não são
minimizadores globais de f.

Corolário 1. Se f : D tiver apenas um minimizador local, então este é


o minimizador global de f em D.

Definição 4. Minimizar uma função f num domínio D significa procurar


pelo menos um minimizador (local ou global) de f em D e o mínimo (local
ou global) correspondente. Por convenção, escreve-se: Min f (x), para
x D

dizer: minimizar f em D, ou: Max f (x), para dizer: maximizar f em D.


x D

Pode mostrar-se a seguinte proposição:

Proposição 2. Maximizar f em D é equivalente a minimizar (-f) em D.

Esta proposição significa simplesmente que os maximizadores da função f


em D são os minimizadores da sua função oposta (-f) em D. Portanto para
achar os maximizadores de f, basta procurar os minimizadores de (-f). Por
isso, falar-se-á apenas de minimização no que segue.

O seguinte teorema garante a existência dos valores mínimo e máximo para


qualquer função contínua num domínio compacto.

Teorema de Weierstrass. Sejam D um subconjunto compacto de n e


f :D uma função continua. Então f atinge um valor máximo f max e um
valor mínimo f min em D, isto é: existem xM D e xm D tais que f max f ( xM )
e f min f ( xm ) .

2
Consideremos no que segue apenas funções diferenciáveis (que são de
facto também funções contínuas). Portanto, as funções que serão
consideradas a seguir satisfaçam o teorema de Weierstrass.
n
Nas seguintes seções, assumiremos que D , isto é, lidaremos com a
otimização sem restrição.

2. Método do gradiente

Apresenta-se nesta secção um dos métodos mais usados para a otimização.


Considera-se por isso uma função f : D , D sendo um subconjunto
n 1
compacto de . Supõe-se que f é de classe C em D, e pretende-se
resolver o seguinte problema:

Min f (x) (3)


x D

2.1 Gradiente de uma função


n
Recorda-se que o gradiente da função f em x é o vector definido por:
T
f ( x) f ( x) f ( x)
f ( x) ... (4)
x1 x2 xn

O gradiente de uma função multivariável num ponto x é a direcção de


subida máxima quando se desloca na curva desta função a partir de x. Um
deslocamento sobre esta curva a partir de x e na direcção de f (x) resulta
numa subida maior do que em qualquer outra direcção com um percurso de
mesmo comprimento. Pela mesma razão, um percurso na direcção oposta
ao gradiente dá lugar a uma descida máxima. Deste modo, é claro que
seguindo cada vez a direcção oposta ao gradiente no percurso sobre a curva
da função, acaba-se, mais cedo ou mais tarde, por encontrar um mínimo
desta função.

A minimização de funções diferenciáveis baseia-se em geral em métodos


iterativos de procura que partem de um ponto inicial x0 D (em geral

3
escolhido arbitrariamente), e que definem o vector x k 1 a partir de x k pela
fórmula:

xk 1 xk k dk (5)

onde k 0 é o passo e d k é um vector que indica uma direcção de descida


para atingir um mínimo da função f. Isto significa que se deve ter:
d kT f ( xk ) 0 para garantir a descida. Nota-se que o caso básico (e obvio) é
quando se considerar d k f ( xk ) ; neste caso o algoritmo definido pela
equação (5) chama-se método do gradiente (uma vez que a direcção de
descida é meramente a direcção oposta ao gradiente) ou método da descida
máxima (ou descida mais profunda). As iterações acabam-se quando d k
atingir um valor relativamente pequeno.

2.2 Esquema geral dos algoritmos de otimização (para funções


diferenciáveis)

1. Escolher um ponto inicial x0 e iniciar k 0 ;


2. Calcular o gradiente f ( xk ) ;
3. Determinar uma direção de descida d k (i.e. é d k deve ser tal que
d kT f ( xk ) 0 );
4. Determinar um passo de busca (ou passo de descida) k ;
5. Atualizar o ponto de procura do seguinte modo: x k 1 x k k d k , e
incrementar k: k k 1 ;
6. Parar a procura se d k , senão ir ao passo 2.

Todos os algoritmos de otimização de funções diferenciáveis tentam, de


modo geral, achar em cada iteração uma direcção de descida d k e/ou um
passo de procura k com quais a convergência para o otimizador
(minimizador ou maximizador consoante o caso) seja garantida com uma
taxa (de convergência) aceitável (em geral linear, semilinear, quadrática ou
exponencial).

Apresentam-se métodos de determinação do passo k :

4
1. Pode escolher-se k igual ao valor de 0 que minimize a função
definida para qualquer por:

( ) f xk dk (6)

2. Em vez de achar o valor óptimo de k como mencionado acima, pode


apenas escolher-se k igual a um valor 0 tal que:

f xk dk f ( xk ) (7)

3. Ou então, o parâmetro k pode ser escolhido de tal modo que a


sequência ( k ) k 0 construída convirja para zero e que k .
k 0

No entanto apresentam-se no que segue métodos sistemáticos que


permitem determinar um valor desejável para k que seja próximo do
minimizador da função : ( ) f xk dk .

2.3. Métodos de determinação do passo de busca k

2.3.1. Método de Armijo

Aqui está o algoritmo de Armijo que permite calcular um valor adequado


para o passo de descida k :

1. Iniciar 1 e escolher um número real 1 tal que 0 1 1.


2. Repetir até f ( xk d k ) f ( xk ) 1 d kT f ( xk )
2.
3. k .

2.3.2. Método de Wolfe

A condição de decréscimo de Armijo (i.e. f ( xk d k ) f ( xk ) 1 d kT f ( xk ) )


é pouco satisfatória para alcançar uma progressão suficiente em direcção da
solução do problema, pois esta está satisfeita até para todos os valores
positivos que sejam menores que k , o que significa que a convergência

5
para a solução pode ser demasiado lenta. Por isso, para eliminar passos
inaceitavelmente pequenos, Wolfe introduziu uma segunda condição,
chamada de condição de curvatura que é:

d kT f ( xk dk ) T
2 k d f ( xk ) (com 0 1 2 1)

As condições de Wolfe são então as seguintes:

f ( xk dk ) f ( xk ) 1 d kT f ( xk )
d kT f ( xk dk ) T
2 k d f ( xk )

Portanto, o algoritmo de Wolfe para a determinação do passo de busca é o


seguinte:

1. Iniciar 1 e escolher dois escalares 1 e 2 tais que 0 1 2 1.


2. Repetir até f ( xk d k ) f ( xk ) 1 d kT f ( xk ) e d kT f ( xk d k ) T
2 k d f ( xk )
2.
3. k .

No entanto, um passo de busca k pode satisfazer as condições de Wolfe


sem estar perto do minimizador da função acima mencionada
( ( ) f xk d k ). Por isso, é necessário alterar a condição de curvatura
de modo a ter k na vizinhança do mínimo da função . Esta alteração dá
lugar às seguintes desigualdades chamadas condições fortes de Wolfe:

f ( xk dk ) f ( xk ) 1 d kT f ( xk )
d kT f ( xk dk ) 2 d kT f ( xk )

com 0 1 2 1.

Contrariamente às condições (simples) de Wolfe, as condições fortes acima


mencionadas impedem o uso de passos de busca k que estejam afastados
dos pontos estacionários da função (sendo ( ) f xk d k ).

6
Portanto, o algoritmo de cálculo do passo de busca com as condições fortes
de Wolfe é o seguinte:

1. Iniciar 1 e escolher dois escalares 1 e 2 tais que 0 1 2 1.


2. Repetir até f ( xk d k ) f ( xk ) 1 d kT f ( xk ) e d kT f ( xk d k ) 2 d kT f ( xk )
2.
3. k .

2.4. Métodos derivados do método do gradiente

Existem métodos baseados no conceito do gradiente que se preocupam da


rapidez da convergência das iterações para um minimizador da função f.
Estes baseiam-se na procurar de direcções de descida que não são direcções
directamente opostas ao gradiente, mas sim uma alteração destas mesmas
no sentido de poder convergir mais rapidamente. Nestes métodos,
encontram-se os métodos de gradiente conjugado que têm várias variantes
e o método de Newton. Os dois métodos mais utilizados (por causa das suas
eficiências) são o método de Polack-Ribière, que é um método de gradiente
conjugado, e o de BFGS (Broyden-Fletcher-Goldfarb-Shanno) que é um
método chamado de quasi-Newton pelo facto de provir de uma alteração do
método de Newton de modo a assegurar a convergência global (uma vez
que o método de Newton garante apenas a convergência local).

Um algoritmo de otimização garante a convergência global se converge


para um minimizador qualquer que seja o ponto inicial de procura x0 . A
convergência é local se o algoritmo garante convergência para um
minimizador x* quando se iniciar a procura num ponto x0 numa vizinhança
relativamente restrita deste minimizador x* .

Recorda-se que a direcção de descida para uma função f num ponto xk é


qualquer vector d k tal que d kT f ( xk ) 0 .

2.3.1. Método de Polack-Ribière

O método de Polack-Ribière que pertence à família dos métodos de


gradiente conjugado é dado a seguir:

7
1. Escolher um ponto (vector) inicial x0 , e 0 ;
2. Calcular d 0 f ( x 0 ), e iniciar k 0 ;
3. Repetir até d k :
3.1. xk 1 xk k d k ; com k calculado pelo método de Armijo.
T
f ( xk 1 ) f ( xk ) f ( xk 1 )
3.2. k 2
;
f ( xk )
3.3. d k 1 f ( xk 1 ) k dk ;

3.4. k k 1 .
4. Retornar o valor f min f ( x k ) como valor mínimo da função f, e vector
x min x k como minimizador correspondente.

O que se pode observar é que quando os gradientes relacionados com dois


passos consecutivos são próximos um do outro, tem-se então: k ! 0 (passo
3.2) e d k 1 ! f ( x k 1 ) (passo 3.3). Esta reiniciação automática da direcção
de descida permite à procura de se adaptar à variação da função a ser
minimizada.

2.3.2. Método de Newton

1. Escolher um ponto (vector) inicial x0 , e 0 ;


2. Iniciar k 0 , e calcular a direcção de descida: d k H k 1 f ( xk ) , sendo H k a
matriz Hessiana da função f em xk ;
3. Repetir até d k :
3.1. xk 1 xk d k ;
3.2. k k 1 ;
3.3. Calcular a direcção de descida: d k H k 1 f ( xk ) ;
4. Retornar o valor f min f ( x k ) como valor mínimo da função f, e vector
x min x k como minimizador correspondente.

Repara-se que o método de Newton é utilizável só quando H k for uma


matriz positivamente definida para qualquer iteração k (porque senão,
dk H k 1 f ( xk ) não é uma direcção de descida). Uma das vantagens do
método de Newton é que converge o mais rapidamente possível (quando

8
for utilizável), enquanto uma das limitações é que a convergência é local
(além do método não ser utilizável quando a matriz Hessiana não for
positivamente definida). O método BFGS (Broyden-Fletcher-Goldfarb-
Shanno) apresentado na secção abaixo garante a definição positiva de uma
aproximação da matriz Hessiana sem que seja necessário calcular
individualmente as derivadas parciais que compõem esta matriz.

2.3.3. Método de BFGS

1. Escolher um ponto (vector) inicial x0 , e 0 ;


2. Iniciar k 0 , e Gk I ; (I sendo a matriz identidade)
3. Repetir até d k :
3.1. Calcular a direcção de descida: d k Gk f ( xk ) ;
3.2. xk 1 xk k d k ; com k calculado pelo método de Armijo.
3.3. sk k d k ;
3.4. yk f ( xk 1 ) f ( xk ) ;
sk ykT yk skT sk skT
3.5. Gk 1 (I )Gk ( I ) ;
ykT sk ykT sk ykT sk
3.6. k k 1 ;
4. Retornar o valor f min f ( x k ) como valor mínimo da função f, e vector
x min x k como minimizador correspondente.

A apresentação dos conceitos e algoritmos de otimização acima


mencionados foi efetuada de modo intuitivo para os principiantes
perceberem o essencial do assunto. Vamos agora examinar na secção 3 a
teoria que justifica os algoritmos já apresentados tendo em conta o facto de
que a preocupação destes é fazer com que o gradiente ou a direcção de
descida convirja para zero.

3. Condições de Otimalidade (caso sem restrição)

A base de estudo dos minimizadores das funções diferenciáveis é o teorema


de Taylor que se segue:

9
Teorema de Taylor. Suponha que f possua derivadas parciais contínuas em
n n
e seja v . Então tem-se:

f ( x v) f ( x) ( f ( x v ))T v, 0 1.

Mais ainda, se f possui derivadas parciais segundas contínuas, têm-se:


1
"
2
f ( x v) f ( x) f (x v )v dt
0

1 T
f ( x v) f ( x ) ( f ( x ))T v v ( 2
f (x v ))T v, 0 1
2

Na teoria de otimização, o teorema de Taylor está utilizado, entre outras


coisas, para achar condições necessárias de otimalidade, isto é, supondo
que x * seja minimizador de uma dada função f concluir factos sobre o
gradiente f ( x* ) e a matriz Hessiana 2 f ( x * ) .

3.1. Condição de otimalidade da primeira ordem

Condição necessária da primeira ordem: Se x * é um minimizador de f e


que f possui primeiras derivadas parciais contínuas numa vizinhança
aberta de x * , então f ( x* ) 0 (i.e. x * é um ponto estacionário de f).

3.2. Condições de otimalidade da segunda ordem

Condição necessária da segunda ordem. Se x * é um minimizador de f e


que f possui segundas derivadas parciais contínuas numa vizinhança
aberta de x * , então as seguintes condições são satisfeitas:
f ( x* ) 0 ;
2
f ( x * ) é positivamente semidefinida.

Condições suficientes da segunda ordem. Se f possui segundas derivadas


parciais contínuas na vizinhança aberta de um ponto x * que satisfaça as
seguintes condições:
f ( x* ) 0
2
f ( x * ) é positivamente definida,
Então x * é um minimizador local de f.

10
Quando a função f é convexa tem apenas um minimizador local que é
portanto um minimizador global também. Uma vez que a matriz Hessiana
de uma função convexa e diferenciável é sempre positivamente definida,
tem-se o seguinte teorema:

Teorema. Se f é uma função convexa e diferenciável, então x * é o


minimizador (global) de f se e só se f ( x* ) 0 .

11

Você também pode gostar