public Handler(MetodoAgregacion metodoA, List <Variable> variables, List <Regla> reglas, Dictionary <string, double> entradas, MetodoDesdifusificacion metodoD) { MetodoA = metodoA; MetodoD = metodoD; Variables = variables; Reglas = reglas; Entradas = entradas; Salidas = new Dictionary <string, Dictionary <string, double> >(); SalidaDef = new Dictionary <string, double>(); }
public static void Entradas() { string linea; Console.WriteLine("Introdusca el Metodo de Agregacion: Mamdani (M) o Larsen (L)"); linea = Console.ReadLine(); if (linea == "M") { metodoA = MetodoAgregacion.Mamdani; } else if (linea == "L") { metodoA = MetodoAgregacion.Larsen; } else { throw new Exception("Error en metodo de agregacion."); } Console.WriteLine("Introdusca el Metodo de Desdifusificacion: Centroide (C), Biseccion (B) o PromedioMaximos (P)"); linea = Console.ReadLine(); if (linea == "C") { metodoD = MetodoDesdifusificacion.Centroide; } else if (linea == "B") { metodoD = MetodoDesdifusificacion.Biseccion; } else if (linea == "P") { metodoD = MetodoDesdifusificacion.PromedioMaximos; } else { throw new Exception("Error en metodo de desdifusificacion."); } Console.WriteLine("Introdusca las variables de entrada ($ para terminar):"); Variables(TipoVariable.Entrada); Console.WriteLine("Introdusca las variables de salida ($ para terminar):"); Variables(TipoVariable.Salida); Console.WriteLine("Introdusca las reglas:"); Reglas(); Console.WriteLine("Introdusca los valores a evaluar:"); ValoresEntrada(); }
public static void Ejemplo() { Dictionary <string, Funcion> v1 = new Dictionary <string, Funcion> (); Dictionary <string, Funcion> v2 = new Dictionary <string, Funcion> (); Dictionary <string, Funcion> v3 = new Dictionary <string, Funcion> (); v1.Add("joven", new Trapezoidal(18, 18, 25, 30)); v1.Add("adulto", new Triangular(20, 35, 50)); v1.Add("mayor", new Trapezoidal(40, 60, 70, 70)); variables.Add(new Variable("edad", TipoVariable.Entrada, v1)); v2.Add("bajo", new Trapezoidal(0, 0, 10, 20)); v2.Add("medio", new Triangular(10, 40, 60)); v2.Add("alto", new Trapezoidal(50, 70, 100, 100)); variables.Add(new Variable("% de manejo", TipoVariable.Entrada, v2)); v3.Add("bajo", new Trapezoidal(0, 0, 10, 20)); v3.Add("medio", new Triangular(10, 30, 45)); v3.Add("alto", new Trapezoidal(40, 55, 100, 100)); variables.Add(new Variable("riesgo financiero", TipoVariable.Salida, v3)); Regla regla1 = new Regla(); regla1.Condiciones.Add(new Atomo("edad", "joven", false)); regla1.Condiciones.Add(new Atomo("% de manejo", "bajo", false)); regla1.Ops.Add(Operaciones.AND); regla1.Resultado = new Atomo("riesgo financiero", "medio", false); reglas.Add(regla1); Regla regla2 = new Regla(); regla2.Condiciones.Add(new Atomo("edad", "joven", false)); regla2.Condiciones.Add(new Atomo("% de manejo", "medio", false)); regla2.Ops.Add(Operaciones.AND); regla2.Resultado = new Atomo("riesgo financiero", "alto", false); reglas.Add(regla2); Regla regla3 = new Regla(); regla3.Condiciones.Add(new Atomo("edad", "joven", false)); regla3.Condiciones.Add(new Atomo("% de manejo", "alto", false)); regla3.Ops.Add(Operaciones.AND); regla3.Resultado = new Atomo("riesgo financiero", "alto", false); reglas.Add(regla3); Regla regla4 = new Regla(); regla4.Condiciones.Add(new Atomo("edad", "adulto", false)); regla4.Condiciones.Add(new Atomo("% de manejo", "bajo", false)); regla4.Ops.Add(Operaciones.AND); regla4.Resultado = new Atomo("riesgo financiero", "bajo", false); reglas.Add(regla4); Regla regla5 = new Regla(); regla5.Condiciones.Add(new Atomo("edad", "adulto", false)); regla5.Condiciones.Add(new Atomo("% de manejo", "medio", false)); regla5.Ops.Add(Operaciones.AND); regla5.Resultado = new Atomo("riesgo financiero", "medio", false); reglas.Add(regla5); Regla regla6 = new Regla(); regla6.Condiciones.Add(new Atomo("edad", "adulto", false)); regla6.Condiciones.Add(new Atomo("% de manejo", "alto", false)); regla6.Ops.Add(Operaciones.AND); regla6.Resultado = new Atomo("riesgo financiero", "alto", false); reglas.Add(regla6); Regla regla7 = new Regla(); regla7.Condiciones.Add(new Atomo("edad", "mayor", false)); regla7.Condiciones.Add(new Atomo("% de manejo", "bajo", false)); regla7.Ops.Add(Operaciones.AND); regla7.Resultado = new Atomo("riesgo financiero", "medio", false); reglas.Add(regla7); Regla regla8 = new Regla(); regla8.Condiciones.Add(new Atomo("edad", "mayor", false)); regla8.Condiciones.Add(new Atomo("% de manejo", "medio", false)); regla8.Ops.Add(Operaciones.AND); regla8.Resultado = new Atomo("riesgo financiero", "alto", false); reglas.Add(regla8); Regla regla9 = new Regla(); regla9.Condiciones.Add(new Atomo("edad", "mayor", false)); regla9.Condiciones.Add(new Atomo("% de manejo", "alto", false)); regla9.Ops.Add(Operaciones.AND); regla9.Resultado = new Atomo("riesgo financiero", "alto", false); reglas.Add(regla9); metodoA = MetodoAgregacion.Mamdani; metodoD = MetodoDesdifusificacion.Centroide; entrada.Add("edad", 25); entrada.Add("% de manejo", 50); }