• Aucun résultat trouvé

Le langage de spécification

Abstractions de la machine virtuelle

4.3 La machine virtuelle abstraite

4.4.1 Le langage de spécification

Assim, em cada iteraçãok, cada subproblema é definido por:

min φ(x, µk) (4.3)

Na função de penalidade (4.2), existe a função ψ(x), que representa as restrições do problema (4.1). Esta função vai variar consoante o tipo de restrições que estão presentes no problema de opti- mização original [41]. Assim, podem-se definir três tipos de funções:

• Função para problemas com restrições de igualdade

ψ(x) =X

i∈E

|ci(x)|q q ∈ N (4.4)

• Função para problemas com restrições de desigualdade:

ψ(x) =X

i∈I

(max(0, ci(x)))q q ∈ N (4.5)

• Função para problemas com restrições de igualdade e desigualdades:

ψ(x) =X i∈E |ci(x)|q+ X i∈I (max(0, ci(x)))q q ∈ N (4.6)

4.2

Funções de penalidade

É possível classificar os métodos de penalidade em penalidade exacta e penalidade inexacta, onde a grande diferença neste métodos está no número de subproblemas criados para a obtenção da solução do problema original com restrições. Assim, nos métodos de penalidade exacta são criados um número finito subproblemas, que permitem a obtenção da solução do problema original, após um número finito de iterações [11].

Nos métodos de penalidade inexacta existe a resolução de uma sequência infinita de subproblemas sem restrições para o cálculo da solução do problema, determinando-se uma solução aproximada do problema. Exemplos de métodos de penalidade exacta conhecidos são o método de penalidade l1

26 4.2 Funções de penalidade

Neste trabalho foram aplicados a penalidadel1, a penalidade quadrática, penalidade hiperbólica,

penalidade exponencial e a penalidade dinâmica e a função Lagrangeana aumentada.

4.2.1 Função de penalidade l1

Como já foi dito, existem métodos de penalidade que após uma sucessão finita de problemas sem restrições obtém-se a solução do problemas de original (4.1) [29].

O método de penalidadel1 é um método de penalidade exacta de minimização local e permite

resolver problemas de optimização não linear com restrições [29]. Este método resolve problemas de minimização com a seguinte função de penalidade:

φ(x, µk) = f (x) + 1 µk X i∈E |ci(x)| + 1 µk X i∈I max [ci(x), 0] (4.7)

Assume-se que todas as funções são continuamente diferenciáveis. Esta função é designada por função de penalidadel1porque o termo de penalidade é de normal1. Embora seja contínua, a função

de penalidadel1não é diferenciável em todos os pontos, o que faz com que a utilização de métodos que

utilizem a informação da derivada para a resolução dos subproblemas (tais como o método de Newton) seja impossível. Esta característica é uma das grandes desvantagens que o método de penalidadel1

apresenta [29].

O algoritmo generalizado para este problema pode ser:

Algoritmo: Método de penalidade com a função de penalidadel1

• Passo 1. Dado µ0, uma aproximação inicialx0,k = 0 e c < 1

• Passo 2. Resolver min φ(x, µk) = f (x) + 1 µk X i∈E |ci(x)| + 1 µk X i∈I max [ci(x), 0] • Passo 3. Actualizar µk+1= cµkek = k + 1;

4.2 Funções de penalidade 27

4.2.2 Função de penalidade quadrática

Entre os métodos mais utilizados para a resolução de problemas de optimização não linear com res- trições está o método de penalidade quadrática. A função de penalidade quadrática é a função mais simples dos métodos de penalidade exterior, na qual o termo de penalidade mede o "nível"de violação das restrições [29]. Considerando-se o seguinte problema de optimização 4.1. Pode-se definir a função de penalidade quadrática da seguinte forma:

Q(x; µ) = f (x) + 1 2µ X i∈E c2i(x) + 1 2µ X i∈I max [ci(x), 0]2 (4.8)

ondeµ > 0 é o parâmetro de penalidade que tende para zero, f (x) é a função objectivo e o ci(x) são

as restrições do problema original (4.1).

Na iteraçãok, é necessário resolver o subproblema definido por:

min Q(x; µk) (4.9)

O parâmetro de penalidade,µk, é um parâmetro positivo e é actualizado a cada passo do algoritmo

do método de penalidade. Este parâmetro tem como objectivo obrigar que a sucessão de problemas tendem para a região admissível do problema. A solução do problema não precisa de satisfazer as restrição, mas com a diminuição do parâmetro de penalidade obriga que a violação das restrições seja cada vez mais difícil [29].

A sequência do parâmetro de penalidade pode ser escolhido de forma adaptativa, baseado na difi- culdade de minimizar a função de penalidade em cada iteração. Quando se verifica que a minimização deQ(x; µk) é difícil, pode-se escolher um µk+1que seja uma redução modesta deµk, assim, a actu-

alização deµk+1ficaria: µk+1 = 0.7µk. Se, pelo contrário, a minimização deQ(x; µk) é acessível,

então pode-se aplicar uma redução deµkmais ambiciosa, ficando:µk+1 = 0.1µk[29].

