Sto lavorando a un editor di diagrammi. I diagrammi mostrano forme 2D ( nodi ) collegate con connettori ( bordi ).
Vorrei aggiungere un'operazione che, data una selezione di nodi, li "districa" : li riposiziona per ridurre il numero di bordi di incrocio, se possibile (ed è OK se i bordi dovranno essere disegnati con punti di piega) .
Quindi voglio un algoritmo grafico che, dato un incorporamento ( topologico ) del grafico e un sottoinsieme dei suoi nodi, modifichi l'incorporamento (la sua topologia ) solo su quei nodi in modo da ridurre al minimo il numero di spigoli incrociati.
Dalla lettura di grafici apicali e la navigazione di Cabello e Mohar (2013) , suppongo che questo problema sia NP-difficile. Quindi sarò felice con un algoritmo parametrizzato (ad es. Sul numero di spigoli) che ha una complessità temporale nota, polinomiale, per ogni dato valore di parametro. Sembra fattibile, ma non trovo facile elaborare un simile algoritmo da solo.
Domande:
- Dove cerco un tale algoritmo?
- Esiste?
- Nel software esistente?
- Esiste un'esperienza pratica significativa con un'operazione del genere? (Ciò che sembra buono in teoria potrebbe non essere così buono in pratica, o viceversa.)
(Non sono sicuro di quale sia il posto migliore per porre questa domanda: qui, su StackOverflow o MathOverflow?)