Applying a Dynamic Data Driven Genetic Algorithm to Improve Forest Fire Spread Prediction

Preview:

DESCRIPTION

Applying a Dynamic Data Driven Genetic Algorithm to Improve Forest Fire Spread Prediction. Mónica Denham, Ana Cortés, Tomàs Margalef and Emilio Luque. monica@caos.uab.es, {ana.cortes,tomas.margalef,emilio.luque}@uab.es. Computer Architecture & Operating Systems Department. Content. - PowerPoint PPT Presentation

Citation preview

Applying a Dynamic Data Driven Genetic Algorithm to Improve Forest Fire Spread Prediction

Mónica Denham, Ana Cortés, Tomàs Margalef and Emilio Luque

monica@caos.uab.es, {ana.cortes,tomas.margalef,emilio.luque}@uab.es

Computer Architecture & Operating Systems Department

Content Problem.

Method description.

Dynamic Data Driven Genetic Algorithm: Analytical Method.

Experiments and Results.

Conclusions.

Problem

Fire behaviorSimulator

Initial fire

Terrain slopeTerrain vegetationWind directionWind velocityLive fuel moistureDead fuel moisture

Uncertainty source

Content Problem.

Method description.

Dynamic Data Driven Genetic Algorithm. Analytical Method.

Experiments and Results.

Conclusions.

Method Description (I)

*

FireSimulator

input parameters

Init (ti) Prediction (ti+1)

realspread

FireSimulator

Init (ti) Calibration (ti+1)

¿

Prediction (ti+2)

realspread

input parameters

FireSimulatorBest set of

parametersinput parameters

Method Description (II)

*

FireSimulator

Init (ti) Calibration (ti+1)

¿

Prediction (ti+2)

realspread

input parameters

FireSimulator

Best set ofparameters

input parameters

multiple scenarioshuge search space

Genetic Algorithm

Terrain slope (static)Terrain vegetation (static)Wind direction (dynamic)Wind velocity (dynamic)Live fuel humidity (dynamic)Dead fuel humidity (dynamics)(1h, 10hs, 100hs)

master worker0

workern

Population dealing

Population gathering

simulationcomparison

simulationcomparison

Genetic Operators

Content Problem.

Method description.

Dynamic Data Driven Genetic Algorithm: Analytical Method.

Experiments and Results.

Conclusions.

Dynamic Data Driven Genetic Algorithm (I)DDDAS: ability to dynamically incorporate additionaldata into an execution application, and in reverse,

ability of an application to dynamically steer the measurement process (F. Darema).

Analyzing real fire spread

(Real fire spread at ti+1)

Inject better parameter values

We can

Improving simulationsat Calibration stage

and improvingoverall Prediction

process results

Dynamic Data Driven Genetic Algorithm (II)

Due to main fire physics aspects, wind and slope determine fire spread main conditions:

We had proposed a method that calculates ideal wind characteristics, with which, in combination with slope aspects,

achieves fire propagation like fire spread observed at instant ti+1.

We know slope main characteristics.

Due to Calibration stage requirements we dispose fire spread information from instant ti to ti+1.

slope

wind

fire

Using fire and slope characteristics we can estimate wind values to imitate real fire spread

slope

windfire

Analytical Method: Simulator uses slope and wind characteristics to calculate fire spread

characteristics. Simulator treats slope and wind as vectors. We use simulator idea to calculate wind characteristics from slope and spread

characteristics.

Dynamic Data Driven Genetic Algorithm: Analytical Method (III)

αβ

Rs

Rw Where:Rs : slope factorβ: slope directionRw: wind factorα: wind direction

X = Rs cos(β) + Rw cos(α)Y = Rs sin(β) + Rw sin(α)x, y

we know X, Y,we have (Rs y β)

We can calculate wind direction and speed (Rw y α )

( x - Rs cos(β) )

Isolating from the equations:

( y - Rs sin(β) )

( x - Rs cos(β) )α = arctan

Rw = cos(α)

Simulator:Real map:

β

Rsα

Rw

Dynamic Data Driven Genetic Algorithm (IV)

*

FireSimulator

Init (ti) Calibration (ti+1)

realspread

input parametersinput parameters

Genetic Algorithm

Terrain slopeTerrain vegetationWind directionWind velocityLive fuel moistureDead fuel moisture(1h, 10hs, 100hs)

slope

maxwind

Selection - ElitismCrossoverMutation

Wind directionWind velocity

Content Problem.

Method description.

Dynamic Data Driven Genetic Algorithm. Analytical Method.

Experiments and Results.

Conclusions.

Experiments & Results (I)

• DDD Genetic Algorithm reduces error for both Calibration and Prediction stages.

• Prediction stage shows bigger errors (this stage works with calibration best individual for previous time step).

Experiments & Results (II)

