2012-04-28 107 views
5

quiero dibujar un autómata con los bordes y los estados circulaire, algo como esto http://pop-art.inrialpes.fr/~girault/Cours/Automates/td5.html, tienen u un ejemplo para quecómo dibujar autómatas en Java

+0

traduje esto a Inglés y el segundo enlace dijo que "juego de bolas" .. – DanRedux

+0

lo que quiero hacer es dibujar una autómatas como esto http: // www .google.com/imgres? hl = es & biw = 1280 & bih = 643 & tbm = isch & tbnid = q62yfBg-2QjZ5M: & imgrefurl = http: //pop-art.inrialpes.fr/~girault/Cours/Automates/td5.html&docid=6Ro8kL90vJ_XYM&imgurl=http: //pop-art.inrialpes.fr/~girault/Cours/Automates/determine-solution.gif&w=404&h=317&ei=nDmbT634GunH0QX_2_SYDw&zoom=1&iact=hc&vpx=190&vpy=148&dur=321&hovh=199&hovw=254&tx=151&ty=114&sig=100406407692710228905&page=1&tbnh = 137 & tbnw = 175 & start = 0 & ndsp = 16 & ved = 1t: 429, r: 0, s: 0, i: 68 –

+1

@DanRedux: ¿y qué? Lo traduje al alemán, y era "Kugelspiel", que es el nombre común para ese tipo de autómata. –

Respuesta

6

JGraph es una biblioteca puede utilizar que es nativa de Java y bastante fácil de usar, o puede generar un archivo .dot y dejar que GraphViz se encargue de ello.

2

Si no desea llevar cosas como representar el gráfico de una manera correcta, como intentar no cruzar las líneas, o no tener dos o más nodos en la misma posición, entonces le sugiero que use la biblioteca de gráficos de grail para que pueda ver el gráfico usando yed works (puedo proporcionarle un ejemplo de cómo escribe la expresión regular en el comentario), o si quiere dibujar el gráfico usted mismo, probablemente sea bueno aprender sobre el gráfico en capas: http://en.wikipedia.org/wiki/Layered_graph_drawing y Coffman Graham algoritmo http://en.wikipedia.org/wiki/Coffman%E2%80%93Graham_algorithm

+0

gracias por su respuesta, de hecho, estoy tratando de analizar un archivo XMl, y después de eso tengo que generar la expresión regular para el archivo XML, después de eso tengo que dibujar el autómata, hay un ejemplo en esta publicación http : //stackoverflow.com/questions/10395825/create-a-regular-expression-using-data-extracted-from-an-xml-file –

+1

Aha, creo que tienes mucho trabajo que hacer aquí. He hecho algo así de esta manera: primero he creado una gramática de especificación ANTLR para expresiones regulares válidas, y también para AST. Luego, usando el analizador y el analizador que obtuve de antlr obtuve un árbol común específico para cada expresión regular, crucé ese árbol y construí el NFA primero (usando el algoritmo de Thompson). Cuando tiene NFA, usando el algoritmo de construcción de subconjuntos puede crear el gráfico de DFA. – sm13294