Research Task · RT-W5 · 2025.03 · WMS AI
🚦 AGV 충돌 방지 및 토큰 기반 교통 관리
진입 토큰 · 예약 경로 · 충돌률 2.3% → 0.4% (목표 1% 초과 달성) · 박소연 선임연구원 · 연구노트 29p 대응
🎯 연구 배경
2월 RT-W4에서 멀티에이전트 Q-Learning으로 AGV 충돌률을 8.3% → 2.3%까지 낮췄지만, 좁은 Aisle 교차점에서 각 AGV가 상대 의도를 모른 채 독립 정책을 따르면서목표였던 1% 충돌률에 도달하지 못했습니다. RT-W5는 학습된 정책 위에 중앙 진입 토큰(Entry Token)과 예약 경로(Reserved Path) 알고리즘을 결합하여 충돌을 정책 레벨이 아닌 제어 레벨에서 원천 차단합니다. 3월 실서버 검증 결과 충돌률 0.4% (목표 1% 초과 달성), 평균 대기 시간 +8.3초의 작은 trade-off로 안전 마진을 확보했습니다.
🎫 진입 토큰(Entry Token) 방식
각 Aisle을 임계영역(critical section)으로 모델링하고, Semaphore 기반 토큰 N개을 발급합니다. AGV는 Aisle 진입 전 반드시 토큰을 획득해야 하며, 소진 시 대기합니다. 통과 후 토큰을 반납해 다음 AGV가 진입하도록 합니다.
class AisleTokenManager:
def __init__(self, max_concurrent=2):
self.tokens = defaultdict(lambda: Semaphore(max_concurrent))
self.occupied = defaultdict(set)
async def enter_aisle(self, agv_id, aisle_id):
await self.tokens[aisle_id].acquire()
self.occupied[aisle_id].add(agv_id)
# 토큰 획득 성공 → Aisle 진입 허용
def exit_aisle(self, agv_id, aisle_id):
self.occupied[aisle_id].discard(agv_id)
self.tokens[aisle_id].release()
# 토큰 반납 → 대기 중인 AGV 깨움
🗺️ 예약 경로(Reserved Path) 알고리즘
중앙 디스패처가 각 AGV의 예정 경로를 시간 단위로 예약합니다. 충돌 예측 시 우선순위에 따라 하위 AGV는 대기 또는 우회 경로를 부여받습니다. 우회 경로는 Dijkstra 기반 대안 탐색으로, 원래 거리 대비 최대 20%까지 허용됩니다.
🚨 긴급 주문 AGV
P1 · 최상위
당일 배송·VIP 주문 AGV. 토큰 우선 할당, 예약 경로 우선 확보. 다른 AGV는 대기 또는 우회.
🔋 배터리 부족 AGV
P2 · 중위
잔여 용량 20% 이하. 충전 스테이션 최단 경로를 확보. 긴급 AGV 다음 순위로 토큰 획득.
📦 일반 AGV
P3 · 기본
정기 피킹·이적재 AGV. 상위 AGV에게 양보하며 대기 혹은 우회. 평균 대기 시간이 가장 큼.
📉 3월 실서버 검증 결과
✓ Token + Reserved Path 결합 적용 (2025.03 기준)
충돌 발생률
0.4%
2.3% → 0.4% · −83% · 목표 1% 초과 달성
평균 대기 시간 증가
+8.3s
토큰 대기 · trade-off
우회 허용 범위
≤ 20%
Dijkstra 기반 대안 경로