Да, конечно реализованы различные алгоритмы. Не забыт также принцип графов, и его оптимизации по раннему отсечению "мертвых" ветвей алгоритма. Не хотелось бы вдаваться в подробности, т.к. это достаточно сложные и в некоторых случаях эвристические методы.