CBS is a two-level algorithm.
At the high level, a search is performed on a tree based on conflicts between agents. At the low level, a search is performed only for a single agent at a time.
Unlike A*-search being exponential in the number of agents for MAPF problem, the high-level CBS is
exponential in the number of conflicts encountered during the solving process.
High Level
In high level, CBS construct binary tree named constrain tree. Each node has a set of constrains, a solution, and the total cost for this solution (a set of paths).
If all agents reach their goal without any conflict, this CT node N is declared as the goal node.
If there is a conflict, $C_n = (a_i, a_j, v, t)$. To guarantee optimality, one child add constrain $(a_i, v, t)$, the other add $(a_j, v, t)$.
Low Level
In low-level, each agent finds its own path disregarding other agents. Check low-level Conflict voidance table (CAT) to avoid conflicts. When two low-level states have same cost value, the state with smallest number of conflicts in CAT is preferred.