본문 바로가기
Paper Review/Multi-Robot

Cooperative Pathfinding [AIIDE 2005]

by achrxme 2023. 8. 19.

1. Local Repair A*(LRA*)

각각 agent들은 다른 agent들(현재 이웃한 agent 제외)을 무시하고 A* 를 사용해 destination 까지 route를 찾음

-> 이후 충돌이 발생하기 직전까지 각자의 route를 따라 감

-> 충돌 직전, 나머지 route를 다시 계산함 (이번에는 충돌 예정인 agent가 이웃 해 있으므로 고려함)


2. Cooperative A*(CA*)

Cooperative pathfinding problem를 일련의 single agent search로 decouple 시킴

-> individual search는 이미 plan 된 다른 agent들의 route들을 고려하여 수행됨

*각 route를 따르는 state들은 'reservation table' 에 기록 됨

 

- Reservation table

Agent들의 shared knowlendge about each other's planned routes

 

- Implementation

Treat the reservation table as a 3D grid (2 spatial + 1 temporal dimention)

-> Hash table을 통해 쉽게 적용됨, (x, y, t) key

 

* Heuristic : Manhattan distance


3. Hierachical Cooperative A*(HCA*)

Hierachical A*

A*의 Heuristic 을 개선하기 위해 state space에 abstraction을 수행하는 방법에는 2가지가 있음

  • Approach 1 : precompute all distance in the abstract space and store them in a pattern database
  • Approach 2 : 'Hierachical A*'
    • The abstract distances are computed on demand
    • 'Hierachy' : refers th a series of abstractions of the state space, each more general than the previous (not restricted to spatial hierarchy)

Hierachical Cooperative A*(HCA*)

HCA* : A single domain abstraction을 포함하는 a simple hierachy를 사용함

-> ignores both the time dimension and the reservation table

     = The abstraction : a simple 2D map with all agents removed

 

->CA*와 비슷하지만 좀 더 sophisticate한 heuristic을 사용함 (RRA*를 사용해 abstract distance를 필요할 때마다 계산해냄)


Reverse Resumable A*(RRA*)

"To reuse search data in the abstraction domain for Hierachical A*"

 

A*를 거꾸로 수행함 (Goal G 에서 부터 시작해서 initial position O로 향함)

-> O에서 종료하는 대신, a specified node N 이 expanded 될 때 까지 수행함

-->  Search가 반대로 수행되므로, RRA*가 완료되면 N -> G인 optimal distance가 알려짐 (A* with a consistent heuristic의 성질)

 

*Consistent heuristic

- N : Current node, P : Child node

- $H(N)\leq dist(N,P) + H(P)$

    ex) Manhattan distance


4. Windowed Hierachical Cooperative A*(WHCA*)

3 Issues with HCA*

  1. 만약 한 agent가 목적지에 도착하면, 이 agent가 다른 agent들을 block off 할 수 있음
  2. Sensitivity of Agent ordering -> 모든 agen가 높은 priority를 짧은 시간 동안 가지면서 dynamic하게 순서를 바꾸는 것이 more robust solution
  3. HCA*에서는 반드시 전체 route를 큰 3D state space에서 계산해야 함 -> planning and plan execution을 interleave 시키면 더욱 효과적임

WHCA* : window the seach

-  Cooperative search가 fixed depth로 제한됨

- 각 agentsms 각자의 destination을 향해 partial route를 계산하고, 해당 route를 따라 움직이는 특정 순간에 window를 앞으로 shift하고 새로운 partial route를 계산함

- agent들이 올바른 방향으로 향하게 하도록 하기 위해, cooperative search depth만을 특정 깊이로 제한하고, abstract search는 전체 depth에서 수행 됨

 

* Trick : w step이후에는 agent들을 무시함 = abstract search space와 동일해짐

* Agent의 목표는 더이상 destination에 도착하는 것이 아님, 대신에 window를 끝내는 것 -> 어떤 종류의 w move라도 goal에 도달 함