Sto implementando un algoritmo A * multi-agente su una mappa di tessere. Gli agenti si muovono solo negli assi X e Y. Evito le collisioni tra di loro controllando dove si trovano gli altri durante il calcolo dei percorsi.
Funziona bene tranne la situazione in cui gli agenti devono passare la stessa tessera da direzioni diverse. In situazioni come questa, una soluzione ottimale sarebbe che un agente aspetti che passi l'altro:
Inoltre, se non esiste un corridoio settentrionale, il rilevamento dei percorsi non riesce.
Come potrei implementare un tale algoritmo?