
자동화된 창고에서 수십 대의 AGV가 동시에 움직이면서 효율적으로 작업을 완료하는 것은 매우 복잡한 문제입니다. 기존의 규칙 기반 경로 계획 방식은 미리 정해진 경로를 따르거나 가장 짧은 거리의 경로를 선택하는 식으로 작동합니다. 그러나 현실의 물류 센터는 지속적으로 변화합니다. 다른 AGV의 움직임, 예기치 않은 장애물, 작업 우선순위 변경, 시간대별 혼잡도의 차이 같은 동적 요소들이 경로를 계속 수정하도록 강제합니다.
기존의 접근에서는 이러한 모든 변수를 규칙으로 명시하려다 보니 규칙이 지나치게 복잡해지고, 새로운 상황이 생기면 매번 규칙을 다시 작성해야 합니다. 게다가 여러 AGV 간의 상호작용을 최적화하는 것은 기하급수적인 복잡도를 갖기 때문에 규칙 기반 접근은 거의 불가능합니다.
머신러닝은 대량의 운영 데이터로부터 패턴을 학습하여 상황별로 최적의 경로를 제시할 수 있습니다. 예를 들어 "오후 3시경에는 이 통로가 혼잡하고, 이 시간에는 저 경로가 더 빠르다"는 식의 복잡한 패턴을 자동으로 학습할 수 있으므로 각 상황에 맞춘 최적의 결정이 가능합니다.
강화학습은 에이전트(AGV)가 환경과 상호작용하면서 보상을 받아 최적의 행동을 학습하는 방식입니다. 경로 최적화에 적용할 때 각 AGV가 자신의 경로를 선택하면서 동시에 다른 AGV와의 충돌을 피하고 전체 효율을 최대화하는 방법을 배우게 됩니다.
상태(State) 정의는 AGV가 현재 인식해야 할 정보입니다. 자신의 위치, 목표 지점, 주변의 다른 AGV 위치, 각 경로 구간의 혼잡도, 시간 정보 같은 것들을 포함합니다. 상태가 너무 복잡하면 학습이 어렵고, 너무 단순하면 최적화가 불가능하므로 신중한 설계가 필요합니다.
행동(Action) 정의는 AGV가 선택할 수 있는 움직임입니다. "다음 교차로에서 직진", "좌회전", "우회전" 같은 이산 행동이나, "시속 0.5미터로 북쪽으로 이동" 같은 연속 행동이 가능합니다.
보상(Reward) 함수는 AGV가 좋은 결정을 했는가를 평가합니다. 목표에 한 발 더 가까워지면 양의 보상, 다른 AGV와 충돌할 뻔하면 큰 음의 보상, 비효율적인 경로를 선택하면 작은 음의 보상 같은 식으로 설계됩니다.

Q-러닝은 각 상태에서 특정 행동을 취했을 때의 기대 보상을 학습하는 강화학습 알고리즘입니다. AGV의 경로 최적화에 효과적입니다.
학습 과정에서 AGV는 반복적으로 시뮬레이션이나 실제 환경에서 경로를 선택합니다. 매 순간 "현재 위치에서 직진했을 때 기대되는 최종 보상", "좌회전했을 때 기대되는 최종 보상" 같은 값들을 업데이트합니다. 시간이 지나면서 가장 높은 기대 보상을 주는 행동을 선택하게 됩니다.
이 방식의 장점은 상태 공간이 크지 않으면 매우 효율적이고 빠르게 수렴한다는 것입니다. 단점은 상태 공간이 매우 크면(예: 연속적인 좌표) 모든 상태-행동 조합을 저장할 수 없다는 것입니다. 따라서 Q-러닝은 교차로 중심의 이산 경로 계획에 특히 적합합니다.

정책 경사(Policy Gradient) 기법은 신경망을 사용하여 복잡한 상태 공간을 다룰 수 있습니다. 이는 Q-러닝의 한계를 극복합니다.
신경망의 입력은 AGV의 현재 상태 정보(위치, 목표, 장애물 맵, 다른 AGV 위치)이고, 출력은 각 행동의 선택 확률입니다. 신경망은 "이 상황에서는 직진이 70% 확률, 좌회전이 20% 확률, 우회전이 10% 확률이 최적이다"는 식의 확률 분포를 학습합니다.
이러한 확률 기반 정책은 다양한 행동을 시도하면서도 학습할 수 있게 합니다. 예를 들어 항상 최고 확률의 행동만 선택하면 국소 최적해에 갇힐 수 있지만, 때로는 낮은 확률의 행동도 시도하므로 더 좋은 경로를 발견할 가능성이 있습니다.
액터-크리틱(Actor-Critic) 방식은 정책 경사에 가치 추정을 결합하여 학습의 안정성과 효율성을 높입니다. 현재는 이 방식이 물류 로봇의 경로 계획에 가장 널리 사용됩니다.
LSTM(순환 신경망)이나 Transformer 같은 시계열 모델은 과거의 패턴으로부터 미래를 예측합니다. 예를 들어 "지난 한 시간 동안 복도 A의 혼잡도가 어떻게 변했는가"를 기반으로 다음 15분간의 혼잡도를 예측할 수 있습니다. 이 정보를 경로 계획에 사용하면 "현재는 빠르지만 앞으로 막힐 예정인 경로"를 피하고 "현재는 조금 길지만 앞으로 점점 빨라질 경로"를 선택할 수 있습니다.
물류 센터의 경로를 노드(교차로)와 간선(통로)으로 이루어진 그래프로 표현하면, 그래프 신경망이 각 구간의 혼잡도를 개별적으로 예측할 수 있습니다. 이는 "통로 A에서 B로 가는 부분의 혼잡도"를 세밀하게 파악하여 더욱 정교한 경로 계획을 가능하게 합니다.
선제적 계획으로 충돌 회피와 효율성을 동시에 달성할 수 있습니다.

