Мне кажется этот алгоритм самый быстрый (не знаю точно название алгоритма, но суть в следующем):
1. Пишем уравнение прямой между текущей координатой объекта и пунктом назначения (
www.math.by/geometry/eqline.html).
2. Движемся вдоль этой прямой до первого препятствия
3. Если наткнулись на препятствие, начинаем обход его, скажем, справа. При каждом шаге проверяем, а не на нашей ли прямой находимся
4. Если оказались снова на прямой, и это не та точка, с которой начали обход, то продолжаем идти дальше вдоль прямой до пункта назначения или следующего препятствия.
5. Если оказались снова в той точке, с которой начали обход, или в одной из точек на прямой, которая дальше от пункта назначения, что точка, откуда начали обход (т.е. вернулись назад), то пытаемся обойти препятствие уже слева.
6. Если и здесь вернулись в точку, с которой начали обход, то желаемая точка назначения недостижима.