라그랑주 승수법 (Lagrange Multiplier Method)

제약조건이 있는 최적화 문제 풀기

2019년 02월 25일

라그랑주 승수법은 제약조건이 있는 최적화 문제를 풀기 위한 방법입니다. 예를 들어 다음과 같이 f(x,y)f(x,y)g(x,y)g(x, y)가 존재합니다.

g(x,y)=cg(x, y) = c라는 제약 조건을 만족하는 f(x,y)f(x, y)의 최댓값은 어떻게 구할 수 있을까요? 직관적으로 최댓값은 f(x,y)f(x,y)g(x,y)g(x, y)에 접할 때라는 것을 알 수 있습니다. 라그랑주 승수법은 두 함수 ff, ggGradient 벡터를 이용해 최댓값을 찾습니다. 어떤 지점에서 Gradient 벡터는 접선 벡터에 수직인 벡터입니다. ffgg의 접점에서의 Gradient 벡터는 같은 방향이므로 다음과 같이 쓸 수 있습니다.

f=λg(fx,fy)=λ(gx,gy)(fx,fy,fz)=λ(gx,gy,gz)\nabla f = \lambda \nabla g \\ \begin{pmatrix} \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y} \end{pmatrix} = \lambda \begin{pmatrix} \frac{\partial g}{\partial x}, \frac{\partial g}{\partial y} \end{pmatrix} \\ \begin{pmatrix} \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z} \end{pmatrix} = \lambda \begin{pmatrix} \frac{\partial g}{\partial x}, \frac{\partial g}{\partial y}, \frac{\partial g}{\partial z} \end{pmatrix}

이 때 상수 λ\lambda를 라그랑주 승수라 합니다. 라그랑주 승수법은 최적화를 위해 접점을 찾는 과정이라 할 수 있습니다. 다음은 라그랑주 승수법에서 정의하는 보조 함수입니다.

L(x,y,λ)=f(x,y)λ(g(x,y)c)L(x, y, \lambda) = f(x, y) - \lambda (g(x, y) - c)

위 식을 예시의 원과 직선, x2+y2=4x^2 + y^2 = 4, 2x+y=k2x + y = k 대해 적용하면 다음과 같이 쓸 수 있습니다.

L(x,y,λ)=2x+ykλ(x2+y24)L(x, y, \lambda) = 2x + y - k - \lambda (x^2 + y^2 - 4)

보조 함수의 관점에서 최적화 문제를 푸는 것은 fλg\nabla f - \lambda \nabla g 의 Gradient 벡터가 영벡터임을 만족하는 편미분을 푸는 것과 같습니다. 예를 들면 다음과 같습니다.

Lx=fxλgx=0\frac{\partial L}{\partial x} = \frac{\partial f}{\partial x} - \lambda \frac{\partial g}{\partial x} = 0 Ly=fyλgy=0\frac{\partial L}{\partial y} = \frac{\partial f}{\partial y} - \lambda \frac{\partial g}{\partial y} = 0

제약 조건이 여러개일 때 보조 함수를 일반화하면 다음과 같습니다.

L(x,y,λ1,...,λn)=f(x,y)i=1Nλi(gi(x,y)ci)L(x, y, \lambda_1, ..., \lambda_n) = f(x, y) - \sum^{N}_{i=1} \lambda_i (g_i(x, y) - c_i)





출처 및 참고