쌍대성(Duality)-Linear Programming
최적화 분야의 쌍대성(Duality)은 최적화 문제를 primal 문제와 dual 문제로 나누어서 생각하는 방법이다. 이번 포스트에서는 선형 프로그래밍(Linear Programming)에서의 duality에 대해 알아보도록 하자.
참고 1 : Duality (Optimization)
참고 2 : 모두를 위한 컨벡스 최적화, Duality in Linear Programs
참고 3 : CMU-convex optimiazation, Duality in Linear Programs
쌍대성(Duality)
최적화 이론에서 쌍대성(Duality)는 원래의 문제(Primal problem)과 관련된 형태의 다른 문제(Dual Problem)와의 성질이다. 문제에 따라 strong duality, weak duality를 가지며, strong duality의 경우 Primal과 dual 문제의 해가 같다.
이 성질은 여러가지 이유로 사용되는데,
- primal 문제를 직접 풀기 어렵거나 계산 비용이 높은 경우 dual 문제를 푸는 것이 더 쉬울 수 있다.
- strong duality라면 primal과 dual의 최적해의 값이 같다는게 보장 된다.
- 제약 조건 자체의 변화가 최적 해에 미치는 영향을 역으로 분석하는데에 dual problem이 사용될 수 있다.
- 일부 최적화 방법 (e.g. primal-dual interior-point method) 들은 primal 문제와 dual 문제를 동시에 사용하여 수렴 속도를 높인다.
General Optimization Problem
이제 이 문제를 쌍대성을 이용하여 다시 정의하면, 그때의 원래 문제(Primal Problem)와 쌍대 문제(Dual Problem)는 다음과 같이 정의된다 :
Primal Problem
Dual Problem
: Lagrangian function
이게 무슨 말인지 처음에는 도통 이해가 가지 않으니, 간단한 Linear Programming의 예시를 들며 천천히 알아보자.
Lower bound of simple LP
다음과 같은 간단한 예제를 생각해보자
함수
이때,
각각의 부등식 제약(inequality constraint)에 상수배를 곱해서 더해서 원래 함수를 만들어 내면 동시에 lower bound도 찾을 수 있다.
이제 임의의 선형 결합으로 이뤄진
이때,
이를 lower bound
위의 예제에서 눈여겨 볼 점은, 원래 문제를 최소화 시키는 것이, lower bound를 최대화 시키는 것과 같다는 점이다. 이때 원래 문제를 Primal Problem, lower bound에 대해 바뀐 문제를 Dual Problem이라고 부른다.
또한, 부등식 제약 조건의 경우, 부등식의 방향을 유지하기 위해
Lower bound of General LP
이제 일반적인 Linear Programming 문제에 대해서 lower bound,
다음과 같은 최소화 문제가 있다고 하자 :
이전과 동일하게 임의의 벡터
이를 Lower bound 에 대해 다시 정의하면 Dual Problem을 구할 수 있다 :
Lagrangian Dual Problem
지금까지의 결과를 일반화한 Lagrangian Dual Problem을 유도해보자.
일단 위에서 General LP의 lower bound를 구하는 과정으로부터 다음 관계를 가진 lagrangian을 정의할 수 있다 :
Lagrangian Function of general LP
이 lagrangian은
다음으로, 해가 존재하는 영역(feasible region)
이때,
이 값을 최대화 하도록 정의된 문제를 dual problem, 또는 lagrangian dual problem 이라 한다.
Lagrangian Dual Problem of general LP
이 방법은 LP 뿐만이 아니라, General Optimization Problem에 대해서도 적용 가능하다.