Está en la página 1de 10

Universidad Nacional General Sarmiento

TP 3 PROGRAMACION III
El TP del censo!

Profesor: Bertaccini, Daniel


Alumnos: Gutierrez, Martin
Lopez Arias, Augusto
Isola, Deborah Giselle
TP3 PROG III

CONTENIDO 2

Mejoras solicitadas en la devolución previa......................................................................................................3

Revisión de correcciones....................................................................................................................................4

Decisiones grupales sobre el Algoritmo Goloso................................................................................................5

Diagrama de clases.............................................................................................................................................7

Sobre la clase AppConsola.................................................................................................................................8

Otras modificaciones..........................................................................................................................................8

Conclusión........................................................................................................................................................10

Autor: Valor Creativo


TP3 PROG III

Mejoras solicitadas en la devolución a la primer entrega 3

“Cuando lo ejecuto con los grafos de 9 y 15 vértices, el programa se


queda en loop, no da error, pero nunca termina. Les dejo las imágenes
de los grafos con los cuales probé, para que vean cuál puede ser el
error.”

“Les hago otras observaciones:

- Tampoco pude hacerlo funcionar cargando datos de un archivo json.


Cuando lo intenté, obtuve una excepción por puntero nulo.

Autor: Valor Creativo


TP3 PROG III

- Con respecto al algoritmo goloso que implementaron, habría sido 4


conveniente que lo explicaran en el informe.

- Hay muchos métodos que no son utilizados en ningún lado. Deberían


quitarlos antes de la entrega. Entiendo que eso se debe a que no
trabajaron de manera coordinada (según ustedes mismos dejan entrever
en el informe). Por ejemplo, hay dos constructores de RadioCensal, uno
que recibe un ArrayList como segundo parámetro y otro que recibe un
entero en su lugar. El primero de los constructores no se usa.
Tampoco se usan obtenerAristas y obtenerVertices en GrafoVecinos.”

Revisión de correcciones
 Archivo Json
Primero que nada, nos detuvimos a mirar cada una de las correcciones hechas
por nuestro profesor.

Empezamos por solucionar la funcionalidad de cargar la información por medio


de un archivo json.

La falla se encontró en un cambio realizado a una de las funciones que llamaban


a la carga de resultados. No se estaba utilizando la variable de tipo File que
devolvía la selección del archivo. Se solucionó agregando el File como
parámetro a dicha función.

Autor: Valor Creativo


TP3 PROG III

 Metodos y constructores sin utilizar


La clase Grafo que habíamos implementado, fue una pura reutilización de la
usada en el Trabajo Práctico nro 2. Esto hacia que muchos de los métodos,
como el peso de las aristas y otras funcionalidades no se utilizaran.
Para poder cumplimentar con los cambios solicitados, y ya pensando en la
nueva implementación del algoritmo goloso que decidimos de manera conjunta
utilizar en ésta reentrega, optamos por también realizar cambios sobre nuestra
implementación de grafo, quedando un código más limpio y con sólo aquellos
métodos que debieran cumplir una función para éste proyecto.

A su vez, también quitamos variables no utilizadas en ésta implementación

para las clases RadioCensal y Censista.

Decisiones grupales sobre el algoritmo goloso

En plan de tener un trabajo más uniforme y coordinado decidimos esta vez,


plantear juntos de qué manera abordaríamos tanto la lógica del algoritmo, asi
como tambien la implementación del grafo que se usaría para el mismo fin.

Nuestro algoritmo le asignaría a los censistas las manzanas a censar y cada


elección debería ser la mejor para que respete la funcionalidad de una
heurística golosa.

El criterio para la mejor elección fue que debería buscarse la manzana que
tuviera más manzanas vecinas disponibles. De esta manera nos garantizaba, en
cada paso, la mayor toma de manzanas disponible para un censista, reduciendo

Autor: Valor Creativo


TP3 PROG III

la cantidad final de censistas usados para el censo total del radio censal, que era 6
lo que se pedia como objetivo en el Trabajo Práctico.

Llevándolo al código, nuestra función objetivo seria una función que recorriera,
en cada paso, aquellas manzanas libres y de todas ellas, se quedara con la que
tuviera mas vecinos.

Esto implicaba, que luego de cada paso, las manzanas previamente elegidas no
deberían ser consideradas para su elección como “manzanas censables o libres”
como asi también debían ser excluidas en el recuento de “vecinos totales” de
las manzanas libres restantes. Las relaciones entre manzanas eran un cambio
constante, y se perdería información si solo usábamos un conjunto llano de
“manzanas sin asignar” o “manzanas censadas”.

Así fue como llegamos a la idea de utilizar un grafo como medio para resguardar
los cambios.

Utilizaríamos el grafo de las manzanas, y removeríamos aquellos vértices de las


manzanas seleccionadas en cada paso, permitiendo que los pasos posteriores
puedan reelegir la mejor opción de manera correcta.

Autor: Valor Creativo


TP3 PROG III

Diagrama de Clases 7

Autor: Valor Creativo


TP3 PROG III

Clase “AppConsola” 8

Con respecto a la clase appConsola, su funcion es la de crear unos Json con los
ejemplos de grafo que se nos pasó y no funcionaban, junto con 3 censistas
(cantidad que puede ser modificada de acuerdo a las pruebas que se quieran
hacer).
Decidimos crear dicha clase para que asi resulte mas sencillo el probar los
ejemplos que se vio que no funcionaban en el tp y que se pierda menos tiempo
en la implementación de los casos prueba.

Otras modificaciones
 Carga de foto

Ahora, si no se carga una foto, aparecerá una de manera predeterminada.

Autor: Valor Creativo


TP3 PROG III

 Manzanas sin censistas disponibles 9

A diferencia de la entrega previa, ahora las manzanas que no poseean un


censista asignado, aparecerán de esta manera en el mapa.

 Resultados: Mapa y tabla en el mismo JFrame

Ahora al volcar los resultados (si el ingreso fue manual) ya no emergen dos
ventanas, sino que los cambios se muestran en una única ventana
representativa.

Autor: Valor Creativo


TP3 PROG III

10

Conclusiones finales:

Se han implementado las mejoras y correcciones pertinentes y solicitadas, con


algunas extras que mejoran la legibilidad del código y la visualización de la
interfaz (para que, esta última, sea mas amena, bella y amigable para el
usuario), logrando que el código y lo solicitado funcione como corresponda.

Este trabajo nos ayudo a profundizar sobre la heurística golosa, manejo de json,
archivos, y sobre la implementación de Jmap y sus herramientas.
Tambien a familiarizarnos aun mas con los casos de testing.

Si bien los tiempos no nos permitieron cumplir con uno de los extras que
habían, como grupo, estamos muy conformes con lo que logramos en esta
nueva reentrega.

Autor: Valor Creativo

También podría gustarte