Sto cercando un algoritmo per disegnare un grafico elettorale misto / dipendenza (per un'applicazione linguistica). Un tale grafico avrebbe due diversi tipi di vertici (token, nodi) e due diversi tipi di bordi (gerarchici, non gerarchici).
Sono nuovo della teoria dei grafi e degli algoritmi in generale, e spero che questa domanda non si scontrino, ad esempio con i requisiti a livello di ricerca di questo sito. Dovrebbe tuttavia generalmente rientrare nell'ambito di applicazione di cstheory .
Il grafico dovrebbe essere disegnato dal basso verso l'alto (penso), poiché tutti i token dovrebbero essere visualizzati con la stessa coordinata y e le coordinate y dei nodi che raggruppano token e / o nodi in componenti devono essere calcolate dinamicamente, ad esempio, attraverso il percorso più lungo verso un token.
I bordi gerarchici (usati per raggruppare token / nodi in componenti) dovrebbero avere un numero minimo di punti di piega (idealmente 0), ma dovrebbe esserci anche un numero minimo di incroci, sovrascrivendo il precedente requisito se necessario.
I bordi non gerarchici (usati per le dipendenze) devono avere un numero minimo di incroci e devono essere disegnati come curve di Bézier.
La prossima cosa migliore che ho incontrato è l'algoritmo descritto da Buchheim et al. , migliorando l'esecuzione dell'algoritmo di Walker in tempo lineare.
Per favore fatemi sapere se ci fosse bisogno di migliorare la mia domanda, e grazie mille in anticipo per eventuali suggerimenti.
MODIFICARE:
Come sottolineato in un commento, dovrei ricordare che fondamentalmente voglio un layout grafico predefinito da un algoritmo, che a lungo termine voglio modificare e rivedere all'interno delle possibilità di Eclipse GEF . Ho già esaminato le opzioni per far funzionare Graphviz con GEF, ma non sembra esserci alcuna soluzione funzionante che preservi tutte le funzionalità di modifica ereditate da GEF.