본문 바로가기
AI 수학/최적화

장벽 내부점 방법 (Barrier Interior-Point Method)

by 깊은대학 2022. 4. 13.

다음과 같은 등식과 부등식 제약조건이 있는 컨벡스(convex) 최적화 문제는

 

(1)minx f(x)subject to :   gi(x)0,  i=1,...,m                     Ax=b

 

KKT 수정식이나 지시함수(indicator function)를 이용하면 다음과 같이 등식 제약조건만을 갖는 컨벡스 최적화 문제로 근사화할 수 있다.

 

(2)minx f(x)+1tϕ(x)subject to :   Ax=b

 

 

 

여기서 t 는 KKT식의 근사화 파라미터이고, ϕ(x) 는 로그 장벽함수(log barrier)이며 다음과 같이 주어진다.

 

(3)ϕ(x)=i=1mlog(gi(x))

 

위 최적화 문제에서는 다음 조건을 만족하는 어떤 x~ 가 존재한다고 가정한다. 이 가정이 성립하는 식 (1)의 문제를 엄격한 의미의 실현가능(strictly feasible)한 문제라고 한다.

 

(4)gi(x~)<0,  i=1,...,mAx~=b

 

식 (2)에서 t 를 고정시키면 등식 제약조건을 갖는 최적화 문제가 되므로 뉴턴방법(Newton's method)을 이용해서 풀 수 있다. 하지만 t 가 클수록 함수 f(x)+1tϕ(x) 의 경계 지역에서 헤시안(Hessian)이 급격히 변하기 때문에 뉴턴방법을 바로 적용하기는 어렵다. 따라서 처음에는 작은 t 값을 이용하여 문제를 푼 후 점차 t 를 키워 나가는 방법을 취한다. 이렇게 하면 뉴턴방법을 사용할 때 이전 t 값으로 구한 해를 다음 단계의 초기값으로 설정할 수 있기 때문에 수치 계산을 빠르고 효율적으로 할 수 있다.

이와 같이 최적화 문제 (1)을 (2)로 근사화 한 후, 작은 t 에서 시작하여 점차 t 를 증가시키면서 순차적으로 최적해를 구해 나가는 방법을 장벽 내부점 방법 (barrier interior-point method)이라고 한다. 이 때 특정 t 값에서 최적해 x(t) 를 구하는 과정을 센터링(centering)이라고 하고, 해를 중심점(central point)이라고 하며, t 값의 변화에 대한 최적해의 경로 x(t), t>0 를 중심경로(central path)라고 한다.

 

 

장벽 내부점 방법은 내부 이터레이션과 외부 이터레이션 등 두 개의 이터레이션(iteration) 루프로 구성된다. 내부 이터레이션은 특정 t 값에서 뉴턴방법을 사용하기 때문에, 외부 이터레이션은 t 를 증가시키면서 최적해를 찾아 나가기 때문에 필요한 것이다.

이러한 내부와 외부 이터레이션을 한 개의 이터레이션으로 통합한 알고리즘이 있는데 이에 대해서는 다음에 설명하기로 한다.

그렇다면 특정 t 에서 구한 최적값 f(x(t)) 와 식 (1)의 최적값 p 의 차이는 어떻게 계산할 수 있을까. t 값의 증가를 어딘가에서 멈추려면 이 값을 아는 것이 중요하다. f(x(t))p 를 계산하기 위해서, 식 (1)의 라그랑지안 (Lagrangian) 부터 시작한다.

 

(5)L(x,μ,λ)=f(x)+i=1mμigi(x)+λT(Axb)

 

이에 대한 라그랑지 듀얼 함수(Lagrange dual function)는 다음과 같다.

 

(6)d(μ,λ)=minxL(x,μ,λ)=minx(f(x)+i=1mμigi(x)+λT(Axb))

 

⁡ 여기서 Ax=b 이고 KKT 수정식에서는 μi=1tgi(x) 이기 때문에 위 식에 대입하면 다음과 같이 된다.

 

(7)d(μ(t),λ(t))=minx(f(x(t))1ti=1m1)=f(x(t))mt

 

⁡ 식 (7)에 의하면 특정 t 에서 듀얼리티 갭(duality gap)은 mt 임을 알 수 있다. 라그랑지 듀얼 함수는 프라이멀 최적화 문제의 해 p 보다 항상 같거나 작기 때문에 모든 t>0 에 대해서 다음 부등식이 성립한다.

 

(8)d(μ(t),λ(t))=f(x(t))mtp

 

식 (8)에 의하면 f(x(t))p 는 다음과 같게 되므로 t 일수록 x(t) 는 최적해에 근접해 나가는 것을 알 수 있다.

 

(9)f(x(t))pmt

 

식 (9)에서 mt 이 일정값 이하로 작아지면 최적해에 거의 근접했다는 신호로 볼 수 있으므로 t 에 대한 이테레이션을 멈출 수 있다.

 

 

장벽 내부점 방법을 정리하면 다음과 같다.

    0. 시작값 x 와 KKT식 근사화 파라미터 t 의 초기값, 파라미터 종료조건 값 ϵ>0, 스텝사이즈 γ>1 을 설정한다.

    1. 다음을 반복한다.

        [1] 다음 최적화 문제를 등식제약 뉴턴방법으로 푼다.

                minx tf(x)i=1mlog(gi(x))
                subject to :   Ax=b

        [2] x 를 업데이트 한다.

        [3] 다음 값이 종료조건 값 ϵ 보다 작으면 이터레이션을 중지한다.

                mtϵ

        [4] t 를 업데이트 한다.

                tγt

위 알고리즘에서 [1]에서 시작값 x 가 등식 제약조건을 Ax=b 를 만족하느냐 못하느냐에 따라서 표준 등식제약 뉴턴방법이나 infeasible-start 뉴턴방법을 선택한다. 여기서 중요한 것은 중심점 x(t) 는 정확도가 높을 필요가 없다는 점이다. x(t) 는 최종적인 최적해로 접근에 나가는 과정에서 나타나는 해에 불과하기 때문이다.

장벽 내부점 방법에서 중요한 것은 시작값 x 를 다음과 같이 부등식 제약조건을 만족하도록 정하는데 있다.

 

(10)gi(x)<0,  i=1,...,m

 

이에 대해서 많이 사용되는 방법은 다음과 같은 최적화 문제의 최적해를 구하는 것이다.

 

(11)s=min(x,s)ssubject to :   gi(x)s,  i=1,...,m

 

만약 s<0 이면 식 (10)의 조건을 만족하는 x 를 구한 것이다. 이 때도 최적해 s 의 정확도가 높을 필요는 없고 gi(x)<0 의 조건만 만족할 정도면 충분하다.

 

 

댓글