Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El presente proyecto pretende estudiar el manejo de algoritmos sobre grafos haciendo un análisis
de algunos algoritmos en el ámbito de problemas de optimización. El funcionamiento de cada
algoritmo estudiado se representará en la máquina mediante un simulador para poder observar
los resultados de ejecución de forma más exacta.
Se implementará, para el estudio de los problemas de procesamiento de grafos, un simulador
didáctico con el cual el usuario podrá analizar los posibles resultados de diferentes algoritmos para
resolver el problema de partición de grafos. Esto será de gran beneficio para quien haga uso del
aplicativo creado con este proyecto, al poder ejecutar y comparar varios algoritmos, midiendo las
respuestas y comportamientos, así como el tiempo de respuesta real y teórico, entre otros.
El sistema debe ser desarrollado en el lenguaje de programación Python y deberá tener una
interfaz gráfica de usuario en entorno web. Dicha interfaz gráfica deberá contar con todas las
opciones para que el usuario cargue grafos desde archivos si así lo desea (en formato JSON) o
simplemente crearlo manualmente. La información que se cargue al sistema (desde archivo o
manualmente) y los resultados generados a raíz de la ejecución de un algoritmo en particular
deberán ser almacenados en base de datos con el fin de mantener un histórico de las ejecuciones
y poder comparar los resultados entre los diferentes algoritmos por ejemplo para un mismo grafo.
Se recomienda utilizar la base de datos mongodb (mongodb Atlas) debido a su dinamismo por ser
NoSql.
La aplicación consistirá en un simulador didáctico para la aplicación de algoritmos de partición
sobre grafos como se explica a continuación:
El simulador permitirá diseñar un grafo agregando o eliminando nodos, permitiendo manejar
parámetros de entrada como el tipo de grafo a generar, los algoritmos a utilizar, las consultas que
se desplegarán al ejecutar el algoritmo, etc. Con esto se podrá analizar los resultados del
algoritmo que se probará para el grafo teniendo en cuenta los parámetros y experimentando con
posibles configuraciones, pesos, etc. También se tendrá la opción de dejar que la aplicación
genere el grafo automáticamente con determinados valores (cantidad de nodos, cantidad de
arcos, etc). El simulador también permitirá guardar y modificar los grafos, si así lo desea el
usuario. El simulador mostrará de forma gráfica tanto el grafo generado como el análisis del
algoritmo que usará el grafo. El simulador permitirá exportar el grafo a Excel o como imagen.
El menú principal de la aplicación se describe a continuación:
Barra de Menús
Menú Submenú 1 Submenú 2 Submenú 3 Descripción
Principal
Archivo Nuevo grafo Personalizado Esta opción permite
crear un grafo
personalizado acorde a
las preferencias del
usuario
Aleatorio Esta opción permite
crear un grafo aleatorio
(nodos aleatorios, arcos
aleatorios, costos y tipo
de grafo)
Abrir Permitirá abrir grafos
guardados en formato
XML
Cerrar Permitirá cerrar el
espacio de trabajo actual
Guardar Permitirá guardar el
grafo actual en formato
XML/JSON y también en
base de datos.
Guardar como Permitirá guardar el
grafo actual en formato
XML/JSON y dar un
nombre al archivo
Exportar datos Excel Exportará el grafo en
formato xlsx
Imagen Exportará el grafo a
imagen png y jpeg
PDF Se exportará una
imagen del grafo,
además de una tabla
con el resumen de los
resultados y los datos de
la ejecución.
Importar datos Importa datos desde
formato JSON o XML. o
desde uno previamente
almacenado en base de
datos.
Inicio Llevar al inicio del
sistema donde se
deberá mostrar un
listado de todas las
ejecuciones realizadas
hasta el momento por el
usuario en sesión.
Imprimir Manda a la impresora el
grafo como PDF con la
información resumen de
la ejecución.
Editar Deshacer Opción para deshacer el
cambio más reciente
Nodo Agregar Opción para agregar un
nodo al grafo
Editar Opción para editar el
nodo seleccionado
Eliminar Opción para eliminar el
nodo seleccionado
Arco Agregar Opción para agregar un
arco
Eliminar Permite eliminar un arco
Editar Permite editar un arco
Analizar Algoritmos Algoritmo 1 Este pedirá …
.
Algoritmo k Este pedirá …
Aplicación 2
Aplicación m
Ventana Gráfica permite ver el grafo en
modo gráfico
Tabla permite ver una ventana
con la matriz de
representación del grafo
Ayuda Ayuda mostrará manual de
usuario
Acerca de Grafos datos sobre la aplicación
Grafos
El simulador permitirá al usuario crear su propio grafo bien sea de forma manual o aleatoria,
agregando o eliminando nodos, eligiendo el tipo de grafo deseado y verificándolo. Se permitirá al
usuario definir las características del grafo a crear, como el tipo, el número de nodos, si es dirigido
o no, etc. Se dará la posibilidad de crear el grafo manualmente añadiendo tantos nodos como se
desee, al final el sistema permitirá al usuario validar si su grafo es correcto de acuerdo con las
características seleccionadas. También el sistema podrá crear el grafo automáticamente
(aleatorio), para lo cual el usuario podrá escoger las propiedades del grafo a generar (dirigido,
ponderado, convexo, multigrafo). De cualquier forma, el editor deberá permitir, adicionalmente
usar menús contextuales para agregar, eliminar renombrar, nodos y/o arcos. Además, Los nodos
deberán poder moverse fácilmente con el ratón pulsando el botón izquierdo sobre el nodo y
manteniéndolo pulsado mientras se mueve el ratón.
Cuando el grafo esté creado, estará listo para la siguiente etapa del proyecto y el usuario podrá
ejecutar algún algoritmo en la opción del menú Analizar – Algoritmo y entonces se mostrará
activa la lista de algoritmos disponibles (algo similar a como se muestra en la siguiente imagen):