Understanding why it works
Have you ever wondered why we use the Lagrange multiplier to solve constrained optimization problems?
Is it just a clever technique?
Uma vez que é muito fácil de usar, nós aprendemos como uma aritmética básica, praticando-a até que podemos fazê-lo de coração.mas alguma vez se perguntou por que funciona? Funciona sempre? Em caso negativo, por que não?
Se você quiser saber as respostas a estas perguntas, você está no lugar certo.vou desmistificá-lo para ti.
um problema de otimização constrangido por exemplo
no caso de você não estar familiarizado com o que as otimizações restritas são, eu escrevi um artigo que explica isso. Caso contrário, por favor, continue a ler.suponha que temos uma montanha que se parece em baixo:
The height of a location (x, y) is given as follows (in kilometers):
Further suppose, the mountain has an eruption:
From the top, it looks like below:
The eruption area is given as follows:
Isto significa que a borda da erupção é dada da seguinte forma:
Assim, a borda parece com isso.
Suponha que queremos saber a posição mais alta da erupção sobre esta montanha.
Isto significa que a posição mais elevada, deve estar na linha da borda da erupção que podemos expressar da seguinte forma:
local (x, y)
que satisfaz g(x, y)=0
está à beira da erupção.
portanto, o problema de otimização constrangido é encontrar o máximo f(x, y)
satisfazendog(x, y) = 0
.
intuição sobre como resolver o problema de otimização constrangido
intuitivamente, sabemos que a altura máxima da erupção é em torno de onde a seta azul indica.
Nós estamos olhando para a mais alta linha de contorno que toca a borda da erupção.
vamos definir a equação da linha de contorno:
f(x, y) = H
H
é um valor constante que indica a altura do contorno.
Para um dado valor de H, existe um conjunto de (x, y)
valores que satisfaz f(x, y) = H
.
o gradiente de f(x, y)
indica a direcção em que a altura está a aumentar, que é perpendicular à linha de contorno.
The gradient is a vector of partial derivatives.
Similarly, the gradient of g(x, y)
is perpendicular to the edge of the eruption area.
A maior linha de contorno que toca a borda da erupção deve ter o gradiente de f(x, y)
paralelamente ao gradiente de g(x, y)
.
Se o gradiente da linha de contorno não está em paralelo com o gradiente da erupção de borda, haverá alguma erupção área que fica maior do que a linha de contorno.
Então, precisamos encontrar tal ponto de (x, y)
, onde o gradiente de f(x, y)
está em paralelo ao gradiente de g(x, y)
.
o Multiplicador de Lagrange e o Lagrangiano
vamos colocar o nosso objectivo numa fórmula matemática.
o gradiente de f(x, y)
e o gradiente deg(x, y)
devem ser paralelos, mas podem ter dimensões e direcção diferentes.
grad f(x, y) = λ grad g(x, y)
Thisλ
is called Lagrange multiplier after the name of the mathematician who introduced the Lagrangian mechanics in 1788.
nesta fase, nós não sabemos o valor de λ
que poderia ser qualquer coisa como 2.5, -1, ou outra coisa. Significa apenas que os dois gradientes devem estar em paralelo.
Podemos reorganizar a equação da seguinte forma::
o zero aqui significa o vector com zeros: (0,0)
.
And we call the inside of the curly brackets as the Lagrangian L
.
L = f(x, y) - λ g(x, y)
So, we are saying that the following is the required condition.
grad L = 0
o gradiente do Lagrangiano dá-nos duas equações.
Mas temos três incógnitas x
y
e λ
. Como podemos resolver estas equações?
Na verdade, temos mais uma equação que é o g(x, y) = 0
.
assim, podemos resolver as três equações para encontrar a localização mais elevada (x, y)
que satisfaz a restrição.
O problema agora se torna um exercício aritmético.
a resposta é f(x, y) = 2 where x = 1 and y = 1
.
Você pode verificar os valores com as equações.
também, λ = -4/5
o que significa que estes gradientes estão nas direcções opostas como esperado.
no geral, o Multiplicador de Lagrange é útil para resolver problemas de otimização de restrições.
Vamos encontrar o ponto (x, y)
onde o gradiente da função que estamos a optimizar e o gradiente da restrição de função em paralelo, usando o multiplicador λ
.
Em resumo, nós seguimos os passos abaixo:
- Identificar a função para otimizar (maximizar ou minimizar):
f(x, y)
- Identificar a função para a restrição de:
g(x, y) = 0
- Definir o Lagrangian
L = f(x, y) - λ g(x, y)
- Resolver
grad L = 0
satisfazendo a restrição
É tão mecânico como a de cima, e agora você sabe por que ele funciona.
mas há mais algumas coisas para mencionar.
quando não funciona
fiz algumas suposições ao explicar o Multiplicador de Lagrange.
Em primeiro lugar, assumi que todas as funções têm gradientes (as primeiras derivadas), o que significa que as funções f(x, y)
e g(x, y)
são contínuas e suaves.
Em segundo lugar, também assumo que f(x, y)
tem os segundos derivados para que possamos verificar se a solução(x, y)
é realmente o máximo ou não.
estas duas suposições são verdadeiras neste exemplo, mas em problemas reais você deve verificar que para ser capaz de usar o Multiplicador Lagrange para resolver o seu problema de otimização de restrições.em terceiro lugar, simplifiquei a pergunta para que só precisemos de lidar com um máximo.
em outras palavras, a forma da montanha é definida de tal forma que existe apenas uma solução para o problema de otimização constrangido.em problemas da vida real, a montanha poderia ter formas mais complicadas com vários picos e vales.
neste caso, precisaríamos para lidar com o problema de otimização (por exemplo, de vários locais do maxima).
em vez disso, o exemplo neste artigo só trata de um máximo local que também é o máximo global.espero que a sua compreensão do multiplicador de Lagrange seja óptima agora.