Estou trabalhando em um editor de diagrama. Os diagramas exibem formas 2D ( nós ) conectadas com conectores ( arestas ).
Gostaria de adicionar uma operação que, dada uma seleção de nós, os "desembaraça" : os reposiciona para reduzir o número de arestas de cruzamento, se possível (e tudo bem se as arestas tiverem que ser desenhadas com pontos de curvatura) .
Então, eu quero um algoritmo de gráfico que, dada uma incorporação ( topológica ) de um gráfico e um subconjunto de seus nós, modifique a incorporação (sua topologia ) apenas nesses nós, a fim de minimizar o número de arestas de cruzamento.
Ao ler sobre os gráficos do ápice e navegar em Cabello e Mohar (2013) , suponho que esse problema seja difícil para o NP. Então, ficarei feliz com um algoritmo parametrizado (por exemplo, no número de arestas de cruzamento) que possui uma complexidade de tempo conhecida, polinomial, para qualquer valor de parâmetro especificado. Parece viável, mas não acho fácil criar esse algoritmo sozinho.
Questões:
- Onde procuro esse algoritmo?
- Isto existe?
- Em software existente?
- Existe alguma experiência prática significativa com essa operação? (O que parece bom na teoria pode não ser tão bom na prática, ou vice-versa.)
(Não sei onde melhor fazer esta pergunta: aqui, no StackOverflow ou MathOverflow?)