O algoritmo generalizado deste método pode se definido como:

Algoritmo: Método de penalidade quadrática

28 4.2 Funções de penalidade • Passo 2. Resolver min Q(x; µk) = f (x) + 1 2µk X i∈E c2i(x) + 1 2µk X i∈I max [ci(x), 0]2 • Passo 3. Actualizar µk+1= cµkek = k + 1;

• Passo 4. Enquanto o critério de paragem não for satisfeito voltar ao Passo 2.

4.2.3 Função de penalidade hiperbólica

Os métodos anteriormente referidos, são dos métodos mais utilizados para a resolução de problemas de optimização com restrições. Recentemente foi desenvolvido um novo método de penalidade para a resolução de problemas com restrições de desigualdade [34, 44].

Assim, considere-se o seguinte problema de optimização: min f (x)

s.a ci(x) 6 0, i ∈ I (4.10)

Para a resolução deste tipo de problemas pode utilizar, para além dos métodos já referidos, o método de penalidade hiperbólica [34, 44]. A função hiperbólica é continuamente diferenciável e é dada por: P (x, λk, τk= f (x) +X i∈I λici(x) + q λk i 2 [ci(x)]2+ τik 2 (4.11) ondeλk

i >0 e τik>0 são os parâmetros de penalidade. Os parâmetros de penalidade são actualizados

da seguinte forma: ( λk+1i = rλk i e τik+1 = τik se max ci(xk) > 0 τik+1 = qτk i e λk+1i = λki caso contrário (4.12)

Visto ser uma função continuamente diferenciável, a função de penalidade hiperbólica permite a utilização de métodos de optimização que utilizem a informação da derivada, como por exemplo o método quasi-Newton, para obter a solução do problema [34, 44].

O algoritmo generalizado para este método definido por:

Algoritmo: Método de penalidade hiperbólica

4.2 Funções de penalidade 29 • Passo 2. Resolver min P (x, λkτk) = f (x) +X i∈I  λkici(x) + q λk i 2 [ci(x)]2+ τik 2  e obterxk

• Passo 3. Actualizar λk+1iik+1, que é dado por: (

λk+1i = rλk

i e τik+1= τik se max ci(xk) > 0

τik+1 = qτk

i e λk+1i = λki caso contrário

• Passo 4. Enquanto o critério de paragem não for satisfeito voltar ao Passo 2.

4.2.4 Função de penalidade exponencial

Considerando-se problemas de optimização não linear com restrições de desigualdade: min f (x)

s.a ci(x) 6 0, i ∈ I (4.13)

onde as funçõesf e ci são duas vezes continuamente diferenciáveis. A função exponencial associada

a problemas de optimização não linear com restrições de desigualdade é:

E(x, µk, νk) = f (x) + X i∈I 1 µk νik h eµkci(x)− 1 i (4.14)

sendoµko parâmetro de penalidade eνiko multiplicador de Lagrange associado à restriçãoci. Se as

funçõesf e ciforem duas vezes continuamente diferenciáveis então a função penalidade exponencial

também o é [24].

O algoritmo generalizado para este método é dado por:

Algoritmo: Método de penalidade exponencial

• Passo 1. Dados µ0eν0, uma aproximação inicial,x0,k = 0 e d > 0

• Passo 2. Resolver min E(x, µk, νk) = f (x) + X i∈I 1 µk νikheµkci(x)− 1 i obterxk

30 4.2 Funções de penalidade

• Passo 3. Actualizar νik+1 = νk

ieµkci(xk),µk+1= dµkek = k + 1;

• Passo 4. Enquanto o critério de paragem não for satisfeito voltar ao passo 2.

Com a actualização dos multiplicadores de Lagrange apresentados no Algoritmo anterior, sexk

for um minimizante deE(x, µ) e para µk> 1 verifica-se que:

• Se xké um ponto admissível entãoνk+1

i < νik[24];

• Se xk é um ponto não admissível então νk+1

i > νik, fazendo com que aumente o peso da

violação da restriçãoci, que permite a aproximação da região admissível de uma forma mais

rápida [24].

4.2.5 Função de penalidade dinâmica

A grande diferença entre os método de penalidade dinâmica e os métodos já apresentados é que as restrições vão estar sujeitas a parâmetros de penalidade distintos. Isto é, o parâmetro de penalidade para as restrições de igualdade vai ser diferente e é actualizado de maneira distinta do parâmetro de penalidade para as restrições de desigualdade [11].

Considerando-se um problema de optimização não linear com restrições descrito da seguinte forma:

min f (x)

s.a ci(x) = 0, i ∈ E

ci(x) 6 0, i ∈ I

(4.15)

A função de penalidade associada a este método é dado por:

L(x, αk, βk) = f (x) +X i∈E αki [ci(x)]2+ X i∈I βik(max [ci(x), 0])2 (4.16)

ondeαj eβisão os parâmetros de penalidade das restrições de igualdade e desigualdade, respectiva-

mente.

A actualização destes parâmetros, em cada iteração, é dado por:

αk+1i = αki + C |ci(x)| (4.17)