Graph drawing algorithms - I'm trying to render finite state automata

雨燕双飞 提交于 2019-11-30 06:47:12

问题


I want to write something that will draw finite state automata. Does anyone know any algorithms that are related to this?

EDIT: I should mention that I know about graphviz. I want to build my own draw program/function, so what I'm looking for is some more theoretical stuff/pseudo-code for algorithms.


回答1:


Graph drawing is a fairly complex subject due to the fact that different graphs need to be drawn in different ways - there is no one algorithm fits all approach.

May I suggest the following resource:

  • http://cs.brown.edu/people/rtamassi/papers/gd-tutorial/gd-constraints.pdf

It should be a good starting point, page 15 provides a number of links and books to follow up.




回答2:


To get started with graph drawing algorithms, see this famous paper:

  • "A technique for drawing directed graphs" (1993), by Emden R. Gansner, Eleftherios Koutsofios, Stephen C. North, Kiem-phong Vo, IEEE Transactions on Software Engineering.

It describes the algorithm used by dot, a graphviz drawing program. On the linked page you will find many more references. You will also find some more papers when you google for "drawing directed graphs".

Also, you might find OpenFst convenient, a general toolkit for finite-state machines. It has a binary called fstdraw, which will output a finite-state machine in a format that can be read by dot.




回答3:


Check out Graphviz. It's an open source graph visualization software.

EDIT: Check out the documentation section which links to some of the layout algorithms used.




回答4:


Maybe, I'm a little late in answering this question. Anyway this is a very comprehensive reference to the different types of graphs and the algorithms to visualize them.

http://www.cs.brown.edu/~rt/gdhandbook/



来源:https://stackoverflow.com/questions/518685/graph-drawing-algorithms-im-trying-to-render-finite-state-automata

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!