У меня есть два набора из n узлов. Теперь я хочу соединить каждый узел из одного набора с другим узлом из другого набора. Полученный граф не должен иметь пересечений.
Я знаю несколько алгоритмов развертки (Bentley-Ottmann-Algorithm для проверки где встречаются пересечения, но я не смог найти алгоритм для решения этих пересечений, кроме подхода грубой силы.
Каждый узел из одного набора может быть соединен с любым другим узлом в другом наборе.
Любые указатели на (эффективный) алгоритм, решающий эту проблему? Нет необходимости в реализации.
EDIT1:
Вот одно из решений проблемы для n=7
:
Черные точки — это набор узлов, а красные точки — набор. Каждый черный узел должен быть соединен с одним красным узлом так, чтобы соединяющие их линии не пересекались.
EDIT2:
Для дальнейшего уточнения: положения всех узлов фиксированы, и результирующий граф будет иметь n ребер. У меня также нет никаких доказательств того, что решение существует, но я не мог создать пример, в котором решения не было. Я уверен, что где-то есть доказательство того, что создание такого планарного графа всегда возможно. Кроме того, требуется только одно решение, а не все возможные решения.
R R B B
. Все возможные пары черно-красных прямых пересекаются на всем отрезке длины 1. - person j_random_hacker   schedule 29.06.2016