+ // Constructor
+ CSistemaAutonomo(unsigned max_pasos = 4, unsigned max_teorias = 15):
+ p_entorno(new CEntorno), max_pasos(max_pasos),
+ max_teorias(max_teorias) {}
+
+ // Destructor
+ ~CSistemaAutonomo()
+ {
+ delete p_entorno;
+ for (unsigned i = 0; i < teorias.count(); ++i)
+ delete teorias[i];
+ }
+
+ // Genera un nuevo plan
+ void plan();
+
+ // Indica si hay una teoria mas para ejecutar
+ bool has_next_theory();
+
+ // Obtiene la próxima teoría del plan actual
+ CTeoria* get_next_theory();
+
+ // Retorna true si los valores de la condicion coinciden con los valores del entorno.
+ bool validate_theory(CTeoria*) ;
+
+//protected: