]> git.llucax.com Git - z.facultad/75.68/celdas.git/blobdiff - trunk/src/sistemaautonomo.cpp
Nueva versión del robot usando el sistema autónomo.
[z.facultad/75.68/celdas.git] / trunk / src / sistemaautonomo.cpp
index 2b988f088856f06d4259455a2a03b187bba73bce..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;
+}
 
 
 //--------------------------------------------------------------------------------------------
 
 
 //--------------------------------------------------------------------------------------------
@@ -183,7 +242,7 @@ void CSistemaAutonomo::planificar ( CIndiceMagico<t_dato>&  datos_iniciales,
 }
 
 
 }
 
 
-
+/*
 //--------------------------------------------------------------------------------------------
 //--
 bool CSistemaAutonomo::ejecutar (CIndiceMagico<CTeoria>& plan)
 //--------------------------------------------------------------------------------------------
 //--
 bool CSistemaAutonomo::ejecutar (CIndiceMagico<CTeoria>& plan)
@@ -230,3 +289,4 @@ bool CSistemaAutonomo::ejecutar (CIndiceMagico<CTeoria>& plan)
        //
        return result ;
 }
        //
        return result ;
 }
+*/