수십 대의 AGV가 동시에 움직일 때, 각 AGV가 독립적으로 경로를 최적화하면 결과적으로 전체 시스템은 비효율적일 수 있습니다. 따라서 여러 AGV 간의 협력적 학습이 필요합니다.
중앙집중식 학습은 모든 AGV의 상태를 종합적으로 고려하는 중앙 에이전트가 각 AGV의 경로를 계획합니다. 이는 전역 최적해를 찾을 수 있지만 계산 복잡도가 AGV 수에 따라 기하급수적으로 증가합니다.
분산식 학습은 각 AGV가 독립적으로 학습하되 다른 AGV의 행동을 관찰하여 조정합니다. 이는 확장성이 뛰어나지만 에이전트 간의 조정 메커니즘이 복잡할 수 있습니다.
통신 기반 협력은 AGV 간에 의도를 공유하는 방식입니다. 예를 들어 "나는 이 경로로 가려고 하는데, 너는 괜찮은가?"라는 식의 사전 협의를 통해 충돌을 미리 방지합니다.
물류 센터의 경로를 그래프로 표현하면 다양한 머신러닝 기법을 적용할 수 있습니다.
그래프 신경망(GNN)은 노드(교차로)와 간선(통로)의 관계를 학습합니다. 각 구간의 길이, 혼잡도, 위험도, 바닥 상태 같은 정보가 간선의 속성이 되고, 신경망이 이러한 속성들로부터 최적의 경로를 추론합니다.
커뮤니티 탐지 알고리즘은 물류 센터를 자연스러운 구역으로 분할합니다. 예를 들어 "이 지역의 구조를 보면 5개의 클러스터로 나뉜다"는 것을 자동으로 파악하면, 구역별 경로 계획을 단순화할 수 있습니다.
병목 지점 식별은 어느 통로가 자주 혼잡해지는가를 파악합니다. 머신러닝 모델이 역사적 데이터로부터 "매일 오후 2시~3시에 이 통로가 막힌다"는 패턴을 학습하면, 그 시간에는 다른 경로를 미리 준비할 수 있습니다.

한 물류 센터에서 학습한 경로 최적화 모델을 다른 센터에 바로 적용하기는 어렵습니다. 각 센터의 레이아웃, 크기, 물품 종류가 다르기 때문입니다.
전이 학습은 이미 학습된 모델의 지식을 새로운 환경에 적응시키는 방법입니다. 예를 들어 센터 A에서 학습한 "혼잡도 예측 모델"을 센터 B에 적용하되, 센터 B의 데이터로 마지막 계층만 재학습하면 처음부터 학습하는 것보다 빠르고 적은 데이터로도 좋은 성능을 달성할 수 있습니다.
도메인 랜더마이제이션은 시뮬레이션 환경에서 학습한 모델이 현실 환경에서도 작동하도록 합니다. 시뮬레이션의 센터 크기, 혼잡도 패턴, AGV 속도 같은 파라미터를 무작위로 변경하면서 학습하면 모델이 다양한 환경에 견고해집니다.
머신러닝 모델이 아무리 정확해도 AGV가 대기하는 동안 계산하면 실용성이 없습니다. 따라서 실시간 성능이 매우 중요합니다.
모델 경량화는 신경망의 크기를 줄이면서도 성능을 유지하는 기법입니다. 양자화나 지식 증류로 매개변수 수를 줄이면 임베디드 프로세서에서도 빠르게 실행될 수 있습니다.
빠른 의사결정을 위해 여러 수준의 계획을 함께 사용합니다. 전역 경로는 느린 계산으로 정교하게, 지역 경로는 빠른 계산으로 신속하게 계획하면 전체적으로는 효율적이면서도 반응성 있는 경로 계획이 가능합니다.
캐싱 기법으로 자주 사용되는 경로나 계산 결과를 미리 저장하면 중복 계산을 피하고 응답 시간을 단축할 수 있습니다.

머신러닝 기반의 경로 최적화 시스템의 성능을 객관적으로 평가하는 것이 중요합니다.
처리량 개선은 단위 시간당 처리한 작업 수를 측정합니다. 규칙 기반 방식 대비 얼마나 많은 작업을 더 처리할 수 있는가를 정량화합니다. 에너지 효율성은 같은 양의 작업을 처리할 때 배터리 소비량이 줄어들었는가를 평가합니다. 더 효율적인 경로 계획은 AGV의 주행 거리를 줄이므로 자동으로 에너지 절감으로 이어집니다.
충돌 회피 능력은 예상치 못한 충돌이 얼마나 감소했는가를 추적합니다. 이는 시스템의 안정성을 나타내는 중요한 지표입니다. 운영자의 개입 빈도는 머신러닝 모델이 처리한 상황의 비율을 보여줍니다. 초기에는 개입이 자주 필요하지만 학습이 진행되면서 자동 처리 비율이 증가해야 합니다. 지표가 정체되면 모델의 한계에 도달했다는 신호이므로 재학습이나 아키텍처 변경을 고려해야 합니다.
