
온라인 문제(online problem)의 대표격인 스키 대여 문제(ski rental problem)는 지난 수십 년간 깊이 그리고 널리 연구되어 온 매우 유서 깊은 문제입니다. 제 블로그에서도 비중 있게 다룬 적이 있는데요. 문제는 다음과 같이 정의됩니다. 우리는 스키장이 문을 닫을 때까지 스키를 타고 싶어 합니다. 스키를 타는 방법은 두 가지로, 하나는 1 원으로 스키를 하루 대여하는 것이고, 다른 하나는
만약 스키장이 언제 닫는지를 알면 우리는 쉽게 문제를 해결할 수 있습니다. 폐장하는 때가
그러므로 모든 상황에 대비하기 위해서는 처음 며칠 간은 빌리다가 언젠가 구매를 하는 것이 합리적인 전략이 될 것입니다. 실제로 이전 포스트에서 우리는
[스키 대여 문제 / Ski Rental Problem] 문제 정의 & Break-Even Algorithm
이번 포스트에서는 기초적인 온라인 문제 중 하나인 스키 대여 문제(ski rental problem)를 다루어 보도록 하겠습니다. 온라인 문제 및 온라인 알고리즘이 무엇인지는 이전 글을 참조해 주시기 바랍
gazelle-and-cs.tistory.com
어떤 상황에서도 좋은 경쟁비로 문제를 해결할 수 있다는 것은 매우 고무적인 일이지만, 최악의 경우에는 그보다 좋은 경쟁비를 가질 수 없다는 사실은 아쉬운 일입니다. 하지만 그러한 부정적인 결과는 알고리즘이 스키장이 언제 폐장하는지 전혀 모른다는 가정을 악용하여 얻은 것으로써 현실성이 지극히 떨어지는 일입니다. 일기 예보를 생각해 봅시다. 우리는 과거의 기상 데이터를 토대로 미래의 날씨를 완벽하지는 않지만 합리적인 수준으로 예측해 냅니다. 이와 같이 많은 경우 우리는 완전히 믿을 수는 없지만 어느 정도는 신뢰할 만한 예측치를 생성할 수 있는 능력이 있습니다. 이 논의를 스키 대여 문제에 적용하면 우리는 다음과 같은 질문을 떠올릴 수 있습니다.
완전히 믿을 수는 없지만 예상 폐장일이 주어졌을 때 더 좋은 경쟁비로 문제를 해결할 수 있는가?
예상 폐장일이 주어졌을 때 문제를 어떻게 풀 수 있을지 생각해 봅시다. 먼저 예상 폐장일이 정말로 실제 폐장일과 동일할 수 있습니다. 다시 말해, 오차가 전혀 없는 상황인 것이죠. 이때 우리가 처음부터 예상 폐장일을 믿는다면 기존의 경쟁비보다 더 좋은 경쟁비의 알고리즘을 얻을 수 있을 것입니다. 반면 예상 폐장일이 실제 폐장일을 전혀 반영하지 못해 오차가 큰 상황도 발생할 수 있습니다. 이때 예상 폐장일을 너무 믿었다가는 조악한 결과를 얻겠죠. 따라서 우리의 알고리즘은 다음 두 상황에 적절히 균형을 유지하면서 동작해야 합니다.
- 예측이 매우 정확한 경우에는 좋은 품질의 답을 출력해야 한다.
- 예측이 부정확한 경우에도 합리적인 수준의 답은 보장해야 한다.
과연 어떻게 하면 예측치를 활용하여 위 상황에서 모두 경쟁적으로 동작하는 알고리즘을 얻을 수 있을까요? 이번 포스트에서는 이에 대해서 공부해 보도록 하겠습니다.
문제 정의
이번 글에서 해결하려는 문제를 엄밀하게 정의하여 보겠습니다. 우리는 어떤 스키장에 스키를 타러 왔습니다. 스키를 타는 방법은 두 가지로 하나는 1의 비용으로 하루 대여하는 것이고, 다른 하나는
알고리즘의 성능은 어떻게 표현할 수 있을까요? 앞에서 우리는 알고리즘이 상반되는 두 상황에 대해 균형을 유지해야 한다고 논의했습니다. 이를 위해서는 오차를 정의해야 합니다. 오차는 실제 폐장일과 예상 폐장일의 차이로 정의하겠습니다. 기호로는
- 일관성(consistency): 만약
일 때 알고리즘이 최적해의 배 이내의 비용을 내는 답을 출력한다면, 이 알고리즘을 -일관(consistent) 알고리즘이라 부른다. - 강건성(robustness): 임의의
에 대해 알고리즘이 최적해의 배 이내의 비용을 내는 답을 출력한다면, 이 알고리즘을 -강건(robust) 알고리즘이라 부른다.
참고로 이전 포스트에서 공부한
강건비
1-일관, -강건 알고리즘
본 내용으로 바로 들어가기 앞서 다음의 간단한 알고리즘을 한번 생각해 봅시다.
만약이면 끝날 때까지 스키를 빌리기만 한다. 반대로 이면 스키를 구매한다.
사실 이 알고리즘은 예측치
정리 1. 위 알고리즘의 비강건성
위 알고리즘은 최대
[증명] 만약
경우 1.
경우 2.
정리 1의 식을 통해 우리는 이 알고리즘이 오차가 매우 작은 경우, 예컨대
-일관, -강건 알고리즘
이전 절에서 소개한 알고리즘이 강건하지 못한 이유는 예상 폐장일을 너무 믿었다는 데에 있습니다. 예상 폐장일이 거의 올바른 경우에는 거의 최적해의 답을 출력했지만, 예측이 완전히 잘못된 경우에는 너무 많은 비용을 내야 했죠. 따라서 우리는 예측을 어느 정도까지는 믿다가 어느 때부터는 믿지 말아야 강건한 알고리즘을 얻을 수 있습니다. 이 아이디어를 확장하여 다음의 알고리즘을 생각해 보겠습니다. 이 알고리즘은 0과 1 사이의 어떤
만약라면, 번째 날까지 빌린 후 그다음 날에도 여전히 스키장이 열면 스키를 구매한다.
만약라면, 번째 날까지 빌린 후 그다음 날에도 여전히 개장하면 스키를 구매한다.
직관적으로 말해
이제 이 알고리즘을 분석해 보겠습니다. 먼저 이 알고리즘이 일관적이라는 것부터 보이겠습니다.
정리 2. 위 알고리즘의 일관성
위 알고리즘은 최대
[증명] 정리 1의 증명에서와 마찬가지로 이 알고리즘의 출력의 비용을
경우 1.
이제
경우 2.
정리 2를 통해 만약 예측치의 오차가 매우 작다면 이 알고리즘은 최적해의 거의
정리 3. 위 알고리즘의 강건성
위 알고리즘은 최대
[증명] 여기서도
마지막으로
이로써 이 알고리즘은 오차
마치며
이것으로 스키 대여 문제에서 예상 폐장일이 입력으로 주어지는 경우 이를 활용하여 더 좋은 성능의 알고리즘을 얻는 방법에 대해 알아 보았습니다. 이러한 알고리즘은 예측이 정확할 때의 성능인 일관성과 예측이 틀렸을 때 보장해 주는 성능인 강건성 등 두 가지 척도로 분석할 수 있었습니다. 마지막으로 예측을 완전히 믿는 1-일관 알고리즘과 전혀 믿지 않는 2-경쟁 알고리즘을 잘 섞어
지난 몇 년 사이 인공 지능(artificial intelligence) 및 기계 학습(machine learning)은 컴퓨터 과학의 지평을 획기적으로 확장시켰습니다. 이론적인 아이디어에 불과했던 이 개념들은 컴퓨터 시스템의 성능이 비약적으로 향상되면서 산업적인 활용성이 입증되었으며, 이제는 컴퓨터 과학을 넘어 여러 이공 계열 학문은 물론 인문 계열 분야에서도 인공 지능과 기계 학습을 활용 및 연구하고 있습니다.
이러한 흐름은 이론 컴퓨터 과학(theoretical computer science)에서도 이어지나 봅니다. 특히 캐싱(caching)을 필두로 여러 온라인 문제에 기계 학습으로 얻은 예측치를 엮어 분석하는 연구가 지난 사오 년 전부터 폭발적으로 진행되었습니다. 제가 한창 대학원 생활을 시작할 무렵이더군요. 최근에서야 이러한 흐름을 알게 되어 약간은 아쉬운 마음이 있습니다만, 최근 이와 관련하여 몇 가지 흥미로운 결과를 얻은 것 같아 기쁘기도 합니다. 다른 온라인 문제에 대해서도 일관성, 강건성 분석을 어떻게 하는지 공부해야겠습니다. 공유할 만한 결과를 알게 되면 포스팅하도록 하겠습니다.
읽어 주셔서 고맙습니다.
참고 문헌
[1] Manish Purohit, Zoya Svitkina, and Ravi Kumar. "Improving online algorithms via ML predictions." Advances in Neural Information Processing Systems 31 (2018).