현실 세계의 복잡하고 예측 불가능한 문제 앞에서, 기존의 최적화 기법들이 종종 한계를 드러냅니다.
수요 변동, 예상치 못한 지연, 혹은 급격한 시장 변화와 같은 불확실성은 고정된 수치로 표현되는 데이터 모델에 균열을 일으킵니다.
“If your spreadsheet is lying about the future”라는 도발적인 질문처럼, 우리는 미래를 완벽히 예측할 수 없다는 사실을 인정하고, 이러한 불확실성을 어떻게 의사결정 과정에 녹여낼 것인가에 대한 근본적인 고민에 직면하게 됩니다.
이러한 지점에서 확률 계획법(Stochastic Programming)은 그 중요성을 발휘합니다.
불확실성을 직접 모델에 통합하여, 예측이 빗나가더라도 견딜 수 있는 견고한 의사결정을 내릴 수 있도록 돕는 강력한 도구이기 때문입니다.
이번 글에서는 확률 계획법의 기본 개념을 소개하고, 불확실성을 다루는 네 가지 표준적인 접근 방식과 각 방식의 장단점을 심층적으로 분석하여, 여러분의 의사결정 프레임워크를 한 단계 발전시킬 실질적인 통찰을 제공하고자 합니다.
예측 불가능한 미래, 패션 회사의 딜레마
패션 회사를 운영하는 시나리오를 가정해 봅시다.
독일에서 겨울 의류를 판매하고, 방글라데시에서 생산이 이루어집니다.
생산된 의류가 도착하기까지 수 주가 소요되므로, 가을에 다가올 겨울 시즌의 수요를 예측하여 생산량을 결정해야 합니다.
너무 적게 생산하면 판매 기회를 놓치고, 너무 많이 생산하면 재고 부담으로 이어집니다.
핵심은 지금 얼마나 생산할 것인가이며, 이 결정은 예측 불가능한 겨울 수요에 달려 있습니다.
만약 불확실성을 무시하고 수요를 고정된 숫자로 가정한다면, 일반적인 선형 계획법(Linear Programming, LP) 모델을 세울 수 있습니다.
여기서 x는 생산량, c는 단위 생산 비용, h는 수요, T는 생산량과 수요를 연결하는 항등 행렬입니다.
제약 조건은 생산량이 수요를 충족해야 함을 의미합니다.
하지만 현실에서 수요(h)는 고정된 숫자가 아니라 확률 변수(random variable), ξ입니다.
그렇다면 확률 변수에 의존하는 제약 조건을 x가 어떻게 만족해야 할까요?
“x=100이 수요가 80일 수도, 120일 수도 있는 상황에서 타당한가?”와 같은 질문은 최적화 모델을 정의하는 것 자체를 어렵게 만듭니다.
확률 계획법은 바로 이러한 근본적인 문제에 대한 체계적인 해결책을 제시합니다.
4가지 확률 계획법 접근법
앞서 언급한 정의되지 않은 LP 문제를 명확한 최적화 문제로 전환하는 네 가지 주요 접근 방식이 존재합니다.
각 방식은 불확실성에 대한 가정의 정도와 위험 회피 성향에 따라 차이를 보입니다.
1. 강건 최적화 (Robust Optimization): 최악의 상황에 대비하라
가장 보수적인 접근 방식입니다.
확률 변수 ξ의 전체 확률 분포를 알 필요는 없고, 단지 ξ가 취할 수 있는 값들의 집합, 즉 불확실성 집합(uncertainty set), U만 알면 됩니다.
이 방식은 “실제로 어떤 ξ ∈ U가 발생하더라도 항상 실행 가능한 최선의 결정은 무엇인가?”라는 질문에 답합니다.
제약 조건은 불확실성 집합 내의 모든 ξ에 대해 반드시 성립해야 합니다.
패션 회사의 예시에서 U가 [0, 10]이라면, 수요를 10으로 가정하고 계획을 세우게 됩니다.
이는 결정의 견고함이라는 장점을 가지지만, 불필요한 재고를 보유하게 되는 보수성이라는 단점 또한 내포합니다.
2. 확률 제약 (Chance Constraints): 최악의 상황을 완화하다
강건 최적화가 모든 가능한 결과에 대비하는 반면, 확률 제약은 대부분의 결과에 대비하도록 제약 조건을 완화합니다.
특정 확률 수준 α(예: 95%)을 설정하고, 제약 조건이 최소한 해당 확률로 만족되도록 요구합니다.
“모든 제약 조건의 항목이 동일한 확률 α 이상으로 동시에 만족되어야 한다”는 결합 확률 제약(joint chance constraint)과 “각각의 제약 i가 확률 αᵢ 이상으로 만족되어야 한다”는 개별 확률 제약(individual chance constraint)이 있습니다.
결합 확률 제약이 개별 확률 제약보다 더 보수적이며, α 값을 높이면 강건 최적화에 가까워지고, 낮추면 실행 가능성에 대한 불확실성이 커집니다.
대부분의 실제 응용에서는 0.9~0.99 범위의 α 값을 사용합니다.
다만, 확률 제약은 일반적으로 다루기 어렵다는 단점이 있습니다.
확률 항은 x에 대한 비선형적이고 비볼록 함수가 될 수 있어, 표준 LP 솔버에 직접 적용하기 어려운 경우가 많습니다.
특별한 경우(가우시안 노이즈, 특정 분포 혼합, 샘플 기반 근사 등)에는 다룰 수 있지만, 일반적인 문제는 처음 보이는 것보다 더 복잡합니다.
3. 2단계 재대응 모델 (Two-Stage Recourse Models): 결정하고, 관찰하고, 수정하라
앞선 두 접근 방식이 제약 조건 위반을 피하려는 데 초점을 맞춘다면, 재대응 모델은 제약 조건 위반이 치명적이지 않고 사후 조치가 가능하다고 가정합니다.
패션 회사의 경우, 수요 부족은 판매 손실로 이어지지만, 긴급 생산이나 항공 운송, 혹은 판매 손실 수용 등으로 해결될 수 있습니다.
이러한 접근 방식은 재대응(recourse) 개념을 중심으로 합니다.
2단계 모델에서는 다음과 같은 시간 순서로 진행됩니다.
- 1단계 (현재): 확률 변수 ξ가 아직 불확실한 상태에서 1단계 결정 x를 내립니다.
- 그 후: ξ가 실현되어(실제 값으로 확정되어) 알려집니다.
- 2단계 (나중): ξ를 알고 2단계 결정 y를 내립니다.
수학적으로 1단계는 일반 LP와 유사하지만, 목적 함수에 예상되는 미래 비용이 포함됩니다.
v(ξ, x)는 1단계에서 x를 선택하고 ξ가 특정 값으로 실현되었을 때의 2단계 문제 최적값을 의미합니다.
여기서 우변은 1단계 결정이 ξ의 실현 이후 얼마나 부족분을 채우지 못했는지를 나타내는 결핍분(shortfall)이며, 재대응 결정 y는 이 간극을 비용 q(ξ)ᵀ y를 들여 메웁니다.
즉, 초기 비용 cᵀx를 지불하고, 확률 변수의 영향으로 발생하는 사후 처리 비용의 기댓값을 추가로 지불하는 구조입니다.
2단계 재대응 모델은 실제 의사결정의 시간 순서(생산 계획, 재고 관리, 에너지 파견, 스케줄링 등)를 잘 포착하고 수학적으로 비교적 다루기 쉽기 때문에 실무에서 가장 널리 사용되는 방식 중 하나입니다.
4. 다단계 재대응 모델 (Multi-Stage Recourse Models): 순차적 결정의 진화
2단계 모델이 단 한 번의 사후 조치를 허용한다면, 다단계 모델은 시간에 따라 여러 번의 의사결정을 내릴 수 있도록 확장합니다.
각 단계마다 새로운 불확실성이 실현되고, 그에 따라 추가적인 결정을 내리는 방식입니다.
예를 들어, 분기별로 수요를 재평가하고 생산량을 조정하는 시나리오를 생각할 수 있습니다.
초기 결정 x₁은 첫 번째 단계의 불확실성 ξ₁에 대한 예상 비용을 고려하며, 이후 단계의 결정 x₂, x₃…는 이전 단계의 결정과 실현된 불확실성을 바탕으로 이루어집니다.
이러한 다단계 모델은 동적인 환경에서의 의사결정을 더 정확하게 반영할 수 있지만, 모델의 복잡성이 기하급수적으로 증가하여 계산 비용이 매우 높아진다는 단점이 있습니다.
확률 계획법, 실질적 가치가 있는가?
이러한 확률 계획법 기법들은 확실히 기존 LP 모델보다 더 많은 수학적 복잡성을 요구합니다.
불확실성 집합을 정의하거나, 확률 분포를 추정하거나, 다단계 모델을 구축하는 과정은 상당한 노력과 전문성을 필요로 합니다.
하지만 이러한 노력은 실질적인 이점으로 이어질 수 있습니다.
예측 불가능한 사건으로 인한 손실을 최소화하고, 기회를 극대화하며, 다양한 시나리오에 보다 유연하게 대처할 수 있게 해줍니다.
특히, 공급망 관리, 금융 포트폴리오 최적화, 에너지 시스템 운영, 자원 배분 등 불확실성이 높은 산업 분야에서 확률 계획법은 경쟁 우위를 확보하는 핵심 전략이 될 수 있습니다.
따라서, 여러분의 비즈니스 환경에서 불확실성이 중요한 영향을 미친다면, 확률 계획법 도입을 진지하게 고려해 볼 가치가 있습니다.
초기 투자 비용이 들더라도, 장기적인 관점에서 더욱 견고하고 탄력적인 의사결정 시스템을 구축하는 것은 필수적입니다.
출처: https://towardsdatascience.com/a-gentle-introduction-to-stochastic-programming/