Нужна помощь с алгоритмом трассировки кабеля на плоскости
Исходные данные.
Имеется помещение (замкнутый многоугольник, заданный координатами вершин на плоскости). Внутри располагается выключатель (начальная точка, заданная координатами) на определенном расстоянии от стены (ребра многоугольника) и светильники (набор конечных точек внутри многоугольника).
Задача минимум.
Построить траекторию минимальной длины, соединяющую все точки внутри многоугольника. При построении приоритетными являются направления параллельные/перпендикулярные ближайшим ребрам. При условии минимизации общей длины светильники могут использоваться как промежуточные узлы,
могут быть подключены ответвлениями от "магистральной" линии,
или могут использоваться оба подхода.
Задача максимум.
При построении новой траектории учитывать уже проложенные маршруты, минимизируя количество пересечений (не в ущерб длине траектории). Иметь на выбор возможность прокладки новой траектории как ответвления от уже имеющейся (по участку имеющейся линии), либо параллельно на определенном расстоянии от уже проложенных маршрутов (новая линия при параллельной прокладке находится на определенном расстоянии от уже существующих).
Варианты решений и проблемы
Эвристические алгоритмы. Ноль идей как должна выглядеть эвристическая функция и преобразование исходных данных в граф
Алгоритм Ли. Так же, не могу представить вид преобразования "непрерывное пространство -> дискретное рабочее поле"
Плюсом ко всему накладывается условие использования приоритетных направлений.
Буду благодарен за любую помощь.

