Как составить алгоритм нахождения самого короткого пути с обходом объектов?
Гуглите алгоритмы о кратчайшем пути. В голову приходит первым алгоритм Беллмана — Форда.
https://ru.wikipedia.org/wiki/Алгоритм_поиска_A*
www.policyalmanac.org/games/aStarTutorial_rus.htm