X-Git-Url: https://git.llucax.com/z.facultad/75.68/celdas.git/blobdiff_plain/65c33aa3c6fdea74b7731f7007ee1e787573cdf5..6566954a731b998269a9f17108ece63b17ccbbbf:/trunk/src/sistemaautonomo.h?ds=sidebyside diff --git a/trunk/src/sistemaautonomo.h b/trunk/src/sistemaautonomo.h index 6ef8899..91efc99 100644 --- a/trunk/src/sistemaautonomo.h +++ b/trunk/src/sistemaautonomo.h @@ -54,11 +54,6 @@ typedef double t_dato ; // [Planificador] -// Cantidad maxima de pasos que puede tener un plan. -// Cuanto mas grande sea este numero, mas ciclos puede tardar el proceso de planificacion. -// Este valor es un compromiso entre performance y eficiencia. -#define PASOS_MAXIMOS_DE_PLAN 20 - // El metodo de planificacion puede encontrar varios planes, y de ellos elige el mejor. // Si se hace seleccionar TODOS los posibles planes, puede tardar demasiado. // Una opcion es determinar una cantidad maxima de posibles planes que se pueden testear. @@ -183,9 +178,22 @@ public: // Las teorias que tiene el SA. CIndiceMagico teorias ; + // Cantidad maxima de pasos que puede tener un plan. + // Cuanto mas grande sea este numero, mas ciclos puede tardar el proceso de planificacion. + // Este valor es un compromiso entre performance y eficiencia. + unsigned max_pasos; + + // Cantidad máxima de teorías que puede tener el planificador. Al haber muchas teorías el + // tarda demasiado tiempo en planificar, por lo tanto es necesario sacar algunas teorías + // para que sea utilizable. El valor en realidad no es la cantidad máxima, pueden haber + // más, pero en cada nueva planificación se seleccionan las mejores max_teorias teorias. + unsigned max_teorias; + public: // Constructor - CSistemaAutonomo(): p_entorno(new CEntorno) {} + CSistemaAutonomo(unsigned max_pasos = 4, unsigned max_teorias = 15): + p_entorno(new CEntorno), max_pasos(max_pasos), + max_teorias(max_teorias) {} // Destructor ~CSistemaAutonomo() @@ -231,6 +239,9 @@ protected: // Si dentro de las teorias se encuentra unaque solo difiera de los datos del entorno en una condicíon inicial => se agrega una nueva teoria igual pero con ANY en esa condicion. void heuristca_generalizacion(CTeoria&); + // Purga las teorias que no son muy exitosas. + void purgar_teorias(); + public: