X-Git-Url: https://git.llucax.com/z.facultad/75.68/celdas.git/blobdiff_plain/b914931109eeea8f1dd22f82147fd755c86c1084..5530730f6759a3c449df3e78f122084d16f825d6:/trunk/src/sistemaautonomo.cpp?ds=sidebyside diff --git a/trunk/src/sistemaautonomo.cpp b/trunk/src/sistemaautonomo.cpp index 7bc390b..2c85e51 100644 --- a/trunk/src/sistemaautonomo.cpp +++ b/trunk/src/sistemaautonomo.cpp @@ -31,6 +31,7 @@ void CSistemaAutonomo::plan() { double p = 1.0; m_plan.clear(); + if (teorias.count() > max_teorias) purgar_teorias(); #ifdef DEBUG std::cout << "SA: Planificando...\n"; std::cout << "SA: \tentorno:\n" << p_entorno->datos << "\n"; @@ -48,7 +49,6 @@ void CSistemaAutonomo::plan() else std::cout << "SA: curr teoria: " << **curr_theory << "\n"; #endif // DEBUG - if (teorias.count() > TEORIAS_MAX) purgar_teorias(); } //-------------------------------------------------------------------------------------------- @@ -69,6 +69,9 @@ CTeoria* CSistemaAutonomo::get_next_theory() } else { +#ifdef DEBUG + std::cout << "SA: ejecuta teoria: " << **(curr_theory) << "\n"; +#endif // DEBUG return *(curr_theory++); } } @@ -82,6 +85,10 @@ bool CSistemaAutonomo::validate_theory(CTeoria* t) // Aumento k (cantidad de veces que se probó la teoría ++t->k; +#ifdef DEBUG + std::cout << "SA: Entorno de verificacion:\n" << p_entorno->datos; +#endif // DEBUG + // Verifico result = verificar_condicion(t->datos_finales) ; @@ -107,6 +114,9 @@ bool CSistemaAutonomo::validate_theory(CTeoria* t) // Aplico heuristicas de correccion this->heuristca_retraccion(*t) ; } +#ifdef DEBUG + else std::cout << "SA: Verifica!\n"; +#endif // DEBUG return result; } @@ -272,7 +282,7 @@ void CSistemaAutonomo::planificar (CIndiceMagico& datos_iniciales, if ( incluye_a(datos_iniciales, datos_finales) ) return ; - if ( numero_de_llamada > PASOS_MAXIMOS_DE_PLAN ) return ; + if (numero_de_llamada > max_pasos) return ; for (i = 0; i < teorias.count(); i++) if ( incluye_a(teorias[i]->datos_iniciales, datos_iniciales) ) @@ -313,8 +323,8 @@ void CSistemaAutonomo::purgar_teorias() } teorias.remove(pos); #ifdef DEBUG - std::cout << "SA: Se purgo la teoria " << teorias[pos] << "\n"; + std::cout << "SA: Se purgo la teoria " << *teorias[pos] << "\n"; #endif // DEBUG - if (size - 1 > TEORIAS_MAX) purgar_teorias(); + if (size - 1 > max_teorias) purgar_teorias(); }