Esempio n. 1
0
 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>();
 }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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);
        }