Otimização/Métodos de penalidades

De testwiki
Ir para a navegação Ir para a procura

Predefinição:Wikipedia

Os métodos que recebem este nome fazem parte de uma família de métodos baseados em:

  • Simplicidade conceitual;
  • Eficiência prática;

Algumas das primeiras funções de penalidade foram desenvolvidas por:

  • Courant (1943)
  • Ablate Brighham (1955) (qual o artigo?)
  • AV Fiacco, GP McCormick (1968) (qual o artigo?)

Para compreender este tipo de método, será considerado o seguinte problema:

(P){minf(x)gi(x)≤0∀i=1,…,phj(x)=0∀j=1,…,q

Adicionalmente, se for considerado o conjunto de pontos C={x∈ℝn:gi(x)≤0,∀i=1,…,p;hj(x)=0,∀j=1,…,q}, o problema (P) se escreve ainda como

(P){minf(x)x∈C

Uma primeira idéia para a resolução desse tipo de problema é fazer uso de funções indicadoras, conforme é definido a seguir:

Predefinição:Definição

Notas: A função indicadora IC é às vezes denotada por χC.

Para transformar um conjunto (P) em um problema sem restrições, pode-se proceder da seguinte maneira: Considerar o problema (PD), dado por:

(PD){minf(x)+IC(x)x∈ℝn

Considerando iC:ℝ↦ℝ∪{∞} definida por:

iC(t)={0,se t≤0∞,se t>0

Tem-se ainda o problema (PP), dado por:

(PP){minf(x)+∑i=1pi(gi(x))+∑j=1pi(hj(x))x∈ℝn

Comentários:

  • A grande vantagem desta idéia é que ela transforma um problema com restrições em um problema irrestrito.
  • A principal desvantagem é que a função ϕ definida a seguir é descontínua em cada ponto x∈∂C:
ϕ:ℝn↦ℝ∪{∞}
ϕ(x)=f(x)+∑i=1pi(gi(x))+∑j=1pi(hj(x))

Método de penalidade exterior

Para contornar a desvantagem da descontinuidade da função apresentada anteriormente, surgem outras funções, como por exemplo:

Gráfico de uma função de penalidade
H:ℝ↦ℝ
H(t)={0,se t≤0t2,se t>0

Predefinição:Clear Predefinição:Definição

Predefinição:Tarefa

Predefinição:Exercício

Predefinição:Resolução

Predefinição:Exercício

Predefinição:Tarefa

A idéia de aplicar penalizações aos pontos que não pertencem ao conjunto viável é formalizada na seguinte definição: Predefinição:Definição Nota: Lembre-se que C={x∈ℝn:gi(x)≤0,∀i=1,…,p;hj(x)=0,∀j=1,…,q} é o conjunto viável do problema (P).

Em particular, as funções H∘gi são funções de penalidade exterior.

Predefinição:Definição

Predefinição:Tarefa

Nota: Conforme o Wikcionário, o termo Predefinição:Wikt significa: que coage; que reprime; que impõe pena; coercitivo. Nesse sentido, esse é um termo adequado ao tratar do conceito anterior, no contexto dos métodos de penalidade.

Predefinição:Exercício Predefinição:Resolução

Predefinição:Tarefa

Predefinição:Exercício

Predefinição:Resolução

Predefinição:Exercício

Predefinição:Resolução

Predefinição:Tarefa

Alguns conceitos da topologia

Em algumas situações, é interessante ter em mente que certos conceitos definidos no contexto da Otimização são, na verdade, instanciações de conceitos mais gerais, muitos deles provenientes da topologia. Alguns exemplos são apresentados a seguir.

Predefinição:Definição

Exemplos
  • Topologia euclidiana:
X=R
Γ=Γ1={∅}∪{X}∪{A⊂ℝ:∀x∈A,∃ϵx>0,(x−ϵx,x+ϵx)⊂A}

Em outras palavras, a topologia euclideana é a coleção de todos os conjuntos abertos contidos em ℝ. Pode-se verificar com facilidade que de fato são satizfeitas as três propriedades que definem uma topologia.

Outro exemplo muito comum é o seguinte:

  • Topologia euclideana estendida:
X=R∪{∞}
Γ=Γ1∪{A⊂ℝ∪{∞}:∃a∈ℝ,A=]a,∞]}

Em geral, a noção de limite seria caracterizada topologicamente da seguinte forma:

Predefinição:Definição

De volta ao método

Uma vez apresentados os conceitos iniciais, pode-se provar o seguinte teorema:

Predefinição:Teorema

Predefinição:Tarefa

Predefinição:Demonstração

Predefinição:Exercício

Algoritmo de penalidade exterior

Primeiro passo: Escolha x0∈ℝn, r>0 e k=1

Passo iterativo k: Calcular xk=x¯(rk), solução global de 
(P){min⁡φ(x,rk)=f(x)+12rH(x)x∈ℝn
Escolha rk tal que 0<rk<rk−1

Nota: Neste algoritmo, H é uma função de penalidade exterior.

Predefinição:Exercício Predefinição:Resolução

Implementação do algoritmo de penalidade exterior em SciLab

Considerando o problema

(P){minf(x)gi(x)≤0∀i=1,…,phj(x)=0∀j=1,…,q

com f uma função quadrática, A simétrica positiva definida, gi,hj lineares, e a função de penalidade, H, dada por:

H(x)=∑i=1p(gi+(x,y))2+∑j=1q(hj(x,y))2

Pode-se usar o método dos gradientes conjugados para resolver o seguinte problema:

(P){minf(x)+H(x)x∈ℝn

onde f+H terá sua matriz Hessiana definida positiva.

Predefinição:Tarefa

Método de penalidade interior

Este método também é conhecido como método de barreira. Ele consiste em trabalhar com funções de penalidade tais que ∀x∈∂C e qualquer que seja a sequência {xn}⊂C={x:gi(x)<0} para a qual xn→x, se tem que a função de penalidade tende a +∞.

Predefinição:Tarefa

Mas como conseguir esse tipo de função?

Exemplos

Considere o caso em que gi(x)=ai⊤x−bi. Lembrando que a função logarítmica tem a propriedade:

limx→0+−ln⁡(x)=+∞

pode-se tomar H1(x)=−∑i=1pln⁡(bi−ai⊤x), pois

limai⊤x→bi−ln⁡(bi−ai⊤x)=+∞

implica que

limx→∂CH1(x)=+∞

Analogamente, tem-se

limx→0+1x=+∞

então, uma outra função com a propriedade desejada é H2(x)=∑i=1p1bi−ai⊤x.

O problema a ser resolvido quando se quer aplicar o método de barreira é o seguinte:

(P){min⁡f(x)gi(x)≤0;i=1,…,p

onde C={x:gi(x)≤0,∀i} é tal que C0={x:gi(x)<0,∀i}≠∅

Observação: C0 não é necessariamente igual ao interior do conjunto C. Por exemplo:

Predefinição:Tarefa

Predefinição:Definição

Algoritmo de barreira

Primeiro passo: Escolha x0∈C0, r>0 e t0>0

Passo iterativo k: Calcular xk+1=x¯(tk), solução global de 
(P){min⁡f(x)+tkB(x)x∈C0
Escolha tk+1 tal que 0<tk+1<tk

Observação: Neste método os termos da sequência {xn} estão sempre em C0.

Implementação do algoritmo de barreira em SciLab

Considerando o problema

{minf(x)gi(x)≤0∀i=1,…,p

pode-se usar o método de barreira no conjunto:

C={x∈ℝn:gi(x)≤0}

Pode-se usar qualquer das funções de penalidade interior apresentadas, por exemplo:

B(x)=∑i=1p1gi(x)

ou ainda

B(x)=∑i=1p−ln⁡(−gi(x))

Como C0={x∈ℝn:gi(x)<0}, o problema passa a ser:

{minf(x)+B(x)x∈C0

Observação: Note que é necessário conhecer um ponto inicial x0∈C0, para servir de primeira aproximação, ou ponto de partida para o algoritmo.

Predefinição:AutoCat