+ // Constructor
+ CSistemaAutonomo(): p_entorno(new CEntorno) {}
+
+ // Destructor
+ ~CSistemaAutonomo() { delete p_entorno; }
+
+ // 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: