리스트 s배치 문제의 정확 경쟁비율 619/583 결정 프로그램
초록
본 논문은 처리시간이 1인 작업들로 구성된 온라인 리스트 s‑배치 문제에서, 작업을 배치하여 전체 완료시간 합을 최소화하는 알고리즘의 경쟁비율을 정확히 619/583(≈1.0617)임을 검증하는 자바 프로그램을 제시한다.
상세 분석
논문은 먼저 온라인 리스트 s‑배치 문제를 형식적으로 정의한다. 입력은 순서대로 도착하는 단위 작업들이며, 각 배치는 하나의 설정(setup) 비용 s와 연속된 작업들로 구성된다. 배치가 완료되면 그 배치에 포함된 모든 작업은 동일한 완료시간을 갖게 되며, 목표는 전체 작업의 완료시간 합을 최소화하는 것이다. 기존 연구에서는 이 문제에 대해 상한과 하한이 각각 1.07과 1.05 정도로 제시되었으나, 정확한 경쟁비율은 알려지지 않았다.
저자는 경쟁비율을 정확히 구하기 위해 두 가지 핵심 아이디어를 도입한다. 첫째, 최적 오프라인 알고리즘의 구조적 특성을 분석하여, 최적 배치 구성이 “작업 수가 s와 관련된 특정 구간에 있을 때는 배치를 늘리고, 그렇지 않을 때는 배치를 줄인다”는 규칙을 도출한다. 이를 통해 상태 공간을 크게 축소할 수 있었다. 둘째, 온라인 알고리즘으로는 가장 널리 알려진 “가장 늦게 배치를 시작하는 전략”(lazy batching)을 채택하고, 이 전략이 최악의 입력에 대해 어떤 배치 패턴을 만들게 되는지를 프로그램으로 자동 생성한다.
자바 구현은 깊이 우선 탐색과 메모이제이션을 결합한 백트래킹 방식이다. 각 재귀 단계에서 현재까지의 배치 구성을 기반으로 가능한 다음 작업 배치를 후보로 생성하고, 하한값을 이용해 가지치기를 수행한다. 또한, 동일한 상태(남은 작업 수와 현재 배치 크기)에서 이미 계산된 비용은 해시맵에 저장해 재사용한다. 이러한 최적화 덕분에 전체 탐색 공간이 수천만 개 수준으로 감소했으며, 일반적인 PC에서도 몇 분 안에 모든 경우를 검증할 수 있었다.
프로그램은 두 가지 모드를 제공한다. (1) 오프라인 최적 비용을 계산하여 기준값을 얻는 모드, (2) 온라인 알고리즘이 특정 입력에 대해 발생시키는 비용을 시뮬레이션하는 모드. 두 모드의 결과를 비율로 나누어 경쟁비율을 구한다. 모든 가능한 입력 길이에 대해 exhaustive하게 검증한 결과, 가장 큰 비율은 619/583으로 나타났으며, 이는 기존 상한을 엄격히 개선한다.
이 결과는 경쟁비율이 유리수 형태로 정확히 표현될 수 있음을 보여준다. 또한, 프로그램이 제공하는 증명 방식은 다른 온라인 배치 문제에도 적용 가능하다는 점에서 방법론적 의의가 크다.
댓글 및 학술 토론
Loading comments...
의견 남기기