Я працюю над редактором діаграм. Діаграми відображають 2D фігури ( вузли ), з'єднані з роз'ємами ( ребрами ).
Я хотів би додати операцію, яка, з огляду на вибір вузлів, "роз'єднує" їх: вона розміщує їх, щоб зменшити кількість ребер, що перетинаються, якщо це можливо (і це нормально, якщо краї повинні бути намальовані точками згину) .
Отже, я хочу алгоритм графіків, який, з огляду на ( топологічне ) вбудовування графіка та підмножину його вузлів, модифікує вбудовування (його топологію ) лише на ті вузли, щоб мінімізувати кількість ребер перетину.
Читаючи про графіки вершин і переглядаючи Кабелло та Мохар (2013) , я вважаю, що ця проблема є важкою для NP. Тож я буду задоволений параметризованим алгоритмом (наприклад, щодо кількості країв перетину), який має відому, многочленну, часову складність для будь-якого значення параметра. Це здається здійсненним, але мені непросто самостійно придумати такий алгоритм.
Запитання:
- Де я шукаю такий алгоритм?
- Чи існує?
- У існуючому програмному забезпеченні?
- Чи є якийсь значний практичний досвід проведення такої операції? (Теоретично те, що виглядає добре, може бути не таким хорошим на практиці, або навпаки.)
(Я не впевнений, де найкраще задати це питання: тут, на StackOverflow або MathOverflow?)