Percolación (2): Propagación de incendios.

 

 

 

Modelo:

 

Vamos a introducir un modelo simple de incendio forestal cuyo propósito es entender el concepto de umbral de percolación. Aproximemos el bosque por una red cuadrada en la que cada celda está ocupada por un árbol con probabilidad p, o vacía con probabilidad p -1. Esta distribución de árboles y huecos será el estado inicial. La caída de un rayo prende un árbol al azar y, acto seguido, el fuego se extiende propagándose a todos los árboles adyacentes a los que están ardiendo. Evidentemente, si p es pequeño es de esperar que el bosque esté compuesto por pequeños grupos aislados de árboles. El grado de conectividad del bosque será muy bajo y el incendio se extinguirá rápidamente. En cambio, si p es próximo a 1, casi todas las celdas estarán ocupadas por un árbol, el bosque se extenderá de lado a lado de la red y su alta conectividad hará que acabe por arder casi completamente. Se sabe que existe un valor crítico de p, pc, tal que si p > pc y en el límite de red infinita, el fuego se extiende por toda la red (lo que no quiere decir que arda todo el bosque), mientras que si p < pc sólo afecta a una porción de él. Se define pues pc como aquel valor de p a partir del cual, en una red infinita, aparecen agregados de percolación, es decir, agregados que se extienden a toda la red.

 

 

Problemas:
  1. Obligatorio: Hacer un programa que simule el modelo de bosque incendiado arriba descrito.

  2. Voluntario (1): Encontrar la densidad crítica de árboles pc y la distribución de la extensión de los incendios para algunos valores de p por encima y por debajo de pc. Notar que para tener suficiente estadística pueden ser necesarias hasta 105 realizaciones según el valor de p.

  3. Voluntario (2): ver percolación (1)

 

Método numérico:
  1. Crear una red L×L y etiquetar sus puntos con una variable bosque(x,y) con valores 1 (árbol sano) con probabilidad p, y 0 (no hay árbol) con probabilidad p -1. Escoger un árbol al azar por donde se supone que se inicia el fuego y asignar a la variable bosque el valor -1 en ese punto.

  2. Asociar a las variables fx, fy y frente las coordenadas x e y de los árboles que componen el frente del incendio, es decir, de aquellos árboles que están ardiendo y tienen árboles vecinos que no lo están, y el número total de árboles de dicho frente.

  3. Siempre que frente > 0, inspeccionar los 4 vecinos de cada árbol del frente. En aquellos casos en los que bosque =1, hacer bosque =-1 y guardar dicha posición como parte del nuevo frente.

  4. Actualizar las variables fx, fy y frente. Volver a (3).

Para los ejercicios voluntarios es necesario modificar el algoritmo anterior para que sea más rápido. Tal y como está expuesto, genera configuraciones que contienen agrupamientos grandes y pequeños de los cuales se selecciona solamente uno (el que contiene el árbol donde se inicia el fuego), y es ineficaz definir regiones inaccesibles al fuego. Por este motivo, es conveniente ir definiendo la parte de bosque que arde como un proceso de crecimiento:

  1. Crear una red L×L y etiquetar sus puntos con una variable bosque(x,y) con valores 0 (puntos no definidos) y ocupar el punto central de la red con un árbol ardiendo bosque(L/2,L/2)=-1.

  2. Asociar a las variables fx, fy y frente las coordenadas x e y de los árboles que componen el frente del incendio, es decir, de aquellos árboles que están ardiendo y tienen puntos vecinos no definidos, y el número total de árboles de dicho frente.

  3. Siempre que frente > 0, inspeccionar los 4 vecinos de cada árbol del frente. En aquellos casos en los que bosque =0, hacer bosque =-1 con probabilidad p y guardar dicha posición como parte del nuevo frente, y con probabilidad p-1 bosque =1.

  4. Actualizar las variables fx, fy y frente. Volver a (3).