/* Calcula el grado de compatibilidad (Ri(ek)) de la regla con el ejemplo */ public double ReglaCubreEjemplo(Difuso[] R, double[] ejem) { int i; double minimo; for (i = 0; i < tabla.n_variables; i++) grado_pertenencia[i] = base_reglas.Fuzzifica(ejem[i], R[i]); minimo = 1; for (i = 0; i < tabla.n_variables; i++) if (grado_pertenencia[i] < minimo) minimo = grado_pertenencia[i]; return (minimo); }
/* Errores Cuadratico y Lineal */ void Error_tst(MiDataset tabla_tst) { int i, j; double suma1, suma2, fuerza; for (j = 0, suma1 = suma2 = 0.0; j < tabla_tst.long_tabla; j++) { fuerza = base_reglas.FLC(tabla_tst.datos[j].ejemplo); suma1 += Math.pow(tabla_tst.datos[j].ejemplo[tabla.n_var_estado] - fuerza, 2.0); suma2 += Math.abs(tabla_tst.datos[j].ejemplo[tabla.n_var_estado] - fuerza); } EC = suma1 / (double) tabla_tst.long_tabla; EL = suma2 / (double) tabla_tst.long_tabla; }
/* Error Cuadratico */ double ErrorCuadratico() { int i; double suma; for (i = 0, suma = 0.0; i < tabla.long_tabla; i++) suma += 0.5 * Math.pow( tabla.datos[i].ejemplo[tabla.n_var_estado] - base_reglas.FLC(tabla.datos[i].ejemplo), 2.0); return (suma / (double) tabla.long_tabla); }
/* salida */ public String getSalidaObli(MiDataset tabla_datos) { int j; double fuerza; String salida; salida = "@data\n"; for (j = 0; j < tabla_datos.long_tabla; j++) { fuerza = base_reglas.FLC(tabla_datos.datos[j].ejemplo); salida += (tabla_datos.datos[j]).ejemplo[tabla_datos.n_var_estado] + " " + fuerza + " " + "\n"; } salida = salida.substring(0, salida.length() - 1); return (salida); }