Способы отображения ориентированного ациклического графа на сетку/матрицу

У меня есть DAG со многими тысячами вершин и ребер.

Я ищу алгоритмы, которые могут располагать вершины в точках сетки таким образом, чтобы это было наиболее удобно/эстетично для человека. Моя догадка заключается в том, что наилучший макет будет похож на макет с минимальной суммой длин ребер.

Можете ли вы указать мне эффективные алгоритмы для такой минимальной суммы длин ребер или другие алгоритмы, которые могли бы помочь мне решить эту проблему?

Вот часть вывода очень наивного алгоритма: введите здесь описание изображения


person GJ.    schedule 28.12.2011    source источник
comment
Мне интересно поиграться с этой проблемой. У вас есть образец набора данных, который вы могли бы загрузить куда-нибудь?   -  person Snowball    schedule 29.12.2011


Ответы (1)


Я почти уверен, что это открытая проблема ("рисование графика"). Еще пара вещей, которые вы, возможно, захотите оптимизировать:

  • Угол между ребрами, исходящими из вершины (увеличение)
  • Количество пересечений ребер (минимизировать)

Вы могли бы использовать генетический алгоритм или какой-то другой метаэвристический, но Я не знаю, насколько хорошими будут результаты.

person Snowball    schedule 28.12.2011