]> git.llucax.com Git - z.facultad/75.68/celdas.git/blobdiff - trunk/src/sistemaautonomo.h
Se agregan la máxima cantidad de pasos al planificar y la máxima cantidad de teorías...
[z.facultad/75.68/celdas.git] / trunk / src / sistemaautonomo.h
index 819db8a3813d9a4214e4c5ba6df72b3d42682ff9..91efc991adf91d64068245a7f2909d9cb3b29a09 100644 (file)
@@ -54,11 +54,6 @@ typedef double t_dato ;
 
 // [Planificador]
 
-// Cantidad maxima de pasos que puede tener un plan.
-// Cuanto mas grande sea este numero, mas ciclos puede tardar el proceso de planificacion.
-// Este valor es un compromiso entre performance y eficiencia.
-#define PASOS_MAXIMOS_DE_PLAN          4
-
 // El metodo de planificacion puede encontrar varios planes, y de ellos elige el mejor.
 // Si se hace seleccionar TODOS los posibles planes, puede tardar demasiado.
 // Una opcion es determinar una cantidad maxima de posibles planes que se pueden testear.
@@ -66,11 +61,6 @@ typedef double t_dato ;
 // Poner INFINITO si se desea deshabilitar esta opcion.
 #define PLANES_MAXIMOS_TESTEADOS       10
 
-// Cantidad máxima de teorías que puede tener el planificador. Al haber muchas teorías el
-// tarda demasiado tiempo en planificar, por lo tanto es necesario sacar algunas teorías
-// para que sea utilizable.
-#define TEORIAS_MAX                    20
-
 // Es la minima relacion P/K que puede tener una teoria para considerarse como aceptable.
 #define TOLERANCIA                                     0.75
 
@@ -188,9 +178,22 @@ public:
        // Las teorias que tiene el SA.
        CIndiceMagico<CTeoria*>         teorias ;
 
+       // Cantidad maxima de pasos que puede tener un plan.
+       // Cuanto mas grande sea este numero, mas ciclos puede tardar el proceso de planificacion.
+       // Este valor es un compromiso entre performance y eficiencia.
+       unsigned max_pasos;
+
+       // Cantidad máxima de teorías que puede tener el planificador. Al haber muchas teorías el
+       // tarda demasiado tiempo en planificar, por lo tanto es necesario sacar algunas teorías
+       // para que sea utilizable. El valor en realidad no es la cantidad máxima, pueden haber
+       // más, pero en cada nueva planificación se seleccionan las mejores max_teorias teorias.
+       unsigned max_teorias;
+
 public:
        // Constructor
-       CSistemaAutonomo(): p_entorno(new CEntorno) {}
+       CSistemaAutonomo(unsigned max_pasos = 4, unsigned max_teorias = 15):
+               p_entorno(new CEntorno), max_pasos(max_pasos),
+               max_teorias(max_teorias) {}
 
        // Destructor
        ~CSistemaAutonomo()