Métodos heurísticos de optimización geométrica
Iluminación óptima de polígonos

Por: Adolfo Luis Fernández García-Redondo
email: aluisf@wanadoo.es

    2. Manual de manejo de la interfaz de usuario

    2.1 Descripción del applet

    El applet Java dispone de una interfaz de usuario sencilla que explicaremos en el siguiente apartado. Tras la carga del applet en la pantalla del navegador lo que podremos observar en pantalla es algo como lo que sigue. Fig. 1


Fig. 1 Interfaz de usuario del applet

    El interfaz está dividido en varias secciones correspondientes a los números que aparecen en la Fig 1. A continuación explicamos que apartado del applet corresponde cada número.

    1. ‘Área de dibujo’ sobre está sección del applet podremos dibujar el polígono que deseemos.

    2. ‘Selección de método heurístico’ desde ésta seleccionaremos entre los 2 métodos heurísticos así como el método de posicionamiento de focos, manual o automático, si procede.

    3. ‘Información del polígono’, en ese apartado recibiremos información del tipo de polígono que estamos dibujando (si es o no simple, o convexto.etc). También se nos mostrará información de las áreas del polígono introducido por nosotros y del área del polígono de visibilidad correspondiente, así como el porcentaje de iluminación respecto al polígono original.

   4. ‘Controles’ desde aquí podremos borrar el polígono, iniciar el cálculo, situar focos de forma manual además de permitirnos modificar condiciones de visualización como pueden ser mostrar los vértices del polígono numerados o sus coordenadas.


    Definamos en mayor profundidad el manejo del applet.

    Sobre el ‘Área de dibujo’ empleando el ratón y el botón izquierdo del mismo iremos dibujando el polígono. Cada vez que se produzca una pulsación del botón izquiero del ratón se introducirá un vértice más al polígono. El último lado introducido se muestra de distinto color, rojo, para saber cual fue nuestro último vértice introducido (Fig 2. indicación ‘a’). El polígono siempre se mostrará cerrado ya que une el último vértice introducido con el primero. Podremos ir viendo en que coordenada se encuentra el puntero del ratón en la parte superior derecha (Fig 2. Indicación ‘b’) del applet.
En la parte inferior (Fig.2 indicación ‘c’) recibimos información del polígono que vamos dibujando, en el caso mostrado se trata de un ‘Polígono simple (No convexo)’. Si nos situamos encima de un vértice ya introducido y pulsamos sobre él con el botón derecho y lo mantenemos pulsado mientras nos desplazamos podremos colocarlo en una nueva posición. Podemos hacer esto en cualquier momento hasta que consigamos dibujar el polígono deseado.


Fig. 2 Manejo de applet

 

 
     El mensaje que se muestra cuando dibujamos un polígono no simple,es decir , un polígono en el que interseccionan dos lados no consecutivos del polígono es como el mostrado en la figura 3. . En el caso de dibujar un polígono no simple el applet no efectuará ningún tipo de cálculo pues necesita que los polígonos introducidos sean simples. La pulsación del botón ‘Calcular’ será ignorada hasta que se introduzca un polígono simple.


Fig. 3 Polígono introducido no válido, al no ser simple

    En la parte superior de la Fig.2 justo a la derecha de los botones podemos observar varias opciones que podremos marcar para modificar parámetros de visualización del polígono introducido en pantalla. En el caso de marcar la opción de ‘Coord. visibles’ al lado de cada vértice introducido aparecerán las coordenadas de dicho vértice respecto a un eje de coordenadas, que sitúa el centro del mismo justo en el centro del área de dibujo (0,0). Si marcamos ‘Numerar vértices’ al lado de cada vértice aparecerá un número que indicará el orden en que éste fue introducido por el usuario. En último caso si marcamos ‘Muestra Pol. Visib.’ lo que se mostrará serán los polígonos de visibilidad de cada foco introducido o generado. Se ha decidido que esta opción no esté marcada por defecto porque confundía al observar el resultado final del algoritmo, es decir, la obtención óptima de colocación de un foco para maximizar al máximo el área iluminada o visible por el foco.

    A continuación se muestran las siguiente figuras que nos permiten observar como va cambiando la visualización de un polígono según vayamos activando o marcando la opción de ‘Coord. Visibles (Fig 4) y la opción de ‘Numerar vértices’ (Fig. 5). Fig. 6 con ambas opciónes seleccionadas.

 


Fig. 4. Polígono original introducido

 


Fig.5 Polígono con la opción de ‘Coord. visibles’ marcada

 


Fig 6. Polígono con ambas opciones marcadas

    Los botones que aparecen en la parte superior de la pantalla son los siguientes
Fig. 7
 


Fig. 7 Botones de control del applet

 

     El primero de ellos ‘Borrar’ nos permitirá borra de pantalla todos los focos que hayamos introducido o bien que haya generado el applet el polígono que hayamos introducido permanecerá en pantalla. El segundo de ellos ‘Borrar Todo’ nos permite limpiar nuestra ‘Área de dibujo’ completamente, es decir, eliminará tanto los focos introducidos/generados como el polígono introducido por nosotros. ‘Calcular’ dará comienzo al proceso de cálculo de la posición óptima del foco en función del método que hayamos seleccionado. Por último ‘Situar focos’ nos permite en el caso que tengamos seleccionado como método heurístico ‘Gradiente’ y posicionamiento ‘Manual’ entrar en el modo de colocación de focos abandonando desde ese instante el modo de dibujo de polígonos, si se vuelve a pulsar se vuelve al modo dibujo de polígono. Como podemos observar en la figura aparece como difuminado dicho botón ya que solo se podrá pulsar en el caso de que estemos en el método de Gradiente y con posicionamiento ‘Manual’. Más tarde cuando se explique un caso práctico de uso se comprenderá mejor su uso si es que aquí no quedó claro.

     Una vez tengamos nuestro polígono introducido llega el momento que calculemos la posición óptima de foco. Veamos dos casos prácticos, uno para cada tipo de método heurístico, para una mejor comprensión de la utilización del applet.


    2.2 Método de Fuerza Bruta
    2.3 Método del Gradiente