Download Talk - DDDAS.org
Document related concepts
no text concepts found
Transcript
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 Initial fire Terrain slope Terrain vegetation Wind direction Wind velocity Live fuel moisture Dead fuel moisture Uncertainty source Fire behavior Simulator Content Problem. Method description. Dynamic Data Driven Genetic Algorithm. Analytical Method. Experiments and Results. Conclusions. Method Description (I) Prediction (ti+1) Init (ti) Fire Simulator real spread input parameters Calibration (ti+1) Init (ti) Fire Simulator Fire Best set of Simulator parameters ¿ input parameters Prediction (ti+2) real spread * Method Description (II) Calibration (ti+1) Init (ti) Best set of parameters Fire Simulator multiple scenarios huge search space Genetic Algorithm Fire Simulator ¿ inputslope parameters Terrain (static) Terrain vegetation (static) Wind direction (dynamic) Wind velocity (dynamic) Live fuel humidity (dynamic) Dead fuel humidity (dynamics) (1h, 10hs, 100hs) Prediction (ti+2) real spread master Population dealing worker0 simulation comparison Population gathering Genetic Operators workern simulation comparison * 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 additional data into an execution application, and in reverse, ability of an application to dynamically steer the measurement process (F. Darema). Improving simulations at Calibration stage and improving overall Prediction process results Analyzing real fire spread (Real fire spread at ti+1) We can Inject better parameter values Dynamic Data Driven Genetic Algorithm (II) Due to main fire physics aspects, wind and slope determine fire spread main conditions: Using fire and slope characteristics we can estimate wind values to imitate real fire spread wind fire fire wind slope slope We know slope main characteristics. Due to Calibration stage requirements we dispose fire spread information from instant ti to ti+1. 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. Dynamic Data Driven Genetic Algorithm: Analytical Method (III) 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. X = Rs cos(β) + Rw cos(α) Real map: Simulator: x, y Y = Rs sin(β) + Rw sin(α) Rw α Rs β Where: Rs : slope factor we know X, Y, β: slope direction we have (Rs y β) Rw: wind factor α: wind direction We can calculate wind direction and speed (Rw y α ) Isolating from the equations: α = arctan ( y - Rs sin(β) ) ( x - Rs cos(β) ) Rw = ( x - Rs cos(β) ) cos(α) Dynamic Data Driven Genetic Algorithm (IV) Calibration (ti+1) Init (ti) Fire Simulator input slope parameters Terrain Terrain vegetation Wind direction Wind velocity Live fuel moisture Dead fuel moisture (1h, 10hs, 100hs) wind max slope real spread Genetic Algorithm Selection - Elitism Crossover Mutation * 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]); Volver 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; } Pseudocódigo: Algoritmo Genético (cont.) int select( double totfitc,gentype * gen) { 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); } double r = random * totfitc; p=0; sumfit=0; while((sumfit <= r)&&(p<gen->size)) sumfit += gen->gen[p++].fitc; p--; return p; } 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 Volver Depende del individuo Depende del modelo de combustible Pendiente 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 individuo Volver Depende 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”. Población Nueva Población Elitismo = 2 Crossover: CrossPoint Padre 1 hijo1 Padre 2 hijo2 mutación Volver Fitness - Error ∩) Error = ∩ - Init ∩ Fitness = - Init - Init) - (∩ - Init) Real –Init Volver