팩토리오 품질 시스템, 수학적 모델링으로 생산량 예측하기
Solving Factorio Quality
Hacker News게임 '팩토리오'의 신규 품질(Quality) 시스템은 아이템 제작에 무작위성을 부여하여 기존의 결정론적 공장 설계 방식을 복잡하게 만들었습니다.
- 이러한 복잡하고 반복적인 생산 과정(재활용 및 업사이클링 루프)의 장기 평균 처리량은 행렬 연산을 활용한 '동적 평형 방정식'으로 모델링할 수 있습니다.
- 본 분석은 높은 수준의 무작위성(Randomness)이 포함된 복잡계에서도 선형대수학적 접근을 통해 안정적인 장기 생산 예측치를 얻을 수 있음을 입증합니다.
- 다만, 이 모델은 시스템이 충분히 많은 반복을 거쳐 안정적인 '장기 평균(Long-term average)' 상태에 도달했을 때만 유효하다는 한계가 있습니다.
공장 건설 게임 장르의 대표작인 팩토리오는 자원 채집과 자동화된 기계 설비를 통해 복잡한 아이템을 제작하는 것이 핵심입니다. 최근 추가된 'Space Age' 확장에서는 모든 아이템에 정상(normal)부터 전설(legendary)까지 다섯 가지 품질 등급이 도입되었으며, 이로 인해 생산 과정에 무작위성이 생겼습니다. 특히 품질 모듈과 재활용기(recycler)를 활용한 업사이클링 루프는 제품의 품질을 높일 수 있지만, 이러한 반복적인 과정은 기존의 결정론적 공장 설계 방식으로는 예측하기 매우 어렵게 만듭니다.
이러한 복잡하고 순환하는 생산 체인을 모델링하기 위해, 글쓴이는 선형대수학적 접근 방식을 제안합니다. 아이템의 품질 변화 확률을 추적하기 위해 벡터와 전이 행렬(transition matrix)을 사용하며, 다단계 공정은 연속적인 행렬 곱셈으로 계산할 수 있습니다. 재활용 루프를 거치는 과정에서 발생하는 모든 가능한 결과는 무한 합으로 표현되지만, 이 값들은 지수적으로 작아지기 때문에 유한한 값으로 수렴합니다.
궁극적으로 시스템의 장기 평균 처리량(Long-term average throughput)을 계산하는 것이 목표입니다. 단일 아이템의 확률 대신, 충분히 오랜 시간 동안 시스템을 통과하는 '평균 생산 속도'를 5개 품질 등급의 벡터로 정의합니다. 이 과정은 동적 평형 방정식(dynamic equilibrium)으로 수렴하며, 가우스 소거법(Gaussian elimination) 같은 선형 방정식을 통해 해결할 수 있습니다. 이를 통해 전체 시스템의 장기적인 평균 산출량과 필요한 재활용 용량을 계산할 수 있습니다.