]> git.llucax.com Git - z.facultad/75.68/celdas.git/blobdiff - trunk/src/sistemaautonomo.cpp
SistemaAutonomo.tz define ANY como constante.
[z.facultad/75.68/celdas.git] / trunk / src / sistemaautonomo.cpp
index 73394ea48f964180cce0494dd8e0c003cf879761..0efe70abb023fec851d8d44d14af3a3a84460d4f 100644 (file)
@@ -20,6 +20,65 @@ bool incluye_a (CIndiceMagico<t_dato>& a, CIndiceMagico<t_dato>& b)
        return result ;
 }
 
        return result ;
 }
 
+//--------------------------------------------------------------------------------------------
+//--
+void CSistemaAutonomo::plan()
+{
+       double p = 1.0;
+       m_plan.clear();
+       planificar(p_entorno->datos, m_datos_finales, m_plan, p);
+       curr_theory = m_plan.begin();
+}
+
+//--------------------------------------------------------------------------------------------
+//--
+#include <iostream> // XXX FIXME
+bool CSistemaAutonomo::has_next_theory()
+{
+       return curr_theory != m_plan.end();
+}
+
+//--------------------------------------------------------------------------------------------
+//--
+CTeoria* CSistemaAutonomo::get_next_theory()
+{
+       if (curr_theory == m_plan.end())
+       {
+               m_datos_finales.clear();
+               return 0;
+       }
+       else
+       {
+               return &*(curr_theory++);
+       }
+}
+
+//--------------------------------------------------------------------------------------------
+//--
+bool CSistemaAutonomo::validate_theory(CTeoria* t)
+{
+       bool result ;
+
+       result = verificar_condicion(t->datos_finales) ;
+
+
+       // Si fallo la teoria
+       if (!result)
+       {
+               // Aplico heuristicas de correccion
+               this->heurisitca_retraccion(*t) ;
+       }
+       else
+       {
+               t->p++ ;
+       }
+
+       // Aplico heuristicas de observacion
+       this->heurisitca_observacion(*t) ;
+       this->heurisitca_generalizacion(*t);
+
+       return result;
+}
 
 
 //--------------------------------------------------------------------------------------------
 
 
 //--------------------------------------------------------------------------------------------
@@ -73,10 +132,9 @@ void CSistemaAutonomo::heurisitca_generalizacion(CTeoria& t)
        CTeoria nt ; //Nueva Teoria
        unsigned i ;
        int count = 0;
        CTeoria nt ; //Nueva Teoria
        unsigned i ;
        int count = 0;
-       int k = 0;
-       int j = 0;
+       unsigned k = 0;
+       unsigned j = 0;
        int posicionCambio = -1;
        int posicionCambio = -1;
-       bool seguir = true;
        unsigned cantidadTeorias = 0;
        std::string nombreTeoria;
 
        unsigned cantidadTeorias = 0;
        std::string nombreTeoria;
 
@@ -184,7 +242,7 @@ void CSistemaAutonomo::planificar ( CIndiceMagico<t_dato>&  datos_iniciales,
 }
 
 
 }
 
 
-
+/*
 //--------------------------------------------------------------------------------------------
 //--
 bool CSistemaAutonomo::ejecutar (CIndiceMagico<CTeoria>& plan)
 //--------------------------------------------------------------------------------------------
 //--
 bool CSistemaAutonomo::ejecutar (CIndiceMagico<CTeoria>& plan)
@@ -231,3 +289,4 @@ bool CSistemaAutonomo::ejecutar (CIndiceMagico<CTeoria>& plan)
        //
        return result ;
 }
        //
        return result ;
 }
+*/