• DDD Genetic Algorithm reduces error for both Calibration and Prediction stages.

Experiments & Results (III)

• Real map: fire behavior is different through time steps.• Errors are bigger than previous maps (synthetic maps).• Errors are similar for different configurations of our method.

Content Problem.

Method description.

Dynamic Data Driven Genetic Algorithm. Analytical Method.

Experimentation and Results.

Conclusions.

Conclusions

Calibration and Prediction stages have shown expected behavior.

We have used these techniques for real and synthetic burnings. Proposed methods shown good performance.

Using DDD Genetic Algorithm we could improve whole prediction process quality for synthetic cases.

Although real fires are our main objective, synthetic cases are the first step for understanding and improving steering methods.

Real fires characteristics are more difficult to simulate. Simulators implement abstractions of reality. We are working in this topic now.

Applying a Dynamic Data Driven Genetic Algorithm to Improve Forest Fire Spread Prediction

Thanks

monica@aomail.uab.es, {ana.cortes,tomas.margalef,emilio.luque}@uab.es

Computer Architecture & Operating Systems Department

Pseudocódigos.

Fórmulas Fitness - Error / Volver. Viento / Volver. Pendiente / Volver.

Pseudocódigo: Algoritmo Genético

void evolute(gentype * gen) { double totfitc; gen->num++; newgen.num = gen->num;

cal_fit( gen ,&totfitc); nsort(gen); //keep_best(gen);

indcpy(&newgen.gen[0],*get_best()); indcpy(&newgen.gen[1],gen->gen[1]);

while (i<=(gen->size -2)) {

int p1 =select(totfitc, gen); int p2 =select(totfitc, gen); crossover(gen->gen[p1],gen->gen[p2], &newgen.gen[i], &newgen.gen[i+1]); /*mutation */ mutate(&newgen.gen[i], lmin,lmax); mutate(&newgen.gen[i+1],lmin,lmax);

/ /* stay in the limites */ clip(&newgen.gen[i]); clip(&newgen.gen[i+1]); // next i = i+2; }

Volver

Pseudocódigo: Algoritmo Genético (cont.)

int select( double totfitc,gentype * gen){

double r = random * totfitc; p=0; sumfit=0; while((sumfit <= r)&&(p<gen->size)) sumfit += gen->gen[p++].fitc; p--; return p; }

void crossover(indvtype og1, indvtype og2,indvtype * ng1,indvtype * ng2) {

double cros =rand() % 1000; if (cros <= crosp) //si se supera la probabilidad se cruzan { crospoint = (int) rand()% og1.n; for(int i=0;i<crospoint;i++) { ng1->p[i] = og1.p[i]; ng2->p[i] =(og2.p[i]+og1.p[i])/2; } for(int i=crospoint;i<og1.n;i++) { ng1->p[i] =(og2.p[i]+og1.p[i])/2; ng2->p[i] =og2.p[i]; } } else // se copian directamente los padres a los hijos { indcpy(ng1,og1); indcpy(ng2,og2); }}Volver

Viento Sigma = acumulación de la contribución a la intensidad de reacción

(modelo comb.) Beta = acumulación carga/densidad de todas las partículas del modelo. betaOpt = 3.348 / sigma0.8189

Ratio = beta/betaOpt c = 7.47 * exp(-0.133 * sigma0.55)) e = 0.715 * exp(-0.000359 * sigma) WindK = c * ratio-e

WindB = 0.02526 * sigma0.54

Fuel_PhiWind = WindK * windSpeedWindB

Rw = Fuel_Spread0() * Fuel_PhiWind

Depende del individuoDepende del modelo de combustibleVolver

Pendiente

Volver

Beta = acumulación carga/densidad de todas las partículas del modelo.

SlopeK = 5.275 * beta-0.3

Fuel_PhiSlope = SlopeK * Slope2

Rs = Fuel_Spread0() * Fuel_PhiSlope

Depende del individuoDepende del modelo de combustible

Algoritmo Genético

Algoritmo inspirado en la selección natural y en la genética. - Trabaja sobre una población de individuos.- De forma iterativa, se evoluciona la población mediante las operaciones de:

- Selección: competición de los individuos candidatos: los mejores individuos tienen mayor probabilidad de generar nuevos individuos. Función de evaluación. Elitismo.- Crossover: bajo una probabilidad se elije un crosspoint y los hijos reciben una parte de cada padre.- Mutación: bajo una probabilidad se muta el valor de un “cromosoma”.

hijo2Padre 2

Padre 1

Volver

Elitismo = 2 Nueva Población

CrossPoint

hijo1

Crossover:

mutación

Población

Fitness - Error

Volver

Fitness =

Error =

- Init

- Init ∩

∩)

- Init) - - Init) (∩

Real –Init

Recommended