Applying a Dynamic Data Driven Genetic Algorithm to Improve Forest Fire Spread Prediction
description
Transcript of Applying a Dynamic Data Driven Genetic Algorithm to Improve Forest Fire Spread Prediction
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
[email protected], {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
[email protected], {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