jueves, 7 de abril de 2011

Entrega 4

Para esta segunda entrega, continuamos trabajando con la negociación de los agentes. En primer lugar nos enfocamos en mejorar la interface gráfica añadiendo algunas funcionalidades. Agregamos un botón llamado “Despliega Tabla” que le permitirá al controlador tener acceso a la información de los vuelos que están en la pista. Además podrá modificar el orden en el que hacen su respectivo aterrizaje o despegue, así como la descripción del porqué modifica este orden. Esta implementación fue posible utilizando la clase JTable.

Además de modificar la interface gráfica, le agregamos algunas características a los aviones como su descripción por algún cambio en la prioridad, así como la reducción de la gasolina conforme aumentan sus horas de vuelo. Tomamos como mínimo de gasolina para llegar a la terminal 1000 litros. Si la cantidad de gasolina es menor o se acerca a 1000, su prioridad aumenta y por lo tanto debe aterrizar.

Tomando ya en cuenta todas las características de los aviones, se calcula la prioridad de cada uno de ellos y se actualiza dinámicamente.

Además modificamos el comportamiento de los agentes, ya que previamente los aviones de despegue únicamente estaban en la Pista Uno y los de Aterrizaje estaban en la Pista Dos. Ahora con las respectivas modificaciones hay en la Pista Dos tanto aviones que despegan como aviones que aterrizan, por lo tanto hicimos que pudieran interactuar de manera correcta para que no hubiera ninguna colisión entre ellos. Esto lo hicimos tomando en cuenta la respectiva prioridad de los aviones, ya que si se da el caso de un agente que va a despegar pero tiene un gran número de conexiones, entonces tiene mayor prioridad que un avión que desea aterrizar y su prioridad es normal. La sincronización de los agentes la hicimos tomando en cuenta la distancia en “x” y en “y”, así como la cantidad de gasolina, el número de conexiones, las fallas mecánicas, las horas de vuelo y las emergencias médicas.