듀얼 문제 (Dual Problem)

최적화 이론에서 원초 문제와 쌍을 이루는 듀얼 문제 찾기

2019년 03월 02일

최적화 이론에서 쌍대성(Duality)은 최적화 문제를 원초 문제(Primal problem)와 듀얼 문제(Dual problem)로 바라볼 수 있다는 원칙입니다. 예를 들어 아래와 같이 제약식 fi(x)f_i(x)hi(x)h_i(x)를 만족하는 목적함수 f0(x)f_0(x)의 최솟값을 찾으려고 합니다.

minx     f0(x)subject to     fi(x)0(i=1,...,m)hi(x)=0(i=1,...,p)\begin{aligned} \underset{x}{min} \text{ }\text{ }\text{ }\text{ }\text{ } & f_0(x) \\ subject \text{ }to \text{ }\text{ }\text{ }\text{ }\text{ } & f_i(x) \le 0 (i = 1, ..., m) \\ & h_i(x) = 0 (i = 1, ..., p) \end{aligned}

위와 같은 원초 문제의 듀얼 문제를 라그랑주 승수법을 이용해 찾을 수 있습니다. 위 식의 목적 함수와 제약식을 라그랑주 승수법의 보조 함수 형태로 바꾸어 보겠습니다.

L(x,λ,μ)=f0(x)+iλifi(x)+iμihi(x)     (λ0)L(x, \lambda, \mu) = f_0(x) + \sum_i \lambda_i f_i(x) + \sum_i \mu_i h_i(x) \text{ }\text{ }\text{ }\text{ }\text{ } (\lambda \ge 0)

보조함수 LL의 형태를 자세히 보면 목적함수 f0(x)f_0(x)에 나머지 항들을 더하는 형태를 가집니다. 나머지 항들 iλifi(x)+iμihi(x)\sum_i \lambda_i f_i(x) + \sum_i \mu_i h_i(x)을 살펴보겠습니다. iλifi(x)\sum_i \lambda_i f_i(x)의 경우 fi(x)f_i(x)는 항상 0보다 작고 λ\lambda는 0보다 크므로 iλifi(x)\sum_i \lambda_i f_i(x) 는 0보다 작습니다. iμihi(x)\sum_i \mu_i h_i(x) 항은 hi(x)h_i(x)가 항상 0이므로 iμihi(x)\sum_i \mu_i h_i(x) 역시 0입니다. 따라서 f0f_0의 최솟값을 만족하는 미지수 xxxx^*라 할 때 다음이 성립합니다.

f(x)L(x,λ,μ)infx L(x,λ,μ)f(x^*) \ge L(x^*, \lambda, \mu) \ge \underset{x}{inf}\text{ }L(x, \lambda, \mu)

위 부등식에서 infinf는 정해진 범위내에서의 최대 하한(infimum)을 뜻합니다. infx L(x,λ,μ)\underset{x}{inf}\text{ }L(x, \lambda, \mu)g(λ,μ)g(\lambda, \mu)라 하면 목적 함수의 최솟값을 찾는 문제는 g(λ,μ)g(\lambda, \mu)의 최댓값을 찾는 문제로 바뀝니다. 이 때 g(λ,μ)g(\lambda, \mu)를 듀얼 문제라 합니다. 제약식 중 부등식은 항상 0보다 작거나 같은 형태를 갖고 대응하는 라그랑주 승수(λ\lambda)는 0보다 크거나 같습니다. 듀얼 문제는 다음과 같이 쓸 수 있습니다.

maxx     g(λ,μ)subject to     λi0(i=1,...,m)\begin{aligned} \underset{x}{max} \text{ }\text{ }\text{ }\text{ }\text{ } & g(\lambda, \mu) \\ subject \text{ }to \text{ }\text{ }\text{ }\text{ }\text{ } & \lambda_i \ge 0 (i = 1, ..., m) \end{aligned}



듀얼 문제를 선형 계획법에 적용시켜 보겠습니다. 아래와 같은 원초 문제가 있습니다.

minx     cTxsubject to     Ax+b0Gx+h=0\begin{aligned} \underset{x}{min} \text{ }\text{ }\text{ }\text{ }\text{ } & c^T x \\ subject \text{ }to \text{ }\text{ }\text{ }\text{ }\text{ } & Ax + b \le 0 \\ & Gx + h = 0 \end{aligned}

원초 문제의 듀얼 문제를 만들기 위해 라그랑주 승수법을 이용하겠습니다.

L(x,λ,μ)=cTx+λT(Ax+b)+μT(Gx+h)L(x, \lambda, \mu) = c^T x + \lambda^T(Ax + b) + \mu^T(Gx + h)

보조 함수에 대한 식 infx L\underset{x}{inf}\text{ }L을 만들기 위해 LLxx에 대한 식으로 바꾸어 보겠습니다.

L(x,λ,μ)=cTx+λT(Ax+b)+μT(Gx+h)=λTb+μTh+(λTA+μTG+cT)x=bTλ+hTμ+(ATλ+GTμ+c)Tx\begin{aligned} L(x, \lambda, \mu) & = c^T x + \lambda^T(Ax + b) + \mu^T(Gx + h) \\ & = \lambda^T b + \mu^T h + (\lambda^T A + \mu^T G + c^T)x \\ & = b^T \lambda + h^T \mu + (A^T \lambda + G^T \mu + c)^Tx \end{aligned}

구하고 싶은 듀얼문제는 infx L\underset{x}{inf}\text{ }L이므로 듀얼 문제 g(λ,μ)g(\lambda, \mu)를 아래와 같이 쓸 수 있습니다.

g(λ,μ)=infx L(x,λ,μ)=bTλ+hTμ+infx (ATλ+GTμ+c)Tx\begin{aligned} g(\lambda, \mu) = \underset{x}{inf}\text{ }L(x, \lambda, \mu) & = b^T \lambda + h^T \mu + \underset{x}{inf}\text{ }(A^T \lambda + G^T \mu + c)^Tx \end{aligned}

이 때 xx와 관련된 항 infx (ATλ+GTμ+c)Tx\underset{x}{inf}\text{ }(A^T \lambda + G^T \mu + c)^Tx은 계수 벡터 ATλ+GTμ+cA^T \lambda + G^T \mu + c가 양수일 경우 xx값이 무한히 작아지면 음의 무한으로 발산합니다. 계수 벡터가 음수일 경우 xx값이 무한히 커질 때 음의 무한으로 발산합니다. 따라서 계수 벡터에 대한 식 ATλ+GTμ+c=0A^T \lambda + G^T \mu + c = 0 이어야 하는 듀얼 문제의 제약식을 얻습니다. 그리고 bTλ+hTμb^T \lambda + h^T \mu 는 원초 문제의 목적 함수의 최대 하한입니다. 아래는 위의 선형계획법 문제로 부터 구한 듀얼 문제입니다.

maxx     bTλ+hTμsubject to     λ0ATλ+GTμ+c=0\begin{aligned} \underset{x}{max} \text{ }\text{ }\text{ }\text{ }\text{ } & b^T \lambda + h^T \mu \\ subject \text{ }to \text{ }\text{ }\text{ }\text{ }\text{ } & \lambda \ge 0 \\ & A^T \lambda + G^T \mu + c = 0 \end{aligned}





출처 및 참고