6. Modelo de Fuego - alvvazort/AIDrone GitHub Wiki

Ejecución

Se ha creado un archivo aparte ´fire.py´ que será llamado por los archivos “wildfire_QLearning_MP.py” y “multiple_wildfire_QLearning_MP.py”. Este archivo contiene el modelo del fuego y como se produce, se propaga y se extingue un incendio. Estos datos que podemos consultar para saber si una zona está incendiada, son utilizados para modificar la recompensa y así premiar la vigilancia de puntos de interés incendiados.

El icono "🌳" indica que en esa casilla intermediarias donde no hay ningún incendio, mientras que el icono "🔥" indica que si lo hay. Además se indica si es un punto de interés si en la casilla se muestra la letra correspondiente al punto. Además, se indica si hay fuego en un punto de interés añadiendo la simbología de la misma manera a la letra del punto de vigilancia, también puede ser que se encuentre el dron en dicho punto, en ese caso, el segundo símbolo será "🚁" si no hay fuego y "🚒" si hay fuego. Esto último se ha decidido definir así para que en cada casilla siempre haya 2 símbolos y no rompa las proporciones de la matriz.

image

Al ejecutar el código de cualquiera de estos archivos, se ejecutará de manera paralela (en otro procesador) el código correspondiente al funcionamiento y entrenamiento del modelo del dron y el código correspondiente al inicio del incendio.

Funcionamiento

Para la implementación del modelo de fuego en nuestro problema se tuvo que rasterizar el mapa según los números de puntos especificados, de tal manera que se genera una matriz de ⌈dimensión número de puntos * 3 ⌉. Se realiza de tal manera para poder separar los puntos de interés con puntos de relleno, posteriormente llamados HuecoX, para una más realista y más lenta propagación del fuego. Las coordenadas de esta matriz, determinan la posición real en coordenadas GPS, quedando así la matriz de propagación de fuegos equivalente a las localizaciones de la zona.

image

Cuando comienza el problema o una nueva época, se parte de una situación inicial donde no existe ningún incendio y donde el dron simplemente vigilará los distintos puntos según su entrenamiento. Cada 60 segundos, con una probabilidad descrita en la variable wildfire_probability empezará un incendio en un punto aleatorio y este tendrá otra cierta probabilidad de propagarse a las casillas adyacentes, wildfire_propagation.

image image

De manera paralela, las zonas con incendio tienen una probabilidad de extinguirse, wildfire_extinguished , permitiendo equilibrar el mapa de incendios. Esta variable permite que en un punto incendiado se extinga el fuego dependiendo del tiempo que ha transcurrido desde su inicio. En el caso de que se extinga por completo un incendio, se volverá al punto inicial del problema y se provocará un nuevo incendio según el valor wildfire_probability.

image