У нас осталась крайняя точка (50,75), врЕменным исключением которой получается петля.
Здесь оранжевую линию пересекает одна лишь прямая.
Исключаем ее:
Теперь у нас вновь проблема:
Нам нужно включить обратно временно- исключенный узел,
но у нас есть три узла, которые нужно замкнуть двумя отрезками.
Значит один из двух временно исключенных отрезков нужно сохранить:
либо черный, либо зеленый, вместе с синим горизонтальным.
После рассмотрения обоих вариантов пришел к выводу,
что сохранение черного отрезка ведет к новой петле,
и еще одному шагу оптимизации, совершенно лишнему,
так как он приведет обратно к варианту с сохранением зеленого отрезка.
В итоге получилось то, что получилось:
Интересно, что длина получившегося маршрута не уменьшилась,
а осталась ровно той, что была после предыдущего этапа оптимизации...
А сейчас у меня есть две новости:
плохая и хорошая.
Плохая - у нас больше нет ни одной точки,
исключение которой дало бы петлю на укороченном маршруте.
Это значит, что мы свалились в какой-то локальный минимум,
дальнейшая оптимизация предложенным методом невозможна,
задача нахождения кратчайшего возможного пути на графе не решена.
Хорошая новость - у нас еще остался в запасе участок, с которым не понятно, петля там или не петля,
короче вот этот:
Попробую еще дооптимизировать в предположении, что это-таки петля...
Отредактировано Лукомор (2019-01-22 17:32:38)