본문 바로가기
개념공부/Convex Optimization

OSQP Warm Start - Initial guess

by Zach Choi 2025. 1. 7.
728x90
반응형

Warm start

 warm start란 최적화 문제를 풀 때, 이전에 풀었던 문제의 해를 시작점으로 사용해 문제를 더 빨리 푸는 기능이다. 즉, Solver에게 Initial guess로 이전의 해를 제공함으로서 답을 더 빨리 찾도록 도와준다.

 

OSQP Warm start

 osqp 또한 warm start 기능을 제공한다. osqp solver의 workspace를 생성할 때 osqp_setup_default_setting() 함수를 사용하면 자동으로 warm start 기능이 활성화 된다.

 

 다만, 매번 QP를 새롭게 푸는 환경에서 이전에 푼 문제의 답을 새로운 문제에 제공하고 싶을 때는 추가 함수 호출이 필요하다. osqp_warm_start() or osqp_warm_start_x() or osqp_warm_start_y() 이다. 

 

 위 함수의 x는 Primal variable (내가 찾고자 하는 최적 값)이고 y는 Dual variable (라그랑주 승수)이다. OSQP Solver는 Solution 구조체 내에 x와 y 값을 모두 출력해준다. 따라서 이 두가지 값을 저장하여 다음 문제를 풀 때 warm start의 인자로 입력 가능하다.

 

 OSQP Solver의 warm start 기능에 대해선 아래 페이지를 참고하자.

 

OSQP solver documentation

The OSQP (Operator Splitting Quadratic Program) solver is a numerical optimization package for solving convex quadratic programs.

osqp.org

 

반응형

 

728x90
반응형