BD-ADOPT: a hybrid DCOP algorithm with best-first and depth-first search strategies