순서
I. OD + ID의 동작방식
II. CBS의 동작방식
III. 일반적으로 CBS를 채택하는 이유
다양한 MAPF 종류들을 보며 OD+ID에 시선이 갔다.
현재 내가 사용중인 CBS가 몰랐던 OD+ID와 비슷해 보였고, OD+ID를 왜 안쓰지? 라는 의문점이 생겼기 때문..
결과적으로,
OD+ID
독립적으로 각각 경로를 다 만들어 놓고 충돌이 발생하면, 그제서야 해결. 속도가 빠르다.
CBS
개별 경로 탐색을 하며 탐색 도중 발생한 충돌에 대해 조건 세분화를 시켜 탐색을 마무리 한다.
충돌을 명확한 Constraint를 가지고 해결할 수 있고 복잡한 문제상황을 풀어낼 수 있다.
오묘하게 비슷한듯 다르다...
I. OD + ID의 동작방식
OD (Operator Decomposition) + ID (Independence Detection)
탐색 - ID (독립성 탐지)
각각 Agent들을 독립적으로 관리한다. 동시에 모두를 고려하여 Planning하는 것이 아닌,
평소에 A*문제 풀듯이 개별 Agent별로 경로 Planning을 진행하여 완료한다.
충돌 - OD (연산 분해)
다 Planning이 완료 된 후, 충돌을 감지한다면 충돌을 해결하기 위한(주로 발생시킨) Agent만 별도로 재탐색을 진행한다.
즉, 개별 경로탐색과 충돌시에도 개별로 재탐색을 진행하기에 효율적이고, 내가 현재 쓰는 방식과 유사하다고 생각했었다.
II. CBS의 동작방식
CBS (Conflict - Based Search)
Low-Level Search (탐색)
각 Agent의 경로를 찾는다.
High-Level Search(충돌) - 제약조건을 통한 분기
한 Agent가 경로 탐색도중 충돌을 발견하면 Constraint를 설정해 분기를 생성하여 탐색한다.
예를 들면,충돌이 발생하는 Path에서 기다렸다가 갈 것인가(Time Constraint) 다른 경로로 우회할 것인가(Space Constraint) 조건을 통해 선택하게 함.
탐색시 결국 G값에 최종 시간이 예측되므로 나는 두 경우의 Search Node를 모두 만들어 비교하는 A*를 사용한다.
III. 일반적으로 CBS를 채택하는 이유
1. 충돌 해결의 명확성
충돌을 위한 제약조건을 추가하는 면이 직관적으로 해결의 명확성을 제공할 수 있다.
2. 확장성
제약조건을 조작함으로 인해 다양한 환경에서 유연하게 적용될 수 있다.
3.복잡한 충돌상황 해결
OD+ID는 독립성을 최대한 활용하기에 효율적으로 보이지만 복잡한 충돌 상황에서는 해결이 효과적이지 못함.
(이미 경로를 다 뽑아놓고 나중에 충돌을 확인하기 때문)
4. 단순한 알고리즘
개발 유지보수의 장점이 있다.
+ 이미 물류체계에서 검증이 많이 되었다고 한다.
다만,
1. 실시간 성능이 더 중요한 경우
2. 단순한 환경의 경우 등
환경에 따라 OD+ID가 더 적합한 알고리즘이 될 수 있다.
'Algorithm > Path Planning' 카테고리의 다른 글
[Algorithm][Path Planning] 경로 교착(Dead Lock)과 Push Algorithm (2) | 2024.09.07 |
---|---|
[Algorithm][Path Planning] Multi-Agent의 Conflict 해결 방법들 (0) | 2024.09.06 |
[Algorithm][Path Planning] MAPF(Multi Agent Path Finding) 종류 (0) | 2024.09.05 |
[Algorithm][Path Planning] MAPF? CCBS? 등 개념 / 종류 정리 (0) | 2024.09.05 |