RT-W10: 노동력 계획 최적화

🎯 연구 배경

창고 현장의 인력 스케줄링은 오랜 기간 현장 반장의 경험에 의존해 왔습니다. 수동 스케줄링은 계절성·프로모션·주말 편차를 반영하지 못해 오전 교대 과부하 / 야간 교대 유휴 편향이 반복 발생하고, 월 단위 배치표 작성에 12시간 이상이 소요됩니다. RT-W10은 AI 수요 예측 + 정수계획(Integer Programming)을 결합한 동적 배치 모델을 설계하여 인건비를 최소화하면서 교대별 처리량을 균등화합니다. 5월 실측 기준 인건비 −12.3%, 교대별 처리량 표준편차 41.2 → 18.7의 균등화 효과를 확인했습니다.

🔢 인력 수요 예측

주문 예측치를 존(zone)별 평균 피킹 속도(건/시간)로 나누어 필요 작업 시간을 계산하고, 불확실성을 보정하기 위한 안전 버퍼 20%를 더한 뒤 8시간 교대로 나누어 올림합니다. 수요 모델은 RT-W6의 앙상블 Prophet + XGBoost 예측기를 그대로 재사용합니다.

def forecast_labor_demand(date, zone): order_forecast = demand_model.predict(date, zone) avg_pick_rate = get_avg_pick_rate(zone) # 건/시간 required_hours = order_forecast / avg_pick_rate # 안전 버퍼 20% 추가 return ceil(required_hours * 1.2 / 8) # 8시간 교대
🧩 제약 조건

정수계획 모델은 직원별 숙련도 점수(특정 존 경험률), 선호 시간대, 계약 조건(파트타임/풀타임)을 제약으로 반영합니다. 위반 시 페널티가 발생하여 최적해에서 자연스럽게 배제됩니다.

📋 교대당 최소 인원
HARD
각 교대(오전/오후/야간)의 배정 인원이 예측 수요를 충족해야 합니다. 부족 시 서비스 수준 저하, 초과 시 인건비 낭비.
Σ x[e,s] ≥ demand[s] ∀s
⏱ 연속 근무 제한
HARD
근로기준법 및 안전 정책상 동일 직원의 연속 교대를 최대 2교대(16h) 이내로 제한합니다. 위반 시 피로 누적·산재 위험.
Σ_{s∈block} x[e,s] ≤ 2
📝 직원별 계약 시간
SOFT
파트타임(PT)은 주 20h 이하, 풀타임(FT)은 주 40h ± 4h를 준수해야 합니다. 초과 시 연장수당 페널티 반영.
Σ_{s} h[s]·x[e,s] ≤ contract[e]
⚙️ 목적함수 · 정수계획 형식

결정 변수 x[e,s] ∈ {0,1}는 직원 e를 교대 s에 배정할지 여부입니다. 목적함수는 총 인건비 최소화이며, 교대당 최소 인원과 직원별 계약 시간이 제약으로 걸립니다.

minimize: Σ wage[e] * x[e,s] # 인건비 s.t. Σ x[e,s] >= demand[s] # 교대당 최소 인원 Σ x[e,s] <= contract[e] # 직원별 계약 시간 x[e,s] ∈ {0,1} # 배정 이진 변수 # 솔버: OR-Tools CP-SAT · 존/교대/직원 = 4×3×50 ≈ 600 변수 # 평균 해 도출 시간: 2.4초 (5월 월간 스케줄 기준)
📉 5월 배치 결과
✓ AI 배치 계획 적용 후 (2025.05 기준)
인건비
−12.3%
기준(3월 수동 배치) 대비 절감
처리량 표준편차
18.7
41.2 → 18.7 · 교대별 균등화
안전 버퍼
20%
수요 변동·결원 흡수 여유